refactor: remove old demo pages and static menu logic

1. 删除大量旧的示例页面、组件示例和静态菜单配置
2. 新增菜单扁平数组转树形结构工具函数
3. 重构菜单加载逻辑,改为从后端动态获取并格式化
4. 新增全局权限检查方法和自定义权限指令
5. 优化侧边栏菜单路由跳转逻辑,自动跳转第一个有权限的子页面
6. 移除路由中对旧demo模块的引用
This commit is contained in:
sheng
2026-05-27 18:07:48 +08:00
parent 0f3b5d4371
commit 2cc8329695
96 changed files with 799 additions and 4985 deletions

View File

@@ -9,12 +9,20 @@ import store from '@/store/index'
// 菜单和路由设置
import router from './router'
import { menuHeader, menuAside } from '@/menu'
import { frameInRoutes } from '@/router/routes'
// 核心插件
Vue.use(d2Admin)
// 权限控制指令
Vue.directive('permission', {
bind: (el, binding) => {
if (!Vue.prototype.$permission(binding.value)) {
el.parentNode ? el.parentNode.removeChild(el) : el.style.display = 'none'
}
}
})
new Vue({
router,
store,
@@ -23,31 +31,16 @@ new Vue({
created () {
// 处理路由 得到每一级的路由设置
this.$store.commit('d2admin/page/init', frameInRoutes)
// 设置顶栏菜单
this.$store.commit('d2admin/menu/headerSet', menuHeader)
// 初始化菜单搜索功能
this.$store.commit('d2admin/search/init', menuHeader)
// 静态菜单和搜索由 account.load → sourceDataLoad 从后端动态加载
},
mounted () {
// 展示系统信息
this.$store.commit('d2admin/releases/versionShow')
// 用户登录后从数据库加载一系列的设置
// 用户登录后从数据库加载一系列的设置(含菜单)
this.$store.dispatch('d2admin/account/load')
// 获取并记录用户 UA
this.$store.commit('d2admin/ua/get')
// 初始化全屏监听
this.$store.dispatch('d2admin/fullscreen/listen')
},
watch: {
// 检测路由变化切换侧边栏内容
'$route.matched': {
handler (matched) {
if (matched.length > 0) {
const _side = menuAside.filter(menu => menu.path === matched[0].path)
this.$store.commit('d2admin/menu/asideSet', _side.length > 0 ? _side[0].children : [])
}
},
immediate: true
}
}
}).$mount('#app')