first commit

This commit is contained in:
Vicky committed 2026-10-12 17:35:07 +08:00
commit db15eb3ee0
42 files changed
+4620

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
import { createRouter, createWebHistory } from 'vue-router'
import { useAuth } from '../stores/auth'
import { useRbac } from '../stores/rbac'
import { customMenus } from '../data/customMenus'
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/login', name: 'login', component: () => import('@/views/common/LoginView.vue'), meta: { public: true } },
{ path: '/', name: 'admin', component: () => import('@/layouts/AdminLayout.vue'), children: [
{ path: '', name: 'dashboard', component: () => import('@/views/common/DashboardView.vue'), meta: { title: '工作台', permission: '查看短剧列表' } },
{ path: 'dramas', name: 'dramas', component: () => import('@/views/contentManagement/DramaManagementView.vue'), meta: { title: '短剧管理', permission: '查看短剧列表' } },
{ path: 'episodes', name: 'episodes', component: () => import('@/views/contentManagement/EpisodeManagementView.vue'), meta: { title: '剧集管理', permission: '查看剧集列表' } },
{ path: 'access', name: 'access', component: () => import('@/views/permission/RoleManagementView.vue'), meta: { title: '角色权限配置', permission: '角色与权限配置' } },
{ path: 'admin-users', name: 'admin-users', component: () => import('@/views/userManagement/AdminUsersView.vue'), meta: { title: '管理员用户列表', permission: '管理员用户列表' } },
{ path: 'menus', name: 'menus', component: () => import('@/views/permission/MenuManagementView.vue'), meta: { title: '菜单管理', permission: '菜单管理' } },
{ path: 'role-categories', name: 'role-categories', component: () => import('@/views/permission/RoleCategoriesView.vue'), meta: { title: '角色分类', permission: '角色分类管理' } },
{ path: 'settings', name: 'settings', component: () => import('@/views/systemManagement/SettingsView.vue'), meta: { title: '系统设置', permission: '角色与权限配置' } },
] },
{ path: '/:pathMatch(.*)*', redirect: '/' },
],
})
export function registerCustomMenu(menu) {
const name = `custom-menu-${menu.key}`
if (router.hasRoute(name)) return
if (menu.type === '按钮') return
const path = String(menu.route || `custom/${menu.key}`).replace(/^\/+/, '')
router.addRoute('admin', {
path,
name,
component: () => import('@/views/permission/CustomMenuView.vue'),
meta: { title: menu.title, permission: menu.permission, menuKey: menu.key },
})
}
customMenus.forEach(registerCustomMenu)
router.beforeEach(to => {
const { isAuthenticated } = useAuth()
const { can } = useRbac()
if (!to.meta.public && !isAuthenticated.value) return { name: 'login' }
if (to.name === 'login' && isAuthenticated.value) return { name: 'dashboard' }
if (to.meta.permission && !can(to.meta.permission)) return { name: 'dashboard' }
})
export default router