From 272757995e741175d7cebac76592de0e6cf879e9 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 25 May 2026 08:22:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(iot):=20=E4=BF=AE=E5=A4=8D=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E3=80=81=E8=AE=BE=E5=A4=87=E3=80=81=E8=A7=84=E5=88=99?= =?UTF-8?q?=E4=B8=8E=E9=A6=96=E9=A1=B5=E5=AF=B9=E6=A0=87=E5=B7=AE=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 对齐产品卡片默认图标和图片资源,修正产品导出文件名 - 对齐设备导入、属性历史、分组校验和物模型编辑行为 - 对齐首页统计空态、设备地图图例和快捷日期范围实现 - 对齐数据规则 source/sink 配置、Redis Stream 字段契约和场景联动选择器 - 补充空值判断工具测试,并将剩余 IoT 对标项迁入 done --- .../web-antd/src/api/mes/pro/process/index.ts | 22 +- apps/web-antd/src/assets/imgs/iot/device.png | Bin 0 -> 10007 bytes apps/web-antd/src/assets/svgs/iot/cube.svg | 1 + .../modules/thing-model-property-history.vue | 12 +- .../iot/device/device/modules/import-form.vue | 11 +- .../src/views/iot/device/group/data.ts | 5 +- apps/web-antd/src/views/iot/home/data.ts | 14 +- .../iot/home/modules/device-map-card.vue | 41 ++- .../src/views/iot/product/product/index.vue | 2 +- .../iot/product/product/modules/card-view.vue | 34 ++- .../data/rule/modules/source-config-form.vue | 4 + .../sink/config/redis-stream-config-form.vue | 59 +--- .../modules/components/data-definition.vue | 50 +--- .../src/views/iot/thingmodel/modules/form.vue | 1 - .../web-antd/src/views/mes/utils/constants.ts | 60 ++++ apps/web-ele/src/api/mes/pro/process/index.ts | 22 +- apps/web-ele/src/assets/imgs/iot/device.png | Bin 0 -> 10007 bytes apps/web-ele/src/assets/svgs/iot/cube.svg | 1 + .../shortcut-date-range-picker.vue | 12 +- .../modules/thing-model-property-history.vue | 1 - .../iot/device/device/modules/import-form.vue | 20 +- .../src/views/iot/device/group/data.ts | 5 +- apps/web-ele/src/views/iot/home/data.ts | 14 +- .../iot/home/modules/device-map-card.vue | 45 ++- .../src/views/iot/ota/firmware/data.ts | 6 +- .../src/views/iot/product/category/data.ts | 1 + .../src/views/iot/product/product/index.vue | 2 +- .../iot/product/product/modules/card-view.vue | 39 ++- .../web-ele/src/views/iot/rule/data/index.vue | 2 +- .../data/rule/modules/source-config-form.vue | 4 + .../sink/config/redis-stream-config-form.vue | 72 +---- .../form/selectors/property-selector.vue | 261 +++++++----------- .../modules/components/data-definition.vue | 50 +--- .../src/views/iot/thingmodel/modules/form.vue | 1 - .../process/components/pro-process-select.vue | 2 +- apps/web-ele/src/views/mes/utils/constants.ts | 60 ++++ .../src/utils/__tests__/inference.test.ts | 16 ++ .../@core/base/shared/src/utils/inference.ts | 16 ++ packages/constants/src/dict-enum.ts | 13 + 39 files changed, 493 insertions(+), 488 deletions(-) create mode 100644 apps/web-antd/src/assets/imgs/iot/device.png create mode 100644 apps/web-antd/src/assets/svgs/iot/cube.svg create mode 100644 apps/web-ele/src/assets/imgs/iot/device.png create mode 100644 apps/web-ele/src/assets/svgs/iot/cube.svg diff --git a/apps/web-antd/src/api/mes/pro/process/index.ts b/apps/web-antd/src/api/mes/pro/process/index.ts index 5a3893b18..a4ff1ea64 100644 --- a/apps/web-antd/src/api/mes/pro/process/index.ts +++ b/apps/web-antd/src/api/mes/pro/process/index.ts @@ -5,7 +5,7 @@ import { requestClient } from '#/api/request'; export namespace MesProProcessApi { /** MES 生产工序 */ export interface Process { - id: number; + id?: number; code?: string; name?: string; attention?: string; @@ -36,3 +36,23 @@ export function getProcess(id: number) { `/mes/pro/process/get?id=${id}`, ); } + +/** 新增生产工序 */ +export function createProcess(data: MesProProcessApi.Process) { + return requestClient.post('/mes/pro/process/create', data); +} + +/** 修改生产工序 */ +export function updateProcess(data: MesProProcessApi.Process) { + return requestClient.put('/mes/pro/process/update', data); +} + +/** 删除生产工序 */ +export function deleteProcess(id: number) { + return requestClient.delete(`/mes/pro/process/delete?id=${id}`); +} + +/** 导出生产工序 Excel */ +export function exportProcess(params: any) { + return requestClient.download('/mes/pro/process/export-excel', { params }); +} diff --git a/apps/web-antd/src/assets/imgs/iot/device.png b/apps/web-antd/src/assets/imgs/iot/device.png new file mode 100644 index 0000000000000000000000000000000000000000..79339cdf486e64bff9f5c3f89f16a7c20a8aadeb GIT binary patch literal 10007 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 \ No newline at end of file diff --git a/apps/web-antd/src/views/iot/device/device/detail/modules/thing-model-property-history.vue b/apps/web-antd/src/views/iot/device/device/detail/modules/thing-model-property-history.vue index bb2d59819..1a03e1293 100644 --- a/apps/web-antd/src/views/iot/device/device/detail/modules/thing-model-property-history.vue +++ b/apps/web-antd/src/views/iot/device/device/detail/modules/thing-model-property-history.vue @@ -137,16 +137,6 @@ const tableColumns = computed(() => [ }, ]); // 表格列配置 -const paginationConfig = computed(() => ({ - current: 1, - pageSize: 10, - total: total.value, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: ['10', '20', '50', '100'], - showTotal: (total: number) => `共 ${total} 条数据`, -})); // 分页配置 - /** 获得设备历史数据 */ async function getList() { loading.value = true; @@ -438,7 +428,7 @@ defineExpose({ open }); // 提供 open 方法,用于打开弹窗
- +
diff --git a/apps/web-antd/src/views/iot/device/group/data.ts b/apps/web-antd/src/views/iot/device/group/data.ts index af8ac6c6a..9de20e9d8 100644 --- a/apps/web-antd/src/views/iot/device/group/data.ts +++ b/apps/web-antd/src/views/iot/device/group/data.ts @@ -26,10 +26,7 @@ export function useFormSchema(): VbenFormSchema[] { componentProps: { placeholder: '请输入分组名称', }, - rules: z - .string() - .min(1, '分组名称不能为空') - .max(64, '分组名称长度不能超过 64 个字符'), + rules: z.string().min(1, '分组名称不能为空'), }, { fieldName: 'status', diff --git a/apps/web-antd/src/views/iot/home/data.ts b/apps/web-antd/src/views/iot/home/data.ts index 433db75c7..eaa9159f4 100644 --- a/apps/web-antd/src/views/iot/home/data.ts +++ b/apps/web-antd/src/views/iot/home/data.ts @@ -9,12 +9,12 @@ export const defaultStatsData: StatsData = { productCount: -1, deviceCount: -1, deviceMessageCount: -1, - productCategoryTodayCount: 0, - productTodayCount: 0, - deviceTodayCount: 0, - deviceMessageTodayCount: 0, - deviceOnlineCount: 0, - deviceOfflineCount: 0, - deviceInactiveCount: 0, + productCategoryTodayCount: -1, + productTodayCount: -1, + deviceTodayCount: -1, + deviceMessageTodayCount: -1, + deviceOnlineCount: -1, + deviceOfflineCount: -1, + deviceInactiveCount: -1, productCategoryDeviceCounts: {}, }; diff --git a/apps/web-antd/src/views/iot/home/modules/device-map-card.vue b/apps/web-antd/src/views/iot/home/modules/device-map-card.vue index 61e47f5e2..7989a478e 100644 --- a/apps/web-antd/src/views/iot/home/modules/device-map-card.vue +++ b/apps/web-antd/src/views/iot/home/modules/device-map-card.vue @@ -1,11 +1,13 @@ @@ -111,37 +103,4 @@ onMounted(() => { > - - - - - - diff --git a/apps/web-antd/src/views/iot/thingmodel/modules/components/data-definition.vue b/apps/web-antd/src/views/iot/thingmodel/modules/components/data-definition.vue index 0d87e3086..19637601b 100644 --- a/apps/web-antd/src/views/iot/thingmodel/modules/components/data-definition.vue +++ b/apps/web-antd/src/views/iot/thingmodel/modules/components/data-definition.vue @@ -1,8 +1,6 @@ diff --git a/apps/web-antd/src/views/iot/thingmodel/modules/form.vue b/apps/web-antd/src/views/iot/thingmodel/modules/form.vue index eb7217aed..03e9e204e 100644 --- a/apps/web-antd/src/views/iot/thingmodel/modules/form.vue +++ b/apps/web-antd/src/views/iot/thingmodel/modules/form.vue @@ -218,7 +218,6 @@ function removeDataSpecs(val: any) { > diff --git a/apps/web-antd/src/views/mes/utils/constants.ts b/apps/web-antd/src/views/mes/utils/constants.ts index d8b69b955..a436eabd5 100644 --- a/apps/web-antd/src/views/mes/utils/constants.ts +++ b/apps/web-antd/src/views/mes/utils/constants.ts @@ -133,10 +133,70 @@ export const MesAutoCodeRuleCode = { MD_VENDOR_CODE: 'MD_VENDOR_CODE', MD_WORKSTATION_CODE: 'MD_WORKSTATION_CODE', MD_WORKSHOP_CODE: 'MD_WORKSHOP_CODE', + PRO_CARD_CODE: 'PRO_CARD_CODE', + PRO_FEEDBACK_CODE: 'PRO_FEEDBACK_CODE', + PRO_PROCESS_CODE: 'PRO_PROCESS_CODE', + PRO_ROUTE_CODE: 'PRO_ROUTE_CODE', + PRO_TASK_CODE: 'PRO_TASK_CODE', + PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE', TM_TOOL_TYPE_CODE: 'TM_TOOL_TYPE_CODE', TM_TOOL_CODE: 'TM_TOOL_CODE', } as const; +/** MES 生产工单状态枚举 */ +export const MesProWorkOrderStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + CONFIRMED: MesOrderStatusConstants.CONFIRMED, + APPROVING: MesOrderStatusConstants.APPROVING, + PRODUCING: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELLED: MesOrderStatusConstants.CANCELLED, +} as const; + +/** MES 生产任务状态枚举 */ +export const MesProTaskStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + CONFIRMED: MesOrderStatusConstants.CONFIRMED, + APPROVING: MesOrderStatusConstants.APPROVING, + PRODUCING: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELLED: MesOrderStatusConstants.CANCELLED, +} as const; + +/** MES 生产报工状态枚举 */ +export const MesProFeedbackStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + CONFIRMED: MesOrderStatusConstants.CONFIRMED, + APPROVING: MesOrderStatusConstants.APPROVING, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELLED: MesOrderStatusConstants.CANCELLED, +} as const; + +/** MES 流转卡状态枚举 */ +export const MesProCardStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + ISSUED: MesOrderStatusConstants.CONFIRMED, + PRODUCING: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELLED: MesOrderStatusConstants.CANCELLED, +} as const; + +/** MES 安灯类型枚举 */ +export const MesProAndonTypeEnum = { + QUALITY: 1, + EQUIPMENT: 2, + MATERIAL: 3, + PROCESS: 4, + OTHER: 9, +} as const; + +/** MES 安灯状态枚举 */ +export const MesProAndonStatusEnum = { + TRIGGERED: 1, + HANDLING: 2, + CLOSED: 3, +} as const; + /** MES 编码规则分段类型枚举 */ export const MesAutoCodePartTypeEnum = { INPUT: 1, diff --git a/apps/web-ele/src/api/mes/pro/process/index.ts b/apps/web-ele/src/api/mes/pro/process/index.ts index 5a3893b18..a4ff1ea64 100644 --- a/apps/web-ele/src/api/mes/pro/process/index.ts +++ b/apps/web-ele/src/api/mes/pro/process/index.ts @@ -5,7 +5,7 @@ import { requestClient } from '#/api/request'; export namespace MesProProcessApi { /** MES 生产工序 */ export interface Process { - id: number; + id?: number; code?: string; name?: string; attention?: string; @@ -36,3 +36,23 @@ export function getProcess(id: number) { `/mes/pro/process/get?id=${id}`, ); } + +/** 新增生产工序 */ +export function createProcess(data: MesProProcessApi.Process) { + return requestClient.post('/mes/pro/process/create', data); +} + +/** 修改生产工序 */ +export function updateProcess(data: MesProProcessApi.Process) { + return requestClient.put('/mes/pro/process/update', data); +} + +/** 删除生产工序 */ +export function deleteProcess(id: number) { + return requestClient.delete(`/mes/pro/process/delete?id=${id}`); +} + +/** 导出生产工序 Excel */ +export function exportProcess(params: any) { + return requestClient.download('/mes/pro/process/export-excel', { params }); +} diff --git a/apps/web-ele/src/assets/imgs/iot/device.png b/apps/web-ele/src/assets/imgs/iot/device.png new file mode 100644 index 0000000000000000000000000000000000000000..79339cdf486e64bff9f5c3f89f16a7c20a8aadeb GIT binary patch literal 10007 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 \ No newline at end of file diff --git a/apps/web-ele/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue b/apps/web-ele/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue index 4cc1b7656..8b8295b0b 100644 --- a/apps/web-ele/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue +++ b/apps/web-ele/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue @@ -18,24 +18,20 @@ const emits = defineEmits<{ const times = ref<[Dayjs, Dayjs]>(); // 日期范围 const rangePickerProps = getRangePickerDefaultProps(); - const timeRangeOptions = [ { - label: '昨天', - value: () => [ - dayjs().subtract(1, 'day').startOf('day'), - dayjs().subtract(1, 'day').endOf('day'), - ], + label: rangePickerProps.shortcuts[1]!.text, + value: () => rangePickerProps.shortcuts[1]!.value() as [Dayjs, Dayjs], }, { - label: '最近 7 天', + label: rangePickerProps.shortcuts[2]!.text, value: () => [ dayjs().subtract(7, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day'), ], }, { - label: '最近 30 天', + label: rangePickerProps.shortcuts[3]!.text, value: () => [ dayjs().subtract(30, 'day').startOf('day'), dayjs().subtract(1, 'day').endOf('day'), diff --git a/apps/web-ele/src/views/iot/device/device/detail/modules/thing-model-property-history.vue b/apps/web-ele/src/views/iot/device/device/detail/modules/thing-model-property-history.vue index ed943b982..000cf504f 100644 --- a/apps/web-ele/src/views/iot/device/device/detail/modules/thing-model-property-history.vue +++ b/apps/web-ele/src/views/iot/device/device/detail/modules/thing-model-property-history.vue @@ -438,7 +438,6 @@ defineExpose({ open }); // 提供 open 方法,用于打开弹窗