Merge remote-tracking branch 'origin/feat/mes' into feat/mes
commit
5d0755eea9
|
|
@ -74,8 +74,8 @@ export const useUploadImgRule = () => {
|
|||
{
|
||||
type: 'switch',
|
||||
field: 'disabled',
|
||||
title: '是否显示删除按钮',
|
||||
value: true
|
||||
title: '是否禁用',
|
||||
value: false
|
||||
},
|
||||
{
|
||||
type: 'switch',
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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 工单类型
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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 字段名
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
Loading…
Reference in New Issue