20260915221013
This commit is contained in:
1 parent
1f56cc3efb
commit
dce29f250e
54 files changed
+3732
-574
No files matched your search
@@ -15,11 +15,15 @@ import DefaultLayout from '@/layouts/DefaultLayout.vue'
|
||||
* 受保护页面挂在 DefaultLayout 下(layout 的 meta.requiresAuth 由守卫统一校验);
|
||||
* 需要按业务模块鉴权的页面,在 meta 上配 moduleId,守卫校验无权限时跳 /dashboard。
|
||||
*
|
||||
* 路由分组(/module、/test):父节点只写 path + redirect + children,**不写 component**。
|
||||
* 路由分组(/module、/base、/system):父节点只写 path + 可选 meta + children,
|
||||
* **不写 component、也不写 redirect**。
|
||||
* vue-router 的 RouterView 会跳过 matched 中没有 components 的记录,子页面因此仍渲染在
|
||||
* DefaultLayout 的那个 router-view 上,keep-alive 层级不变。
|
||||
* 切勿给分组节点配「内部再放一个 router-view」的容器组件:那样页面会下沉一层,
|
||||
* 直接脱离 DefaultLayout 的 keep-alive,页面缓存失效。
|
||||
* 分组节点不配 redirect:分组只是归类,不该自带「默认落地页」语义 —— 直接访问 /base、/module
|
||||
* 这类裸前缀时交给表尾的 /:pathMatch(.*)* 兜到工作台,避免出现「菜单上没配、却能落在某个页面」
|
||||
* 的第二入口(业务入口一律由 s_menu + 路由地址维护)。
|
||||
* 子路由 path 写相对路径('module-management'),完整路径由父级拼接,
|
||||
* 调整分组前缀时只需改父节点一处。
|
||||
*/
|
||||
@@ -66,10 +70,9 @@ export const routes = [
|
||||
},
|
||||
// 模块中心:元数据驱动的配置页集合(系统管理员专用,meta.adminOnly:
|
||||
// 路由守卫拦截非 g3soft,菜单管理「路由地址」下拉整体排除本组页面)
|
||||
// 分组节点(见上方「路由分组」注释:不写 component,子页写相对路径)
|
||||
// 分组节点(见上方「路由分组」注释:不写 component、不写 redirect,子页写相对路径)
|
||||
{
|
||||
path: '/module',
|
||||
redirect: '/module/module-management',
|
||||
meta: { adminOnly: true },
|
||||
children: [
|
||||
// 模块管理:元数据驱动的模块配置中心(先静态路由,权限/动态菜单后续接入)
|
||||
@@ -95,63 +98,120 @@ export const routes = [
|
||||
},
|
||||
],
|
||||
},
|
||||
// 业务页面后续在此追加,配置 meta.moduleId 后自动走权限校验
|
||||
// 基础数据:往来单位(合作伙伴)—— 左分类树 + 右模块列表
|
||||
// 基础数据:往来单位 / 联系人 / 其他数据等业务主数据维护页
|
||||
// 分组节点(见上方「路由分组」注释:不写 component、不写 redirect,子页写相对路径)
|
||||
{
|
||||
path: '/base/othercompany',
|
||||
name: 'base-othercompany',
|
||||
component: () => import('@/views/base/othercompany/index.vue'),
|
||||
meta: {
|
||||
title: '往来单位',
|
||||
componentName: 'BaseOthercompany',
|
||||
moduleId: 'v_b_othercompany',
|
||||
},
|
||||
path: '/base',
|
||||
children: [
|
||||
// 往来单位(合作伙伴)—— 左分类树 + 右模块列表
|
||||
{
|
||||
path: 'othercompany',
|
||||
name: 'base-othercompany',
|
||||
component: () => import('@/views/base/othercompany/index.vue'),
|
||||
meta: {
|
||||
title: '往来单位',
|
||||
componentName: 'BaseOthercompany',
|
||||
moduleId: 'v_b_othercompany',
|
||||
},
|
||||
},
|
||||
// 往来单位详情:新增与编辑都在此页完成(不带参数为新增,?id=xxx 为编辑)。
|
||||
// 静态路径,靠 EXCLUDED_PATHS 排除出菜单管理的「路由地址」下拉。
|
||||
{
|
||||
path: 'othercompany/detail',
|
||||
name: 'base-othercompany-detail',
|
||||
component: () => import('@/views/base/othercompany/detail.vue'),
|
||||
meta: {
|
||||
title: '合作伙伴详情',
|
||||
componentName: 'BaseOthercompanyDetail',
|
||||
moduleId: 'v_b_othercompany',
|
||||
},
|
||||
},
|
||||
// 联系人 —— 元数据驱动列表,新增 / 编辑跳详情页(v_b_contact)
|
||||
{
|
||||
path: 'contact',
|
||||
name: 'base-contact',
|
||||
component: () => import('@/views/base/contact/index.vue'),
|
||||
meta: {
|
||||
title: '联系人',
|
||||
componentName: 'BaseContact',
|
||||
moduleId: 'v_b_contact',
|
||||
},
|
||||
},
|
||||
// 联系人详情:新增与编辑都在此页完成(不带参数为新增,?id=xxx 为编辑)。
|
||||
// 静态路径,靠 EXCLUDED_PATHS 排除出菜单管理的「路由地址」下拉。
|
||||
{
|
||||
path: 'contact/detail',
|
||||
name: 'base-contact-detail',
|
||||
component: () => import('@/views/base/contact/detail.vue'),
|
||||
meta: {
|
||||
title: '联系人详情',
|
||||
componentName: 'BaseContactDetail',
|
||||
moduleId: 'v_b_contact',
|
||||
},
|
||||
},
|
||||
// 其他数据 —— 左分类树 + 右可编辑列表(根模块 base_otherdata)
|
||||
{
|
||||
path: 'otherdata',
|
||||
name: 'base-otherdata',
|
||||
component: () => import('@/views/base/otherdata/index.vue'),
|
||||
meta: {
|
||||
title: '其他数据',
|
||||
componentName: 'BaseOtherdata',
|
||||
moduleId: 'base_otherdata',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
// 往来单位详情:新增与编辑都在此页完成(不带参数为新增,?id=xxx 为编辑)。
|
||||
// 静态路径,靠 EXCLUDED_PATHS 排除出菜单管理的「路由地址」下拉。
|
||||
// 系统管理:用户 / 部门等系统级主数据的维护页
|
||||
// 分组节点(见上方「路由分组」注释:不写 component、不写 redirect,子页写相对路径)
|
||||
{
|
||||
path: '/base/othercompany/detail',
|
||||
name: 'base-othercompany-detail',
|
||||
component: () => import('@/views/base/othercompany/detail.vue'),
|
||||
meta: {
|
||||
title: '合作伙伴详情',
|
||||
componentName: 'BaseOthercompanyDetail',
|
||||
moduleId: 'v_b_othercompany',
|
||||
},
|
||||
},
|
||||
// 基础数据:联系人 —— 元数据驱动列表,新增 / 编辑跳详情页(v_b_contact)
|
||||
{
|
||||
path: '/base/contact',
|
||||
name: 'base-contact',
|
||||
component: () => import('@/views/base/contact/index.vue'),
|
||||
meta: {
|
||||
title: '联系人',
|
||||
componentName: 'BaseContact',
|
||||
moduleId: 'v_b_contact',
|
||||
},
|
||||
},
|
||||
// 联系人详情:新增与编辑都在此页完成(不带参数为新增,?id=xxx 为编辑)。
|
||||
// 静态路径,靠 EXCLUDED_PATHS 排除出菜单管理的「路由地址」下拉。
|
||||
{
|
||||
path: '/base/contact/detail',
|
||||
name: 'base-contact-detail',
|
||||
component: () => import('@/views/base/contact/detail.vue'),
|
||||
meta: {
|
||||
title: '联系人详情',
|
||||
componentName: 'BaseContactDetail',
|
||||
moduleId: 'v_b_contact',
|
||||
},
|
||||
},
|
||||
// 基础数据:其他数据 —— 左分类树 + 右可编辑列表(根模块 base_otherdata)
|
||||
{
|
||||
path: '/base/otherdata',
|
||||
name: 'base-otherdata',
|
||||
component: () => import('@/views/base/otherdata/index.vue'),
|
||||
meta: {
|
||||
title: '其他数据',
|
||||
componentName: 'BaseOtherdata',
|
||||
moduleId: 'base_otherdata',
|
||||
},
|
||||
path: '/system',
|
||||
children: [
|
||||
{
|
||||
path: 'user',
|
||||
name: 'system-user',
|
||||
component: () => import('@/views/system/user/index.vue'),
|
||||
// moduleId 与页面的 MODULE_CODE、s_module.b_id 保持一致:路由守卫据此校验访问权限
|
||||
meta: { title: '用户管理', componentName: 'SystemUser', moduleId: 'v_b_user' },
|
||||
},
|
||||
// 日志:系统运行痕迹,只读列表(数据源为 v_s_log_* 视图,模块无保存表)。
|
||||
// log 仍是分组节点(不写 component),三级菜单因此照常渲染在同一个 router-view 上。
|
||||
{
|
||||
path: 'log',
|
||||
children: [
|
||||
{
|
||||
path: 'login',
|
||||
name: 'system-log-login',
|
||||
component: () => import('@/views/system/log/login/index.vue'),
|
||||
meta: {
|
||||
title: '登录日志',
|
||||
componentName: 'SystemLogLogin',
|
||||
moduleId: 'v_s_log_login',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'audit',
|
||||
name: 'system-log-audit',
|
||||
component: () => import('@/views/system/log/audit/index.vue'),
|
||||
meta: {
|
||||
title: '操作日志',
|
||||
componentName: 'SystemLogAudit',
|
||||
moduleId: 'v_s_log_audit',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'technical',
|
||||
name: 'system-log-technical',
|
||||
component: () => import('@/views/system/log/technical/index.vue'),
|
||||
meta: {
|
||||
title: '技术日志',
|
||||
componentName: 'SystemLogTechnical',
|
||||
moduleId: 'v_s_log_technical',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user