1418 lines
38 KiB
TypeScript
1418 lines
38 KiB
TypeScript
import { RoutesAlias } from '../routesAlias'
|
||
import { AppRouteRecord } from '@/types/router'
|
||
import { BULK_PURCHASE_PERMISSIONS } from '@/config/constants/bulkPurchase'
|
||
import { JULY_PERMISSIONS } from '@/config/constants/julyIteration'
|
||
import { AUDIT_PERMISSIONS } from '@/config/constants/audit'
|
||
import { AUGUST_PERMISSIONS } from '@/config/constants/augustIteration'
|
||
import { PAYMENT_MERCHANT_POOL_PERMISSIONS } from '@/config/constants/paymentMerchantPools'
|
||
import {
|
||
BUSINESS_USER_GROUP_PERMISSIONS,
|
||
SHOP_BUSINESS_OWNER_PERMISSIONS
|
||
} from '@/config/constants'
|
||
|
||
/**
|
||
* 菜单列表、异步路由
|
||
*
|
||
* 支持两种模式:
|
||
* 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: 'traffic-alert-rules',
|
||
name: 'TrafficAlertRules',
|
||
component: RoutesAlias.TrafficAlertRules,
|
||
meta: {
|
||
title: 'menus.packageManagement.trafficAlertRules',
|
||
keepAlive: true
|
||
}
|
||
},
|
||
// 真流量达量预警记录
|
||
{
|
||
path: 'traffic-alerts',
|
||
name: 'TrafficAlerts',
|
||
component: RoutesAlias.TrafficAlerts,
|
||
meta: {
|
||
title: 'menus.packageManagement.trafficAlerts',
|
||
keepAlive: true
|
||
}
|
||
},
|
||
// 真流量达量预警记录详情
|
||
{
|
||
path: 'traffic-alerts/detail/:id',
|
||
name: 'TrafficAlertDetail',
|
||
component: RoutesAlias.TrafficAlertDetail,
|
||
meta: {
|
||
title: 'menus.packageManagement.trafficAlertDetail',
|
||
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: 'business-user-groups',
|
||
name: 'BusinessUserGroups',
|
||
component: RoutesAlias.BusinessUserGroups,
|
||
meta: {
|
||
title: 'menus.shopManagement.businessUserGroups',
|
||
keepAlive: true,
|
||
roles: ['R_SUPER', 'R_ADMIN'],
|
||
permissions: [BUSINESS_USER_GROUP_PERMISSIONS.page]
|
||
}
|
||
},
|
||
// 业务负责人导入
|
||
{
|
||
path: 'business-owner-import',
|
||
name: 'BusinessOwnerImport',
|
||
component: RoutesAlias.BusinessOwnerImport,
|
||
meta: {
|
||
title: 'menus.shopManagement.businessOwnerImport',
|
||
keepAlive: true,
|
||
roles: ['R_SUPER', 'R_ADMIN'],
|
||
permissions: [SHOP_BUSINESS_OWNER_PERMISSIONS.importPage]
|
||
}
|
||
}
|
||
]
|
||
},
|
||
|
||
// 账号管理
|
||
{
|
||
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: 'phone-asset-association',
|
||
name: 'PhoneAssetAssociation',
|
||
component: RoutesAlias.PhoneAssetAssociation,
|
||
meta: {
|
||
title: 'menus.assetManagement.phoneAssetAssociation',
|
||
permissions: [AUGUST_PERMISSIONS.phoneAssetAssociation.list],
|
||
keepAlive: true
|
||
}
|
||
},
|
||
// 记录管理
|
||
{
|
||
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: 'phone-asset-unbind-import-tasks',
|
||
name: 'PhoneAssetUnbindImportTasks',
|
||
component: RoutesAlias.PhoneAssetUnbindImportTasks,
|
||
meta: {
|
||
title: 'menus.assetManagement.phoneAssetUnbindImportTasks',
|
||
permissions: [AUGUST_PERMISSIONS.phoneAssetAssociation.unbindImportPage],
|
||
keepAlive: true
|
||
}
|
||
},
|
||
// 解绑导入任务详情
|
||
{
|
||
path: 'phone-asset-unbind-import-tasks/detail',
|
||
name: 'PhoneAssetUnbindImportTaskDetail',
|
||
component: RoutesAlias.PhoneAssetUnbindImportTaskDetail,
|
||
meta: {
|
||
title: 'menus.assetManagement.phoneAssetUnbindImportTaskDetail',
|
||
permissions: [AUGUST_PERMISSIONS.phoneAssetAssociation.unbindImportDetail],
|
||
isHide: true,
|
||
keepAlive: false
|
||
}
|
||
}
|
||
]
|
||
},
|
||
// 订单套餐作废任务详情
|
||
{
|
||
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-commission-record',
|
||
name: 'ExportCommissionRecordTaskList',
|
||
component: RoutesAlias.ExportCommissionRecordTaskList,
|
||
meta: {
|
||
title: 'menus.assetManagement.exportCommissionRecord',
|
||
exportTaskScene: 'commission_record',
|
||
keepAlive: true
|
||
}
|
||
},
|
||
{
|
||
path: 'export-package-traffic-alert',
|
||
name: 'ExportPackageTrafficAlertTaskList',
|
||
component: RoutesAlias.ExportPackageTrafficAlertTaskList,
|
||
meta: {
|
||
title: 'menus.assetManagement.exportPackageTrafficAlert',
|
||
exportTaskScene: 'package_traffic_alert',
|
||
keepAlive: true
|
||
}
|
||
},
|
||
{
|
||
path: 'export-expiring-asset',
|
||
name: 'ExportExpiringAssetTaskList',
|
||
component: RoutesAlias.ExportExpiringAssetTaskList,
|
||
meta: {
|
||
title: 'menus.assetManagement.exportExpiringAsset',
|
||
exportTaskScene: 'expiring_asset',
|
||
keepAlive: true
|
||
}
|
||
},
|
||
{
|
||
path: 'export-operations-activation',
|
||
name: 'ExportOperationsActivationTaskList',
|
||
component: RoutesAlias.ExportOperationsActivationTaskList,
|
||
meta: {
|
||
title: 'menus.assetManagement.exportOperationsActivation',
|
||
exportTaskScene: 'operations_activation',
|
||
keepAlive: true
|
||
}
|
||
},
|
||
{
|
||
path: 'export-operations-renewal',
|
||
name: 'ExportOperationsRenewalTaskList',
|
||
component: RoutesAlias.ExportOperationsRenewalTaskList,
|
||
meta: {
|
||
title: 'menus.assetManagement.exportOperationsRenewal',
|
||
exportTaskScene: 'operations_renewal',
|
||
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: 'employee-collection/bills',
|
||
name: 'EmployeeCollectionBills',
|
||
component: RoutesAlias.EmployeeCollectionBills,
|
||
meta: {
|
||
title: 'menus.financialManagement.employeeCollectionBills',
|
||
keepAlive: true,
|
||
permissions: [AUGUST_PERMISSIONS.employeeCollection.billPage]
|
||
}
|
||
},
|
||
// 员工代收款账单详情
|
||
{
|
||
path: 'employee-collection/bills/detail/:id',
|
||
name: 'EmployeeCollectionBillDetailRoute',
|
||
component: RoutesAlias.EmployeeCollectionBillDetail,
|
||
meta: {
|
||
title: 'menus.financialManagement.employeeCollectionBillDetail',
|
||
isHide: true,
|
||
keepAlive: false,
|
||
permissions: [AUGUST_PERMISSIONS.employeeCollection.billDetail]
|
||
}
|
||
},
|
||
// 核销申请
|
||
{
|
||
path: 'employee-collection/applications',
|
||
name: 'EmployeeCollectionApplications',
|
||
component: RoutesAlias.EmployeeCollectionApplications,
|
||
meta: {
|
||
title: 'menus.financialManagement.employeeCollectionApplications',
|
||
keepAlive: true,
|
||
permissions: [AUGUST_PERMISSIONS.employeeCollection.applicationPage]
|
||
}
|
||
},
|
||
// 核销申请详情
|
||
{
|
||
path: 'employee-collection/applications/detail/:id',
|
||
name: 'EmployeeCollectionApplicationDetailRoute',
|
||
component: RoutesAlias.EmployeeCollectionApplicationDetail,
|
||
meta: {
|
||
title: 'menus.financialManagement.employeeCollectionApplicationDetail',
|
||
isHide: true,
|
||
keepAlive: false,
|
||
permissions: [AUGUST_PERMISSIONS.employeeCollection.applicationDetail]
|
||
}
|
||
},
|
||
// 收款方式管理(仅超级管理员)
|
||
{
|
||
path: 'employee-collection/payment-methods',
|
||
name: 'EmployeeCollectionPaymentMethods',
|
||
component: RoutesAlias.EmployeeCollectionPaymentMethods,
|
||
meta: {
|
||
title: 'menus.financialManagement.employeeCollectionPaymentMethods',
|
||
keepAlive: true,
|
||
roles: ['R_SUPER'],
|
||
permissions: [AUGUST_PERMISSIONS.employeeCollection.paymentMethodPage]
|
||
}
|
||
},
|
||
// 代理商资金概况
|
||
{
|
||
path: 'agent-fund-overview',
|
||
name: 'AgentFundOverview',
|
||
component: RoutesAlias.AgentFundOverviewComponent,
|
||
meta: {
|
||
title: 'menus.financialManagement.agentFundOverview',
|
||
keepAlive: true,
|
||
roles: ['R_SUPER', 'R_ADMIN']
|
||
}
|
||
}
|
||
]
|
||
},
|
||
|
||
// 审计中心
|
||
{
|
||
path: '/audit',
|
||
name: 'AuditCenter',
|
||
component: RoutesAlias.Home,
|
||
meta: {
|
||
title: '审计中心',
|
||
icon: '',
|
||
permissions: [AUDIT_PERMISSIONS.centerPage]
|
||
},
|
||
children: [
|
||
{
|
||
path: 'events',
|
||
name: 'AuditEvents',
|
||
component: RoutesAlias.AuditEvents,
|
||
meta: {
|
||
title: '审计事件',
|
||
permissions: [AUDIT_PERMISSIONS.eventList],
|
||
keepAlive: true
|
||
}
|
||
},
|
||
{
|
||
path: 'events/:eventId',
|
||
name: 'AuditEventDetail',
|
||
component: RoutesAlias.AuditEventDetail,
|
||
meta: {
|
||
title: '审计事件详情',
|
||
permissions: [AUDIT_PERMISSIONS.eventDetail],
|
||
isHide: true,
|
||
keepAlive: false
|
||
}
|
||
},
|
||
{
|
||
path: 'risks',
|
||
name: 'AuditRisks',
|
||
component: RoutesAlias.AuditRisks,
|
||
meta: {
|
||
title: '风险中心',
|
||
permissions: [AUDIT_PERMISSIONS.riskPage],
|
||
keepAlive: true
|
||
}
|
||
},
|
||
{
|
||
path: 'integrations',
|
||
name: 'AuditIntegrations',
|
||
component: RoutesAlias.AuditIntegrations,
|
||
meta: {
|
||
title: '外部交互',
|
||
permissions: [AUDIT_PERMISSIONS.integrationPage],
|
||
keepAlive: true
|
||
}
|
||
},
|
||
{
|
||
path: 'integrations/:integrationId',
|
||
name: 'AuditIntegrationDetail',
|
||
component: RoutesAlias.AuditIntegrationDetail,
|
||
meta: {
|
||
title: '外部交互详情',
|
||
permissions: [AUDIT_PERMISSIONS.integrationDetail],
|
||
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: '/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-merchant-pools',
|
||
name: 'PaymentMerchantPools',
|
||
component: RoutesAlias.PaymentMerchantPools,
|
||
meta: {
|
||
title: 'menus.settings.paymentMerchantPools',
|
||
keepAlive: true,
|
||
allowedUserTypes: [1, 2]
|
||
}
|
||
},
|
||
// 支付商户详情
|
||
{
|
||
path: 'payment-merchant-pools/detail/:id',
|
||
name: 'PaymentMerchantPoolsDetailRoute',
|
||
component: RoutesAlias.PaymentMerchantPoolsDetail,
|
||
meta: {
|
||
title: 'menus.settings.detailsOfPaymentMerchant',
|
||
isHide: true,
|
||
keepAlive: false,
|
||
allowedUserTypes: [1, 2],
|
||
permissions: [PAYMENT_MERCHANT_POOL_PERMISSIONS.merchantDetail]
|
||
}
|
||
},
|
||
// 商户池详情
|
||
{
|
||
path: 'payment-merchant-pools/pool-detail/:id',
|
||
name: 'PaymentMerchantPoolDetailRoute',
|
||
component: RoutesAlias.PaymentMerchantPoolDetail,
|
||
meta: {
|
||
title: 'menus.settings.detailsOfPaymentMerchantPool',
|
||
isHide: true,
|
||
keepAlive: false,
|
||
allowedUserTypes: [1, 2],
|
||
permissions: [PAYMENT_MERCHANT_POOL_PERMISSIONS.poolDetail]
|
||
}
|
||
},
|
||
// 支付设置详情
|
||
{
|
||
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']
|
||
}
|
||
},
|
||
// H5运营弹窗配置
|
||
{
|
||
path: 'h5-popup-configuration',
|
||
name: 'H5PopupConfigurations',
|
||
component: RoutesAlias.H5PopupConfigurations,
|
||
meta: {
|
||
title: 'menus.settings.h5PopupConfiguration',
|
||
keepAlive: true,
|
||
allowedUserTypes: [1, 2],
|
||
permissions: [AUGUST_PERMISSIONS.h5PopupConfiguration.list]
|
||
}
|
||
},
|
||
// H5运营弹窗配置详情
|
||
{
|
||
path: 'h5-popup-configuration/detail/:id',
|
||
name: 'H5PopupConfigurationDetail',
|
||
component: RoutesAlias.H5PopupConfigurationDetail,
|
||
meta: {
|
||
title: 'menus.settings.h5PopupConfigurationDetail',
|
||
isHide: true,
|
||
keepAlive: false,
|
||
allowedUserTypes: [1, 2],
|
||
permissions: [AUGUST_PERMISSIONS.h5PopupConfiguration.list]
|
||
}
|
||
},
|
||
// 资产钱包自动续费配置
|
||
{
|
||
path: 'asset-wallet-auto-renewal',
|
||
name: 'AssetWalletAutoRenewal',
|
||
component: RoutesAlias.AssetWalletAutoRenewal,
|
||
meta: {
|
||
title: 'menus.settings.assetWalletAutoRenewal',
|
||
keepAlive: true,
|
||
allowedUserTypes: [1, 2]
|
||
}
|
||
}
|
||
]
|
||
},
|
||
|
||
// 轮询管理
|
||
{
|
||
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: 'priority-queue',
|
||
name: 'PollingPriorityQueue',
|
||
component: RoutesAlias.PollingPriorityQueue,
|
||
meta: {
|
||
title: '优先队列',
|
||
keepAlive: true
|
||
}
|
||
}
|
||
]
|
||
},
|
||
|
||
// 运营报表
|
||
{
|
||
path: '/operations-reports',
|
||
name: 'OperationsReports',
|
||
component: RoutesAlias.Home,
|
||
meta: {
|
||
title: '运营报表',
|
||
icon: ''
|
||
},
|
||
children: [
|
||
{
|
||
path: 'activation',
|
||
name: 'OperationsActivationReport',
|
||
component: RoutesAlias.OperationsActivationReport,
|
||
meta: {
|
||
title: '设备激活报表',
|
||
keepAlive: true,
|
||
allowedUserTypes: [1, 2]
|
||
}
|
||
},
|
||
{
|
||
path: 'renewal',
|
||
name: 'OperationsRenewalReport',
|
||
component: RoutesAlias.OperationsRenewalReport,
|
||
meta: {
|
||
title: '套餐续费报表',
|
||
keepAlive: true,
|
||
allowedUserTypes: [1, 2]
|
||
}
|
||
}
|
||
]
|
||
}
|
||
|
||
// 组件中心
|
||
// {
|
||
// 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
|
||
// }
|
||
// }
|
||
// ]
|
||
// },
|
||
]
|