diff --git a/src/api/sys/user.ts b/src/api/sys/user.ts index 39b31211f7b25cad3b69a46444dc1ac2eeb6c043..3f10641a5a630c78ec254aa60ce0b06ad8476d72 100644 --- a/src/api/sys/user.ts +++ b/src/api/sys/user.ts @@ -1,5 +1,7 @@ import { defHttp, tmallabHttp } from '/@/utils/http/axios'; -import { LoginParams, LoginResultModel, GetUserInfoModel } from './model/userModel'; +import { LoginParams, LoginResultModel } from './model/userModel'; +import { getAuthCache } from '/@/utils/auth'; +import { USER_INFO_KEY } from '/@/enums/cacheEnum'; import { ErrorMessageMode } from '/#/axios'; @@ -30,7 +32,8 @@ export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') * @description: getUserInfo */ export function getUserInfo() { - return defHttp.get({ url: Api.GetUserInfo }, { errorMessageMode: 'none' }); + // return defHttp.get({ url: Api.GetUserInfo }, { errorMessageMode: 'none' }); + return getAuthCache(USER_INFO_KEY) || {}; } export function getPermCode() { diff --git a/src/layouts/default/header/components/user-dropdown/index.vue b/src/layouts/default/header/components/user-dropdown/index.vue index d44a127eed11f6e62a973828801e58131dd4e001..d25d34b1dfcf48192a155e3db61a9d947a4d9ffb 100644 --- a/src/layouts/default/header/components/user-dropdown/index.vue +++ b/src/layouts/default/header/components/user-dropdown/index.vue @@ -75,15 +75,19 @@ const { t } = useI18n(); const { getShowDoc, getUseLockPage } = useHeaderSetting(); const userStore = useUserStore(); - const getUserInfo = computed(() => { - console.log('------------', userStore.getUserInfo) + console.log('------------', userStore.getUserInfo); const { userName: realName = '', avatar, desc } = userStore.getUserInfo || {}; return { realName, avatar: avatar || headerImg, desc }; }); const { changeRole } = usePermission(); const roleList = ref([]); - roleList.value = userStore.getUserInfo.roleList; + roleList.value = userStore.getUserInfo.userRoles.map((v) => { + return { + roleNum: v.roleNum, + roleName: v.roleName, + }; + }); // const [register, { openModal }] = useModal(); const [register] = useModal(); diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 5283d73fa0e70d478dfee259b9091a1cef6c52f2..a16c1afd6117119ac141e2d4a2d538a7f1e6fb86 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -49,7 +49,7 @@ export const useUserStore = defineStore({ }), getters: { getUserInfo(): GetUserInfoModel { - return this.userInfo || getAuthCache(USER_INFO_KEY) || {}; + return getAuthCache(USER_INFO_KEY) || {}; }, getToken(): string { return this.token || getAuthCache(TOKEN_KEY); @@ -119,15 +119,19 @@ export const useUserStore = defineStore({ }, //数据对接模拟登录 async tmallabSimulationLogin(params: { loginName: string; password: string }): Promise { - const data = await tmallabLoginApi(params); - this.setTmallabToken(data.token); - return data; + try { + const data = await tmallabLoginApi(params); + this.setTmallabToken(data.token); + this.setToken(data.token); + return this.afterLoginAction(true, data); + } catch (error) { + return Promise.reject(error); + } }, - async afterLoginAction(goHome?: boolean): Promise { - if (!this.getToken) return null; + async afterLoginAction(goHome?: boolean, data?: any): Promise { + if (!this.getTmallabToken) return null; // get user info - const userInfo = await getUserInfo(); - + const userInfo = await this.getUserInfoAction(data); const sessionTimeout = this.sessionTimeout; if (sessionTimeout) { this.setSessionTimeout(false); @@ -147,19 +151,20 @@ export const useUserStore = defineStore({ this.setUserInfo(userInfo); return userInfo; }, - async getUserInfoAction(): Promise { - if (!this.getToken) return null; - let userInfo: any = this.userInfo; - if (!userInfo.userId) { - userInfo = await getUserInfo(); - } - const { roles = [] } = userInfo; - if (isArray(roles)) { - const role = userInfo.roleNum; + async getUserInfoAction(data): Promise { + if (!this.getTmallabToken) return null; + const userInfo = data; + // if (!userInfo.userId) { + // userInfo = await getUserInfo(); + // } + const { userRoles } = userInfo; + if (isArray(userRoles)) { + const role = userInfo.userRoles[0].roleNum; + //取第一个为默认角色 const roleList = Array.from(RoleEnum[role]); this.setRoleList(roleList as []); } else { - userInfo.roles = []; + userInfo.userRoles = []; this.setRoleList([]); } this.setUserInfo(userInfo); diff --git a/src/views/sys/login/LoginForm.vue b/src/views/sys/login/LoginForm.vue index ec1097d89af00833d398f650c7eb92384ba5a4e9..837c9dd78391b0293eae48bc96342b7cd3ef530b 100644 --- a/src/views/sys/login/LoginForm.vue +++ b/src/views/sys/login/LoginForm.vue @@ -135,8 +135,8 @@ const rememberMe = ref(false); const formData = reactive({ - account: 't1', - password: '123456Aa@', + account: '', + password: '', }); const { validForm } = useFormValid(formRef); @@ -150,18 +150,17 @@ if (!data) return; try { loading.value = true; - let jsEncrypt = new JSEncrypt(); - jsEncrypt.setPublicKey(RSA_PUBLIC_KEY); - const encryptPwd: string = jsEncrypt.encrypt(data.password) as string; - const userInfo = await userStore.login({ - password: encryptPwd, - username: data.account, - mode: 'none', //不要默认的错误提示 + // let jsEncrypt = new JSEncrypt(); + // jsEncrypt.setPublicKey(RSA_PUBLIC_KEY); + // const encryptPwd: string = jsEncrypt.encrypt(data.password) as string; + const userInfo = await userStore.tmallabSimulationLogin({ + password: formData.password, + loginName: formData.account, }); if (userInfo) { notification.success({ message: t('sys.login.loginSuccessTitle'), - description: `${t('sys.login.loginSuccessDesc')}: ${userInfo.userName}`, + description: `${t('sys.login.loginSuccessDesc')}: ${userInfo.name}`, duration: 3, }); }