refactor platform admin from backend contract
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/content', name: 'content', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.content', requiresAuth: true, icon: 'icon-apps', order: 17 },
|
||||
children: [
|
||||
{ path: 'cms-content', name: 'content-cms-content', component: () => import('@/views/content/cms_content/ListPage.vue'), meta: { locale: 'menu.platform.content.cms_content', requiresAuth: true, menuCode: 'content' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
@@ -1,10 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/customer_service', name: 'customer_service', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.customer_service', requiresAuth: true, icon: 'icon-apps', order: 19 },
|
||||
children: [
|
||||
{ path: 'cs-ticket', name: 'customer_service-cs-ticket', component: () => import('@/views/customer_service/cs_ticket/ListPage.vue'), meta: { locale: 'menu.platform.customer_service.cs_ticket', requiresAuth: true, menuCode: 'customer_service' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
@@ -1,14 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/delivery', name: 'delivery', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.delivery', requiresAuth: true, icon: 'icon-apps', order: 11 },
|
||||
children: [
|
||||
{ path: 'delivery-basic', name: 'delivery-delivery-basic', component: () => import('@/views/delivery/delivery_basic/ListPage.vue'), meta: { locale: 'menu.platform.delivery.delivery_basic', requiresAuth: true, menuCode: 'delivery' } },
|
||||
{ path: 'delivery-account', name: 'delivery-delivery-account', component: () => import('@/views/delivery/delivery_account/ListPage.vue'), meta: { locale: 'menu.platform.delivery.delivery_account', requiresAuth: true, menuCode: 'delivery' } },
|
||||
{ path: 'delivery-task', name: 'delivery-delivery-task', component: () => import('@/views/delivery/delivery_task/ListPage.vue'), meta: { locale: 'menu.platform.delivery.delivery_task', requiresAuth: true, menuCode: 'delivery' } },
|
||||
{ path: 'delivery-track', name: 'delivery-delivery-track', component: () => import('@/views/delivery/delivery_track/ListPage.vue'), meta: { locale: 'menu.platform.delivery.delivery_track', requiresAuth: true, menuCode: 'delivery' } },
|
||||
{ path: 'delivery-track-point', name: 'delivery-delivery-track-point', component: () => import('@/views/delivery/delivery_track_point/ListPage.vue'), meta: { locale: 'menu.platform.delivery.delivery_track_point', requiresAuth: true, menuCode: 'delivery' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
@@ -1,12 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/device', name: 'device', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.device', requiresAuth: true, icon: 'icon-apps', order: 14 },
|
||||
children: [
|
||||
{ path: 'dev-smart-cylinder-valve', name: 'device-dev-smart-cylinder-valve', component: () => import('@/views/device/dev_smart_cylinder_valve/ListPage.vue'), meta: { locale: 'menu.platform.device.dev_smart_cylinder_valve', requiresAuth: true, menuCode: 'device' } },
|
||||
{ path: 'dev-device-binding', name: 'device-dev-device-binding', component: () => import('@/views/device/dev_device_binding/ListPage.vue'), meta: { locale: 'menu.platform.device.dev_device_binding', requiresAuth: true, menuCode: 'device' } },
|
||||
{ path: 'dev-telemetry', name: 'device-dev-telemetry', component: () => import('@/views/device/dev_telemetry/ListPage.vue'), meta: { locale: 'menu.platform.device.dev_telemetry', requiresAuth: true, menuCode: 'device' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
@@ -1,13 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{ path: '/ec', name: 'ec', component: DEFAULT_LAYOUT, meta: { locale: 'menu.platform.ec', requiresAuth: true, icon: 'icon-apps', order: 16 }, children: [
|
||||
{ path: 'ec-category', name: 'ec-ec-category', component: () => import('@/views/ec/ec_category/TreePage.vue'), meta: { locale: 'menu.platform.ec.ec_category', requiresAuth: true, menuCode: 'ec' } },
|
||||
{ path: 'ec-product', name: 'ec-ec-product', component: () => import('@/views/ec/ec_product/ListPage.vue'), meta: { locale: 'menu.platform.ec.ec_product', requiresAuth: true, menuCode: 'ec' } },
|
||||
{ path: 'ec-product-attribute', name: 'ec-ec-product-attribute', component: () => import('@/views/ec/ec_product_attribute/ListPage.vue'), meta: { locale: 'menu.platform.ec.ec_product_attribute', requiresAuth: true, menuCode: 'ec' } },
|
||||
{ path: 'ec-product-image', name: 'ec-ec-product-image', component: () => import('@/views/ec/ec_product_image/ListPage.vue'), meta: { locale: 'menu.platform.ec.ec_product_image', requiresAuth: true, menuCode: 'ec' } },
|
||||
{ path: 'ec-cart', name: 'ec-ec-cart', component: () => import('@/views/ec/ec_cart/ListPage.vue'), meta: { locale: 'menu.platform.ec.ec_cart', requiresAuth: true, menuCode: 'ec' } },
|
||||
{ path: 'ec-order', name: 'ec-ec-order', component: () => import('@/views/ec/ec_order/ListPage.vue'), meta: { locale: 'menu.platform.ec.ec_order', requiresAuth: true, menuCode: 'ec' } },
|
||||
{ path: 'ec-order-item', name: 'ec-ec-order-item', component: () => import('@/views/ec/ec_order_item/ListPage.vue'), meta: { locale: 'menu.platform.ec.ec_order_item', requiresAuth: true, menuCode: 'ec' } },
|
||||
{ path: 'ec-review', name: 'ec-ec-review', component: () => import('@/views/ec/ec_review/ListPage.vue'), meta: { locale: 'menu.platform.ec.ec_review', requiresAuth: true, menuCode: 'ec' } }
|
||||
] }];
|
||||
export default routes;
|
||||
@@ -1,12 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/finance', name: 'finance', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.finance', requiresAuth: true, icon: 'icon-apps', order: 16 },
|
||||
children: [
|
||||
{ path: 'fin-payment', name: 'finance-fin-payment', component: () => import('@/views/finance/fin_payment/ListPage.vue'), meta: { locale: 'menu.platform.finance.fin_payment', requiresAuth: true, menuCode: 'finance' } },
|
||||
{ path: 'fin-settlement', name: 'finance-fin-settlement', component: () => import('@/views/finance/fin_settlement/ListPage.vue'), meta: { locale: 'menu.platform.finance.fin_settlement', requiresAuth: true, menuCode: 'finance' } },
|
||||
{ path: 'fin-reconciliation', name: 'finance-fin-reconciliation', component: () => import('@/views/finance/fin_reconciliation/ListPage.vue'), meta: { locale: 'menu.platform.finance.fin_reconciliation', requiresAuth: true, menuCode: 'finance' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
@@ -1,11 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/gas', name: 'gas', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.gas', requiresAuth: true, icon: 'icon-apps', order: 10 },
|
||||
children: [
|
||||
{ path: 'gas-basic', name: 'gas-gas-basic', component: () => import('@/views/gas/gas_basic/ListPage.vue'), meta: { locale: 'menu.platform.gas.gas_basic', requiresAuth: true, menuCode: 'gas' } },
|
||||
{ path: 'gas-account', name: 'gas-gas-account', component: () => import('@/views/gas/gas_account/ListPage.vue'), meta: { locale: 'menu.platform.gas.gas_account', requiresAuth: true, menuCode: 'gas' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
@@ -1,21 +1,118 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
import gasRoutes from './gas';
|
||||
import deliveryRoutes from './delivery';
|
||||
import staffRoutes from './staff';
|
||||
import userRoutes from './user';
|
||||
import deviceRoutes from './device';
|
||||
import ecRoutes from './ec';
|
||||
import financeRoutes from './finance';
|
||||
import contentRoutes from './content';
|
||||
import customerServiceRoutes from './customer_service';
|
||||
import walletRoutes from './wallet';
|
||||
const platformRoutes: AppRouteRecordRaw[] = [
|
||||
{ path: '/dashboard', name: 'dashboard', component: DEFAULT_LAYOUT, meta: { locale: 'menu.dashboard', requiresAuth: true, icon: 'icon-dashboard', order: 0 }, children: [{ path: 'overview', name: 'DashboardOverview', component: () => import('@/views/dashboard/DashboardPage.vue'), meta: { locale: 'menu.platform.dashboard', requiresAuth: true, menuCode: 'dashboard' } }] },
|
||||
{ path: '/platform', name: 'platform', component: DEFAULT_LAYOUT, meta: { locale: 'menu.platform.config', requiresAuth: true, icon: 'icon-settings', order: 30 }, children: [
|
||||
{ path: 'platfrom-account', name: 'platform-platfrom-account', component: () => import('@/views/platform/platfrom_account/ListPage.vue'), meta: { locale: 'menu.platform.platform.platfrom_account', requiresAuth: true, menuCode: 'platform' } },
|
||||
{ path: 'platform-role', name: 'platform-platform-role', component: () => import('@/views/platform/platform_role/ListPage.vue'), meta: { locale: 'menu.platform.platform.platform_role', requiresAuth: true, menuCode: 'platform' } },
|
||||
{ path: 'platform-menu', name: 'platform-platform-menu', component: () => import('@/views/platform/platform_menu/TreePage.vue'), meta: { locale: 'menu.platform.platform.platform_menu', requiresAuth: true, menuCode: 'platform' } },
|
||||
] },
|
||||
|
||||
const resourcePage = () => import('@/views/shared/ResourcePage.vue');
|
||||
|
||||
function child(
|
||||
domain: string,
|
||||
path: string,
|
||||
name: string,
|
||||
title: string,
|
||||
resource: string,
|
||||
menuCode = domain,
|
||||
): AppRouteRecordRaw {
|
||||
return {
|
||||
path,
|
||||
name: `${domain}-${name}`,
|
||||
component: resourcePage,
|
||||
meta: { title, resource, requiresAuth: true, menuCode },
|
||||
};
|
||||
}
|
||||
|
||||
function group(
|
||||
path: string,
|
||||
name: string,
|
||||
title: string,
|
||||
icon: string,
|
||||
order: number,
|
||||
children: AppRouteRecordRaw[],
|
||||
menuCode = name,
|
||||
): AppRouteRecordRaw {
|
||||
return {
|
||||
path: `/${path}`,
|
||||
name,
|
||||
component: DEFAULT_LAYOUT,
|
||||
redirect: `/${path}/${children[0].path}`,
|
||||
meta: { title, requiresAuth: true, icon, order, menuCode },
|
||||
children,
|
||||
};
|
||||
}
|
||||
|
||||
const routes: AppRouteRecordRaw[] = [
|
||||
{
|
||||
path: '/dashboard',
|
||||
name: 'dashboard',
|
||||
component: DEFAULT_LAYOUT,
|
||||
redirect: '/dashboard/overview',
|
||||
meta: { title: '首页', requiresAuth: true, icon: 'icon-dashboard', order: 0, menuCode: 'dashboard' },
|
||||
children: [
|
||||
{ path: 'overview', name: 'dashboard-overview', component: () => import('@/views/dashboard/DashboardPage.vue'), meta: { title: '数据概览', requiresAuth: true, menuCode: 'dashboard' } },
|
||||
{ path: 'reports', name: 'dashboard-reports', component: () => import('@/views/dashboard/ReportPage.vue'), meta: { title: '统计报表', requiresAuth: true, menuCode: 'dashboard' } },
|
||||
],
|
||||
},
|
||||
group('gas', 'gas', '气站管理', 'icon-storage', 10, [
|
||||
child('gas', 'gas-basic', 'basic', '气站', '/gas_basic'),
|
||||
child('gas', 'gas-account', 'account', '气站账户', '/gas_account'),
|
||||
]),
|
||||
group('delivery', 'delivery', '配送站管理', 'icon-send', 20, [
|
||||
child('delivery', 'delivery-basic', 'basic', '配送站', '/delivery_basic'),
|
||||
child('delivery', 'delivery-account', 'account', '配送站账户', '/delivery_account'),
|
||||
]),
|
||||
group('staff', 'staff', '工作人员管理', 'icon-user-group', 30, [
|
||||
child('staff', 'staff-account', 'account', '工作人员', '/staff_account'),
|
||||
child('staff', 'staff-credential', 'credential', '人员资质', '/staff_credential'),
|
||||
]),
|
||||
group('user', 'user', '用户管理', 'icon-user', 40, [
|
||||
child('user', 'user-account', 'account', '用户账户', '/user_account'),
|
||||
child('user', 'user-address', 'address', '用户地址', '/user_address'),
|
||||
child('user', 'service-relation', 'service-relation', '服务关系', '/user_service_relation'),
|
||||
]),
|
||||
group('product', 'product', '产品管理', 'icon-common', 50, [
|
||||
child('product', 'product-type', 'type', '产品类型', '/product_type', 'device'),
|
||||
child('product', 'warehouse', 'warehouse', '库房', '/product_warehouse', 'device'),
|
||||
child('product', 'product-info', 'info', '产品信息', '/product_info', 'device'),
|
||||
child('product', 'repair', 'repair', '检修记录', '/product_repair', 'device'),
|
||||
child('product', 'owner', 'owner', '归属记录', '/product_owner', 'device'),
|
||||
], 'device'),
|
||||
group('gasorder', 'gasorder', '气体配送订单管理', 'icon-list', 60, [
|
||||
child('gasorder', 'contracts', 'contracts', '合同管理', '/gasorder_contract', 'delivery'),
|
||||
child('gasorder', 'orders', 'orders', '配送订单', '/gasorder_basic', 'delivery'),
|
||||
child('gasorder', 'tracks', 'tracks', '运行轨迹', '/gasorder_track', 'delivery'),
|
||||
], 'delivery'),
|
||||
group('ec', 'ec', '商城管理', 'icon-shopping-cart', 70, [
|
||||
child('ec', 'categories', 'categories', '商品分类', '/ec_category'),
|
||||
child('ec', 'products', 'products', '商品', '/ec_product'),
|
||||
child('ec', 'attributes', 'attributes', '商品属性', '/ec_product_attribute'),
|
||||
child('ec', 'images', 'images', '商品图片', '/ec_product_image'),
|
||||
child('ec', 'carts', 'carts', '购物车', '/ec_cart'),
|
||||
child('ec', 'orders', 'orders', '商城订单', '/ec_order'),
|
||||
child('ec', 'order-items', 'order-items', '订单明细', '/ec_order_item'),
|
||||
child('ec', 'reviews', 'reviews', '商品评价', '/ec_review'),
|
||||
]),
|
||||
group('wallet', 'wallet', '钱包管理', 'icon-safe', 80, [
|
||||
child('wallet', 'wallet-basic', 'basic', '钱包', '/wallet_basic'),
|
||||
child('wallet', 'banks', 'banks', '银行卡', '/wallet_bank'),
|
||||
child('wallet', 'payments', 'payments', '支付记录', '/wallet_payment'),
|
||||
child('wallet', 'records', 'records', '钱包流水', '/wallet_record'),
|
||||
child('wallet', 'refunds', 'refunds', '退款记录', '/wallet_refund'),
|
||||
child('wallet', 'apply-cash', 'apply-cash', '提现申请', '/wallet_apply_cash'),
|
||||
]),
|
||||
group('finance', 'finance', '财务管理', 'icon-fund', 90, [
|
||||
child('finance', 'payments', 'payments', '支付记录', '/fin_payment'),
|
||||
child('finance', 'settlements', 'settlements', '财务结算', '/fin_settlement'),
|
||||
child('finance', 'reconciliations', 'reconciliations', '财务对账', '/fin_reconciliation'),
|
||||
]),
|
||||
group('content', 'content', '内容管理', 'icon-file', 100, [
|
||||
child('content', 'contents', 'contents', '内容', '/cms_content'),
|
||||
]),
|
||||
group('customer-service', 'customer_service', '客服管理', 'icon-customer-service', 110, [
|
||||
child('customer_service', 'tickets', 'tickets', '客服工单', '/cs_ticket'),
|
||||
]),
|
||||
group('platform', 'platform', '平台管理', 'icon-settings', 120, [
|
||||
child('platform', 'accounts', 'accounts', '平台账户', '/platfrom_account'),
|
||||
child('platform', 'roles', 'roles', '平台角色', '/platform_role'),
|
||||
child('platform', 'menus', 'menus', '平台菜单', '/platform_menu'),
|
||||
]),
|
||||
];
|
||||
export default [...platformRoutes, ...gasRoutes, ...deliveryRoutes, ...staffRoutes, ...userRoutes, ...deviceRoutes, ...ecRoutes, ...financeRoutes, ...contentRoutes, ...customerServiceRoutes, ...walletRoutes];
|
||||
|
||||
export default routes;
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/staff', name: 'staff', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.staff', requiresAuth: true, icon: 'icon-apps', order: 12 },
|
||||
children: [
|
||||
{ path: 'account', name: 'staff-staff-account', component: () => import('@/views/staff/staff_account/ListPage.vue'), meta: { locale: 'menu.platform.staff.staff_account', requiresAuth: true, menuCode: 'staff' } },
|
||||
{ path: 'credential', name: 'staff-staff-credential', component: () => import('@/views/staff/staff_credential/ListPage.vue'), meta: { locale: 'menu.platform.staff.staff_credential', requiresAuth: true, menuCode: 'staff' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
@@ -1,12 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/user', name: 'user', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.user', requiresAuth: true, icon: 'icon-apps', order: 13 },
|
||||
children: [
|
||||
{ path: 'account', name: 'user-user-account', component: () => import('@/views/user/user_account/ListPage.vue'), meta: { locale: 'menu.platform.user.user_account', requiresAuth: true, menuCode: 'user' } },
|
||||
{ path: 'address', name: 'user-user-address', component: () => import('@/views/user/user_address/ListPage.vue'), meta: { locale: 'menu.platform.user.user_address', requiresAuth: true, menuCode: 'user' } },
|
||||
{ path: 'service-relation', name: 'user-user-service-relation', component: () => import('@/views/user/user_service_relation/ListPage.vue'), meta: { locale: 'menu.platform.user.user_service_relation', requiresAuth: true, menuCode: 'user' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
@@ -1,13 +0,0 @@
|
||||
import { DEFAULT_LAYOUT } from '../base';
|
||||
import type { AppRouteRecordRaw } from '../types';
|
||||
const routes: AppRouteRecordRaw[] = [{
|
||||
path: '/wallet', name: 'wallet', component: DEFAULT_LAYOUT,
|
||||
meta: { locale: 'menu.platform.wallet', requiresAuth: true, icon: 'icon-apps', order: 20 },
|
||||
children: [
|
||||
{ path: 'wallet', name: 'wallet-wallet', component: () => import('@/views/wallet/wallet/ListPage.vue'), meta: { locale: 'menu.platform.wallet.wallet', requiresAuth: true, menuCode: 'wallet' } },
|
||||
{ path: 'wallet-ledger', name: 'wallet-wallet-ledger', component: () => import('@/views/wallet/wallet_ledger/ListPage.vue'), meta: { locale: 'menu.platform.wallet.wallet_ledger', requiresAuth: true, menuCode: 'wallet' } },
|
||||
{ path: 'wallet-recharge', name: 'wallet-wallet-recharge', component: () => import('@/views/wallet/wallet_recharge/ListPage.vue'), meta: { locale: 'menu.platform.wallet.wallet_recharge', requiresAuth: true, menuCode: 'wallet' } },
|
||||
{ path: 'wallet-withdrawal', name: 'wallet-wallet-withdrawal', component: () => import('@/views/wallet/wallet_withdrawal/ListPage.vue'), meta: { locale: 'menu.platform.wallet.wallet_withdrawal', requiresAuth: true, menuCode: 'wallet' } }
|
||||
],
|
||||
}];
|
||||
export default routes;
|
||||
Reference in New Issue
Block a user