feat: 新手引导优化
This commit is contained in:
@@ -7,6 +7,7 @@ import { getQrCode, getQrCodeResult, getUserInfo } from '@/api';
|
||||
import { useUserStore } from '@/stores';
|
||||
import { useSessionStore } from '@/stores/modules/session.ts';
|
||||
import { WECHAT_QRCODE_TYPE } from '@/utils/user.ts';
|
||||
import { useGuideTour } from '@/hooks/useGuideTour';
|
||||
|
||||
const props = defineProps({
|
||||
type: {
|
||||
@@ -29,6 +30,7 @@ const userStore = useUserStore();
|
||||
const router = useRouter();
|
||||
const sessionStore = useSessionStore();
|
||||
const isQrCodeError = ref(false);
|
||||
const { startFullTour } = useGuideTour();
|
||||
// 二维码倒计时实例
|
||||
const { start: qrStart, stop: qrStop } = useCountdown(shallowRef(600), {
|
||||
interval: 1000,
|
||||
@@ -126,6 +128,11 @@ async function handleLoginSuccess(token: string, refreshToken: string) {
|
||||
stopPolling();
|
||||
userStore.setToken(token, refreshToken);
|
||||
const resUserInfo = await getUserInfo();
|
||||
|
||||
// 判断是否为新用户(注册时间小于1小时)
|
||||
const creationTime = resUserInfo.data.user.creationTime; // 格式: "2024-11-01 12:01:34"
|
||||
const isNewUser = checkIsNewUser(creationTime);
|
||||
|
||||
userStore.setUserInfo(resUserInfo.data);
|
||||
// 提示用户
|
||||
ElMessage.success('登录成功');
|
||||
@@ -133,6 +140,34 @@ async function handleLoginSuccess(token: string, refreshToken: string) {
|
||||
await router.replace('/');
|
||||
await sessionStore.requestSessionList(1, true);
|
||||
userStore.closeLoginDialog();
|
||||
|
||||
// 如果是新用户,延迟500ms后自动触发新手引导
|
||||
if (isNewUser) {
|
||||
setTimeout(() => {
|
||||
startFullTour();
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
|
||||
// 判断是否为新用户(注册时间距离当前时间小于1小时)
|
||||
function checkIsNewUser(creationTimeStr: string): boolean {
|
||||
try {
|
||||
// 解析注册时间字符串 "2024-11-01 12:01:34"
|
||||
const creationTime = new Date(creationTimeStr.replace(' ', 'T'));
|
||||
const currentTime = new Date();
|
||||
|
||||
// 计算时间差(毫秒)
|
||||
const timeDiff = currentTime.getTime() - creationTime.getTime();
|
||||
|
||||
// 1小时 = 60分钟 * 60秒 * 1000毫秒 = 3600000毫秒
|
||||
const oneHourInMs = 60 * 60 * 1000;
|
||||
|
||||
return timeDiff < oneHourInMs;
|
||||
}
|
||||
catch (error) {
|
||||
console.error('解析注册时间失败:', error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 处理注册授权
|
||||
|
||||
Reference in New Issue
Block a user