import type { AppRouteRecord } from '@/types/router' /** * 前端路由(报销管理、CRM 管理、地磅管理、工作流管理、系统管理;运输见 pl.ts) * 与后端菜单对齐时请同步 `sys_menu`(bx 见 docs/sql/20260606_bx_menu.sql;db 见 docs/sql/20260607_db_menu.sql)。 */ export const sqxpAdminRoutes: AppRouteRecord[] = [ // ────────────────────────────────────────────── // 控制台(已废弃,门户布局不展示;路由保留兼容旧链接) // ────────────────────────────────────────────── { id: 'DSH000000000000000000000000000001', name: 'Dashboard', path: '/dashboard', component: '/dashboard/console/index', meta: { title: '控制台', icon: 'ri:dashboard-line', keepAlive: false, isHide: true, roles: ['admin'] } }, // ────────────────────────────────────────────── // 2. 报销管理(bx) // ────────────────────────────────────────────── { id: 'BX00000000000000000000000000001', name: 'BxManagement', path: '/bx', component: '/index/index', meta: { title: '报销管理', icon: 'ri:wallet-3-line', keepAlive: false, roles: ['admin'] }, children: [ { id: 'BX00000000000000000000000000002', name: 'BxConfig', path: 'config', meta: { title: '基础配置', keepAlive: false }, children: [ { id: 'BX00000000000000000000000000003', name: 'BxExpenseItem', path: 'expense-item', component: '/bx/expense-item/index', meta: { title: '费用项目管理', keepAlive: true, menuCode: 'bx:expenseItem:list' } }, { id: 'BX00000000000000000000000000004', name: 'BxWorkflowAdvance', path: 'workflow-advance', component: '/bx/workflow/advance/index', meta: { title: '工作流配置(备用金)', keepAlive: true, menuCode: 'bx:workflowAdvance:list' } }, { id: 'BX00000000000000000000000000005', name: 'BxWorkflowReimburse', path: 'workflow-reimburse', component: '/bx/workflow/reimburse/index', meta: { title: '工作流配置(报销单)', keepAlive: true, menuCode: 'bx:workflowReimburse:list' } } ] }, { id: 'BX00000000000000000000000000006', name: 'BxAdvance', path: 'advance', meta: { title: '备用金', keepAlive: false }, children: [ { id: 'BX00000000000000000000000000007', name: 'BxAdvanceApply', path: 'apply', component: '/bx/advance/apply/index', meta: { title: '备用金申请', keepAlive: true, menuCode: 'bx:advanceApply:list' } }, { id: 'BX00000000000000000000000000008', name: 'BxAdvanceApprove', path: 'approve', component: '/bx/advance/approve/index', meta: { title: '备用金审批', keepAlive: true, menuCode: 'bx:advanceApprove:list' } }, { id: 'BX00000000000000000000000000009', name: 'BxAdvanceIssue', path: 'issue', component: '/bx/advance/issue/index', meta: { title: '备用金发放', keepAlive: true, menuCode: 'bx:advanceIssue:list' } } ] }, { id: 'BX00000000000000000000000000010', name: 'BxReimburse', path: 'reimburse', meta: { title: '报销', keepAlive: false }, children: [ { id: 'BX00000000000000000000000000011', name: 'BxReimburseApply', path: 'apply', component: '/bx/reimburse/apply/index', meta: { title: '报销申请', keepAlive: true, menuCode: 'bx:reimburseApply:list' } }, { id: 'BX00000000000000000000000000012', name: 'BxReimburseApprove', path: 'approve', component: '/bx/reimburse/approve/index', meta: { title: '报销审批', keepAlive: true, menuCode: 'bx:reimburseApprove:list' } }, { id: 'BX00000000000000000000000000013', name: 'BxPayment', path: 'payment', component: '/bx/payment/index', meta: { title: '支付发放冲抵', keepAlive: true, menuCode: 'bx:payment:list' } }, { id: 'BX00000000000000000000000000020', name: 'BxInvoiceWalletAdmin', path: 'invoice-wallet-admin', component: '/bx/invoice-wallet/admin/index', meta: { title: '发票夹管理', keepAlive: true, menuCode: 'bx:invoiceWallet:admin' } }, { id: 'BX00000000000000000000000000021', name: 'BxInvoiceWalletMine', path: 'invoice-wallet-mine', component: '/bx/invoice-wallet/mine/index', meta: { title: '我的发票夹', keepAlive: true, menuCode: 'bx:invoiceWallet:mine' } } ] }, { id: 'BX00000000000000000000000000014', name: 'BxViewCenter', path: 'view', meta: { title: '视图中心', keepAlive: false }, children: [ { id: 'BX00000000000000000000000000015', name: 'BxViewMine', path: 'mine', component: '/bx/view/mine/index', meta: { title: '我的申请单', keepAlive: true, menuCode: 'bx:viewMine:list' } }, { id: 'BX00000000000000000000000000016', name: 'BxViewTodo', path: 'todo', component: '/bx/view/todo/index', meta: { title: '待我审批', keepAlive: true, menuCode: 'bx:viewTodo:list' } }, { id: 'BX00000000000000000000000000017', name: 'BxViewAll', path: 'all', component: '/bx/view/all/index', meta: { title: '全部申请单(总经理)', keepAlive: true, menuCode: 'bx:viewAll:list' } } ] } ] }, // ────────────────────────────────────────────── // 3. CRM 管理 // ────────────────────────────────────────────── { id: 'CRM00000000000000000000000000001', name: 'CrmManagement', path: '/crm', component: '/index/index', meta: { title: 'CRM 管理', icon: 'goods', keepAlive: false, roles: ['admin'] }, children: [ { id: 'CRM00000000000000000000000000002', name: 'CrmProductCategory', path: 'product-category', component: '/crm/product-category/index', meta: { title: '产品分类', keepAlive: true, menuCode: 'crm:productCategory:list' } }, { id: 'CRM00000000000000000000000000003', name: 'CrmProduct', path: 'product', component: '/crm/product/index', meta: { title: '产品管理', keepAlive: true, menuCode: 'crm:product:list' } }, { id: 'CRM1000000000000000000000000010', name: 'CrmClue', path: 'clue', component: '/crm/clue/index', meta: { title: '线索管理', keepAlive: true, menuCode: 'crm:clue:list' } }, { id: 'CRM1000000000000000000000000011', name: 'CrmClueDetail', path: 'clue/detail/:id', component: '/crm/clue/detail', meta: { title: '线索详情', keepAlive: false, isHide: true, menuCode: 'crm:clue:query' } }, { id: 'CRM1000000000000000000000000012', name: 'CrmClueStatistics', path: 'clue/statistics', component: '/crm/clue/statistics/index', meta: { title: '线索统计', keepAlive: true, isHide: true, menuCode: 'crm:clue:statistics' } }, { id: 'CRM2000000000000000000000000010', name: 'CrmOpportunity', path: 'opportunity', component: '/crm/opportunity/index', meta: { title: '商机管理', keepAlive: true, menuCode: 'crm:opportunity:list' } }, { id: 'CRM2000000000000000000000000011', name: 'CrmOpportunityDetail', path: 'opportunity/detail/:id', component: '/crm/opportunity/detail', meta: { title: '商机详情', keepAlive: false, isHide: true, menuCode: 'crm:opportunity:query' } }, { id: 'CRM2000000000000000000000000012', name: 'CrmOpportunityKanban', path: 'opportunity/kanban', component: '/crm/opportunity/kanban', meta: { title: '商机看板', keepAlive: true, isHide: true, menuCode: 'crm:opportunity:list' } }, { id: 'CRM2000000000000000000000000013', name: 'CrmOpportunityFunnel', path: 'opportunity/funnel', component: '/crm/opportunity/funnel', meta: { title: '销售漏斗', keepAlive: true, isHide: true, menuCode: 'crm:opportunity:list' } }, { id: 'CRM2000000000000000000000000014', name: 'CrmOpportunityStatistics', path: 'opportunity/statistics', component: '/crm/opportunity/statistics', meta: { title: '商机统计', keepAlive: true, isHide: true, menuCode: 'crm:opportunity:list' } }, { id: 'CRM3000000000000000000000000010', name: 'CrmQuote', path: 'quote', component: '/crm/quote/index', meta: { title: '报价单管理', keepAlive: true, menuCode: 'crm:quote:list' } }, { id: 'CRM3000000000000000000000000015', name: 'CrmQuoteApproverSetting', path: 'quote-approver-setting', component: '/crm/quote/approver-setting/index', meta: { title: '报价单审批人设置', keepAlive: true, menuCode: 'crm:quote:approverSetting' } }, { id: 'CRM3000000000000000000000000011', name: 'CrmQuoteForm', path: 'quote/form', component: '/crm/quote/form', meta: { title: '报价单表单', keepAlive: false, isHide: true, menuCode: 'crm:quote:add' } }, { id: 'CRM3000000000000000000000000012', name: 'CrmQuoteDetail', path: 'quote/detail', component: '/crm/quote/detail', meta: { title: '报价单详情', keepAlive: false, isHide: true, menuCode: 'crm:quote:query' } }, { id: 'CRM3000000000000000000000000013', name: 'CrmQuoteStatistics', path: 'quote/statistics', component: '/crm/quote/statistics', meta: { title: '报价单统计', keepAlive: true, isHide: true, menuCode: 'crm:quote:list' } }, { id: 'CRM3000000000000000000000000020', name: 'CrmContract', path: 'contract', component: '/crm/contract/index', meta: { title: '合同管理', keepAlive: true, menuCode: 'crm:contract:list' } }, { id: 'CRM3000000000000000000000000030', name: 'CrmPriceLetter', path: 'price-letter', component: '/crm/price-letter/index', meta: { title: '调价函管理', keepAlive: true, menuCode: 'crm:priceLetter:list' } }, { id: 'CRM3000000000000000000000000021', name: 'CrmContractForm', path: 'contract/form', component: '/crm/contract/form', meta: { title: '合同表单', keepAlive: false, isHide: true, menuCode: 'crm:contract:add' } }, { id: 'CRM3000000000000000000000000022', name: 'CrmContractDetail', path: 'contract/detail', component: '/crm/contract/detail', meta: { title: '合同详情', keepAlive: false, isHide: true, menuCode: 'crm:contract:query' } }, { id: 'CRM3000000000000000000000000023', name: 'CrmContractChange', path: 'contract/change', component: '/crm/contract/change/index', meta: { title: '合同变更', keepAlive: true, isHide: true, menuCode: 'crm:contract:change:list' } }, { id: 'CRM3000000000000000000000000024', name: 'CrmContractTemplate', path: 'contract/template', component: '/crm/contract/template/index', meta: { title: '合同模板', keepAlive: true, isHide: true, menuCode: 'crm:contract:template:list' } }, { id: 'CRM3000000000000000000000000025', name: 'CrmContractApproval', path: 'contract/approval', component: '/crm/contract/approval/index', meta: { title: '合同审批', keepAlive: true, isHide: true, menuCode: 'crm:contract:approval:list' } }, { id: 'CRM1000000000000000000000000002', name: 'CrmCustomer', path: 'customer', component: '/crm/customer/index', meta: { title: '客户管理', keepAlive: true, menuCode: 'crm:customer:list' } }, { id: 'CRM1000000000000000000000000003', name: 'CrmCustomerPool', path: 'customer-pool', component: '/crm/customer/pool/index', meta: { title: '公海池', keepAlive: true, menuCode: 'crm:customerPool:list' } }, { id: 'CRM3000000000000000000000000040', name: 'CrmSupplierHazard', path: 'supplier-hazard', component: '/crm/supplier-hazard/index', meta: { title: '主体危化品能力', keepAlive: true, menuCode: 'crm:supplierHazard:list' } }, { id: 'CRM1000000000000000000000000004', name: 'CrmPoolRule', path: 'pool-rule', component: '/crm/customer/pool/RuleIndex', meta: { title: '公海池规则', keepAlive: true, isHide: true, menuCode: 'crm:poolRule:list' } } ] }, // ────────────────────────────────────────────── // 4. 地磅管理(db) // ────────────────────────────────────────────── { id: 'DB00000000000000000000000000001', name: 'DbManagement', path: '/db', component: '/index/index', meta: { title: '地磅管理', icon: 'ri:scales-3-line', keepAlive: false, roles: ['admin'] }, children: [ { id: 'DB00000000000000000000000000002', name: 'DbDashboard', path: 'dashboard', component: '/db/dashboard/index', meta: { title: '仪表盘', keepAlive: true, menuCode: 'db:dashboard:list' } }, { id: 'DB00000000000000000000000000003', name: 'DbPlans', path: 'plans', component: '/db/plans/index', meta: { title: '地磅计划', keepAlive: true, menuCode: 'db:plan:list' } }, { id: 'DB00000000000000000000000000004', name: 'DbInventory', path: 'inventory', component: '/db/inventory/index', meta: { title: '地磅出入库', keepAlive: true, menuCode: 'db:inventory:list' } }, { id: 'DB00000000000000000000000000005', name: 'DbWeighing', path: 'weighing', component: '/db/weighing/index', meta: { title: '地磅单管理', keepAlive: true, menuCode: 'db:weighing:list' } }, ] }, // ────────────────────────────────────────────── // 5. 工作流管理 // ────────────────────────────────────────────── { id: 'WKF00000000000000000000000000001', name: 'Workflow', path: '/workflow', component: '/index/index', meta: { title: '工作流管理', icon: 'workflow', keepAlive: false, roles: ['admin'] }, children: [ { id: '10000000000000000000000000000wf01', name: 'WorkflowProcess', path: 'process', component: '/system/workflow/process/index', meta: { title: '流程配置', keepAlive: true, icon: 'workflow', menuCode: 'workflow:process' } }, { id: '10000000000000000000000000000wf02', name: 'WorkflowPending', path: 'pending', component: '/system/workflow/task-pending/index', meta: { title: '待办中心', keepAlive: true, menuCode: 'workflow:pending' } }, { id: '10000000000000000000000000000wf03', name: 'WorkflowCompleted', path: 'completed', component: '/system/workflow/task-completed/index', meta: { title: '已办中心', keepAlive: true, menuCode: 'workflow:completed' } }, { id: '10000000000000000000000000000wf05', name: 'WorkflowMyApplications', path: 'my-applications', component: '/system/workflow/my-applications/index', meta: { title: '我的申请', keepAlive: true, menuCode: 'workflow:myApplications' } }, { id: '10000000000000000000000000000wf04', name: 'LeaveRequest', path: 'leave', component: '/system/leave/index', meta: { title: '请假申请', keepAlive: true, menuCode: 'workflow:leave' } } ] }, // ────────────────────────────────────────────── // 6. 系统管理 // ────────────────────────────────────────────── { id: 'SYSM000000000000000000000000000001', name: 'SystemManage', path: '/system', component: '/index/index', meta: { title: '系统管理', icon: 'ri:settings-3-line', keepAlive: false, roles: ['admin'] }, children: [ { id: '101', name: 'Tenant', path: 'tenant', component: '/system/tenant/index', meta: { title: '租户管理', keepAlive: true, menuCode: 'system:tenant:list' } }, { id: '102', name: 'Dict', path: 'dict', component: '/system/dict/index', meta: { title: '字典管理', keepAlive: true, menuCode: 'system:dict:list' } }, { id: '106', name: 'Menu', path: 'menu', component: '/system/menu/index', meta: { title: '菜单管理', keepAlive: true, menuCode: 'system:menu:list' } }, { id: '103', name: 'Dept', path: 'dept', component: '/system/dept/index', meta: { title: '组织管理', keepAlive: true, menuCode: 'system:dept:list' } }, { id: '105', name: 'Role', path: 'role', component: '/system/role/index', meta: { title: '角色管理', keepAlive: true, menuCode: 'system:role:list' } }, { id: '104', name: 'User', path: 'user', component: '/system/user/index', meta: { title: '用户管理', keepAlive: true, menuCode: 'system:user:list' } }, { id: '108', name: 'Post', path: 'post', component: '/system/post/index', meta: { title: '职位管理', keepAlive: true, menuCode: 'system:post:list' } }, { id: 'SYS_OPERLOG', name: 'SystemOperlog', path: 'operlog', component: '/system/operlog/index', meta: { title: '操作日志', keepAlive: true, menuCode: 'system:operlog:list' } }, { id: '10000000000000000000000000000008', name: 'UserDetail', path: 'user/detail', component: '/system/user/detail', meta: { title: '用户详情', isHide: true, keepAlive: true } } ] } ]