mirror of
https://github.com/pure-admin/pure-admin-thin.git
synced 2025-04-25 16:07:19 +08:00
perf: 同步完整版代码
This commit is contained in:
parent
2bac78478c
commit
736f1c27cd
23
mock/user.ts
23
mock/user.ts
@ -1,23 +0,0 @@
|
|||||||
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[];
|
|
@ -23,7 +23,7 @@ const {
|
|||||||
changeTitle,
|
changeTitle,
|
||||||
toggleSideBar,
|
toggleSideBar,
|
||||||
pureApp,
|
pureApp,
|
||||||
usename,
|
username,
|
||||||
getDropdownItemStyle
|
getDropdownItemStyle
|
||||||
} = useNav();
|
} = useNav();
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ function translationEn() {
|
|||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<span class="el-dropdown-link">
|
<span class="el-dropdown-link">
|
||||||
<img :src="avatars" />
|
<img :src="avatars" />
|
||||||
<p>{{ usename }}</p>
|
<p>{{ username }}</p>
|
||||||
</span>
|
</span>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu class="logout">
|
<el-dropdown-menu class="logout">
|
||||||
|
@ -29,7 +29,7 @@ const {
|
|||||||
changeTitle,
|
changeTitle,
|
||||||
handleResize,
|
handleResize,
|
||||||
menuSelect,
|
menuSelect,
|
||||||
usename,
|
username,
|
||||||
getDropdownItemStyle
|
getDropdownItemStyle
|
||||||
} = useNav();
|
} = useNav();
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ function translationEn() {
|
|||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<span class="el-dropdown-link">
|
<span class="el-dropdown-link">
|
||||||
<img :src="avatars" />
|
<img :src="avatars" />
|
||||||
<p>{{ usename }}</p>
|
<p>{{ username }}</p>
|
||||||
</span>
|
</span>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu class="logout">
|
<el-dropdown-menu class="logout">
|
||||||
|
@ -32,7 +32,7 @@ const {
|
|||||||
menuSelect,
|
menuSelect,
|
||||||
resolvePath,
|
resolvePath,
|
||||||
pureApp,
|
pureApp,
|
||||||
usename,
|
username,
|
||||||
getDropdownItemStyle
|
getDropdownItemStyle
|
||||||
} = useNav();
|
} = useNav();
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ function translationEn() {
|
|||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<span class="el-dropdown-link">
|
<span class="el-dropdown-link">
|
||||||
<img :src="avatars" />
|
<img :src="avatars" />
|
||||||
<p>{{ usename }}</p>
|
<p>{{ username }}</p>
|
||||||
</span>
|
</span>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu class="logout">
|
<el-dropdown-menu class="logout">
|
||||||
|
@ -7,13 +7,12 @@ import { remainingPaths } from "/@/router";
|
|||||||
import { transformI18n } from "/@/plugins/i18n";
|
import { transformI18n } from "/@/plugins/i18n";
|
||||||
import { storageSession } from "/@/utils/storage";
|
import { storageSession } from "/@/utils/storage";
|
||||||
import { useAppStoreHook } from "/@/store/modules/app";
|
import { useAppStoreHook } from "/@/store/modules/app";
|
||||||
import { useUserStoreHook } from "/@/store/modules/user";
|
|
||||||
import { useEpThemeStoreHook } from "/@/store/modules/epTheme";
|
import { useEpThemeStoreHook } from "/@/store/modules/epTheme";
|
||||||
|
|
||||||
export function useNav() {
|
export function useNav() {
|
||||||
const pureApp = useAppStoreHook();
|
const pureApp = useAppStoreHook();
|
||||||
// 用户名
|
// 用户名
|
||||||
const usename: string = storageSession.getItem("info")?.username;
|
const username: string = storageSession.getItem("info")?.username;
|
||||||
|
|
||||||
// 设置国际化选中后的样式
|
// 设置国际化选中后的样式
|
||||||
const getDropdownItemStyle = computed(() => {
|
const getDropdownItemStyle = computed(() => {
|
||||||
@ -39,7 +38,8 @@ export function useNav() {
|
|||||||
|
|
||||||
// 退出登录
|
// 退出登录
|
||||||
function logout() {
|
function logout() {
|
||||||
useUserStoreHook().logOut();
|
storageSession.removeItem("info");
|
||||||
|
router.push("/login");
|
||||||
}
|
}
|
||||||
|
|
||||||
function backHome() {
|
function backHome() {
|
||||||
@ -112,7 +112,7 @@ export function useNav() {
|
|||||||
resolvePath,
|
resolvePath,
|
||||||
isCollapse,
|
isCollapse,
|
||||||
pureApp,
|
pureApp,
|
||||||
usename,
|
username,
|
||||||
getDropdownItemStyle
|
getDropdownItemStyle
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -61,11 +61,8 @@ export const usePermissionStore = defineStore({
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 清空缓存
|
// 清空缓存页面
|
||||||
clearAllCachePage() {
|
clearAllCachePage() {
|
||||||
this.wholeMenus = [];
|
|
||||||
this.menusTree = [];
|
|
||||||
this.buttonAuth = [];
|
|
||||||
this.cachePageList = [];
|
this.cachePageList = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,12 +33,12 @@ export const useUserStore = defineStore({
|
|||||||
},
|
},
|
||||||
// 登入
|
// 登入
|
||||||
async loginByUsername(data) {
|
async loginByUsername(data) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise<void>((resolve, reject) => {
|
||||||
getLogin(data)
|
getLogin(data)
|
||||||
.then(res => {
|
.then(data => {
|
||||||
if (res) {
|
if (data) {
|
||||||
setToken(res);
|
setToken(data);
|
||||||
resolve(res);
|
resolve();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
@ -8,26 +8,18 @@ import bg from "/@/assets/login/bg.png";
|
|||||||
import avatar from "/@/assets/login/avatar.svg?component";
|
import avatar from "/@/assets/login/avatar.svg?component";
|
||||||
import illustration from "/@/assets/login/illustration.svg?component";
|
import illustration from "/@/assets/login/illustration.svg?component";
|
||||||
|
|
||||||
import { useUserStoreHook } from "/@/store/modules/user";
|
|
||||||
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
let user = ref("admin");
|
let user = ref("admin");
|
||||||
let pwd = ref("123456");
|
let pwd = ref("123456");
|
||||||
|
|
||||||
const onLogin = (): void => {
|
const onLogin = (): void => {
|
||||||
useUserStoreHook()
|
|
||||||
.loginByUsername({ username: user.value, password: pwd.value })
|
|
||||||
.then(async (res: any) => {
|
|
||||||
storageSession.setItem("info", {
|
storageSession.setItem("info", {
|
||||||
username: res.username,
|
username: "admin",
|
||||||
accessToken: res.accessToken
|
accessToken: "eyJhbGciOiJIUzUxMiJ9.test"
|
||||||
});
|
});
|
||||||
usePermissionStoreHook().clearAllCachePage();
|
initRouter("admin").then(() => {});
|
||||||
initRouter(res.username);
|
|
||||||
router.push("/");
|
router.push("/");
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function onUserFocus() {
|
function onUserFocus() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user