Files
one-pipe-system/src/router/routes/asyncRoutes.ts
luo 17d2eeebc5
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 6m55s
fix: 回调配置, 调整信用位置, 套餐
2026-07-29 18:20:42 +08:00

1032 lines
26 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { RoutesAlias } from '../routesAlias'
import { AppRouteRecord } from '@/types/router'
import { BULK_PURCHASE_PERMISSIONS } from '@/config/constants/bulkPurchase'
import { JULY_PERMISSIONS } from '@/config/constants/julyIteration'
/**
* 菜单列表、异步路由
*
* 支持两种模式:
* 1. 前端静态配置 - 直接使用本文件中定义的路由配置
* 2. 后端动态配置 - 后端返回菜单数据,前端解析生成路由
*
* 菜单标题title:
* 可以是 i18n 的 key也可以是字符串比如'用户列表'
*/
export const asyncRoutes: AppRouteRecord[] = [
// 仪表台
{
name: 'Dashboard',
path: '/dashboard',
component: RoutesAlias.Home,
meta: {
title: 'menus.dashboard.title',
icon: ''
},
children: [
{
path: 'console',
name: 'Console',
component: RoutesAlias.Dashboard,
meta: {
title: 'menus.dashboard.console',
keepAlive: false,
fixedTab: true
}
},
{
path: 'analysis',
name: 'Analysis',
component: RoutesAlias.Analysis,
meta: {
title: 'menus.dashboard.analysis',
keepAlive: false
}
},
{
path: 'ecommerce',
name: 'Ecommerce',
component: RoutesAlias.Ecommerce,
meta: {
title: 'menus.dashboard.ecommerce',
keepAlive: false
}
}
]
},
// 系统管理
{
path: '/system',
name: 'System',
component: RoutesAlias.Home,
meta: {
title: 'menus.system.title',
icon: '',
roles: ['R_SUPER', 'R_ADMIN']
},
children: [
{
path: 'role',
name: 'Role',
component: RoutesAlias.Role,
meta: {
title: 'menus.system.role',
keepAlive: true,
roles: ['R_SUPER']
}
},
{
path: 'role/detail/:id',
name: 'RoleDetail',
component: RoutesAlias.RoleDetail,
meta: {
title: '角色详情',
permissions: ['role:detail'],
isHide: true,
keepAlive: false,
roles: ['R_SUPER']
}
},
{
path: 'permission',
name: 'PermissionManagement',
component: RoutesAlias.Permission,
meta: {
title: 'menus.system.permission',
keepAlive: true,
roles: ['R_SUPER']
}
},
{
path: 'carrier-management',
name: 'CarrierManagement',
component: RoutesAlias.CarrierManagement,
meta: {
title: 'menus.system.carrierManagement',
keepAlive: true
}
},
{
path: 'user-center',
name: 'UserCenter',
component: RoutesAlias.UserCenter,
meta: {
title: 'menus.system.userCenter',
isHide: true,
keepAlive: true,
isHideTab: true
}
}
]
},
// 套餐管理
{
path: '/package-management',
name: 'PackageManagement',
component: RoutesAlias.Home,
meta: {
title: 'menus.packageManagement.title',
icon: ''
},
children: [
// 套餐系列
{
path: 'package-series',
name: 'PackageSeries',
component: RoutesAlias.PackageSeries,
meta: {
title: 'menus.packageManagement.packageSeries',
keepAlive: true
}
},
// 套餐系列详情
{
path: 'package-series/detail/:id',
name: 'PackageSeriesDetail',
component: RoutesAlias.PackageSeriesDetail,
meta: {
title: 'menus.packageManagement.packageSeriesDetail',
isHide: true,
keepAlive: false
}
},
// 套餐列表
{
path: 'package-list',
name: 'PackageList',
component: RoutesAlias.PackageList,
meta: {
title: 'menus.packageManagement.packageList',
keepAlive: true
}
},
// 套餐列表详情
{
path: 'package-list/detail/:id',
name: 'PackageDetail',
component: RoutesAlias.PackageDetail,
meta: {
title: 'menus.packageManagement.packageDetail',
isHide: true,
keepAlive: false
}
},
// 代理系列授权
{
path: 'series-grants',
name: 'SeriesGrants',
component: RoutesAlias.SeriesGrants,
meta: {
title: 'menus.packageManagement.seriesGrants',
keepAlive: true
}
},
// 系列授权详情
{
path: 'series-grants/detail/:id',
name: 'SeriesGrantsDetail',
component: RoutesAlias.SeriesGrantsDetail,
meta: {
title: 'menus.packageManagement.seriesGrantsDetail',
isHide: true,
keepAlive: false
}
},
// 系列授权套餐列表
{
path: 'series-grants/packages/:id',
name: 'SeriesGrantPackages',
component: RoutesAlias.SeriesGrantPackages,
meta: {
title: 'menus.packageManagement.seriesGrantPackages',
isHide: true,
keepAlive: false
}
}
]
},
// 店铺管理
{
path: '/shop-management',
name: 'ShopManagement',
component: RoutesAlias.Home,
meta: {
title: 'menus.shopManagement.title',
icon: ''
},
children: [
// 店铺列表
{
path: 'list',
name: 'Shop',
component: RoutesAlias.Shop,
meta: {
title: 'menus.shopManagement.shopList',
keepAlive: true
}
},
// 店铺详情
{
path: 'detail/:id',
name: 'ShopDetail',
component: RoutesAlias.ShopDetail,
meta: {
title: '店铺详情',
isHide: true,
keepAlive: false
}
}
]
},
// 账号管理
{
path: '/account-management',
name: 'AccountManagement',
component: RoutesAlias.Home,
meta: {
title: 'menus.accountManagement.title',
icon: ''
},
children: [
// 账号列表
{
path: 'account',
name: 'Account',
component: RoutesAlias.Account,
meta: {
title: 'menus.accountManagement.account',
keepAlive: true
}
},
// 企业客户
{
path: 'enterprise-customer',
name: 'EnterpriseCustomer',
component: RoutesAlias.EnterpriseCustomer,
meta: {
title: 'menus.accountManagement.enterpriseCustomer',
keepAlive: true
}
},
//企业客户账号列表和店铺账号列表共用
{
path: 'enterprise-customer/customer-accounts/:id',
name: 'EnterpriseCustomerAccounts',
component: RoutesAlias.EnterpriseCustomerAccounts,
meta: {
title: 'menus.accountManagement.enterpriseCustomerAccounts',
isHide: true,
keepAlive: false
}
}
]
},
// 资产管理
{
path: '/asset-management',
name: 'AssetManagement',
component: RoutesAlias.Home,
meta: {
title: 'menus.assetManagement.title',
icon: ''
},
children: [
// 资产信息
{
path: 'asset-information',
name: 'AssetInformation',
component: RoutesAlias.AssetInformation,
meta: {
title: 'menus.assetManagement.assetInformation',
keepAlive: true
}
},
// 临期资产
{
path: 'expiring-assets',
name: 'ExpiringAssets',
component: RoutesAlias.ExpiringAssets,
meta: {
title: '临期资产',
keepAlive: true
}
},
// IoT卡管理
{
path: 'iot-card-management',
name: 'StandaloneCardList',
component: RoutesAlias.StandaloneCardList,
meta: {
title: 'menus.assetManagement.standaloneCardList',
keepAlive: true
}
},
// 设备管理
{
path: 'devices',
name: 'DeviceList',
component: RoutesAlias.DeviceList,
meta: {
title: 'menus.assetManagement.devices',
keepAlive: true
}
},
// 换货管理
{
path: 'exchange-management',
name: 'ExchangeManagement',
component: RoutesAlias.ExchangeManagement,
meta: {
title: 'menus.assetManagement.exchangeManagement',
keepAlive: true
}
},
// 换货详情
{
path: 'exchange-management/detail/:id',
name: 'ExchangeDetail',
component: RoutesAlias.ExchangeDetail,
meta: {
title: 'menus.assetManagement.exchangeDetail',
isHide: true,
keepAlive: false
}
},
// 记录管理
{
path: 'record-management',
name: 'RecordsManagement',
component: '',
meta: {
title: 'menus.assetManagement.recordsManagement',
keepAlive: true
},
children: [
// 资产分配
{
path: 'asset-assign',
name: 'AssetAssign',
component: RoutesAlias.AssetAssign,
meta: {
title: 'menus.assetManagement.assetAssign',
keepAlive: true
}
},
// 授权记录
{
path: 'authorization-records',
name: 'AuthorizationRecords',
component: RoutesAlias.AuthorizationRecords,
meta: {
title: 'menus.assetManagement.authorizationRecords',
keepAlive: true
}
}
]
},
// 分配记录详情(放在 asset-management 层级)
{
path: 'record-management/asset-assign/detail/:id',
name: 'AssetAssignDetail',
component: RoutesAlias.AssetAssignDetail,
meta: {
title: 'menus.assetManagement.assetAssignDetail',
isHide: true,
keepAlive: false
}
},
// 任务管理
{
path: 'task-management',
name: 'TaskManagement',
component: '',
meta: {
title: 'menus.assetManagement.taskManagement',
keepAlive: true
},
children: [
// IoT卡任务
{
path: 'iot-card-task',
name: 'IotCardTask',
component: RoutesAlias.IotCardTask,
meta: {
title: 'menus.assetManagement.iotCardTask',
keepAlive: true
}
},
// 设备任务
{
path: 'device-task',
name: 'DeviceTask',
component: RoutesAlias.DeviceTask,
meta: {
title: 'menus.assetManagement.deviceTask',
keepAlive: true
}
},
// 设备批量任务
{
path: 'device-batch-allocation',
name: 'DeviceBatchAllocation',
component: RoutesAlias.DeviceBatchAllocation,
meta: {
title: 'menus.assetManagement.deviceBatchAllocation',
permissions: [JULY_PERMISSIONS.deviceAllocation.page],
keepAlive: true
}
},
// 批量订购套餐任务
{
path: 'bulk-purchase',
name: 'BulkPurchase',
component: RoutesAlias.BulkPurchase,
meta: {
title: 'menus.assetManagement.bulkPurchase',
permissions: [BULK_PURCHASE_PERMISSIONS.page],
keepAlive: true
}
},
// 订单套餐批量作废任务
{
path: 'order-package-invalidate-task',
name: 'OrderPackageInvalidateTask',
component: RoutesAlias.OrderPackageInvalidateTask,
meta: {
title: 'menus.assetManagement.orderPackageInvalidateTask',
keepAlive: true
}
}
]
},
// 订单套餐作废任务详情
{
path: 'task-management/order-package-invalidate-task/detail',
name: 'OrderPackageInvalidateTaskDetail',
component: RoutesAlias.OrderPackageInvalidateTaskDetail,
meta: {
title: 'menus.assetManagement.orderPackageInvalidateTaskDetail',
isHide: true,
keepAlive: false
}
},
// 任务详情(放在 asset-management 层级)
{
path: 'task-management/task-detail',
name: 'TaskDetail',
component: RoutesAlias.TaskDetail,
meta: {
title: 'menus.assetManagement.taskDetail',
isHide: true,
keepAlive: false
}
},
// 批量订购套餐任务详情
{
path: 'task-management/bulk-purchase/detail/:id',
name: 'BulkPurchaseDetail',
component: RoutesAlias.BulkPurchaseDetail,
meta: {
title: 'menus.assetManagement.bulkPurchaseDetail',
isHide: true,
permissions: [BULK_PURCHASE_PERMISSIONS.detail],
keepAlive: false
}
},
// 导出管理
{
path: 'export-task-management',
name: 'ExportTaskManagement',
component: '',
meta: {
title: 'menus.assetManagement.exportTaskManagement',
keepAlive: true
},
children: [
{
path: 'export-device',
name: 'ExportDeviceTaskList',
component: RoutesAlias.ExportDeviceTaskList,
meta: {
title: 'menus.assetManagement.exportDevice',
exportTaskScene: 'device',
keepAlive: true
}
},
{
path: 'export-iot-card',
name: 'ExportIotCardTaskList',
component: RoutesAlias.ExportIotCardTaskList,
meta: {
title: 'menus.assetManagement.exportIotCard',
exportTaskScene: 'iot_card',
keepAlive: true
}
},
{
path: 'export-order',
name: 'ExportOrderTaskList',
component: RoutesAlias.ExportOrderTaskList,
meta: {
title: 'menus.assetManagement.exportOrder',
exportTaskScene: 'order',
keepAlive: true
}
},
{
path: 'export-package',
name: 'ExportPackageTaskList',
component: RoutesAlias.ExportPackageTaskList,
meta: {
title: 'menus.assetManagement.exportPackage',
exportTaskScene: 'package',
keepAlive: true
}
},
{
path: 'export-agent-wallet-transaction',
name: 'ExportAgentWalletTransactionTaskList',
component: RoutesAlias.ExportAgentWalletTransactionTaskList,
meta: {
title: 'menus.assetManagement.exportAgentWalletTransaction',
exportTaskScene: 'agent_wallet_transaction',
keepAlive: true
}
},
{
path: 'export-refund',
name: 'ExportRefundTaskList',
component: RoutesAlias.ExportRefundTaskList,
meta: {
title: 'menus.assetManagement.exportRefund',
exportTaskScene: 'refund',
keepAlive: true
}
},
{
path: 'export-agent-recharge',
name: 'ExportAgentRechargeTaskList',
component: RoutesAlias.ExportAgentRechargeTaskList,
meta: {
title: 'menus.assetManagement.exportAgentRecharge',
exportTaskScene: 'agent_recharge',
keepAlive: true
}
},
{
path: 'export-exchange',
name: 'ExportExchangeTaskList',
component: RoutesAlias.ExportExchangeTaskList,
meta: {
title: 'menus.assetManagement.exportExchange',
exportTaskScene: 'exchange',
keepAlive: true
}
},
{
path: 'export-task-detail',
name: 'ExportTaskDetail',
component: RoutesAlias.ExportTaskDetail,
meta: {
title: 'menus.assetManagement.exportTaskDetail',
isHide: true,
keepAlive: false
}
}
]
}
]
},
// 订单管理
{
path: '/order-management',
name: 'OrderManagement',
component: RoutesAlias.Home,
meta: {
title: 'menus.orderManagement.title',
icon: ''
},
children: [
// 订单列表
{
path: 'order-list',
name: 'OrderList',
component: RoutesAlias.OrderList,
meta: {
title: 'menus.orderManagement.orderList',
keepAlive: true
}
},
// 订单详情
{
path: 'order-list/detail/:id',
name: 'OrderDetail',
component: RoutesAlias.OrderDetail,
meta: {
title: 'menus.orderManagement.orderDetail',
isHide: true,
keepAlive: false
}
}
]
},
// 财务管理
{
path: '/finance',
name: 'FinanceManagement',
component: RoutesAlias.Home,
meta: {
title: 'menus.financialManagement.title',
icon: ''
},
children: [
// 代理充值
{
path: 'agent-recharge',
name: 'AgentRecharge',
component: RoutesAlias.AgentRecharge,
meta: {
title: 'menus.financialManagement.agentRecharge',
keepAlive: true
}
},
// 充值详情
{
path: 'agent-recharge/detail/:id',
name: 'AgentRechargeDetailRoute',
component: RoutesAlias.AgentRechargeDetail,
meta: {
title: 'menus.financialManagement.agentRechargeDetail',
isHide: true,
keepAlive: false
}
},
// 退款管理
{
path: 'refund',
name: 'RefundManagement',
component: RoutesAlias.RefundManagement,
meta: {
title: 'menus.financialManagement.refundManagement',
keepAlive: true
}
},
// 退款详情
{
path: 'refund/detail/:id',
name: 'RefundDetailRoute',
component: RoutesAlias.RefundDetail,
meta: {
title: 'menus.financialManagement.refundDetail',
isHide: true,
keepAlive: false
}
}
]
},
// 佣金管理
{
path: '/commission',
name: 'CommissionManagement',
component: RoutesAlias.Home,
meta: {
title: 'menus.commission.title',
icon: ''
},
children: [
// 提现审批
{
path: 'withdrawal-approval',
name: 'WithdrawalApproval',
component: RoutesAlias.WithdrawalApproval,
meta: {
title: 'menus.commission.withdrawal',
keepAlive: true,
roles: ['R_SUPER', 'R_ADMIN']
}
},
// 我的佣金
{
path: 'my-commission',
name: 'MyCommission',
component: RoutesAlias.MyCommission,
meta: {
title: 'menus.commission.myCommission',
keepAlive: true,
roles: ['R_AGENT']
}
},
// 代理商资金概况
{
path: 'agent-fund-overview',
name: 'AgentFundOverview',
component: RoutesAlias.AgentFundOverviewComponent,
meta: {
title: 'menus.commission.agentCommission',
keepAlive: true,
roles: ['R_SUPER', 'R_ADMIN']
}
}
]
},
// 设置管理
{
path: '/settings',
name: 'Settings',
component: RoutesAlias.Home,
meta: {
title: 'menus.settings.title',
icon: ''
},
children: [
// 支付设置
{
path: 'payment-settings',
name: 'PaymentSettings',
component: RoutesAlias.PaymentSettings,
meta: {
title: 'menus.settings.paymentSettings',
keepAlive: true
}
},
// 提现配置
{
path: 'withdrawal-settings',
name: 'WithdrawalSettings',
component: RoutesAlias.WithdrawalSettings,
meta: {
title: 'menus.settings.withdrawalSettings',
keepAlive: true,
roles: ['R_SUPER', 'R_ADMIN']
}
},
// 支付设置详情
{
path: 'payment-settings/detail/:id',
name: 'PaymentSettingsDetailRoute',
component: RoutesAlias.PaymentSettingsDetail,
meta: {
title: 'menus.settings.detailsOfPaymentConfiguration',
isHide: true,
keepAlive: false
}
},
// 操作密码设置
{
path: 'operation-password',
name: 'OperationPasswordSettings',
component: RoutesAlias.OperationPasswordSettings,
meta: {
title: 'menus.settings.passwordSettings',
keepAlive: true,
roles: ['R_SUPER']
}
},
// 系统配置
{
path: 'system-configs',
name: 'SystemConfigs',
component: RoutesAlias.SystemConfigs,
meta: {
title: '系统配置',
keepAlive: true,
roles: ['R_SUPER', 'R_ADMIN']
}
},
{
path: 'wecom',
name: 'WecomSettings',
redirect: RoutesAlias.WecomApplications,
meta: {
title: '企业微信配置',
isHide: true,
roles: ['R_SUPER', 'R_ADMIN']
}
},
// 企业微信应用
{
path: 'wecom/applications',
name: 'WecomApplications',
component: RoutesAlias.WecomApplications,
meta: {
title: '企微应用管理',
keepAlive: true,
roles: ['R_SUPER', 'R_ADMIN']
}
},
// 企业微信成员及默认发起人
{
path: 'wecom/members',
name: 'WecomMembers',
component: RoutesAlias.WecomMembers,
meta: {
title: '企微成员管理',
keepAlive: true,
roles: ['R_SUPER', 'R_ADMIN']
}
},
// 企业微信审批场景
{
path: 'wecom/scenes',
name: 'WecomScenes',
component: RoutesAlias.WecomScenes,
meta: {
title: '企微审批场景',
keepAlive: true,
roles: ['R_SUPER', 'R_ADMIN']
}
}
]
},
// 轮询管理
{
path: '/polling-management',
name: 'PollingManagement',
component: RoutesAlias.Home,
meta: {
title: '轮询管理',
icon: ''
},
children: [
// 数据清理
{
path: 'data-cleanup',
name: 'DataCleanup',
component: RoutesAlias.DataCleanup,
meta: {
title: '数据清理',
keepAlive: true
}
},
// 告警规则
{
path: 'alert-rules',
name: 'AlertRules',
component: RoutesAlias.AlertRules,
meta: {
title: '告警规则',
keepAlive: true
}
},
// 告警历史
{
path: 'alert-history',
name: 'AlertHistory',
component: RoutesAlias.AlertHistory,
meta: {
title: '告警历史',
keepAlive: true
}
},
// 并发控制
{
path: 'concurrency',
name: 'PollingConcurrency',
component: RoutesAlias.PollingConcurrency,
meta: {
title: '并发控制',
keepAlive: true
}
},
// 轮询配置
{
path: 'config',
name: 'PollingConfig',
component: RoutesAlias.PollingConfig,
meta: {
title: '轮询配置',
keepAlive: true
}
},
// 手动触发
{
path: 'manual-trigger',
name: 'ManualTrigger',
component: RoutesAlias.ManualTrigger,
meta: {
title: '手动触发',
keepAlive: true
}
},
// 轮询监控
{
path: 'monitor',
name: 'PollingMonitor',
component: RoutesAlias.PollingMonitor,
meta: {
title: '轮询监控',
keepAlive: true
}
}
]
}
// 组件中心
// {
// path: '/widgets',
// name: 'Widgets',
// component: RoutesAlias.Home,
// meta: {
// title: 'menus.widgets.title',
// icon: ''
// },
// children: [
// {
// path: 'wang-editor',
// name: 'WangEditor',
// component: RoutesAlias.WangEditor,
// meta: {
// title: 'menus.widgets.wangEditor',
// keepAlive: true
// }
// },
// {
// path: 'watermark',
// name: 'Watermark',
// component: RoutesAlias.Watermark,
// meta: {
// title: 'menus.widgets.watermark',
// keepAlive: true
// }
// },
// {
// path: 'context-menu',
// name: 'ContextMenu',
// component: RoutesAlias.ContextMenu,
// meta: {
// title: 'menus.widgets.contextMenu',
// keepAlive: true
// }
// },
// {
// path: 'qrcode',
// name: 'Qrcode',
// component: RoutesAlias.Qrcode,
// meta: {
// title: 'menus.widgets.qrcode',
// keepAlive: true
// }
// },
// {
// path: 'drag',
// name: 'Drag',
// component: RoutesAlias.Drag,
// meta: {
// title: 'menus.widgets.drag',
// keepAlive: true
// }
// }
// ]
// },
// 模板中心
// {
// path: '/template',
// name: 'Template',
// component: RoutesAlias.Home,
// meta: {
// title: 'menus.template.title',
// icon: ''
// },
// children: [
// {
// path: 'charts',
// name: 'Charts',
// component: RoutesAlias.Charts,
// meta: {
// title: 'menus.template.charts',
// keepAlive: false
// }
// },
// {
// path: 'map',
// name: 'Map',
// component: RoutesAlias.Map,
// meta: {
// title: 'menus.template.map',
// keepAlive: true
// }
// },
// {
// path: 'calendar',
// name: 'Calendar',
// component: RoutesAlias.Calendar,
// meta: {
// title: 'menus.template.calendar',
// keepAlive: true
// }
// }
// ]
// },
]