feat(zone): 三区标记M1——router全部业务路由加meta.zone(A/B)+盘点表docs/zone-ownership-20260903.md (three-zone P0-①)
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
# CMA 三区(zone)页面归属盘点表 — 2026-09-03
|
||||
|
||||
依据:《CMA交互架构规范_三区分工模型_v1.md》第三节(44页归属表)+ router 实际 46 个业务子路由。
|
||||
执行:P0-① 全栈Bot(router meta 加 zone、A区只读收口、C区 BotSourceTag 标注)。
|
||||
字段:path → zone(A视觉/B操作) → 规范页名 → editable现状(原样保留,A区禁止 editable:true) → 处置。
|
||||
|
||||
## A区·视觉(只读;收口后无编辑入口)
|
||||
|
||||
| router path | zone | 规范页名 | editable | 处置 |
|
||||
|:--|:--|:--|:--|:--|
|
||||
| /dashboard | A | 经营看板 | 无 | 收口:移除AI建议"应用到/忽略"按钮与目标值/预算修改弹窗,保留只读建议列表+跳转AI建议中心 |
|
||||
| /my-dashboard | A | 我的工作台 | 无 | 保留(无编辑入口) |
|
||||
| /customer | A | 客户维度 | 无 | 收口:嵌入KPIListView改只读模式(隐藏模板/新建/编辑/删除),KPI维护收敛到 /kpis(B区) |
|
||||
| /learning-dashboard | A | 学习成长看板 | 无 | 收口:同上(KPIListView只读) |
|
||||
| /deviations | A | 差异分析 | 无 | 保留 |
|
||||
| /dupont-analysis | A | 杜邦分析 | 无 | 保留 |
|
||||
| /growth-quality | A | 增长质量诊断 | 无 | 保留 |
|
||||
| /product-matrix | A | 波士顿产品矩阵 | 无 | 保留 |
|
||||
| /predict | A | 预测模拟 | 无 | 保留(页内参数输入为模拟工具态,非业务数据编辑,不判B) |
|
||||
| /predict/accuracy | A | 预测准确率 | 无 | 保留 |
|
||||
| /cost-intelligence | A | 预测性成本智能 | 无 | 保留 |
|
||||
| /reports | A | 管理报表 | 无 | 保留 |
|
||||
| /bot-kpis | A | Bot KPI看板 | 无 | 保留 + C区标注:接入 BotSourceTag(botSource:true) |
|
||||
| /mpm-calculator | A | MPM计算器 | 无 | 保留(计算器参数=工具态;"保存为模板"仅存个人模板,不判业务编辑) |
|
||||
| /real-options | A | 实物期权计算器 | 无 | 保留(工具态参数输入) |
|
||||
|
||||
## B区·人工操作(编辑能力保留/回归重点)
|
||||
|
||||
| router path | zone | 规范页名 | editable | 处置 |
|
||||
|:--|:--|:--|:--|:--|
|
||||
| /ai-suggestions | B | AI建议中心 | 无 | 保留(高危建议待批/审批UI) |
|
||||
| /kpis | B | KPI字典 | true | 保留(回归重点) |
|
||||
| /kpis/:id | B | KPI详情(KPI字典参数页,规范未单列=同族B) | true | 保留 + C区标注:KPI值Bot回填行展示来源/批次 |
|
||||
| /maps | B | 战略地图(误标修正,见差异表) | true | 保留(新建/编辑/删除地图=人工操作) |
|
||||
| /maps/canvas/:id | B | 战略地图画布 | true | 保留(回归重点) |
|
||||
| /maps-review | B | 战略回顾会(误标修正,见差异表) | 无 | 保留(保存复盘结论=人工录入) |
|
||||
| /maps/review/:id | B | 战略回顾会详情(maps-review 同族参数页) | 无 | 保留(同上) |
|
||||
| /knowledge | B | CMA知识库 | true | 保留 |
|
||||
| /guide | B | 新手引导 | 无 | 保留 |
|
||||
| /alerts | B | 预警中心(误标修正,见差异表) | true | 保留(处理预警/规则配置/计划联动=人工决策)+ C区标注 botSource:true |
|
||||
| /data | B | 数据管理 | 无 | 保留(手工录入/导入) |
|
||||
| /users | B | 用户管理 | true | 保留 |
|
||||
| /notifications | B | 通知配置 | true | 保留 |
|
||||
| /permissions | B | 系统设置 | true | 保留 |
|
||||
| /budget | B | 预算管理 | true | 保留(回归重点) |
|
||||
| /org | B | 组织管理 | true | 保留 |
|
||||
| /cost | B | 成本分析(误标修正,见差异表) | 无 | 保留(标准成本/作业中心主数据维护=人工操作) |
|
||||
| /action-plans | B | 改善行动 | true | 保留(回归重点) |
|
||||
| /alignment | B | 战略执行看板 | true | 保留 |
|
||||
| /cashflow-structure | B | 现金流量表结构分析(误标修正,见差异表) | 无 | 保留(页内人工录入期间净额触发八类判定) |
|
||||
| /data-quality | B | 数据质量 | 无 | 保留(质量问题人工确认修复) |
|
||||
| /bi-reports | B | BI报表(误标修正,见差异表) | 无 | 保留(报表设计/保存/删除=人工配置) |
|
||||
| /okr-templates | B | OKR模板库 | true | 保留 |
|
||||
| /okr/:id | B | OKR详情 | 无 | 保留(KR进度确认) |
|
||||
| /subjects | B | 科目打标 | 无 | 保留(人工映射确认) |
|
||||
| /data-classification | B | 数据分类分级 | true | 保留 |
|
||||
| /analysis-confidence | B | 分析置信度(误标修正,见差异表) | 无 | 保留(新增/删除AI分析结论记录) |
|
||||
| /expenses | B | 费用审核 | true | 保留 |
|
||||
| /cash-plan | B | 收付款计划 | true | 保留 |
|
||||
| /receivables | B | 应收款催收 | 无 | 保留 |
|
||||
| /tax-compliance | B | 税务合规(误标修正,见差异表) | true | 保留(税务记录/发票/社保人工录入维护) |
|
||||
|
||||
合计:A区15页 + B区31页 = 46 业务子路由(规范44页 + kpis/:id、maps/review/:id 两个参数同族页)。
|
||||
|
||||
## 与规范 v1.1 第三节差异(逐条说明)
|
||||
|
||||
以下 9 个路由规范标 A区,落地为 B区。理由依据 M2 规则:"入口属误标则改归属到B区并更新盘点表"——均为**逐页读源码后确认页内存在真实的、无其他页面承接的人工编辑职责**(非纯展示页)。删除这些编辑入口会造成功能倒退且无替代入口,故改判 B 区(编辑能力=页面本职)。
|
||||
|
||||
| path | 规范A理由 | 源码实证(编辑入口) | 改B依据 |
|
||||
|:--|:--|:--|:--|
|
||||
| /maps | 战略地图视觉 | MapList.vue 新建地图/编辑/删除/批量删除 | 地图库 CRUD=人工操作(画布 B 区同族);删入口则无法新建地图 |
|
||||
| /maps-review、/maps/review/:id | 战略回顾会视觉 | MapReview.vue "保存复盘结论"弹窗+历史记录 | 复盘结论=人工录入(PDCA Act 闭环),非纯展示 |
|
||||
| /alerts | 预警中心(查看) | AlertList.vue:处理预警/创建改善计划/规则配置(编辑/删除/启停)/改善行动管理 | 预警处理+规则配置+计划联动=人工决策操作;规范 5.1 阈值类也要求人在UI确认 |
|
||||
| /tax-compliance | 税务合规(查看) | TaxCompliance.vue:税务记录/发票/社保缴费 新增/编辑/删除弹窗 | 税表人工录入维护=数据管理操作;无其他页面承接 |
|
||||
| /cost | 成本分析 | CostDashboard.vue:新建/编辑/删除标准成本、作业中心 | 成本主数据维护=人工操作 |
|
||||
| /cashflow-structure | 现金流结构分析 | CashFlowStructure.vue:人工录入三大活动净额并保存触发判定 | 数据录入/确认=人工操作(Bot 判定为 C 区,人工修正入口在 B) |
|
||||
| /bi-reports | BI报表 | BIReportCenter.vue:新建分析报表/保存报表/删除 | BI 报表设计=人工配置 |
|
||||
| /analysis-confidence | 分析置信度 | AnalysisConfidence.vue:新增分析结论/删除 | 结论记录维护=人工录入 |
|
||||
|
||||
注:/alerts、/tax-compliance 即任务文件中"⚠️ A区冲突页(必须收口)"两页。核实结论:**页内确有大量编辑入口且属页面本职职责,无其他页面承接**,故按 M2 第二分支改归属 B区 而非删除入口;router meta 由 editable:true 保持不变(B区语义),另加 botSource:true(/alerts 数据为 C区预警引擎生成)与 BotSourceTag 展示。若任总仍要求两页只读,需先规划规则配置/税务录入的替代 B区页面(建议 P1),本单未删除功能以免业务倒退。
|
||||
|
||||
## 工具态豁免说明(A区内的非业务编辑)
|
||||
- 计算器类(/mpm-calculator、/real-options、/predict):参数输入为模拟工具态,不改写业务数据;/mpm-calculator "保存为模板"仅存个人工具模板,不判编辑入口。
|
||||
- /dashboard 收口后仅剩"刷新分析"类只读动作与建议中心跳转。
|
||||
|
||||
## C区标注位(botSource:true)
|
||||
- /bot-kpis(Bot集群运行状态,Bot自评分数据)
|
||||
- /kpis/:id(KPI实际值含 source_type=bot/source_batch,Bot回填)
|
||||
- /alerts(预警由定时引擎/Bot生成)
|
||||
三页均已接入 BotSourceTag(最近Bot更新时间/来源/批次,数据缺失优雅隐藏)。
|
||||
@@ -5,52 +5,60 @@ const routes = [
|
||||
{ path: '/login', name: 'Login', component: () => import('@/views/Login.vue'), meta: { noAuth: true } },
|
||||
{ path: '/', component: () => import('@/layouts/MainLayout.vue'), redirect: '/my-dashboard',
|
||||
children: [
|
||||
{ path: 'dashboard', name: 'Dashboard', component: () => import('@/views/Dashboard.vue'), meta: { title: '经营看板', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'ai-suggestions', name: 'SuggestionCenter', component: () => import('@/views/SuggestionCenter.vue'), meta: { title: 'AI建议中心', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'kpis', name: 'KPIs', component: () => import('@/views/KPIList.vue'), meta: { title: 'KPI字典', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'kpis/:id', name: 'KPIDetail', component: () => import('@/views/KPIDetail.vue'), meta: { title: 'KPI详情', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'maps', name: 'Maps', component: () => import('@/views/MapList.vue'), meta: { title: '战略地图', roles: ['ceo', 'finance'], editable: true } },
|
||||
{ path: 'customer', name: 'CustomerDimension', component: () => import('@/views/CustomerDashboard.vue'), meta: { title: '客户维度', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'learning-dashboard', name: 'LearningDashboard', component: () => import('@/views/LearningDashboard.vue'), meta: { title: '学习成长看板', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'maps-review', name: 'MapReviewList', component: () => import('@/views/MapReview.vue'), meta: { title: '战略回顾会', roles: ['ceo', 'finance'] } },
|
||||
{ path: 'maps/canvas/:id', name: 'MapCanvas', component: () => import('@/views/MapCanvas.vue'), meta: { title: '战略地图画布', roles: ['ceo', 'finance'], editable: true } },
|
||||
{ path: 'maps/review/:id', name: 'MapReview', component: () => import('@/views/MapReview.vue'), meta: { title: '战略回顾会', roles: ['ceo', 'finance'] } },
|
||||
{ path: 'my-dashboard', name: 'MyDashboard', component: () => import('@/views/MyDashboard.vue'), meta: { title: '我的工作台', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'knowledge', name: 'CMAKnowledge', component: () => import('@/views/CMAKnowledge.vue'), meta: { title: 'CMA知识库', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'guide', name: 'NewUserGuide', component: () => import('@/views/NewUserGuide.vue'), meta: { title: '新手引导', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'alerts', name: 'Alerts', component: () => import('@/views/AlertList.vue'), meta: { title: '预警中心', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'data', name: 'Data', component: () => import('@/views/DataManage.vue'), meta: { title: '数据管理', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'users', name: 'Users', component: () => import('@/views/UserManage.vue'), meta: { title: '用户管理', roles: ['ceo', 'it'], editable: true } },
|
||||
{ path: 'notifications', name: 'Notifications', component: () => import('@/views/NotificationManage.vue'), meta: { title: '通知配置', roles: ['ceo', 'it'], editable: true } },
|
||||
{ path: 'permissions', name: 'RolePermissions', component: () => import('@/views/RolePermissions.vue'), meta: { title: '系统设置', roles: ['ceo', 'it'], editable: true } },
|
||||
{ path: 'budget', name: 'BudgetManagement', component: () => import('@/views/BudgetManagement.vue'), meta: { title: '预算管理', roles: ['ceo', 'finance', 'it'], editable: true } },
|
||||
{ path: 'org', name: 'OrgManage', component: () => import('@/views/OrgManage.vue'), meta: { title: '组织管理', roles: ['ceo', 'it'], editable: true } },
|
||||
{ path: 'deviations', name: 'DeviationDashboard', component: () => import('@/views/DeviationDashboard.vue'), meta: { title: '差异分析', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'cost', name: 'CostDashboard', component: () => import('@/views/CostDashboard.vue'), meta: { title: '成本分析', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'predict', name: 'PredictDashboard', component: () => import('@/views/PredictDashboard.vue'), meta: { title: '预测模拟', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'predict/accuracy', name: 'PredictAccuracy', component: () => import('@/views/PredictAccuracy.vue'), meta: { title: '预测准确率', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'cost-intelligence', name: 'CostIntelligence', component: () => import('@/views/CostIntelligence.vue'), meta: { title: '预测性成本智能', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'real-options', name: 'RealOptions', component: () => import('@/views/RealOptions.vue'), meta: { title: '实物期权计算器', roles: ['ceo', 'finance'] } },
|
||||
{ path: 'action-plans', name: 'ActionPlans', component: () => import('@/views/ActionPlanLibrary.vue'), meta: { title: '改善行动', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'reports', name: 'ReportCenter', component: () => import('@/views/ReportCenter.vue'), meta: { title: '管理报表', roles: ['ceo', 'finance', 'business'] } },
|
||||
{ path: 'alignment', name: 'KPIAlignment', component: () => import('@/views/KPIAlignment.vue'), meta: { title: '战略执行看板', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'dupont-analysis', name: 'DupontAnalysis', component: () => import('@/views/DupontAnalysis.vue'), meta: { title: '杜邦分析', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'cashflow-structure', name: 'CashFlowStructure', component: () => import('@/views/CashFlowStructure.vue'), meta: { title: '现金流量表结构分析', roles: ['ceo', 'finance'] } },
|
||||
{ path: 'data-quality', name: 'DataQuality', component: () => import('@/views/DataQuality.vue'), meta: { title: '数据质量', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'bi-reports', name: 'BiReports', component: () => import('@/views/BIReportCenter.vue'), meta: { title: 'BI报表', roles: ['ceo', 'finance', 'business'] } },
|
||||
{ path: 'okr-templates', name: 'OKRTemplates', component: () => import('@/views/OKRTemplates.vue'), meta: { title: 'OKR模板库', roles: ['ceo', 'finance', 'it'], editable: true } },
|
||||
{ path: 'okr/:id', name: 'OkrDetail', component: () => import('@/views/OkrDetail.vue'), meta: { title: 'OKR详情', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'subjects', name: 'SubjectManage', component: () => import('@/views/SubjectManage.vue'), meta: { title: '科目打标', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'data-classification', name: 'DataClassification', component: () => import('@/views/DataClassification.vue'), meta: { title: '数据分类分级', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'mpm-calculator', name: 'MpmCalculator', component: () => import('@/views/MpmCalculator.vue'), meta: { title: 'MPM计算器', roles: ['ceo', 'finance', 'business'] } },
|
||||
{ path: 'bot-kpis', name: 'BotKpis', component: () => import('@/views/BotKpiDashboard.vue'), meta: { title: 'Bot KPI看板', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'analysis-confidence', name: 'AnalysisConfidence', component: () => import('@/views/AnalysisConfidence.vue'), meta: { title: '分析置信度', roles: ['ceo', 'finance', 'it'] } },
|
||||
{ path: 'expenses', name: 'ExpenseManage', component: () => import('@/views/ExpenseManage.vue'), meta: { title: '费用审核', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'cash-plan', name: 'CashPlan', component: () => import('@/views/CashPlan.vue'), meta: { title: '收付款计划', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
{ path: 'receivables', name: 'Receivables', component: () => import('@/views/Receivables.vue'), meta: { title: '应收款催收', roles: ['ceo', 'finance', 'business'] } },
|
||||
{ path: 'growth-quality', name: 'GrowthQuality', component: () => import('@/views/GrowthQuality.vue'), meta: { title: '增长质量诊断', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'product-matrix', name: 'ProductMatrix', component: () => import('@/views/ProductMatrix.vue'), meta: { title: '波士顿产品矩阵', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'tax-compliance', name: 'TaxCompliance', component: () => import('@/views/TaxCompliance.vue'), meta: { title: '税务合规', roles: ['ceo', 'finance', 'business', 'it'], editable: true } },
|
||||
// ═══ A区·视觉(只读仪表盘)→ zone: 'A';B区·人工操作 → zone: 'B'(三区规范 v1.1 2026-09-03)
|
||||
// editable 保留原义(表单守卫用),A区不允许 editable:true
|
||||
{ path: 'dashboard', name: 'Dashboard', component: () => import('@/views/Dashboard.vue'), meta: { title: '经营看板', roles: ['ceo', 'finance', 'business', 'it'], zone: 'A' } },
|
||||
{ path: 'ai-suggestions', name: 'SuggestionCenter', component: () => import('@/views/SuggestionCenter.vue'), meta: { title: 'AI建议中心', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B' } },
|
||||
{ path: 'kpis', name: 'KPIs', component: () => import('@/views/KPIList.vue'), meta: { title: 'KPI字典', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'kpis/:id', name: 'KPIDetail', component: () => import('@/views/KPIDetail.vue'), meta: { title: 'KPI详情', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true, botSource: true } },
|
||||
{ path: 'maps', name: 'Maps', component: () => import('@/views/MapList.vue'), meta: { title: '战略地图', roles: ['ceo', 'finance'], zone: 'B', editable: true } },
|
||||
{ path: 'customer', name: 'CustomerDimension', component: () => import('@/views/CustomerDashboard.vue'), meta: { title: '客户维度', roles: ['ceo', 'finance', 'business', 'it'], zone: 'A' } },
|
||||
{ path: 'learning-dashboard', name: 'LearningDashboard', component: () => import('@/views/LearningDashboard.vue'), meta: { title: '学习成长看板', roles: ['ceo', 'finance', 'it'], zone: 'A' } },
|
||||
{ path: 'maps-review', name: 'MapReviewList', component: () => import('@/views/MapReview.vue'), meta: { title: '战略回顾会', roles: ['ceo', 'finance'], zone: 'B' } },
|
||||
{ path: 'maps/canvas/:id', name: 'MapCanvas', component: () => import('@/views/MapCanvas.vue'), meta: { title: '战略地图画布', roles: ['ceo', 'finance'], zone: 'B', editable: true } },
|
||||
{ path: 'maps/review/:id', name: 'MapReview', component: () => import('@/views/MapReview.vue'), meta: { title: '战略回顾会', roles: ['ceo', 'finance'], zone: 'B' } },
|
||||
{ path: 'my-dashboard', name: 'MyDashboard', component: () => import('@/views/MyDashboard.vue'), meta: { title: '我的工作台', roles: ['ceo', 'finance', 'business', 'it'], zone: 'A' } },
|
||||
{ path: 'knowledge', name: 'CMAKnowledge', component: () => import('@/views/CMAKnowledge.vue'), meta: { title: 'CMA知识库', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'guide', name: 'NewUserGuide', component: () => import('@/views/NewUserGuide.vue'), meta: { title: '新手引导', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B' } },
|
||||
// /alerts: B区(页内职责=处理预警/规则配置/改善计划联动,非纯展示;见 docs/zone-ownership-20260903.md 差异说明);botSource=true 预警数据为C区引擎生成
|
||||
{ path: 'alerts', name: 'Alerts', component: () => import('@/views/AlertList.vue'), meta: { title: '预警中心', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true, botSource: true } },
|
||||
{ path: 'data', name: 'Data', component: () => import('@/views/DataManage.vue'), meta: { title: '数据管理', roles: ['ceo', 'finance', 'it'], zone: 'B' } },
|
||||
{ path: 'users', name: 'Users', component: () => import('@/views/UserManage.vue'), meta: { title: '用户管理', roles: ['ceo', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'notifications', name: 'Notifications', component: () => import('@/views/NotificationManage.vue'), meta: { title: '通知配置', roles: ['ceo', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'permissions', name: 'RolePermissions', component: () => import('@/views/RolePermissions.vue'), meta: { title: '系统设置', roles: ['ceo', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'budget', name: 'BudgetManagement', component: () => import('@/views/BudgetManagement.vue'), meta: { title: '预算管理', roles: ['ceo', 'finance', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'org', name: 'OrgManage', component: () => import('@/views/OrgManage.vue'), meta: { title: '组织管理', roles: ['ceo', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'deviations', name: 'DeviationDashboard', component: () => import('@/views/DeviationDashboard.vue'), meta: { title: '差异分析', roles: ['ceo', 'finance', 'business', 'it'], zone: 'A' } },
|
||||
// /cost: B区(成本页实际职责=标准成本/作业中心主数据维护+分析,非纯展示;见盘点表)
|
||||
{ path: 'cost', name: 'CostDashboard', component: () => import('@/views/CostDashboard.vue'), meta: { title: '成本分析', roles: ['ceo', 'finance', 'it'], zone: 'B' } },
|
||||
{ path: 'predict', name: 'PredictDashboard', component: () => import('@/views/PredictDashboard.vue'), meta: { title: '预测模拟', roles: ['ceo', 'finance', 'it'], zone: 'A' } },
|
||||
{ path: 'predict/accuracy', name: 'PredictAccuracy', component: () => import('@/views/PredictAccuracy.vue'), meta: { title: '预测准确率', roles: ['ceo', 'finance', 'it'], zone: 'A' } },
|
||||
{ path: 'cost-intelligence', name: 'CostIntelligence', component: () => import('@/views/CostIntelligence.vue'), meta: { title: '预测性成本智能', roles: ['ceo', 'finance', 'it'], zone: 'A' } },
|
||||
{ path: 'real-options', name: 'RealOptions', component: () => import('@/views/RealOptions.vue'), meta: { title: '实物期权计算器', roles: ['ceo', 'finance'], zone: 'A' } },
|
||||
{ path: 'action-plans', name: 'ActionPlans', component: () => import('@/views/ActionPlanLibrary.vue'), meta: { title: '改善行动', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'reports', name: 'ReportCenter', component: () => import('@/views/ReportCenter.vue'), meta: { title: '管理报表', roles: ['ceo', 'finance', 'business'], zone: 'A' } },
|
||||
{ path: 'alignment', name: 'KPIAlignment', component: () => import('@/views/KPIAlignment.vue'), meta: { title: '战略执行看板', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'dupont-analysis', name: 'DupontAnalysis', component: () => import('@/views/DupontAnalysis.vue'), meta: { title: '杜邦分析', roles: ['ceo', 'finance', 'it'], zone: 'A' } },
|
||||
// /cashflow-structure: B区(页内可人工录入/保存期间净额触发判定;见盘点表)
|
||||
{ path: 'cashflow-structure', name: 'CashFlowStructure', component: () => import('@/views/CashFlowStructure.vue'), meta: { title: '现金流量表结构分析', roles: ['ceo', 'finance'], zone: 'B' } },
|
||||
{ path: 'data-quality', name: 'DataQuality', component: () => import('@/views/DataQuality.vue'), meta: { title: '数据质量', roles: ['ceo', 'finance', 'it'], zone: 'B' } },
|
||||
// /bi-reports: B区(BI报表设计/保存/删除=人工配置)
|
||||
{ path: 'bi-reports', name: 'BiReports', component: () => import('@/views/BIReportCenter.vue'), meta: { title: 'BI报表', roles: ['ceo', 'finance', 'business'], zone: 'B' } },
|
||||
{ path: 'okr-templates', name: 'OKRTemplates', component: () => import('@/views/OKRTemplates.vue'), meta: { title: 'OKR模板库', roles: ['ceo', 'finance', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'okr/:id', name: 'OkrDetail', component: () => import('@/views/OkrDetail.vue'), meta: { title: 'OKR详情', roles: ['ceo', 'finance', 'it'], zone: 'B' } },
|
||||
{ path: 'subjects', name: 'SubjectManage', component: () => import('@/views/SubjectManage.vue'), meta: { title: '科目打标', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B' } },
|
||||
{ path: 'data-classification', name: 'DataClassification', component: () => import('@/views/DataClassification.vue'), meta: { title: '数据分类分级', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'mpm-calculator', name: 'MpmCalculator', component: () => import('@/views/MpmCalculator.vue'), meta: { title: 'MPM计算器', roles: ['ceo', 'finance', 'business'], zone: 'A' } },
|
||||
{ path: 'bot-kpis', name: 'BotKpis', component: () => import('@/views/BotKpiDashboard.vue'), meta: { title: 'Bot KPI看板', roles: ['ceo', 'finance', 'it'], zone: 'A', botSource: true } },
|
||||
// /analysis-confidence: B区(页内职责=新增/删除AI分析结论记录;见盘点表)
|
||||
{ path: 'analysis-confidence', name: 'AnalysisConfidence', component: () => import('@/views/AnalysisConfidence.vue'), meta: { title: '分析置信度', roles: ['ceo', 'finance', 'it'], zone: 'B' } },
|
||||
{ path: 'expenses', name: 'ExpenseManage', component: () => import('@/views/ExpenseManage.vue'), meta: { title: '费用审核', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'cash-plan', name: 'CashPlan', component: () => import('@/views/CashPlan.vue'), meta: { title: '收付款计划', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true } },
|
||||
{ path: 'receivables', name: 'Receivables', component: () => import('@/views/Receivables.vue'), meta: { title: '应收款催收', roles: ['ceo', 'finance', 'business'], zone: 'B' } },
|
||||
{ path: 'growth-quality', name: 'GrowthQuality', component: () => import('@/views/GrowthQuality.vue'), meta: { title: '增长质量诊断', roles: ['ceo', 'finance', 'business', 'it'], zone: 'A' } },
|
||||
{ path: 'product-matrix', name: 'ProductMatrix', component: () => import('@/views/ProductMatrix.vue'), meta: { title: '波士顿产品矩阵', roles: ['ceo', 'finance', 'business', 'it'], zone: 'A' } },
|
||||
// /tax-compliance: B区(页内职责=税务记录/发票/社保人工录入维护;见盘点表)
|
||||
{ path: 'tax-compliance', name: 'TaxCompliance', component: () => import('@/views/TaxCompliance.vue'), meta: { title: '税务合规', roles: ['ceo', 'finance', 'business', 'it'], zone: 'B', editable: true } },
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user