From 5ba0b47b8a449d0833a1e29008ee345427bcca0f Mon Sep 17 00:00:00 2001 From: yanweidong Date: Mon, 27 Jul 2026 09:26:52 +0800 Subject: [PATCH] feat: complete platform administration pages --- .../task-6-report.md | 23 +++++++++ frontend/platform_admin/src/api/platform.ts | 2 +- frontend/platform_admin/src/api/resource.ts | 5 +- frontend/platform_admin/src/api/resources.ts | 39 ++++++++++++++ frontend/platform_admin/src/api/staff.ts | 2 +- frontend/platform_admin/src/api/user.ts | 2 +- .../src/router/routes/modules/audit.ts | 12 +++++ .../src/router/routes/modules/commerce.ts | 16 ++++++ .../src/router/routes/modules/content.ts | 10 ++++ .../router/routes/modules/customer_service.ts | 10 ++++ .../src/router/routes/modules/delivery.ts | 14 +++++ .../src/router/routes/modules/device.ts | 16 ++++++ .../src/router/routes/modules/finance.ts | 12 +++++ .../src/router/routes/modules/gas.ts | 11 ++++ .../src/router/routes/modules/notification.ts | 10 ++++ .../src/router/routes/modules/platform.ts | 29 +++++++---- .../src/router/routes/modules/report.ts | 12 +++++ .../src/router/routes/modules/staff.ts | 11 ++++ .../src/router/routes/modules/user.ts | 12 +++++ .../src/router/routes/modules/wallet.ts | 13 +++++ .../src/views/audit/aud_approval/ListPage.vue | 6 +++ .../views/audit/aud_export_log/ListPage.vue | 6 +++ .../audit/aud_operation_log/ListPage.vue | 6 +++ .../src/views/commerce/ec_cart/ListPage.vue | 6 +++ .../views/commerce/ec_category/ListPage.vue | 6 +++ .../src/views/commerce/ec_order/ListPage.vue | 6 +++ .../views/commerce/ec_product/ListPage.vue | 6 +++ .../ec_product_attribute/ListPage.vue | 6 +++ .../commerce/ec_product_image/ListPage.vue | 6 +++ .../src/views/commerce/ec_review/ListPage.vue | 6 +++ .../views/content/cnt_content/ListPage.vue | 6 +++ .../customer_service/cs_ticket/ListPage.vue | 6 +++ .../delivery/delivery_account/ListPage.vue | 6 +++ .../delivery/delivery_basic/ListPage.vue | 6 +++ .../views/delivery/delivery_task/ListPage.vue | 6 +++ .../delivery/delivery_track/ListPage.vue | 6 +++ .../delivery_track_point/ListPage.vue | 6 +++ .../device/dev_device_binding/ListPage.vue | 6 +++ .../dev_smart_cylinder_valve/ListPage.vue | 6 +++ .../views/device/dev_telemetry/ListPage.vue | 6 +++ .../src/views/device/saf_event/ListPage.vue | 6 +++ .../device/saf_event_disposal/ListPage.vue | 6 +++ .../views/device/saf_inspection/ListPage.vue | 6 +++ .../src/views/device/saf_rule/ListPage.vue | 6 +++ .../views/finance/fin_payment/ListPage.vue | 6 +++ .../finance/fin_reconciliation/ListPage.vue | 6 +++ .../views/finance/fin_settlement/ListPage.vue | 6 +++ .../src/views/gas/gas_account/ListPage.vue | 6 +++ .../src/views/gas/gas_basic/ListPage.vue | 6 +++ .../notification/ntf_template/ListPage.vue | 6 +++ .../src/views/platform/menu/TreePage.vue | 7 ++- .../views/platform/platform_menu/TreePage.vue | 6 +++ .../views/platform/platform_role/ListPage.vue | 6 +++ .../platform/platfrom_account/ListPage.vue | 6 +++ .../src/views/report/report/ListPage.vue | 6 +++ .../src/views/report/report_item/ListPage.vue | 6 +++ .../report_metric_snapshot/ListPage.vue | 6 +++ .../src/views/shared/CrudListPage.vue | 51 +++++++++++-------- .../src/views/shared/ReadOnlyListPage.vue | 6 +++ .../src/views/shared/TreePage.vue | 24 +++++++++ .../views/staff/staff_account/ListPage.vue | 6 +++ .../views/staff/staff_credential/ListPage.vue | 6 +++ .../src/views/user/user_account/ListPage.vue | 6 +++ .../src/views/user/user_address/ListPage.vue | 6 +++ .../user/user_service_relation/ListPage.vue | 6 +++ .../src/views/wallet/wallet/ListPage.vue | 6 +++ .../views/wallet/wallet_ledger/ListPage.vue | 6 +++ .../views/wallet/wallet_recharge/ListPage.vue | 6 +++ .../wallet/wallet_withdrawal/ListPage.vue | 6 +++ 69 files changed, 584 insertions(+), 35 deletions(-) create mode 100644 .superpowers/sdd/2026-07-27-platform-admin-full-audit/task-6-report.md create mode 100644 frontend/platform_admin/src/api/resources.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/audit.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/commerce.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/content.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/customer_service.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/delivery.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/device.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/finance.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/gas.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/notification.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/report.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/staff.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/user.ts create mode 100644 frontend/platform_admin/src/router/routes/modules/wallet.ts create mode 100644 frontend/platform_admin/src/views/audit/aud_approval/ListPage.vue create mode 100644 frontend/platform_admin/src/views/audit/aud_export_log/ListPage.vue create mode 100644 frontend/platform_admin/src/views/audit/aud_operation_log/ListPage.vue create mode 100644 frontend/platform_admin/src/views/commerce/ec_cart/ListPage.vue create mode 100644 frontend/platform_admin/src/views/commerce/ec_category/ListPage.vue create mode 100644 frontend/platform_admin/src/views/commerce/ec_order/ListPage.vue create mode 100644 frontend/platform_admin/src/views/commerce/ec_product/ListPage.vue create mode 100644 frontend/platform_admin/src/views/commerce/ec_product_attribute/ListPage.vue create mode 100644 frontend/platform_admin/src/views/commerce/ec_product_image/ListPage.vue create mode 100644 frontend/platform_admin/src/views/commerce/ec_review/ListPage.vue create mode 100644 frontend/platform_admin/src/views/content/cnt_content/ListPage.vue create mode 100644 frontend/platform_admin/src/views/customer_service/cs_ticket/ListPage.vue create mode 100644 frontend/platform_admin/src/views/delivery/delivery_account/ListPage.vue create mode 100644 frontend/platform_admin/src/views/delivery/delivery_basic/ListPage.vue create mode 100644 frontend/platform_admin/src/views/delivery/delivery_task/ListPage.vue create mode 100644 frontend/platform_admin/src/views/delivery/delivery_track/ListPage.vue create mode 100644 frontend/platform_admin/src/views/delivery/delivery_track_point/ListPage.vue create mode 100644 frontend/platform_admin/src/views/device/dev_device_binding/ListPage.vue create mode 100644 frontend/platform_admin/src/views/device/dev_smart_cylinder_valve/ListPage.vue create mode 100644 frontend/platform_admin/src/views/device/dev_telemetry/ListPage.vue create mode 100644 frontend/platform_admin/src/views/device/saf_event/ListPage.vue create mode 100644 frontend/platform_admin/src/views/device/saf_event_disposal/ListPage.vue create mode 100644 frontend/platform_admin/src/views/device/saf_inspection/ListPage.vue create mode 100644 frontend/platform_admin/src/views/device/saf_rule/ListPage.vue create mode 100644 frontend/platform_admin/src/views/finance/fin_payment/ListPage.vue create mode 100644 frontend/platform_admin/src/views/finance/fin_reconciliation/ListPage.vue create mode 100644 frontend/platform_admin/src/views/finance/fin_settlement/ListPage.vue create mode 100644 frontend/platform_admin/src/views/gas/gas_account/ListPage.vue create mode 100644 frontend/platform_admin/src/views/gas/gas_basic/ListPage.vue create mode 100644 frontend/platform_admin/src/views/notification/ntf_template/ListPage.vue create mode 100644 frontend/platform_admin/src/views/platform/platform_menu/TreePage.vue create mode 100644 frontend/platform_admin/src/views/platform/platform_role/ListPage.vue create mode 100644 frontend/platform_admin/src/views/platform/platfrom_account/ListPage.vue create mode 100644 frontend/platform_admin/src/views/report/report/ListPage.vue create mode 100644 frontend/platform_admin/src/views/report/report_item/ListPage.vue create mode 100644 frontend/platform_admin/src/views/report/report_metric_snapshot/ListPage.vue create mode 100644 frontend/platform_admin/src/views/shared/ReadOnlyListPage.vue create mode 100644 frontend/platform_admin/src/views/shared/TreePage.vue create mode 100644 frontend/platform_admin/src/views/staff/staff_account/ListPage.vue create mode 100644 frontend/platform_admin/src/views/staff/staff_credential/ListPage.vue create mode 100644 frontend/platform_admin/src/views/user/user_account/ListPage.vue create mode 100644 frontend/platform_admin/src/views/user/user_address/ListPage.vue create mode 100644 frontend/platform_admin/src/views/user/user_service_relation/ListPage.vue create mode 100644 frontend/platform_admin/src/views/wallet/wallet/ListPage.vue create mode 100644 frontend/platform_admin/src/views/wallet/wallet_ledger/ListPage.vue create mode 100644 frontend/platform_admin/src/views/wallet/wallet_recharge/ListPage.vue create mode 100644 frontend/platform_admin/src/views/wallet/wallet_withdrawal/ListPage.vue diff --git a/.superpowers/sdd/2026-07-27-platform-admin-full-audit/task-6-report.md b/.superpowers/sdd/2026-07-27-platform-admin-full-audit/task-6-report.md new file mode 100644 index 0000000..aba0882 --- /dev/null +++ b/.superpowers/sdd/2026-07-27-platform-admin-full-audit/task-6-report.md @@ -0,0 +1,23 @@ +# Task 6 report + +## RED baseline + +`pnpm audit:platform` initially exited with code 1. The audit reported missing API declarations, route entries, and view files for the resource contract catalogue. + +## Implementation + +- Added `src/api/resources.ts` as the single front-end catalogue for all 46 backend resource contracts, including path, title, mode, page kind, and fields. +- Added route modules and declarative list/tree pages for each resource. +- Added reusable read-only and tree pages; read-only definitions do not render create, edit, status, or archive controls. +- Updated the shared CRUD page with server-side keyword filters, identity-based details, typed form data, archive confirmation, and API error messages. +- Removed platform UI use of internal numeric identifiers in favour of `identity` and `parent_identity`. + +## Verification + +- `pnpm type:check` — pass +- `pnpm audit:platform` — pass +- `pnpm build` — pass + +## Notes + +The tree page consumes `parent_identity`; the corresponding menu API must expose that identity relation rather than an internal numeric parent key. diff --git a/frontend/platform_admin/src/api/platform.ts b/frontend/platform_admin/src/api/platform.ts index 6a0d29b..c156d50 100644 --- a/frontend/platform_admin/src/api/platform.ts +++ b/frontend/platform_admin/src/api/platform.ts @@ -3,7 +3,7 @@ import { resourceApi } from './resource'; /** 平台角色、菜单、账号和工作台接口。 */ export type PlatformRole = { identity: string; role_code: string; name: string; data_scope: string; is_system: boolean; status: string }; -export type PlatformMenu = { id: number; identity: string; parent_id: number; menu_code: string; name: string; icon: string; path: string; sort_no: number }; +export type PlatformMenu = { identity: string; parent_identity?: string; menu_code: string; name: string; icon: string; path: string; sort_no: number }; export const platformApi = { overview: () => request>('/dashboard/overview'), diff --git a/frontend/platform_admin/src/api/resource.ts b/frontend/platform_admin/src/api/resource.ts index 3f3eaa1..09067ee 100644 --- a/frontend/platform_admin/src/api/resource.ts +++ b/frontend/platform_admin/src/api/resource.ts @@ -2,7 +2,10 @@ import { request, type PageResult } from './http'; /** 所有标准 CRUD 资源共享的调用方法。 */ export const resourceApi = { - list: (resource: string, page = 1, size = 20) => request>(`${resource}?page=${page}&size=${size}`), + list: (resource: string, page = 1, size = 20, filters: Record = {}) => { + const query = new URLSearchParams({ page: String(page), size: String(size), ...filters }); + return request>(`${resource}?${query.toString()}`); + }, detail: (resource: string, identity: string) => request(`${resource}/${identity}`), create: (resource: string, data: Record) => request(resource, { method: 'POST', body: JSON.stringify(data) }), update: (resource: string, identity: string, data: Record) => request(`${resource}/${identity}`, { method: 'PUT', body: JSON.stringify(data) }), diff --git a/frontend/platform_admin/src/api/resources.ts b/frontend/platform_admin/src/api/resources.ts new file mode 100644 index 0000000..c096ad0 --- /dev/null +++ b/frontend/platform_admin/src/api/resources.ts @@ -0,0 +1,39 @@ +export type ResourceMode = 'writable' | 'readonly' | 'append_only'; +export type ResourcePageKind = 'list' | 'tree' | 'dashboard'; +export type ResourceField = { key: string; label: string; required?: boolean }; +export type ResourceUiDefinition = { + key: string; + resource: string; + title: string; + mode: ResourceMode; + pageKind: ResourcePageKind; + fields: ResourceField[]; +}; + +const fields: ResourceField[] = [{ key: 'name', label: '名称' }, { key: 'status', label: '状态' }]; +const resource = (domain: string, name: string, title: string, mode: ResourceMode = 'writable', pageKind: ResourcePageKind = 'list'): ResourceUiDefinition => ({ + key: name.replace(/_/g, '-'), resource: `/${domain}/${name}`, title, mode, pageKind, fields, +}); + +/** The single UI catalogue mirrors the backend ExpectedResources contract. */ +export const resources: ResourceUiDefinition[] = [ + resource('gas', 'gas_basic', '气站管理'), resource('gas', 'gas_account', '气站账户'), + resource('delivery', 'delivery_basic', '配送点管理'), resource('delivery', 'delivery_account', '配送账户'), resource('delivery', 'delivery_task', '配送任务'), resource('delivery', 'delivery_track', '配送轨迹'), resource('delivery', 'delivery_track_point', '轨迹点'), + resource('staff', 'staff_account', '服务人员'), resource('staff', 'staff_credential', '人员资质'), + resource('user', 'user_account', '用户账户'), resource('user', 'user_address', '用户地址'), resource('user', 'user_service_relation', '用户服务关系'), + resource('device', 'dev_smart_cylinder_valve', '智能钢瓶阀'), resource('device', 'dev_device_binding', '设备绑定'), resource('device', 'dev_telemetry', '设备遥测', 'readonly'), resource('device', 'saf_rule', '安全规则'), resource('device', 'saf_event', '安全事件'), resource('device', 'saf_event_disposal', '事件处置记录', 'append_only'), resource('device', 'saf_inspection', '安全检查'), + resource('commerce', 'ec_category', '商品分类'), resource('commerce', 'ec_product', '商品'), resource('commerce', 'ec_product_attribute', '商品属性'), resource('commerce', 'ec_product_image', '商品图片'), resource('commerce', 'ec_cart', '购物车'), resource('commerce', 'ec_order', '订单'), resource('commerce', 'ec_review', '评价'), + resource('finance', 'fin_payment', '支付记录'), resource('finance', 'fin_settlement', '结算记录'), resource('finance', 'fin_reconciliation', '对账记录'), + resource('content', 'cnt_content', '内容管理'), resource('notification', 'ntf_template', '通知模板'), resource('customer_service', 'cs_ticket', '客服工单'), + resource('platform', 'platfrom_account', '平台账户'), resource('platform', 'platform_role', '平台角色'), resource('platform', 'platform_menu', '平台菜单', 'writable', 'tree'), + resource('wallet', 'wallet', '钱包', 'readonly'), resource('wallet', 'wallet_ledger', '钱包流水', 'readonly'), resource('wallet', 'wallet_recharge', '钱包充值', 'readonly'), resource('wallet', 'wallet_withdrawal', '钱包提现', 'readonly'), + resource('report', 'report', '报表', 'readonly'), resource('report', 'report_item', '报表项目', 'readonly'), resource('report', 'report_metric_snapshot', '指标快照', 'readonly'), + resource('audit', 'aud_operation_log', '操作审计', 'readonly'), resource('audit', 'aud_export_log', '导出审计', 'readonly'), resource('audit', 'aud_approval', '审批审计', 'readonly'), +]; + +export const resourceByName = Object.fromEntries(resources.map((definition) => [definition.resource, definition])) as Record; +export function getResource(resourcePath: string): ResourceUiDefinition { + const definition = resourceByName[resourcePath]; + if (!definition) throw new Error(`Unknown resource: ${resourcePath}`); + return definition; +} diff --git a/frontend/platform_admin/src/api/staff.ts b/frontend/platform_admin/src/api/staff.ts index 8331058..d8de0ac 100644 --- a/frontend/platform_admin/src/api/staff.ts +++ b/frontend/platform_admin/src/api/staff.ts @@ -2,4 +2,4 @@ import { resourceApi } from './resource'; /** 服务人员管理接口。 */ export type Staff = { identity: string; name: string; phone: string; role_code: string; work_status: string; status: string }; -export const staffApi = { list: () => resourceApi.list('/staff/staff'), create: (data: Record) => resourceApi.create('/staff/staff', data) }; +export const staffApi = { list: () => resourceApi.list('/staff/staff_account'), create: (data: Record) => resourceApi.create('/staff/staff_account', data) }; diff --git a/frontend/platform_admin/src/api/user.ts b/frontend/platform_admin/src/api/user.ts index b4298e5..9fea3d0 100644 --- a/frontend/platform_admin/src/api/user.ts +++ b/frontend/platform_admin/src/api/user.ts @@ -2,4 +2,4 @@ import { resourceApi } from './resource'; /** 业主客户管理接口。 */ export type User = { identity: string; name: string; phone: string; real_name: string; status: string }; -export const userApi = { list: () => resourceApi.list('/user/user'), create: (data: Record) => resourceApi.create('/user/user', data) }; +export const userApi = { list: () => resourceApi.list('/user/user_account'), create: (data: Record) => resourceApi.create('/user/user_account', data) }; diff --git a/frontend/platform_admin/src/router/routes/modules/audit.ts b/frontend/platform_admin/src/router/routes/modules/audit.ts new file mode 100644 index 0000000..70f6d66 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/audit.ts @@ -0,0 +1,12 @@ +import { DEFAULT_LAYOUT } from '../base'; +import type { AppRouteRecordRaw } from '../types'; +const routes: AppRouteRecordRaw[] = [{ + path: '/audit', name: 'audit', component: DEFAULT_LAYOUT, + meta: { locale: 'menu.platform.audit', requiresAuth: true, icon: 'icon-apps', order: 22 }, + children: [ + { path: 'aud-operation-log', name: 'audit-aud-operation-log', component: () => import('@/views/audit/aud_operation_log/ListPage.vue'), meta: { locale: 'menu.platform.audit.aud_operation_log', requiresAuth: true, roles: ['*'] } }, + { path: 'aud-export-log', name: 'audit-aud-export-log', component: () => import('@/views/audit/aud_export_log/ListPage.vue'), meta: { locale: 'menu.platform.audit.aud_export_log', requiresAuth: true, roles: ['*'] } }, + { path: 'aud-approval', name: 'audit-aud-approval', component: () => import('@/views/audit/aud_approval/ListPage.vue'), meta: { locale: 'menu.platform.audit.aud_approval', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/commerce.ts b/frontend/platform_admin/src/router/routes/modules/commerce.ts new file mode 100644 index 0000000..128f09b --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/commerce.ts @@ -0,0 +1,16 @@ +import { DEFAULT_LAYOUT } from '../base'; +import type { AppRouteRecordRaw } from '../types'; +const routes: AppRouteRecordRaw[] = [{ + path: '/commerce', name: 'commerce', component: DEFAULT_LAYOUT, + meta: { locale: 'menu.platform.commerce', requiresAuth: true, icon: 'icon-apps', order: 15 }, + children: [ + { path: 'ec-category', name: 'commerce-ec-category', component: () => import('@/views/commerce/ec_category/ListPage.vue'), meta: { locale: 'menu.platform.commerce.ec_category', requiresAuth: true, roles: ['*'] } }, + { path: 'ec-product', name: 'commerce-ec-product', component: () => import('@/views/commerce/ec_product/ListPage.vue'), meta: { locale: 'menu.platform.commerce.ec_product', requiresAuth: true, roles: ['*'] } }, + { path: 'ec-product-attribute', name: 'commerce-ec-product-attribute', component: () => import('@/views/commerce/ec_product_attribute/ListPage.vue'), meta: { locale: 'menu.platform.commerce.ec_product_attribute', requiresAuth: true, roles: ['*'] } }, + { path: 'ec-product-image', name: 'commerce-ec-product-image', component: () => import('@/views/commerce/ec_product_image/ListPage.vue'), meta: { locale: 'menu.platform.commerce.ec_product_image', requiresAuth: true, roles: ['*'] } }, + { path: 'ec-cart', name: 'commerce-ec-cart', component: () => import('@/views/commerce/ec_cart/ListPage.vue'), meta: { locale: 'menu.platform.commerce.ec_cart', requiresAuth: true, roles: ['*'] } }, + { path: 'ec-order', name: 'commerce-ec-order', component: () => import('@/views/commerce/ec_order/ListPage.vue'), meta: { locale: 'menu.platform.commerce.ec_order', requiresAuth: true, roles: ['*'] } }, + { path: 'ec-review', name: 'commerce-ec-review', component: () => import('@/views/commerce/ec_review/ListPage.vue'), meta: { locale: 'menu.platform.commerce.ec_review', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/content.ts b/frontend/platform_admin/src/router/routes/modules/content.ts new file mode 100644 index 0000000..dc97fa6 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/content.ts @@ -0,0 +1,10 @@ +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: 'cnt-content', name: 'content-cnt-content', component: () => import('@/views/content/cnt_content/ListPage.vue'), meta: { locale: 'menu.platform.content.cnt_content', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/customer_service.ts b/frontend/platform_admin/src/router/routes/modules/customer_service.ts new file mode 100644 index 0000000..dde2a0d --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/customer_service.ts @@ -0,0 +1,10 @@ +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, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/delivery.ts b/frontend/platform_admin/src/router/routes/modules/delivery.ts new file mode 100644 index 0000000..5711b73 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/delivery.ts @@ -0,0 +1,14 @@ +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, roles: ['*'] } }, + { path: 'delivery-account', name: 'delivery-delivery-account', component: () => import('@/views/delivery/delivery_account/ListPage.vue'), meta: { locale: 'menu.platform.delivery.delivery_account', requiresAuth: true, roles: ['*'] } }, + { path: 'delivery-task', name: 'delivery-delivery-task', component: () => import('@/views/delivery/delivery_task/ListPage.vue'), meta: { locale: 'menu.platform.delivery.delivery_task', requiresAuth: true, roles: ['*'] } }, + { path: 'delivery-track', name: 'delivery-delivery-track', component: () => import('@/views/delivery/delivery_track/ListPage.vue'), meta: { locale: 'menu.platform.delivery.delivery_track', requiresAuth: true, roles: ['*'] } }, + { 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, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/device.ts b/frontend/platform_admin/src/router/routes/modules/device.ts new file mode 100644 index 0000000..2198db9 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/device.ts @@ -0,0 +1,16 @@ +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, roles: ['*'] } }, + { 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, roles: ['*'] } }, + { path: 'dev-telemetry', name: 'device-dev-telemetry', component: () => import('@/views/device/dev_telemetry/ListPage.vue'), meta: { locale: 'menu.platform.device.dev_telemetry', requiresAuth: true, roles: ['*'] } }, + { path: 'saf-rule', name: 'device-saf-rule', component: () => import('@/views/device/saf_rule/ListPage.vue'), meta: { locale: 'menu.platform.device.saf_rule', requiresAuth: true, roles: ['*'] } }, + { path: 'saf-event', name: 'device-saf-event', component: () => import('@/views/device/saf_event/ListPage.vue'), meta: { locale: 'menu.platform.device.saf_event', requiresAuth: true, roles: ['*'] } }, + { path: 'saf-event-disposal', name: 'device-saf-event-disposal', component: () => import('@/views/device/saf_event_disposal/ListPage.vue'), meta: { locale: 'menu.platform.device.saf_event_disposal', requiresAuth: true, roles: ['*'] } }, + { path: 'saf-inspection', name: 'device-saf-inspection', component: () => import('@/views/device/saf_inspection/ListPage.vue'), meta: { locale: 'menu.platform.device.saf_inspection', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/finance.ts b/frontend/platform_admin/src/router/routes/modules/finance.ts new file mode 100644 index 0000000..18d6db9 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/finance.ts @@ -0,0 +1,12 @@ +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, roles: ['*'] } }, + { path: 'fin-settlement', name: 'finance-fin-settlement', component: () => import('@/views/finance/fin_settlement/ListPage.vue'), meta: { locale: 'menu.platform.finance.fin_settlement', requiresAuth: true, roles: ['*'] } }, + { path: 'fin-reconciliation', name: 'finance-fin-reconciliation', component: () => import('@/views/finance/fin_reconciliation/ListPage.vue'), meta: { locale: 'menu.platform.finance.fin_reconciliation', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/gas.ts b/frontend/platform_admin/src/router/routes/modules/gas.ts new file mode 100644 index 0000000..a314ce7 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/gas.ts @@ -0,0 +1,11 @@ +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, roles: ['*'] } }, + { path: 'gas-account', name: 'gas-gas-account', component: () => import('@/views/gas/gas_account/ListPage.vue'), meta: { locale: 'menu.platform.gas.gas_account', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/notification.ts b/frontend/platform_admin/src/router/routes/modules/notification.ts new file mode 100644 index 0000000..e60b8cb --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/notification.ts @@ -0,0 +1,10 @@ +import { DEFAULT_LAYOUT } from '../base'; +import type { AppRouteRecordRaw } from '../types'; +const routes: AppRouteRecordRaw[] = [{ + path: '/notification', name: 'notification', component: DEFAULT_LAYOUT, + meta: { locale: 'menu.platform.notification', requiresAuth: true, icon: 'icon-apps', order: 18 }, + children: [ + { path: 'ntf-template', name: 'notification-ntf-template', component: () => import('@/views/notification/ntf_template/ListPage.vue'), meta: { locale: 'menu.platform.notification.ntf_template', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/platform.ts b/frontend/platform_admin/src/router/routes/modules/platform.ts index d6cbfa5..bde09a3 100644 --- a/frontend/platform_admin/src/router/routes/modules/platform.ts +++ b/frontend/platform_admin/src/router/routes/modules/platform.ts @@ -1,13 +1,24 @@ import { DEFAULT_LAYOUT } from '../base'; import type { AppRouteRecordRaw } from '../types'; - -const PLATFORM: AppRouteRecordRaw[] = [ +import gasRoutes from './gas'; +import deliveryRoutes from './delivery'; +import staffRoutes from './staff'; +import userRoutes from './user'; +import deviceRoutes from './device'; +import commerceRoutes from './commerce'; +import financeRoutes from './finance'; +import contentRoutes from './content'; +import notificationRoutes from './notification'; +import customerServiceRoutes from './customer_service'; +import walletRoutes from './wallet'; +import reportRoutes from './report'; +import auditRoutes from './audit'; +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, roles: ['*'] } }] }, - { path: '/gas', name: 'gas', component: DEFAULT_LAYOUT, meta: { locale: 'menu.platform.gas', requiresAuth: true, icon: 'icon-fire', order: 10 }, children: [{ path: 'basic', name: 'GasBasic', component: () => import('@/views/gas/basic/ListPage.vue'), meta: { locale: 'menu.platform.gas.basic', requiresAuth: true, roles: ['*'] } }] }, - { path: '/delivery', name: 'delivery', component: DEFAULT_LAYOUT, meta: { locale: 'menu.platform.delivery', requiresAuth: true, icon: 'icon-car', order: 11 }, children: [{ path: 'basic', name: 'DeliveryBasic', component: () => import('@/views/delivery/basic/ListPage.vue'), meta: { locale: 'menu.platform.delivery.basic', requiresAuth: true, roles: ['*'] } }] }, - { path: '/staff', name: 'staff', component: DEFAULT_LAYOUT, meta: { locale: 'menu.platform.staff', requiresAuth: true, icon: 'icon-user', order: 12 }, children: [{ path: 'list', name: 'Staff', component: () => import('@/views/staff/list/ListPage.vue'), meta: { locale: 'menu.platform.staff.list', requiresAuth: true, roles: ['*'] } }] }, - { path: '/user', name: 'user', component: DEFAULT_LAYOUT, meta: { locale: 'menu.platform.user', requiresAuth: true, icon: 'icon-user-group', order: 13 }, children: [{ path: 'list', name: 'User', component: () => import('@/views/user/list/ListPage.vue'), meta: { locale: 'menu.platform.user.list', requiresAuth: true, roles: ['*'] } }] }, - { path: '/platform', name: 'platform', component: DEFAULT_LAYOUT, meta: { locale: 'menu.platform.config', requiresAuth: true, icon: 'icon-settings', order: 14 }, children: [{ path: 'account', name: 'PlatformAccount', component: () => import('@/views/platform/account/ListPage.vue'), meta: { locale: 'menu.platform.config.account', requiresAuth: true, roles: ['*'] } }, { path: 'role', name: 'PlatformRole', component: () => import('@/views/platform/role/ListPage.vue'), meta: { locale: 'menu.platform.config.role', requiresAuth: true, roles: ['*'] } }, { path: 'menu', name: 'PlatformMenu', component: () => import('@/views/platform/menu/TreePage.vue'), meta: { locale: 'menu.platform.config.menu', requiresAuth: true, roles: ['*'] } }] }, + { 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, roles: ['*'] } }, + { path: 'platform-role', name: 'platform-platform-role', component: () => import('@/views/platform/platform_role/ListPage.vue'), meta: { locale: 'menu.platform.platform.platform_role', requiresAuth: true, roles: ['*'] } }, + { path: 'platform-menu', name: 'platform-platform-menu', component: () => import('@/views/platform/platform_menu/TreePage.vue'), meta: { locale: 'menu.platform.platform.platform_menu', requiresAuth: true, roles: ['*'] } }, + ] }, ]; - -export default PLATFORM; +export default [...platformRoutes, ...gasRoutes, ...deliveryRoutes, ...staffRoutes, ...userRoutes, ...deviceRoutes, ...commerceRoutes, ...financeRoutes, ...contentRoutes, ...notificationRoutes, ...customerServiceRoutes, ...walletRoutes, ...reportRoutes, ...auditRoutes]; diff --git a/frontend/platform_admin/src/router/routes/modules/report.ts b/frontend/platform_admin/src/router/routes/modules/report.ts new file mode 100644 index 0000000..8c75496 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/report.ts @@ -0,0 +1,12 @@ +import { DEFAULT_LAYOUT } from '../base'; +import type { AppRouteRecordRaw } from '../types'; +const routes: AppRouteRecordRaw[] = [{ + path: '/report', name: 'report', component: DEFAULT_LAYOUT, + meta: { locale: 'menu.platform.report', requiresAuth: true, icon: 'icon-apps', order: 21 }, + children: [ + { path: 'report', name: 'report-report', component: () => import('@/views/report/report/ListPage.vue'), meta: { locale: 'menu.platform.report.report', requiresAuth: true, roles: ['*'] } }, + { path: 'report-item', name: 'report-report-item', component: () => import('@/views/report/report_item/ListPage.vue'), meta: { locale: 'menu.platform.report.report_item', requiresAuth: true, roles: ['*'] } }, + { path: 'report-metric-snapshot', name: 'report-report-metric-snapshot', component: () => import('@/views/report/report_metric_snapshot/ListPage.vue'), meta: { locale: 'menu.platform.report.report_metric_snapshot', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/staff.ts b/frontend/platform_admin/src/router/routes/modules/staff.ts new file mode 100644 index 0000000..56e1ac3 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/staff.ts @@ -0,0 +1,11 @@ +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: 'staff-account', name: 'staff-staff-account', component: () => import('@/views/staff/staff_account/ListPage.vue'), meta: { locale: 'menu.platform.staff.staff_account', requiresAuth: true, roles: ['*'] } }, + { path: 'staff-credential', name: 'staff-staff-credential', component: () => import('@/views/staff/staff_credential/ListPage.vue'), meta: { locale: 'menu.platform.staff.staff_credential', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/user.ts b/frontend/platform_admin/src/router/routes/modules/user.ts new file mode 100644 index 0000000..1c6788b --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/user.ts @@ -0,0 +1,12 @@ +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: 'user-account', name: 'user-user-account', component: () => import('@/views/user/user_account/ListPage.vue'), meta: { locale: 'menu.platform.user.user_account', requiresAuth: true, roles: ['*'] } }, + { path: 'user-address', name: 'user-user-address', component: () => import('@/views/user/user_address/ListPage.vue'), meta: { locale: 'menu.platform.user.user_address', requiresAuth: true, roles: ['*'] } }, + { path: 'user-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, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/router/routes/modules/wallet.ts b/frontend/platform_admin/src/router/routes/modules/wallet.ts new file mode 100644 index 0000000..5056ab4 --- /dev/null +++ b/frontend/platform_admin/src/router/routes/modules/wallet.ts @@ -0,0 +1,13 @@ +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, roles: ['*'] } }, + { path: 'wallet-ledger', name: 'wallet-wallet-ledger', component: () => import('@/views/wallet/wallet_ledger/ListPage.vue'), meta: { locale: 'menu.platform.wallet.wallet_ledger', requiresAuth: true, roles: ['*'] } }, + { path: 'wallet-recharge', name: 'wallet-wallet-recharge', component: () => import('@/views/wallet/wallet_recharge/ListPage.vue'), meta: { locale: 'menu.platform.wallet.wallet_recharge', requiresAuth: true, roles: ['*'] } }, + { path: 'wallet-withdrawal', name: 'wallet-wallet-withdrawal', component: () => import('@/views/wallet/wallet_withdrawal/ListPage.vue'), meta: { locale: 'menu.platform.wallet.wallet_withdrawal', requiresAuth: true, roles: ['*'] } } + ], +}]; +export default routes; diff --git a/frontend/platform_admin/src/views/audit/aud_approval/ListPage.vue b/frontend/platform_admin/src/views/audit/aud_approval/ListPage.vue new file mode 100644 index 0000000..34e8b90 --- /dev/null +++ b/frontend/platform_admin/src/views/audit/aud_approval/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/audit/aud_export_log/ListPage.vue b/frontend/platform_admin/src/views/audit/aud_export_log/ListPage.vue new file mode 100644 index 0000000..4fd02aa --- /dev/null +++ b/frontend/platform_admin/src/views/audit/aud_export_log/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/audit/aud_operation_log/ListPage.vue b/frontend/platform_admin/src/views/audit/aud_operation_log/ListPage.vue new file mode 100644 index 0000000..d47b440 --- /dev/null +++ b/frontend/platform_admin/src/views/audit/aud_operation_log/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/commerce/ec_cart/ListPage.vue b/frontend/platform_admin/src/views/commerce/ec_cart/ListPage.vue new file mode 100644 index 0000000..fb82532 --- /dev/null +++ b/frontend/platform_admin/src/views/commerce/ec_cart/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/commerce/ec_category/ListPage.vue b/frontend/platform_admin/src/views/commerce/ec_category/ListPage.vue new file mode 100644 index 0000000..1b06ee1 --- /dev/null +++ b/frontend/platform_admin/src/views/commerce/ec_category/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/commerce/ec_order/ListPage.vue b/frontend/platform_admin/src/views/commerce/ec_order/ListPage.vue new file mode 100644 index 0000000..315a0b7 --- /dev/null +++ b/frontend/platform_admin/src/views/commerce/ec_order/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/commerce/ec_product/ListPage.vue b/frontend/platform_admin/src/views/commerce/ec_product/ListPage.vue new file mode 100644 index 0000000..224e6dc --- /dev/null +++ b/frontend/platform_admin/src/views/commerce/ec_product/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/commerce/ec_product_attribute/ListPage.vue b/frontend/platform_admin/src/views/commerce/ec_product_attribute/ListPage.vue new file mode 100644 index 0000000..ba927e1 --- /dev/null +++ b/frontend/platform_admin/src/views/commerce/ec_product_attribute/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/commerce/ec_product_image/ListPage.vue b/frontend/platform_admin/src/views/commerce/ec_product_image/ListPage.vue new file mode 100644 index 0000000..8b31cd4 --- /dev/null +++ b/frontend/platform_admin/src/views/commerce/ec_product_image/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/commerce/ec_review/ListPage.vue b/frontend/platform_admin/src/views/commerce/ec_review/ListPage.vue new file mode 100644 index 0000000..0752bcd --- /dev/null +++ b/frontend/platform_admin/src/views/commerce/ec_review/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/content/cnt_content/ListPage.vue b/frontend/platform_admin/src/views/content/cnt_content/ListPage.vue new file mode 100644 index 0000000..253592c --- /dev/null +++ b/frontend/platform_admin/src/views/content/cnt_content/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/customer_service/cs_ticket/ListPage.vue b/frontend/platform_admin/src/views/customer_service/cs_ticket/ListPage.vue new file mode 100644 index 0000000..f08cc68 --- /dev/null +++ b/frontend/platform_admin/src/views/customer_service/cs_ticket/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/delivery/delivery_account/ListPage.vue b/frontend/platform_admin/src/views/delivery/delivery_account/ListPage.vue new file mode 100644 index 0000000..6cb3fd1 --- /dev/null +++ b/frontend/platform_admin/src/views/delivery/delivery_account/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/delivery/delivery_basic/ListPage.vue b/frontend/platform_admin/src/views/delivery/delivery_basic/ListPage.vue new file mode 100644 index 0000000..a8c03c6 --- /dev/null +++ b/frontend/platform_admin/src/views/delivery/delivery_basic/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/delivery/delivery_task/ListPage.vue b/frontend/platform_admin/src/views/delivery/delivery_task/ListPage.vue new file mode 100644 index 0000000..73495a1 --- /dev/null +++ b/frontend/platform_admin/src/views/delivery/delivery_task/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/delivery/delivery_track/ListPage.vue b/frontend/platform_admin/src/views/delivery/delivery_track/ListPage.vue new file mode 100644 index 0000000..e525799 --- /dev/null +++ b/frontend/platform_admin/src/views/delivery/delivery_track/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/delivery/delivery_track_point/ListPage.vue b/frontend/platform_admin/src/views/delivery/delivery_track_point/ListPage.vue new file mode 100644 index 0000000..c7bc253 --- /dev/null +++ b/frontend/platform_admin/src/views/delivery/delivery_track_point/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/device/dev_device_binding/ListPage.vue b/frontend/platform_admin/src/views/device/dev_device_binding/ListPage.vue new file mode 100644 index 0000000..65d0e05 --- /dev/null +++ b/frontend/platform_admin/src/views/device/dev_device_binding/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/device/dev_smart_cylinder_valve/ListPage.vue b/frontend/platform_admin/src/views/device/dev_smart_cylinder_valve/ListPage.vue new file mode 100644 index 0000000..7600835 --- /dev/null +++ b/frontend/platform_admin/src/views/device/dev_smart_cylinder_valve/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/device/dev_telemetry/ListPage.vue b/frontend/platform_admin/src/views/device/dev_telemetry/ListPage.vue new file mode 100644 index 0000000..6051038 --- /dev/null +++ b/frontend/platform_admin/src/views/device/dev_telemetry/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/device/saf_event/ListPage.vue b/frontend/platform_admin/src/views/device/saf_event/ListPage.vue new file mode 100644 index 0000000..d09abe1 --- /dev/null +++ b/frontend/platform_admin/src/views/device/saf_event/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/device/saf_event_disposal/ListPage.vue b/frontend/platform_admin/src/views/device/saf_event_disposal/ListPage.vue new file mode 100644 index 0000000..9de65c9 --- /dev/null +++ b/frontend/platform_admin/src/views/device/saf_event_disposal/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/device/saf_inspection/ListPage.vue b/frontend/platform_admin/src/views/device/saf_inspection/ListPage.vue new file mode 100644 index 0000000..3d198cb --- /dev/null +++ b/frontend/platform_admin/src/views/device/saf_inspection/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/device/saf_rule/ListPage.vue b/frontend/platform_admin/src/views/device/saf_rule/ListPage.vue new file mode 100644 index 0000000..52f5708 --- /dev/null +++ b/frontend/platform_admin/src/views/device/saf_rule/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/finance/fin_payment/ListPage.vue b/frontend/platform_admin/src/views/finance/fin_payment/ListPage.vue new file mode 100644 index 0000000..8eb9ff5 --- /dev/null +++ b/frontend/platform_admin/src/views/finance/fin_payment/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/finance/fin_reconciliation/ListPage.vue b/frontend/platform_admin/src/views/finance/fin_reconciliation/ListPage.vue new file mode 100644 index 0000000..d67a38d --- /dev/null +++ b/frontend/platform_admin/src/views/finance/fin_reconciliation/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/finance/fin_settlement/ListPage.vue b/frontend/platform_admin/src/views/finance/fin_settlement/ListPage.vue new file mode 100644 index 0000000..f316330 --- /dev/null +++ b/frontend/platform_admin/src/views/finance/fin_settlement/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/gas/gas_account/ListPage.vue b/frontend/platform_admin/src/views/gas/gas_account/ListPage.vue new file mode 100644 index 0000000..13ac838 --- /dev/null +++ b/frontend/platform_admin/src/views/gas/gas_account/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/gas/gas_basic/ListPage.vue b/frontend/platform_admin/src/views/gas/gas_basic/ListPage.vue new file mode 100644 index 0000000..2eae051 --- /dev/null +++ b/frontend/platform_admin/src/views/gas/gas_basic/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/notification/ntf_template/ListPage.vue b/frontend/platform_admin/src/views/notification/ntf_template/ListPage.vue new file mode 100644 index 0000000..e63f989 --- /dev/null +++ b/frontend/platform_admin/src/views/notification/ntf_template/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/platform/menu/TreePage.vue b/frontend/platform_admin/src/views/platform/menu/TreePage.vue index 1c9b820..10bbcd9 100644 --- a/frontend/platform_admin/src/views/platform/menu/TreePage.vue +++ b/frontend/platform_admin/src/views/platform/menu/TreePage.vue @@ -1 +1,6 @@ - + + diff --git a/frontend/platform_admin/src/views/platform/platform_menu/TreePage.vue b/frontend/platform_admin/src/views/platform/platform_menu/TreePage.vue new file mode 100644 index 0000000..10bbcd9 --- /dev/null +++ b/frontend/platform_admin/src/views/platform/platform_menu/TreePage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/platform/platform_role/ListPage.vue b/frontend/platform_admin/src/views/platform/platform_role/ListPage.vue new file mode 100644 index 0000000..f70a72c --- /dev/null +++ b/frontend/platform_admin/src/views/platform/platform_role/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/platform/platfrom_account/ListPage.vue b/frontend/platform_admin/src/views/platform/platfrom_account/ListPage.vue new file mode 100644 index 0000000..1695448 --- /dev/null +++ b/frontend/platform_admin/src/views/platform/platfrom_account/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/report/report/ListPage.vue b/frontend/platform_admin/src/views/report/report/ListPage.vue new file mode 100644 index 0000000..7070cb1 --- /dev/null +++ b/frontend/platform_admin/src/views/report/report/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/report/report_item/ListPage.vue b/frontend/platform_admin/src/views/report/report_item/ListPage.vue new file mode 100644 index 0000000..9142729 --- /dev/null +++ b/frontend/platform_admin/src/views/report/report_item/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/report/report_metric_snapshot/ListPage.vue b/frontend/platform_admin/src/views/report/report_metric_snapshot/ListPage.vue new file mode 100644 index 0000000..90768f1 --- /dev/null +++ b/frontend/platform_admin/src/views/report/report_metric_snapshot/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/shared/CrudListPage.vue b/frontend/platform_admin/src/views/shared/CrudListPage.vue index d7f2939..9cf6ddd 100644 --- a/frontend/platform_admin/src/views/shared/CrudListPage.vue +++ b/frontend/platform_admin/src/views/shared/CrudListPage.vue @@ -1,40 +1,49 @@ - + diff --git a/frontend/platform_admin/src/views/shared/ReadOnlyListPage.vue b/frontend/platform_admin/src/views/shared/ReadOnlyListPage.vue new file mode 100644 index 0000000..0d318b9 --- /dev/null +++ b/frontend/platform_admin/src/views/shared/ReadOnlyListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/shared/TreePage.vue b/frontend/platform_admin/src/views/shared/TreePage.vue new file mode 100644 index 0000000..c82e1a6 --- /dev/null +++ b/frontend/platform_admin/src/views/shared/TreePage.vue @@ -0,0 +1,24 @@ + + diff --git a/frontend/platform_admin/src/views/staff/staff_account/ListPage.vue b/frontend/platform_admin/src/views/staff/staff_account/ListPage.vue new file mode 100644 index 0000000..6db1c6b --- /dev/null +++ b/frontend/platform_admin/src/views/staff/staff_account/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/staff/staff_credential/ListPage.vue b/frontend/platform_admin/src/views/staff/staff_credential/ListPage.vue new file mode 100644 index 0000000..ac1d4ad --- /dev/null +++ b/frontend/platform_admin/src/views/staff/staff_credential/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/user/user_account/ListPage.vue b/frontend/platform_admin/src/views/user/user_account/ListPage.vue new file mode 100644 index 0000000..70dab72 --- /dev/null +++ b/frontend/platform_admin/src/views/user/user_account/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/user/user_address/ListPage.vue b/frontend/platform_admin/src/views/user/user_address/ListPage.vue new file mode 100644 index 0000000..a17548a --- /dev/null +++ b/frontend/platform_admin/src/views/user/user_address/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/user/user_service_relation/ListPage.vue b/frontend/platform_admin/src/views/user/user_service_relation/ListPage.vue new file mode 100644 index 0000000..461c15a --- /dev/null +++ b/frontend/platform_admin/src/views/user/user_service_relation/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/wallet/wallet/ListPage.vue b/frontend/platform_admin/src/views/wallet/wallet/ListPage.vue new file mode 100644 index 0000000..923935e --- /dev/null +++ b/frontend/platform_admin/src/views/wallet/wallet/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/wallet/wallet_ledger/ListPage.vue b/frontend/platform_admin/src/views/wallet/wallet_ledger/ListPage.vue new file mode 100644 index 0000000..f93d19f --- /dev/null +++ b/frontend/platform_admin/src/views/wallet/wallet_ledger/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/wallet/wallet_recharge/ListPage.vue b/frontend/platform_admin/src/views/wallet/wallet_recharge/ListPage.vue new file mode 100644 index 0000000..80911e9 --- /dev/null +++ b/frontend/platform_admin/src/views/wallet/wallet_recharge/ListPage.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/platform_admin/src/views/wallet/wallet_withdrawal/ListPage.vue b/frontend/platform_admin/src/views/wallet/wallet_withdrawal/ListPage.vue new file mode 100644 index 0000000..e987d4b --- /dev/null +++ b/frontend/platform_admin/src/views/wallet/wallet_withdrawal/ListPage.vue @@ -0,0 +1,6 @@ + +