From 2c3842582ff21dd15e630628f616303f2467138d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 2 May 2026 00:35:16 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=90=9B=20fix(system)=EF=BC=9A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A7=9F=E6=88=B7=20get-by-website=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=B8=8D=E6=94=AF=E6=8C=81=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20=F0=9F=90=9B=20fix(mes)=EF=BC=9A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B8=B8=E8=A7=81=E7=BC=BA=E9=99=B7=E7=9A=84?= =?UTF-8?q?=E3=80=8C=E6=A3=80=E6=B5=8B=E9=A1=B9=E7=B1=BB=E5=9E=8B=E3=80=8D?= =?UTF-8?q?=E9=94=99=E7=94=A8=E7=8B=AC=E7=AB=8B=E5=AD=97=E5=85=B8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 「常见缺陷」与「检测项设置」的「检测项类型」语义一致,应共用同一份字典;DefectForm 与列表页统一改为 MES_INDICATOR_TYPE,并清理未使用的 MES_DEFECT_TYPE 常量。 --- src/utils/dict.ts | 1 - src/views/mes/qc/defect/DefectForm.vue | 2 +- src/views/mes/qc/defect/index.vue | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 7965a9376..91909f538 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -268,7 +268,6 @@ export enum DICT_TYPE { MES_INDICATOR_TYPE = 'mes_indicator_type', // MES 检测项类型 MES_QC_RESULT_TYPE = 'mes_qc_result_type', // MES 质检结果值类型 MES_DEFECT_LEVEL = 'mes_defect_level', // MES 缺陷等级 - MES_DEFECT_TYPE = 'mes_defect_type', // MES 缺陷检测项类型 MES_PRO_WORK_ORDER_STATUS = 'mes_pro_work_order_status', // MES 生产工单状态 MES_PRO_WORK_ORDER_SOURCE_TYPE = 'mes_pro_work_order_source_type', // MES 工单来源类型 MES_PRO_WORK_ORDER_TYPE = 'mes_pro_work_order_type', // MES 工单类型 diff --git a/src/views/mes/qc/defect/DefectForm.vue b/src/views/mes/qc/defect/DefectForm.vue index 6f49ad65c..2a0d623d3 100644 --- a/src/views/mes/qc/defect/DefectForm.vue +++ b/src/views/mes/qc/defect/DefectForm.vue @@ -21,7 +21,7 @@ From d5a9e2e3134ed745f1bf8e2f8de3e8034928b343 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 2 May 2026 14:32:42 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91IoT=20?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E8=81=94=E5=8A=A8=EF=BC=9A=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E5=99=A8=E6=AF=94=E8=BE=83=E5=80=BC=E6=94=B9?= =?UTF-8?q?=E6=99=AE=E9=80=9A=E6=96=87=E6=9C=AC=E8=BE=93=E5=85=A5=EF=BC=8C?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E7=95=99=E7=A9=BA=EF=BC=88=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=8F=91=E7=94=9F=E5=8D=B3=E5=8C=B9=E9=85=8D=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/rule/scene/form/RuleSceneForm.vue | 20 +++++++---- .../form/configs/MainConditionInnerConfig.vue | 35 ++++++++----------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/src/views/iot/rule/scene/form/RuleSceneForm.vue b/src/views/iot/rule/scene/form/RuleSceneForm.vue index 22ba268e2..a5b2efede 100644 --- a/src/views/iot/rule/scene/form/RuleSceneForm.vue +++ b/src/views/iot/rule/scene/form/RuleSceneForm.vue @@ -128,13 +128,19 @@ const validateTriggers = (_rule: any, value: any, callback: any) => { callback(new Error(`触发器 ${i + 1}: 物模型标识符不能为空`)) return } - if (!trigger.operator) { - callback(new Error(`触发器 ${i + 1}: 操作符不能为空`)) - return - } - if (trigger.value === undefined || trigger.value === null || trigger.value === '') { - callback(new Error(`触发器 ${i + 1}: 参数值不能为空`)) - return + // 事件上报 / 服务调用:operator 由前端自动设为 '=',参数值留空表示"事件 / 调用发生即匹配" + const isEventOrService = + trigger.type === IotRuleSceneTriggerTypeEnum.DEVICE_EVENT_POST || + trigger.type === IotRuleSceneTriggerTypeEnum.DEVICE_SERVICE_INVOKE + if (!isEventOrService) { + if (!trigger.operator) { + callback(new Error(`触发器 ${i + 1}: 操作符不能为空`)) + return + } + if (trigger.value === undefined || trigger.value === null || trigger.value === '') { + callback(new Error(`触发器 ${i + 1}: 参数值不能为空`)) + return + } } } diff --git a/src/views/iot/rule/scene/form/configs/MainConditionInnerConfig.vue b/src/views/iot/rule/scene/form/configs/MainConditionInnerConfig.vue index 4c61d31e4..4ccff2b43 100644 --- a/src/views/iot/rule/scene/form/configs/MainConditionInnerConfig.vue +++ b/src/views/iot/rule/scene/form/configs/MainConditionInnerConfig.vue @@ -80,14 +80,20 @@ :config="serviceConfig" placeholder="请输入 JSON 格式的服务参数" /> - - + + { return undefined }) -// 计算属性:事件配置 - 用于 JsonParamsInput -const eventConfig = computed(() => { - if (propertyConfig.value && props.triggerType === IotRuleSceneTriggerTypeEnum.DEVICE_EVENT_POST) { - return { - event: { - name: propertyConfig.value.name || '事件', - outputParams: propertyConfig.value.outputParams || [] - } - } - } - return undefined -}) - /** * 更新条件字段 * @param field 字段名 From e98d575b3a02dec8d17f704f0bacbc97dda16e4f Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 2 May 2026 22:56:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91form-cr?= =?UTF-8?q?eate=20=E5=8D=95=E5=9B=BE=E4=B8=8A=E4=BC=A0=E8=A7=84=E5=88=99?= =?UTF-8?q?=20disabled=20=E5=AD=97=E6=AE=B5=E6=A0=87=E9=A2=98=E4=B8=8E?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC=E9=94=99=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/FormCreate/src/config/useUploadImgRule.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/FormCreate/src/config/useUploadImgRule.ts b/src/components/FormCreate/src/config/useUploadImgRule.ts index 546cf9d66..47dce1c87 100644 --- a/src/components/FormCreate/src/config/useUploadImgRule.ts +++ b/src/components/FormCreate/src/config/useUploadImgRule.ts @@ -74,8 +74,8 @@ export const useUploadImgRule = () => { { type: 'switch', field: 'disabled', - title: '是否显示删除按钮', - value: true + title: '是否禁用', + value: false }, { type: 'switch', From a704620f84ebd63ccfdba6efc63fbc09127d46eb Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 3 May 2026 00:28:27 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E3=80=90framework=E3=80=91=E5=85=B3?= =?UTF-8?q?=E9=97=AD=20TagsView=20=E6=A0=87=E7=AD=BE=E5=90=8E=20keep-alive?= =?UTF-8?q?=20=E7=BC=93=E5=AD=98=E6=9C=AA=E6=94=B6=E7=BC=A9=EF=BC=8C?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=20DOM=EF=BC=8FJS=20heap=20=E4=B8=8D=E5=9B=9E?= =?UTF-8?q?=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit delView/delAllViews 误用 delCachedView,关闭非当前标签时会去删 currentRoute 对应的缓存,把要关的 name 留在 cachedViews 里,keep-alive include 不收缩, 旧组件实例无法 unmount。 回退到基于剩余 visitedViews 重建 cachedViews 的实现(对应 5718c7881 之前的写法); delCachedView 自身保留 issue #180 的修复,仍供 refreshPage 使用。 --- src/store/modules/tagsView.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/store/modules/tagsView.ts b/src/store/modules/tagsView.ts index b54063512..9a07d9604 100644 --- a/src/store/modules/tagsView.ts +++ b/src/store/modules/tagsView.ts @@ -78,7 +78,7 @@ export const useTagsViewStore = defineStore('tagsView', { // 删除某个 delView(view: RouteLocationNormalizedLoaded) { this.delVisitedView(view) - this.delCachedView() + this.addCachedView() }, // 删除tag delVisitedView(view: RouteLocationNormalizedLoaded) { @@ -106,7 +106,7 @@ export const useTagsViewStore = defineStore('tagsView', { // 删除所有缓存和tag delAllViews() { this.delAllVisitedViews() - this.delCachedView() + this.addCachedView() }, // 删除所有tag delAllVisitedViews() {