feat: 用户登录使用mock api, 可以使用test用户登录 (#233)

* feat: 用户登录使用mock api, 可以使用test用户登录

* Update permission.ts
This commit is contained in:
tomoat 2022-04-07 22:47:33 +08:00 committed by GitHub
parent bafd9522e0
commit 0becf0b4bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 48 additions and 14 deletions

23
mock/user.ts Normal file
View File

@ -0,0 +1,23 @@
import { MockMethod } from "vite-plugin-mock";
export default [
{
url: "/login",
method: "post",
response: ({ body }) => {
if (body.username === "admin") {
return {
username: "admin",
expires: 24 * 60 * 60,
accessToken: "eyJhbGciOiJIUzUxMiJ9.admin"
};
} else {
return {
username: "test",
expires: 24 * 60 * 60,
accessToken: "eyJhbGciOiJIUzUxMiJ9.test"
};
}
}
}
] as MockMethod[];

View File

@ -8,6 +8,7 @@ import { transformI18n } from "/@/plugins/i18n";
import { storageSession } from "/@/utils/storage";
import { useAppStoreHook } from "/@/store/modules/app";
import { useEpThemeStoreHook } from "/@/store/modules/epTheme";
import { useUserStoreHook } from "/@/store/modules/user";
export function useNav() {
const pureApp = useAppStoreHook();
@ -38,8 +39,7 @@ export function useNav() {
// 退出登录
function logout() {
storageSession.removeItem("info");
router.push("/login");
useUserStoreHook().logOut();
}
function backHome() {

View File

@ -61,8 +61,11 @@ export const usePermissionStore = defineStore({
break;
}
},
// 清空缓存页面
// 清空缓存
clearAllCachePage() {
this.wholeMenus = [];
this.menusTree = [];
this.buttonAuth = [];
this.cachePageList = [];
}
}

View File

@ -33,12 +33,12 @@ export const useUserStore = defineStore({
},
// 登入
async loginByUsername(data) {
return new Promise<void>((resolve, reject) => {
return new Promise((resolve, reject) => {
getLogin(data)
.then(data => {
if (data) {
setToken(data);
resolve();
.then(res => {
if (res) {
setToken(res);
resolve(res);
}
})
.catch(error => {

View File

@ -14,6 +14,9 @@ import illustration4 from "/@/assets/login/illustration4.svg?component";
import illustration5 from "/@/assets/login/illustration5.svg?component";
import illustration6 from "/@/assets/login/illustration6.svg?component";
import { useUserStoreHook } from "/@/store/modules/user";
import { usePermissionStoreHook } from "/@/store/modules/permission";
const router = useRouter();
// eslint-disable-next-line vue/return-in-computed-property
@ -42,12 +45,17 @@ let user = ref("admin");
let pwd = ref("123456");
const onLogin = (): void => {
storageSession.setItem("info", {
username: "admin",
accessToken: "eyJhbGciOiJIUzUxMiJ9.test"
});
initRouter("admin").then(() => {});
router.push("/");
useUserStoreHook()
.loginByUsername({ username: user.value, password: pwd.value })
.then(async (res: any) => {
storageSession.setItem("info", {
username: res.username,
accessToken: res.accessToken
});
usePermissionStoreHook().clearAllCachePage();
initRouter(res.username);
router.push("/");
});
};
function onUserFocus() {