Compare commits

..

3 Commits

Author SHA1 Message Date
my_ong
566da2e791 bug: 退出登录
All checks were successful
Release / lint (push) Successful in 28s
Release / Release (push) Successful in 1m22s
2024-12-16 10:05:13 +08:00
my_ong
c0b5e0bfd5 bug: 退出登录,暂未实现 2024-12-14 16:48:04 +08:00
my_ong
9e27d62e0e bug: 打印数量我为空的时候,不请求后台 2024-12-14 11:29:19 +08:00
5 changed files with 40 additions and 30 deletions

View File

@ -1,8 +1,8 @@
/** /**
* @desc * @desc
*/ */
import { defaultSuccess, defaultError, http } from '@/plugins/axios'; import { defaultSuccess, defaultError, http } from '@/plugins/axios'
import type { AxiosResponse } from 'axios'; import type { AxiosResponse } from 'axios'
export default async function ( export default async function (
success: (data: auth.AuthUser) => void = defaultSuccess, success: (data: auth.AuthUser) => void = defaultSuccess,
fail: (error: { code: string; error?: string }) => void = defaultError, fail: (error: { code: string; error?: string }) => void = defaultError,
@ -12,7 +12,7 @@ export default async function (
url: `/auth/current-user`, url: `/auth/current-user`,
}) })
.then((data: AxiosResponse<auth.AuthUser, unknown>) => { .then((data: AxiosResponse<auth.AuthUser, unknown>) => {
success(data.data); success(data.data)
}) })
.catch((error: { code: string; error?: string }) => fail(error)); .catch((error: { code: string; error?: string }) => fail(error))
} }

View File

@ -67,6 +67,7 @@
import { config } from '@/settings/application' import { config } from '@/settings/application'
import { MenuInfo } from 'ant-design-vue/es/menu/src/interface' import { MenuInfo } from 'ant-design-vue/es/menu/src/interface'
import { useUserStore } from '@/stores/user' import { useUserStore } from '@/stores/user'
import api from '@/api'
const t = useI18n() const t = useI18n()
const user = useUserStore() const user = useUserStore()
@ -81,11 +82,13 @@
} }
const logout = () => { const logout = () => {
Modal.confirm({ Modal.confirm({
title: t.t('layout.user.modal.logout.title'), title: '退出登录',
icon: createVNode(ExclamationCircleOutlined), icon: createVNode(ExclamationCircleOutlined),
content: createVNode('div', { style: 'color:red;' }, t.t('layout.user.modal.logout.content')), content: createVNode('div', { style: 'color:red;' }, '确定退出系统吗?'),
onOk() { onOk() {
console.log(1) api.authApi.auth.logout(() => {
user.logout()
})
}, },
}) })
} }

View File

@ -101,7 +101,6 @@ export const routes: Array<RouteRecordRaw> = [
const getNewRouter = () => { const getNewRouter = () => {
// TODO 用户store判断是否登录,登录就返回过滤的,没有登录就返回全量 // TODO 用户store判断是否登录,登录就返回过滤的,没有登录就返回全量
return createRouter({ return createRouter({
history: createWebHashHistory(), history: createWebHashHistory(),
routes: [ routes: [

View File

@ -18,6 +18,12 @@ export const useUserStore = defineStore('user', {
isAdmin(state) { isAdmin(state) {
return state.roles.includes('admin') return state.roles.includes('admin')
}, },
isLogin(state) {
return state.token && state.refreshToken
},
getPermission(state) {
return state.permissions
},
}, },
actions: { actions: {
refreshUserInfo(user: auth.AuthUser) { refreshUserInfo(user: auth.AuthUser) {
@ -41,6 +47,7 @@ export const useUserStore = defineStore('user', {
this.sex = 'FEMALE' this.sex = 'FEMALE'
this.token = '' this.token = ''
this.refreshToken = '' this.refreshToken = ''
router.push({ path: '/login/user' }) // 退出登录后跳转到登录页面,未实现,要清理缓存?
}, },
}, },
persist: { persist: {

View File

@ -80,6 +80,7 @@
// //
const fetchAndPrintBarcodes = (count: number) => { const fetchAndPrintBarcodes = (count: number) => {
if (count <= 0) return
// //
const container = document.getElementById('barcodes-container') const container = document.getElementById('barcodes-container')
if (!container) throw new Error('条形码容器未找到') if (!container) throw new Error('条形码容器未找到')