新增“WCS模板原型”入口及自检脚本,支持无代码拖拽流程设计、选位试算、实例运行、预占管理等。实现了DSL类型定义、控件库、画布节点、节点属性面板、试算台等组件。补充了流程编排、参数组装、表达式求值、选位与打分、预占管理、模板校验等核心逻辑。提供假数据、演示脚本及README说明,便于后续对接真实系统。
93 lines
4.4 KiB
TypeScript
93 lines
4.4 KiB
TypeScript
import {
|
|
Bell,
|
|
Collection,
|
|
Connection,
|
|
Cpu,
|
|
Document,
|
|
DocumentCopy,
|
|
EditPen,
|
|
Files,
|
|
Histogram,
|
|
Link,
|
|
List,
|
|
MapLocation,
|
|
Monitor,
|
|
Notebook,
|
|
OfficeBuilding,
|
|
Operation,
|
|
Promotion,
|
|
SetUp,
|
|
Setting,
|
|
Tools,
|
|
User,
|
|
Van,
|
|
VideoCamera,
|
|
View
|
|
} from '@element-plus/icons-vue'
|
|
import type { Component } from 'vue'
|
|
|
|
export interface NavMenuItem {
|
|
path: string
|
|
label: string
|
|
icon?: Component
|
|
key?: string
|
|
group?: string
|
|
children?: NavMenuItem[]
|
|
}
|
|
|
|
export const ADMIN_MENU: NavMenuItem[] = [
|
|
{ path: '/admin/dashboard', label: '总览', icon: Histogram, key: 'admin-dashboard', group: '概览' },
|
|
{
|
|
path: '/admin/operations', label: '运营管理', icon: Monitor, group: '概览',
|
|
children: [
|
|
{ path: '/admin/map-monitor', label: '地图监控', icon: View, key: 'admin-map-monitor', group: '概览' },
|
|
{ path: '/admin/tasks', label: '任务管理', icon: List, key: 'admin-tasks', group: '概览' },
|
|
{ path: '/admin/alarms', label: '报警管理', icon: Bell, key: 'admin-alarms', group: '概览' }
|
|
]
|
|
},
|
|
{
|
|
path: '/admin/design', label: '设计与编辑', icon: Tools, group: '设计与编辑',
|
|
children: [
|
|
{ path: '/admin/maps', label: '地图管理', icon: Files, key: 'admin-maps', group: '设计与编辑' },
|
|
{ path: '/admin/map-editor', label: '地图编辑', icon: EditPen, key: 'admin-map-editor', group: '设计与编辑' },
|
|
{ path: '/admin/project-properties', label: '项目属性', icon: Document, key: 'admin-project-properties', group: '设计与编辑' },
|
|
{ path: '/admin/tracks', label: '场景管理', icon: Connection, key: 'admin-tracks', group: '设计与编辑' },
|
|
{ path: '/admin/cars', label: '车辆管理', icon: Van, key: 'admin-cars', group: '设计与编辑' },
|
|
{ path: '/admin/processes', label: '进程管理', icon: Cpu, key: 'admin-processes', group: '设计与编辑' },
|
|
{ path: '/admin/scripts', label: '脚本管理', icon: DocumentCopy, key: 'admin-scripts', group: '设计与编辑' },
|
|
{ path: '/admin/task-templates', label: '任务编排', icon: Operation, key: 'admin-task-templates', group: '设计与编辑' },
|
|
{ path: '/admin/wcs-template-proto', label: 'WCS模板原型', icon: SetUp, key: 'admin-wcs-template-proto', group: '设计与编辑' },
|
|
{ path: '/admin/simple-fields', label: '字段管理', icon: Collection, key: 'admin-simple-fields', group: '设计与编辑' }
|
|
]
|
|
},
|
|
{
|
|
path: '/admin/config', label: '平台配置中心', icon: Setting, group: '平台配置中心',
|
|
children: [
|
|
{ path: '/admin/config/strategy', label: '调度策略', icon: SetUp, key: 'admin-config-strategy', group: '平台配置中心' },
|
|
{ path: '/admin/config/vehicle-hub', label: '车辆运维', icon: Van, key: 'admin-vehicle-hub', group: '平台配置中心' },
|
|
{ path: '/admin/config/facility', label: '设备接入', icon: OfficeBuilding, key: 'admin-config-facility', group: '平台配置中心' },
|
|
{ path: '/admin/config/warehouse', label: '仓储管理', icon: OfficeBuilding, key: 'admin-config-warehouse', group: '平台配置中心' },
|
|
{ path: '/admin/config/business', label: '业务与集成', icon: Link, key: 'admin-config-business', group: '平台配置中心' },
|
|
{ path: '/admin/config/ops-center', label: '运维与回放', icon: VideoCamera, key: 'admin-config-ops-center', group: '平台配置中心' },
|
|
{ path: '/admin/config/system-center', label: '系统与权限', icon: User, key: 'admin-config-system-center', group: '平台配置中心' }
|
|
]
|
|
}
|
|
]
|
|
|
|
export const MONITOR_MENU: NavMenuItem[] = [
|
|
{ path: '/monitor/dashboard', label: '运营总览', icon: Monitor, key: 'monitor-dashboard', group: '运营监控' },
|
|
{ path: '/monitor/vehicle-hub', label: '车辆运维', icon: Van, key: 'monitor-vehicle-hub', group: '运营监控' },
|
|
{ path: '/monitor/map', label: '地图监控', icon: MapLocation, key: 'monitor-map', group: '运营监控' },
|
|
{ path: '/monitor/ops', label: '运维操作', icon: Promotion, key: 'monitor-ops', group: '运营监控' },
|
|
{ path: '/monitor/notes', label: '运营备注', icon: Notebook, key: 'monitor-notes', group: '运营监控' }
|
|
]
|
|
|
|
export function flattenNavMenu(items: NavMenuItem[]): NavMenuItem[] {
|
|
const out: NavMenuItem[] = []
|
|
for (const item of items) {
|
|
if (item.children?.length) out.push(...flattenNavMenu(item.children))
|
|
else if (item.key) out.push(item)
|
|
}
|
|
return out
|
|
}
|