From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/router/modules/remaining.ts | 752 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 752 insertions(+), 0 deletions(-)
diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts
new file mode 100644
index 0000000..794778c
--- /dev/null
+++ b/src/router/modules/remaining.ts
@@ -0,0 +1,752 @@
+import { Layout } from '@/utils/routerHelper'
+
+const { t } = useI18n()
+/**
+ * redirect: noredirect 褰撹缃� noredirect 鐨勬椂鍊欒璺敱鍦ㄩ潰鍖呭睉瀵艰埅涓笉鍙鐐瑰嚮
+ * name:'router-name' 璁惧畾璺敱鐨勫悕瀛楋紝涓�瀹氳濉啓涓嶇劧浣跨敤<keep-alive>鏃朵細鍑虹幇鍚勭闂
+ * meta : {
+ hidden: true 褰撹缃� true 鐨勬椂鍊欒璺敱涓嶄細鍐嶄晶杈规爮鍑虹幇 濡�404锛宭ogin绛夐〉闈�(榛樿 false)
+
+ alwaysShow: true 褰撲綘涓�涓矾鐢变笅闈㈢殑 children 澹版槑鐨勮矾鐢卞ぇ浜�1涓椂锛岃嚜鍔ㄤ細鍙樻垚宓屽鐨勬ā寮忥紝
+ 鍙湁涓�涓椂锛屼細灏嗛偅涓瓙璺敱褰撳仛鏍硅矾鐢辨樉绀哄湪渚ц竟鏍忥紝
+ 鑻ヤ綘鎯充笉绠¤矾鐢变笅闈㈢殑 children 澹版槑鐨勪釜鏁伴兘鏄剧ず浣犵殑鏍硅矾鐢憋紝
+ 浣犲彲浠ヨ缃� alwaysShow: true锛岃繖鏍峰畠灏变細蹇界暐涔嬪墠瀹氫箟鐨勮鍒欙紝
+ 涓�鐩存樉绀烘牴璺敱(榛樿 false)
+
+ title: 'title' 璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛�
+
+ icon: 'svg-name' 璁剧疆璇ヨ矾鐢辩殑鍥炬爣
+
+ noCache: true 濡傛灉璁剧疆涓簍rue锛屽垯涓嶄細琚� <keep-alive> 缂撳瓨(榛樿 false)
+
+ breadcrumb: false 濡傛灉璁剧疆涓篺alse锛屽垯涓嶄細鍦╞readcrumb闈㈠寘灞戜腑鏄剧ず(榛樿 true)
+
+ affix: true 濡傛灉璁剧疆涓簍rue锛屽垯浼氫竴鐩村浐瀹氬湪tag椤逛腑(榛樿 false)
+
+ noTagsView: true 濡傛灉璁剧疆涓簍rue锛屽垯涓嶄細鍑虹幇鍦╰ag涓�(榛樿 false)
+
+ activeMenu: '/dashboard' 鏄剧ず楂樹寒鐨勮矾鐢辫矾寰�
+
+ followAuth: '/dashboard' 璺熼殢鍝釜璺敱杩涜鏉冮檺杩囨护
+
+ canTo: true 璁剧疆涓簍rue鍗充娇hidden涓簍rue锛屼篃渚濈劧鍙互杩涜璺敱璺宠浆(榛樿 false)
+ }
+ **/
+const remainingRouter: AppRouteRecordRaw[] = [
+ {
+ path: '/redirect',
+ component: Layout,
+ name: 'Redirect',
+ children: [
+ {
+ path: '/redirect/:path(.*)',
+ name: 'Redirect',
+ component: () => import('@/views/Redirect/Redirect.vue'),
+ meta: {}
+ }
+ ],
+ meta: {
+ hidden: true,
+ noTagsView: true
+ }
+ },
+ {
+ path: '/',
+ component: Layout,
+ redirect: '/index',
+ name: 'Home',
+ meta: {},
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/Home/Index.vue'),
+ name: 'Index',
+ meta: {
+ title: t('router.home'),
+ icon: 'ep:home-filled',
+ noCache: false,
+ affix: true
+ }
+ }
+ ]
+ },
+ {
+ path: '/user',
+ component: Layout,
+ name: 'UserInfo',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'profile',
+ component: () => import('@/views/Profile/Index.vue'),
+ name: 'Profile',
+ meta: {
+ canTo: true,
+ hidden: true,
+ noTagsView: false,
+ icon: 'ep:user',
+ title: t('common.profile')
+ }
+ },
+ {
+ path: 'notify-message',
+ component: () => import('@/views/system/notify/my/index.vue'),
+ name: 'MyNotifyMessage',
+ meta: {
+ canTo: true,
+ hidden: true,
+ noTagsView: false,
+ icon: 'ep:message',
+ title: '鎴戠殑绔欏唴淇�'
+ }
+ }
+ ]
+ },
+ {
+ path: '/dict',
+ component: Layout,
+ name: 'dict',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'type/data/:dictType',
+ component: () => import('@/views/system/dict/data/index.vue'),
+ name: 'SystemDictData',
+ meta: {
+ title: '瀛楀吀鏁版嵁',
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: '',
+ activeMenu: '/system/dict'
+ }
+ }
+ ]
+ },
+
+ {
+ path: '/codegen',
+ component: Layout,
+ name: 'CodegenEdit',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'edit',
+ component: () => import('@/views/infra/codegen/EditTable.vue'),
+ name: 'InfraCodegenEditTable',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: 'ep:edit',
+ title: '淇敼鐢熸垚閰嶇疆',
+ activeMenu: 'infra/codegen/index'
+ }
+ }
+ ]
+ },
+ {
+ path: '/job',
+ component: Layout,
+ name: 'JobL',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'job-log',
+ component: () => import('@/views/infra/job/logger/index.vue'),
+ name: 'InfraJobLog',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: 'ep:edit',
+ title: '璋冨害鏃ュ織',
+ activeMenu: 'infra/job/index'
+ }
+ }
+ ]
+ },
+ {
+ path: '/login',
+ component: () => import('@/views/Login/Login.vue'),
+ name: 'Login',
+ meta: {
+ hidden: true,
+ title: t('router.login'),
+ noTagsView: true
+ }
+ },
+ {
+ path: '/sso',
+ component: () => import('@/views/Login/Login.vue'),
+ name: 'SSOLogin',
+ meta: {
+ hidden: true,
+ title: t('router.login'),
+ noTagsView: true
+ }
+ },
+ {
+ path: '/social-login',
+ component: () => import('@/views/Login/SocialLogin.vue'),
+ name: 'SocialLogin',
+ meta: {
+ hidden: true,
+ title: t('router.socialLogin'),
+ noTagsView: true
+ }
+ },
+ {
+ path: '/403',
+ component: () => import('@/views/Error/403.vue'),
+ name: 'NoAccess',
+ meta: {
+ hidden: true,
+ title: '403',
+ noTagsView: true
+ }
+ },
+ {
+ path: '/404',
+ component: () => import('@/views/Error/404.vue'),
+ name: 'NoFound',
+ meta: {
+ hidden: true,
+ title: '404',
+ noTagsView: true
+ }
+ },
+ {
+ path: '/500',
+ component: () => import('@/views/Error/500.vue'),
+ name: 'Error',
+ meta: {
+ hidden: true,
+ title: '500',
+ noTagsView: true
+ }
+ },
+ {
+ path: '/bpm',
+ component: Layout,
+ name: 'bpm',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'manager/form/edit',
+ component: () => import('@/views/bpm/form/editor/index.vue'),
+ name: 'BpmFormEditor',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '璁捐娴佺▼琛ㄥ崟',
+ activeMenu: '/bpm/manager/form'
+ }
+ },
+ {
+ path: 'manager/definition',
+ component: () => import('@/views/bpm/model/definition/index.vue'),
+ name: 'BpmProcessDefinition',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '娴佺▼瀹氫箟',
+ activeMenu: '/bpm/manager/model'
+ }
+ },
+ {
+ path: 'process-instance/detail',
+ component: () => import('@/views/bpm/processInstance/detail/index.vue'),
+ name: 'BpmProcessInstanceDetail',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '娴佺▼璇︽儏',
+ activeMenu: '/bpm/task/my'
+ },
+ props: (route) => ({
+ id: route.query.id,
+ taskId: route.query.taskId,
+ activityId: route.query.activityId
+ })
+ },
+ {
+ path: 'process-instance/report',
+ component: () => import('@/views/bpm/processInstance/report/index.vue'),
+ name: 'BpmProcessInstanceReport',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '鏁版嵁鎶ヨ〃',
+ activeMenu: '/bpm/manager/model'
+ }
+ },
+ {
+ path: 'oa/leave/create',
+ component: () => import('@/views/bpm/oa/leave/create.vue'),
+ name: 'OALeaveCreate',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '鍙戣捣 OA 璇峰亣',
+ activeMenu: '/bpm/oa/leave'
+ }
+ },
+ {
+ path: 'oa/leave/detail',
+ component: () => import('@/views/bpm/oa/leave/detail.vue'),
+ name: 'OALeaveDetail',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '鏌ョ湅 OA 璇峰亣',
+ activeMenu: '/bpm/oa/leave'
+ }
+ },
+ {
+ path: 'manager/model/create',
+ component: () => import('@/views/bpm/model/form/index.vue'),
+ name: 'BpmModelCreate',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '鍒涘缓娴佺▼',
+ activeMenu: '/bpm/manager/model'
+ }
+ },
+ {
+ path: 'manager/model/:type/:id',
+ component: () => import('@/views/bpm/model/form/index.vue'),
+ name: 'BpmModelUpdate',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '淇敼娴佺▼',
+ activeMenu: '/bpm/manager/model'
+ }
+ }
+ ]
+ },
+ {
+ path: '/mall/product', // 鍟嗗搧涓績
+ component: Layout,
+ name: 'ProductCenter',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'spu/add',
+ component: () => import('@/views/mall/product/spu/form/index.vue'),
+ name: 'ProductSpuAdd',
+ meta: {
+ noCache: false, // 闇�瑕佺紦瀛�
+ hidden: true,
+ canTo: true,
+ icon: 'ep:edit',
+ title: '鍟嗗搧娣诲姞',
+ activeMenu: '/mall/product/spu'
+ }
+ },
+ {
+ path: 'spu/edit/:id(\\d+)',
+ component: () => import('@/views/mall/product/spu/form/index.vue'),
+ name: 'ProductSpuEdit',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: 'ep:edit',
+ title: '鍟嗗搧缂栬緫',
+ activeMenu: '/mall/product/spu'
+ }
+ },
+ {
+ path: 'spu/detail/:id(\\d+)',
+ component: () => import('@/views/mall/product/spu/form/index.vue'),
+ name: 'ProductSpuDetail',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: 'ep:view',
+ title: '鍟嗗搧璇︽儏',
+ activeMenu: '/mall/product/spu'
+ }
+ },
+ {
+ path: 'property/value/:propertyId(\\d+)',
+ component: () => import('@/views/mall/product/property/value/index.vue'),
+ name: 'ProductPropertyValue',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: 'ep:view',
+ title: '鍟嗗搧灞炴�у��',
+ activeMenu: '/product/property'
+ }
+ }
+ ]
+ },
+ {
+ path: '/mall/trade', // 浜ゆ槗涓績
+ component: Layout,
+ name: 'TradeCenter',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'order/detail/:id(\\d+)',
+ component: () => import('@/views/mall/trade/order/detail/index.vue'),
+ name: 'TradeOrderDetail',
+ meta: { title: '璁㈠崟璇︽儏', icon: 'ep:view', activeMenu: '/mall/trade/order' }
+ },
+ {
+ path: 'after-sale/detail/:id(\\d+)',
+ component: () => import('@/views/mall/trade/afterSale/detail/index.vue'),
+ name: 'TradeAfterSaleDetail',
+ meta: { title: '閫�娆捐鎯�', icon: 'ep:view', activeMenu: '/mall/trade/after-sale' }
+ }
+ ]
+ },
+ {
+ path: '/member',
+ component: Layout,
+ name: 'MemberCenter',
+ meta: { hidden: true },
+ children: [
+ {
+ path: 'user/detail/:id',
+ name: 'MemberUserDetail',
+ meta: {
+ title: '浼氬憳璇︽儏',
+ noCache: true,
+ hidden: true
+ },
+ component: () => import('@/views/member/user/detail/index.vue')
+ }
+ ]
+ },
+ {
+ path: '/pay',
+ component: Layout,
+ name: 'pay',
+ meta: { hidden: true },
+ children: [
+ {
+ path: 'cashier',
+ name: 'PayCashier',
+ meta: {
+ title: '鏀堕摱鍙�',
+ noCache: true,
+ hidden: true
+ },
+ component: () => import('@/views/pay/cashier/index.vue')
+ }
+ ]
+ },
+ {
+ path: '/diy',
+ name: 'DiyCenter',
+ meta: { hidden: true },
+ component: Layout,
+ children: [
+ {
+ path: 'template/decorate/:id',
+ name: 'DiyTemplateDecorate',
+ meta: {
+ title: '妯℃澘瑁呬慨',
+ noCache: false,
+ hidden: true,
+ activeMenu: '/mall/promotion/diy-template/diy-template'
+ },
+ component: () => import('@/views/mall/promotion/diy/template/decorate.vue')
+ },
+ {
+ path: 'page/decorate/:id',
+ name: 'DiyPageDecorate',
+ meta: {
+ title: '椤甸潰瑁呬慨',
+ noCache: false,
+ hidden: true,
+ activeMenu: '/mall/promotion/diy-template/diy-page'
+ },
+ component: () => import('@/views/mall/promotion/diy/page/decorate.vue')
+ }
+ ]
+ },
+ {
+ path: '/crm',
+ component: Layout,
+ name: 'CrmCenter',
+ meta: { hidden: true },
+ children: [
+ {
+ path: 'clue/detail/:id',
+ name: 'CrmClueDetail',
+ meta: {
+ title: '绾跨储璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/crm/clue'
+ },
+ component: () => import('@/views/crm/clue/detail/index.vue')
+ },
+ {
+ path: 'customer/detail/:id',
+ name: 'CrmCustomerDetail',
+ meta: {
+ title: '瀹㈡埛璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/crm/customer'
+ },
+ component: () => import('@/views/crm/customer/detail/index.vue')
+ },
+ {
+ path: 'business/detail/:id',
+ name: 'CrmBusinessDetail',
+ meta: {
+ title: '鍟嗘満璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/crm/business'
+ },
+ component: () => import('@/views/crm/business/detail/index.vue')
+ },
+ {
+ path: 'contract/detail/:id',
+ name: 'CrmContractDetail',
+ meta: {
+ title: '鍚堝悓璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/crm/contract'
+ },
+ component: () => import('@/views/crm/contract/detail/index.vue')
+ },
+ {
+ path: 'receivable-plan/detail/:id',
+ name: 'CrmReceivablePlanDetail',
+ meta: {
+ title: '鍥炴璁″垝璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/crm/receivable-plan'
+ },
+ component: () => import('@/views/crm/receivable/plan/detail/index.vue')
+ },
+ {
+ path: 'receivable/detail/:id',
+ name: 'CrmReceivableDetail',
+ meta: {
+ title: '鍥炴璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/crm/receivable'
+ },
+ component: () => import('@/views/crm/receivable/detail/index.vue')
+ },
+ {
+ path: 'contact/detail/:id',
+ name: 'CrmContactDetail',
+ meta: {
+ title: '鑱旂郴浜鸿鎯�',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/crm/contact'
+ },
+ component: () => import('@/views/crm/contact/detail/index.vue')
+ },
+ {
+ path: 'product/detail/:id',
+ name: 'CrmProductDetail',
+ meta: {
+ title: '浜у搧璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/crm/product'
+ },
+ component: () => import('@/views/crm/product/detail/index.vue')
+ }
+ ]
+ },
+ {
+ path: '/ai',
+ component: Layout,
+ name: 'Ai',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'image/square',
+ component: () => import('@/views/ai/image/square/index.vue'),
+ name: 'AiImageSquare',
+ meta: {
+ title: '缁樺浘浣滃搧',
+ icon: 'ep:home-filled',
+ noCache: false
+ }
+ },
+ {
+ path: 'knowledge/document',
+ component: () => import('@/views/ai/knowledge/document/index.vue'),
+ name: 'AiKnowledgeDocument',
+ meta: {
+ title: '鐭ヨ瘑搴撴枃妗�',
+ icon: 'ep:document',
+ noCache: false,
+ activeMenu: '/ai/knowledge'
+ }
+ },
+ {
+ path: 'knowledge/document/create',
+ component: () => import('@/views/ai/knowledge/document/form/index.vue'),
+ name: 'AiKnowledgeDocumentCreate',
+ meta: {
+ title: '鍒涘缓鏂囨。',
+ icon: 'ep:plus',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/ai/knowledge'
+ }
+ },
+ {
+ path: 'knowledge/document/update',
+ component: () => import('@/views/ai/knowledge/document/form/index.vue'),
+ name: 'AiKnowledgeDocumentUpdate',
+ meta: {
+ title: '淇敼鏂囨。',
+ icon: 'ep:edit',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/ai/knowledge'
+ }
+ },
+ {
+ path: 'knowledge/retrieval',
+ component: () => import('@/views/ai/knowledge/knowledge/retrieval/index.vue'),
+ name: 'AiKnowledgeRetrieval',
+ meta: {
+ title: '鏂囨。鍙洖娴嬭瘯',
+ icon: 'ep:search',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/ai/knowledge'
+ }
+ },
+ {
+ path: 'knowledge/segment',
+ component: () => import('@/views/ai/knowledge/segment/index.vue'),
+ name: 'AiKnowledgeSegment',
+ meta: {
+ title: '鐭ヨ瘑搴撳垎娈�',
+ icon: 'ep:tickets',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/ai/knowledge'
+ }
+ },
+ {
+ path: 'console/workflow/create',
+ component: () => import('@/views/ai/workflow/form/index.vue'),
+ name: 'AiWorkflowCreate',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '璁捐 AI 宸ヤ綔娴�',
+ activeMenu: '/ai/console/workflow'
+ }
+ },
+ {
+ path: 'console/workflow/:type/:id',
+ component: () => import('@/views/ai/workflow/form/index.vue'),
+ name: 'AiWorkflowUpdate',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '璁捐 AI 宸ヤ綔娴�',
+ activeMenu: '/ai/console/workflow'
+ }
+ }
+ ]
+ },
+ {
+ path: '/:pathMatch(.*)*',
+ component: () => import('@/views/Error/404.vue'),
+ name: '',
+ meta: {
+ title: '404',
+ hidden: true,
+ breadcrumb: false
+ }
+ },
+ {
+ path: '/iot',
+ component: Layout,
+ name: 'IOT',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'product/product/detail/:id',
+ name: 'IoTProductDetail',
+ meta: {
+ title: '浜у搧璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/iot/device/product'
+ },
+ component: () => import('@/views/iot/product/product/detail/index.vue')
+ },
+ {
+ path: 'device/detail/:id',
+ name: 'IoTDeviceDetail',
+ meta: {
+ title: '璁惧璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/iot/device/device'
+ },
+ component: () => import('@/views/iot/device/device/detail/index.vue')
+ },
+ {
+ path: 'ota/operation/firmware/detail/:id',
+ name: 'IoTOtaFirmwareDetail',
+ meta: {
+ title: '鍥轰欢璇︽儏',
+ noCache: true,
+ hidden: true,
+ activeMenu: '/iot/operation/ota/firmware'
+ },
+ component: () => import('@/views/iot/ota/firmware/detail/index.vue')
+ }
+ ]
+ }
+]
+
+export default remainingRouter
--
Gitblit v1.8.0