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

@@ -1,86 +0,0 @@
import { find, map, random } from 'lodash'
import faker from 'faker/locale/zh_CN'
import { requestForMock, mock } from '@/api/_service.js'
import * as tools from '@/api/_tools.js'
const db = [
{ id: '1', name: '用户 1', address: '上海市普陀区金沙江路 1518 弄' },
{ id: '2', name: '用户 2', address: '上海市普陀区金沙江路 1517 弄' },
{ id: '3', name: '用户 3', address: '上海市普陀区金沙江路 1519 弄' },
{ id: '4', name: '用户 4', address: '上海市普陀区金沙江路 1516 弄' }
]
/**
* @description 列表
*/
export function DEMO_MOCK_LIST () {
// 模拟数据
mock
.onAny('/demo/business/issues/142/fetch')
.reply(...tools.responseSuccess({ list: db }))
// 接口请求
return requestForMock({
url: '/demo/business/issues/142/fetch',
method: 'get'
})
}
/**
* @description 详情
* @param {String} id 项目 ID
*/
export function DEMO_MOCK_DETAIL (id) {
// 模拟数据
mock
.onAny('/demo/business/issues/142/detail')
.reply(config => tools.responseSuccess(find(db, { id: config.params.id })))
// 接口请求
return requestForMock({
url: '/demo/business/issues/142/detail',
method: 'get',
params: {
id
}
})
}
/**
* @description 列表
*/
export function DEMO_MOCK_LIST2 (params = {}) {
// 模拟数据
mock
.onAny('/demo/business/table/1/fetch')
.reply(config => tools.responseSuccess({
page: {
total: 1000
},
list: map(Array(config.params.pageSize), () => ({
key: faker.random.uuid(),
value: [10, 100, 200, 500][random(0, 3)],
type: faker.random.boolean(),
admin: faker.name.firstName() + faker.name.lastName(),
adminNote: faker.random.words(),
dateTimeCreat: faker.date.past(),
used: faker.random.boolean(),
dateTimeUse: faker.date.past()
}))
}))
// 接口请求
return requestForMock({
url: '/demo/business/table/1/fetch',
method: 'get',
params
})
}
/**
* @description 错误日志示例 请求一个不存在的地址
*/
export function DEMO_LOG_AJAX () {
// 接口请求
return requestForMock({
url: '/invalid-url',
method: 'get'
})
}

13
src/api/menu.js Normal file
View File

@@ -0,0 +1,13 @@
import { request } from '@/api/_service'
const urls = 'system_settings/menu_configuration/menu/'
export function getMenuAll (data) {
return request({
url: urls + 'all',
method: 'get',
params: {
...data
}
})
}