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 000000000..79339cdf4
Binary files /dev/null and b/apps/web-antd/src/assets/imgs/iot/device.png differ
diff --git a/apps/web-antd/src/assets/svgs/iot/cube.svg b/apps/web-antd/src/assets/svgs/iot/cube.svg
new file mode 100644
index 000000000..200ac1b1c
--- /dev/null
+++ b/apps/web-antd/src/assets/svgs/iot/cube.svg
@@ -0,0 +1 @@
+
\ 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 @@
@@ -62,17 +38,19 @@ const shortText = computed(() => {
-
-
-
- {{
- data.property?.dataType === IoTDataSpecsDataTypeEnum.BOOL
- ? '布尔值'
- : '枚举值'
- }}:{{ shortText }}
-
-
+
+ {{
+ data.property?.dataType === IoTDataSpecsDataTypeEnum.BOOL
+ ? '布尔值'
+ : '枚举值'
+ }}:
+
+
+ {{ item.name }}-{{ item.value }}
+
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 000000000..79339cdf4
Binary files /dev/null and b/apps/web-ele/src/assets/imgs/iot/device.png differ
diff --git a/apps/web-ele/src/assets/svgs/iot/cube.svg b/apps/web-ele/src/assets/svgs/iot/cube.svg
new file mode 100644
index 000000000..200ac1b1c
--- /dev/null
+++ b/apps/web-ele/src/assets/svgs/iot/cube.svg
@@ -0,0 +1 @@
+
\ 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 方法,用于打开弹窗