新增邮件发送和管理员功能

This commit is contained in:
eoao
2025-05-29 17:38:50 +08:00
parent de742d31e7
commit 2341d14b2d
364 changed files with 24202 additions and 1079 deletions

View File

@@ -1,9 +1,5 @@
import {createRouter, createWebHashHistory} from 'vue-router'
import {loginUserInfo} from "@/request/user.js";
import {createRouter, createWebHistory} from 'vue-router'
import {useUiStore} from "@/store/ui.js";
import {useAccountStore} from "@/store/account.js";
import {useUserStore} from "@/store/user.js";
import {useSettingStore} from "@/store/setting.js";
const routes = [
{
@@ -22,6 +18,16 @@ const routes = [
menu: true
}
},
{
path: '/send',
name: 'send',
component: () => import('@/views/send/index.vue'),
meta: {
title: '已发送',
name: 'send',
menu: true
}
},
{
path: '/content',
name: 'content',
@@ -42,16 +48,6 @@ const routes = [
menu: true
}
},
{
path: '/sys-setting',
name: 'sys-setting',
component: () => import('@/views/sys-setting/index.vue'),
meta: {
title: '系统设置',
name: 'sys-setting',
menu: true
}
},
{
path: '/star',
name: 'star',
@@ -74,28 +70,26 @@ const routes = [
path: '/test',
name: 'test',
component: () => import('@/views/test/index.vue')
},
{
path: '/:pathMatch(.*)*',
name: '404',
component: () => import('@/views/404/index.vue')
}
]
const router = createRouter({
history: createWebHashHistory(import.meta.env.BASE_URL),
history: createWebHistory(import.meta.env.BASE_URL),
routes
})
let firstLogin = true
router.beforeEach(async (to, from, next) => {
const uiStore = useUiStore()
if (uiStore.init && to.name === 'login') {
await initSetting()
}
const token = localStorage.getItem('token')
if (!token && to.name !== 'login') {
return next({
name: 'login'
})
@@ -105,18 +99,6 @@ router.beforeEach(async (to, from, next) => {
return next()
}
if (uiStore.init && to.name !== 'login') {
await initSettingAndUserInfo()
firstLogin = false
return next()
}
if (firstLogin) {
await initUserInfo()
firstLogin = false
return next()
}
next()
})
@@ -125,60 +107,16 @@ router.afterEach((to) => {
const uiStore = useUiStore()
if (to.meta.menu) {
if (['content', 'email'].includes(to.meta.name)) {
if (['content', 'email', 'send'].includes(to.meta.name)) {
uiStore.accountShow = window.innerWidth > 767;
} else {
uiStore.accountShow = false
}
}
if (to.name === 'login') {
firstLogin = true
}
if (window.innerWidth < 768) {
if (window.innerWidth < 992) {
uiStore.asideShow = false
}
})
async function initSettingAndUserInfo() {
const uiStore = useUiStore()
const userStore = useUserStore()
const settingStore = useSettingStore()
const accountStore = useAccountStore()
const [setting,user] = await Promise.all([settingStore.initSetting(),loginUserInfo()])
uiStore.init = false
accountStore.currentAccountId = user.accountId
userStore.user = user
}
async function initUserInfo() {
const uiStore = useUiStore()
const userStore = useUserStore()
try {
const user = await loginUserInfo()
const accountStore = useAccountStore()
accountStore.currentAccountId = user.accountId
userStore.user = user
uiStore.loginLoading = false
} catch (e) {
uiStore.loginLoading = false
throw e
}
}
async function initSetting() {
const settingStore = useSettingStore()
const uiStore = useUiStore()
try {
await settingStore.initSetting();
uiStore.init = false
} catch (e) {
throw e
}
}
export default router