From d47868f6343b4dc24150d6040e47ca66b920c1b3 Mon Sep 17 00:00:00 2001
From: zzw <228544128@qq.com>
Date: 星期五, 02 十月 2026 18:35:42 +0800
Subject: [PATCH] feat: add MDI tabbed workspace

---
 emergency-repair-web/src/router/index.js |   48 ++++++++++++++++++++++++------------------------
 1 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/emergency-repair-web/src/router/index.js b/emergency-repair-web/src/router/index.js
index bc9b4f8..35442f5 100644
--- a/emergency-repair-web/src/router/index.js
+++ b/emergency-repair-web/src/router/index.js
@@ -11,30 +11,30 @@
     path: '/',
     component: AppLayout,
     children: [
-      { path: 'dashboard', component: () => import('@/views/Dashboard.vue') },
-      { path: 'fault/report', component: () => import('@/views/fault/FaultReport.vue') },
-      { path: 'fault/review', component: () => import('@/views/fault/XcbReview.vue') },
-      { path: 'fault/approval/cmb', component: () => import('@/views/fault/SimpleApproval.vue'), meta: { stage: 'CMB' } },
-      { path: 'fault/approval/jcc-assistant', component: () => import('@/views/fault/SimpleApproval.vue'), meta: { stage: 'JCC_ASSISTANT' } },
-      { path: 'fault/approval/jcc-director', component: () => import('@/views/fault/SimpleApproval.vue'), meta: { stage: 'JCC_DIRECTOR' } },
-      { path: 'fault/dispatch', component: () => import('@/views/fault/DispatchPage.vue') },
-      { path: 'fault/completion', component: () => import('@/views/completion/CompletionList.vue') },
-      { path: 'completion/report', component: () => import('@/views/completion/CompletionReport.vue') },
-      { path: 'acceptance/application', component: () => import('@/views/acceptance/AcceptanceList.vue'), meta: { stage: 'APPLICATION' } },
-      { path: 'acceptance/inspector', component: () => import('@/views/acceptance/AcceptanceList.vue'), meta: { stage: 'INSPECTOR' } },
-      { path: 'acceptance/leader', component: () => import('@/views/acceptance/AcceptanceList.vue'), meta: { stage: 'LEADER' } },
-      { path: 'acceptance/print', component: () => import('@/views/acceptance/AcceptanceList.vue'), meta: { stage: 'PRINT' } },
-      { path: 'acceptance/rating', component: () => import('@/views/acceptance/AcceptanceList.vue'), meta: { stage: 'RATING' } },
-      { path: 'reports/:type', component: () => import('@/views/report/ReportPage.vue') },
-      { path: 'system/contractors', component: () => import('@/views/system/ContractorManage.vue') },
-      { path: 'system/product-tree', component: () => import('@/views/system/TreeManage.vue'), meta: { treeType: 'product' } },
-      { path: 'system/base-equipment', component: () => import('@/views/system/TreeManage.vue'), meta: { treeType: 'base' } },
-      { path: 'system/engineering-majors', component: () => import('@/views/system/EngineeringMajorManage.vue') },
-      { path: 'system/team-majors', component: () => import('@/views/system/TeamMajorManage.vue') },
-      { path: 'system/roles', component: () => import('@/views/system/RoleManage.vue') },
-      { path: 'system/menus', component: () => import('@/views/system/MenuManage.vue') },
-      { path: 'system/menu-permissions', component: () => import('@/views/system/MenuPermission.vue') },
-      { path: 'system/three-member', component: () => import('@/views/system/ThreeMember.vue') }
+      { path: 'dashboard', component: () => import('@/views/Dashboard.vue'), meta: { title: '棣栭〉闂ㄦ埛', cacheName: 'Dashboard' } },
+      { path: 'fault/report', component: () => import('@/views/fault/FaultReport.vue'), meta: { title: '鏁呴殰涓婃姤', cacheName: 'FaultReport' } },
+      { path: 'fault/review', component: () => import('@/views/fault/XcbReview.vue'), meta: { title: 'XCB鍔╃悊瀹℃牳', cacheName: 'XcbReview' } },
+      { path: 'fault/approval/cmb', component: () => import('@/views/fault/SimpleApproval.vue'), props: { stage: 'CMB' }, meta: { title: 'CMB棰嗗瀹℃壒', stage: 'CMB', cacheName: 'SimpleApproval' } },
+      { path: 'fault/approval/jcc-assistant', component: () => import('@/views/fault/SimpleApproval.vue'), props: { stage: 'JCC_ASSISTANT' }, meta: { title: 'JCC鍔╃悊瀹℃壒', stage: 'JCC_ASSISTANT', cacheName: 'SimpleApproval' } },
+      { path: 'fault/approval/jcc-director', component: () => import('@/views/fault/SimpleApproval.vue'), props: { stage: 'JCC_DIRECTOR' }, meta: { title: 'JCC澶勯暱瀹℃壒', stage: 'JCC_DIRECTOR', cacheName: 'SimpleApproval' } },
+      { path: 'fault/dispatch', component: () => import('@/views/fault/DispatchPage.vue'), meta: { title: 'XCB鍔╃悊娲惧崟', cacheName: 'DispatchPage' } },
+      { path: 'fault/completion', component: () => import('@/views/completion/CompletionList.vue'), meta: { title: '瀹屽伐鎯呭喌澶勭悊', cacheName: 'CompletionList' } },
+      { path: 'completion/report', component: () => import('@/views/completion/CompletionReport.vue'), props: route => ({ workOrderId: route.query.workOrderId || null }), meta: { title: '瀹屽伐淇℃伅涓婃姤', cacheName: 'CompletionReport' } },
+      { path: 'acceptance/application', component: () => import('@/views/acceptance/AcceptanceList.vue'), props: { stage: 'APPLICATION' }, meta: { title: '楠屾敹鐢宠', stage: 'APPLICATION', cacheName: 'AcceptanceList' } },
+      { path: 'acceptance/inspector', component: () => import('@/views/acceptance/AcceptanceList.vue'), props: { stage: 'INSPECTOR' }, meta: { title: '璐ㄦ鍛橀獙鏀�', stage: 'INSPECTOR', cacheName: 'AcceptanceList' } },
+      { path: 'acceptance/leader', component: () => import('@/views/acceptance/AcceptanceList.vue'), props: { stage: 'LEADER' }, meta: { title: '璐ㄦ璐熻矗浜洪獙鏀�', stage: 'LEADER', cacheName: 'AcceptanceList' } },
+      { path: 'acceptance/print', component: () => import('@/views/acceptance/AcceptanceList.vue'), props: { stage: 'PRINT' }, meta: { title: '瀹屽伐楠屾敹鎵撳嵃杈撳嚭', stage: 'PRINT', cacheName: 'AcceptanceList' } },
+      { path: 'acceptance/rating', component: () => import('@/views/acceptance/AcceptanceList.vue'), props: { stage: 'RATING' }, meta: { title: '淇悗璐ㄩ噺璇勭骇', stage: 'RATING', cacheName: 'AcceptanceList' } },
+      { path: 'reports/:type', component: () => import('@/views/report/ReportPage.vue'), props: route => ({ type: route.params.type }), meta: { title: '缁熻鎶ヨ〃', cacheName: 'ReportPage' } },
+      { path: 'system/contractors', component: () => import('@/views/system/ContractorManage.vue'), meta: { title: '鎵夸慨鍗曚綅绠$悊', cacheName: 'ContractorManage' } },
+      { path: 'system/product-tree', component: () => import('@/views/system/TreeManage.vue'), props: { treeType: 'product' }, meta: { title: '浜у搧缁撴瀯鏍戠鐞�', treeType: 'product', cacheName: 'TreeManage' } },
+      { path: 'system/base-equipment', component: () => import('@/views/system/TreeManage.vue'), props: { treeType: 'base' }, meta: { title: '璁惧鍩虹搴撶鐞�', treeType: 'base', cacheName: 'TreeManage' } },
+      { path: 'system/engineering-majors', component: () => import('@/views/system/EngineeringMajorManage.vue'), meta: { title: '宸ョ▼涓撲笟閰嶇疆', cacheName: 'EngineeringMajorManage' } },
+      { path: 'system/team-majors', component: () => import('@/views/system/TeamMajorManage.vue'), meta: { title: 'T闃熶笓涓氶厤缃�', cacheName: 'TeamMajorManage' } },
+      { path: 'system/roles', component: () => import('@/views/system/RoleManage.vue'), meta: { title: '瑙掕壊绠$悊', cacheName: 'RoleManage' } },
+      { path: 'system/menus', component: () => import('@/views/system/MenuManage.vue'), meta: { title: '鑿滃崟绠$悊', cacheName: 'MenuManage' } },
+      { path: 'system/menu-permissions', component: () => import('@/views/system/MenuPermission.vue'), meta: { title: '鑿滃崟鏉冮檺', cacheName: 'MenuPermission' } },
+      { path: 'system/three-member', component: () => import('@/views/system/ThreeMember.vue'), meta: { title: '涓夊憳绠$悊', cacheName: 'ThreeMember' } }
     ]
   }
 ]

--
Gitblit v1.9.1