diff --git a/src/core/navigation/adminNavigation.test.ts b/src/core/navigation/adminNavigation.test.ts index 2b20c3f7..41411781 100644 --- a/src/core/navigation/adminNavigation.test.ts +++ b/src/core/navigation/adminNavigation.test.ts @@ -8,6 +8,15 @@ import { } from './adminNavigation' describe('adminNavigation', () => { + it('places owned-business under vehicle management and keeps edit/upload from granting page access', () => { + const read = filterAdminNavigation(adminNavigation, new Set(['platform:fleet:owned-business:list'])) + const vehicle = read.find(node => node.key === 'vehicle-management') + expect(vehicle?.children?.map(node => node.path)).toEqual(['/overseas-master-data/owned-business']) + const writeOnly = filterAdminNavigation(adminNavigation, new Set([ + 'platform:fleet:owned-business:edit', 'platform:fleet:owned-business:upload', + ])) + expect(getNavigationLeaves(writeOnly).some(node => node.path === '/overseas-master-data/owned-business')).toBe(false) + }) it('opens all self-operated read pages with list permission and keeps sync alone insufficient', () => { const read = filterAdminNavigation(adminNavigation, new Set(['platform:self-operated-analytics:list'])) expect(getNavigationLeaves(read).map(item => item.path)).toEqual([ @@ -31,7 +40,7 @@ describe('adminNavigation', () => { { title: '货柜管理', children: ['订舱列表', '拖车列表', '货柜列表', '装柜清单', '预装清单'] }, { title: '海外尾程', children: ['尾程订单', '入库单', '废弃单', '出库单', '换标单', '派送单', '托盘管理', '库位管理', '库存管理', '退货库存管理', '退货箱号管理'] }, { title: '预约管理', children: ['预约列表'] }, - { title: '车辆管理', children: ['排车列表', '车辆列表', '司机管理', '出车记录'] }, + { title: '车辆管理', children: ['排车列表', '车辆列表', '司机管理', '自有业务', '出车记录'] }, { title: '海外业务', children: ['采购订单', '本土卡车', '本土散板', '散板需求'] }, { title: '客户服务', children: ['异常订单'] }, { title: '财务管理', children: ['客户账户', '客户应收应付', '应收款统计表', '客户对账单', '结算单应收', '结算单应付'] }, @@ -40,7 +49,7 @@ describe('adminNavigation', () => { { title: '系统管理', children: ['用户管理', '角色权限', '菜单权限'] }, ]) expect(visible).toHaveLength(13) - expect(visible.flatMap(node => node.children ?? [])).toHaveLength(56) + expect(visible.flatMap(node => node.children ?? [])).toHaveLength(57) expect(adminNavigation.find((item) => item.key === 'notifications')).toBeUndefined() }) diff --git a/src/core/navigation/adminNavigation.ts b/src/core/navigation/adminNavigation.ts index 0b67565c..203141f4 100644 --- a/src/core/navigation/adminNavigation.ts +++ b/src/core/navigation/adminNavigation.ts @@ -134,6 +134,7 @@ export const adminNavigation: AdminNavigationNode[] = [ { key: 'fba-dispatch', title: '排车列表', icon: Truck, path: '/overseas-warehouse/dispatches', permission: 'platform:overseas-warehouse:dispatch:list' }, { key: 'vehicle-list', title: '车辆列表', icon: Truck, path: '/overseas-master-data/vehicles', permission: 'platform:overseas-master-data:vehicle:list' }, { key: 'driver-management', title: '司机管理', icon: ContactRound, path: '/overseas-master-data/drivers', permission: 'platform:overseas-master-data:driver:list' }, + { key: 'fleet-owned-business', title: '自有业务', icon: Truck, path: '/overseas-master-data/owned-business', permission: 'platform:fleet:owned-business:list' }, { key: 'fleet-trips', title: '车次管理', icon: Truck, path: '/overseas-master-data/trips', permission: 'platform:fleet:trip:list', hidden: true }, { key: 'fleet-operations', title: '出车记录', icon: Truck, path: '/overseas-master-data/trip-operations', permission: 'platform:fleet:operations:list' }, ], diff --git a/src/modules/appointment-calendar/AppointmentCalendarView.vue b/src/modules/appointment-calendar/AppointmentCalendarView.vue index b222b03c..3158509c 100644 --- a/src/modules/appointment-calendar/AppointmentCalendarView.vue +++ b/src/modules/appointment-calendar/AppointmentCalendarView.vue @@ -181,7 +181,7 @@ onBeforeUnmount(() => { ++generation; controller?.abort() })
业务{{ editor.title }}
- +
diff --git a/src/modules/appointment-calendar/WorkCommandForm.vue b/src/modules/appointment-calendar/WorkCommandForm.vue index ab3e3bb9..b38f2eba 100644 --- a/src/modules/appointment-calendar/WorkCommandForm.vue +++ b/src/modules/appointment-calendar/WorkCommandForm.vue @@ -1,4 +1,5 @@