diff --git a/src/api/users/types/users.ts b/src/api/users/types/users.ts index 23d2be1..8418240 100644 --- a/src/api/users/types/users.ts +++ b/src/api/users/types/users.ts @@ -20,8 +20,6 @@ export interface IPermission { } export interface IAccountInfo { id: string - role: { - info: IPermission[] - } + info: IPermission[] roleName: string } diff --git a/src/router/index.ts b/src/router/index.ts index 25386d2..9217c2e 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -68,6 +68,9 @@ export const asyncRoutes: RouteRecordRaw[] = [ path: "/user", component: Layout, redirect: "/user", + meta: { + roles: ["admin"] + }, children: [ { path: "user", @@ -102,6 +105,9 @@ export const asyncRoutes: RouteRecordRaw[] = [ path: "/commission", component: Layout, redirect: "/commission", + meta: { + roles: ["admin"] + }, children: [ { path: "commission", @@ -123,7 +129,7 @@ export const asyncRoutes: RouteRecordRaw[] = [ meta: { title: "订单", elIcon: "Files", - roles: ["admin"], + roles: ["show:order", "change:order"], alwaysShow: true }, children: [ diff --git a/src/router/permission.ts b/src/router/permission.ts index 42cc5cd..c7d5fca 100644 --- a/src/router/permission.ts +++ b/src/router/permission.ts @@ -15,7 +15,7 @@ router.beforeEach(async (to, _from, next) => { const userStore = useUserStoreHook() const permissionStore = usePermissionStoreHook() // 判断该用户是否登录 - if (getToken() && getToken() !== -1) { + if (getToken() && getToken() !== "null") { if (to.path === "/login") { // 如果已经登录,并准备进入 Login 页面,则重定向到主页 next({ path: "/" }) diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index c1a5926..aa5600a 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -13,7 +13,7 @@ import { getUserInfoApi } from "@/api/users" export const useUserStore = defineStore("user", () => { /** Token即用户id */ - const token = ref(getToken() || -1) + const token = ref(getToken() || "null") const roles = ref([]) const username = ref("") @@ -30,7 +30,7 @@ export const useUserStore = defineStore("user", () => { loginApi(loginData) .then((res) => { if (res.status == 202) { - setToken(res.data.data.id) + setToken("null1") resolve(res.data.data) return } @@ -47,10 +47,11 @@ export const useUserStore = defineStore("user", () => { getUserInfoApi() .then((res) => { const data = res.data + setToken(data.data.id) username.value = data.data.roleName // 验证返回的 roles 是否是一个非空数组 - if (data.data.role.info && data.data.role.info.length > 0) { - for (const iPermission of data.data.role.info) { + if (data.data.info && data.data.info.length > 0) { + for (const iPermission of data.data.info) { roles.value.push(iPermission.permissionCode) } } else { @@ -78,7 +79,7 @@ export const useUserStore = defineStore("user", () => { /** 登出 */ const logout = () => { removeToken() - token.value = -1 + token.value = "null" roles.value = [] resetRouter() _resetTagsView() @@ -86,7 +87,7 @@ export const useUserStore = defineStore("user", () => { /** 重置 Token */ const resetToken = () => { removeToken() - token.value = -1 + token.value = "null" roles.value = [] } /** 重置 visited views 和 cached views */ diff --git a/src/utils/cache/cookies.ts b/src/utils/cache/cookies.ts index 6f7623d..96b332b 100644 --- a/src/utils/cache/cookies.ts +++ b/src/utils/cache/cookies.ts @@ -3,14 +3,11 @@ import CacheKey from "@/constants/cacheKey" import Cookies from "js-cookie" -export const getToken = (): number | undefined => { - const tokenString = Cookies.get(CacheKey.TOKEN) - if (tokenString) { - return Number.parseInt(tokenString) - } +export const getToken = (): string | undefined => { + return Cookies.get(CacheKey.TOKEN) } -export const setToken = (token: number) => { - Cookies.set(CacheKey.TOKEN, token.toString()) +export const setToken = (token: string) => { + Cookies.set(CacheKey.TOKEN, token) } export const removeToken = () => { Cookies.remove(CacheKey.TOKEN) diff --git a/src/views/login/index.vue b/src/views/login/index.vue index ca3c5a0..331018a 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -60,9 +60,10 @@ const onVerifySuccess = (_: number) => { router.push({ path: "/" }) ElMessage.success("登录成功!") }) - .catch(() => { + .catch((err) => { loginForm.password = "" ElMessage.error("登录失败,用户名或密码错误") + console.log(err) }) .finally(() => { loading.value = false diff --git a/src/views/user/index.vue b/src/views/user/index.vue index acb66a8..3628628 100644 --- a/src/views/user/index.vue +++ b/src/views/user/index.vue @@ -18,7 +18,7 @@