Merge remote-tracking branch 'origin/feat/mes' into feat/mes

feat/mes^2
YunaiV 2026-05-03 09:20:21 +08:00
commit 5d0755eea9
7 changed files with 34 additions and 36 deletions

View File

@ -74,8 +74,8 @@ export const useUploadImgRule = () => {
{
type: 'switch',
field: 'disabled',
title: '是否显示删除按钮',
value: true
title: '是否禁用',
value: false
},
{
type: 'switch',

View File

@ -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() {

View File

@ -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 工单类型

View File

@ -128,6 +128,11 @@ const validateTriggers = (_rule: any, value: any, callback: any) => {
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
@ -137,6 +142,7 @@ const validateTriggers = (_rule: any, value: any, callback: any) => {
return
}
}
}
//
if (trigger.type === IotRuleSceneTriggerTypeEnum.TIMER) {

View File

@ -80,14 +80,20 @@
:config="serviceConfig"
placeholder="请输入 JSON 格式的服务参数"
/>
<!-- 事件上报参数配置 -->
<JsonParamsInput
v-else-if="triggerType === IotRuleSceneTriggerTypeEnum.DEVICE_EVENT_POST"
v-model="condition.value"
type="event"
:config="eventConfig"
placeholder="请输入 JSON 格式的事件参数"
<!-- 事件上报比较值标量填裸值结构体数组填 JSON 整体相等留空则事件发生即匹配 -->
<template v-else-if="triggerType === IotRuleSceneTriggerTypeEnum.DEVICE_EVENT_POST">
<el-input
:model-value="condition.value"
@update:model-value="(value) => updateConditionField('value', value)"
placeholder="留空则事件发生即匹配"
/>
<div class="text-12px text-[var(--el-text-color-secondary)] mt-4px leading-relaxed">
标量事件值填裸值
<code class="px-2px">normal</code>结构体数组事件值填合法
JSON
<code class="px-2px">{"level":"high"}</code>
</div>
</template>
<!-- 普通值输入 -->
<ValueInput
v-else
@ -276,19 +282,6 @@ const serviceConfig = computed(() => {
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 字段名

View File

@ -21,7 +21,7 @@
<el-form-item label="检测项类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择检测项类型" clearable class="!w-1/1">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_DEFECT_TYPE)"
v-for="dict in getIntDictOptions(DICT_TYPE.MES_INDICATOR_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"

View File

@ -37,7 +37,7 @@
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_DEFECT_TYPE)"
v-for="dict in getIntDictOptions(DICT_TYPE.MES_INDICATOR_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
@ -90,7 +90,7 @@
<el-table-column label="缺陷描述" align="center" prop="name" min-width="200" />
<el-table-column label="检测项类型" align="center" prop="type" width="120">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_DEFECT_TYPE" :value="scope.row.type" />
<dict-tag :type="DICT_TYPE.MES_INDICATOR_TYPE" :value="scope.row.type" />
</template>
</el-table-column>
<el-table-column label="缺陷等级" align="center" prop="level" width="120">