diff --git a/src/views/rule-engine/Scene/Save/Device/AddModal.vue b/src/views/rule-engine/Scene/Save/Device/AddModal.vue index 14709c0a..04d4f974 100644 --- a/src/views/rule-engine/Scene/Save/Device/AddModal.vue +++ b/src/views/rule-engine/Scene/Save/Device/AddModal.vue @@ -240,7 +240,7 @@ const save = async (step?: number) => { optionsCache.value.action = typeData.action const _options = handleOptions(typeData.data); const data = { - operator: typeData.data, + operation: typeData.data, selector: addModel.selector, selectorValues: addModel.selectorValues, productId: addModel.productId diff --git a/src/views/rule-engine/Scene/Save/action/ListItem/FilterCondition.vue b/src/views/rule-engine/Scene/Save/action/ListItem/FilterCondition.vue index 4de9e365..da897181 100644 --- a/src/views/rule-engine/Scene/Save/action/ListItem/FilterCondition.vue +++ b/src/views/rule-engine/Scene/Save/action/ListItem/FilterCondition.vue @@ -83,6 +83,7 @@ import { inject } from 'vue' import { useSceneStore } from 'store/scene' import { storeToRefs } from 'pinia'; import { flattenDeep, set } from 'lodash-es' +import { Form } from 'jetlinks-ui-components' const sceneStore = useSceneStore() const { data: formModel } = storeToRefs(sceneStore) @@ -152,7 +153,7 @@ const paramsValue = reactive({ termType: props.value.termType, value: props.value.value }) - +const formItemContext = Form.useInjectFormItemContext() const showDelete = ref(false) const columnOptions: any = inject('filter-params') // const termTypeOptions = ref>([]) // 条件值 @@ -187,8 +188,18 @@ const handOptionByColumn = (option: any) => { } watchEffect(() => { - const option = getOption(columnOptions.value, paramsValue.column, 'id') - handOptionByColumn(option) + if (!props.value.error && props.value.column) { // 新增不查找option + const option = getOption(columnOptions.value, paramsValue.column, 'id') + if (option) { + handOptionByColumn(option) + } else { + emit('update:value', { + ...props.value, + error: true + }) + formItemContext.onFieldChange() + } + } }) const showDouble = computed(() => { @@ -235,6 +246,7 @@ const columnSelect = (e: any) => { ) handleOptionsColumnsValue(termsColumns, _options) emit('update:value', { ...paramsValue }) + formItemContext.onFieldChange() } const termsTypeSelect = (e: { key: string }) => { @@ -244,10 +256,12 @@ const termsTypeSelect = (e: { key: string }) => { value: value } emit('update:value', { ...paramsValue }) + formItemContext.onFieldChange() } const valueSelect = () => { emit('update:value', { ...paramsValue }) + formItemContext.onFieldChange() } const termAdd = () => { diff --git a/src/views/rule-engine/Scene/Save/action/ListItem/FilterGroup.vue b/src/views/rule-engine/Scene/Save/action/ListItem/FilterGroup.vue index 8d742f22..e5e64226 100644 --- a/src/views/rule-engine/Scene/Save/action/ListItem/FilterGroup.vue +++ b/src/views/rule-engine/Scene/Save/action/ListItem/FilterGroup.vue @@ -58,7 +58,7 @@ import { storeToRefs } from 'pinia' import { useSceneStore } from 'store/scene' import DropdownButton from '../../components/DropdownButton' import FilterItem from './FilterCondition.vue' -import { flattenDeep, isArray, set } from 'lodash-es' +import { flattenDeep, isArray } from 'lodash-es' import { provide } from 'vue' import { randomString } from '@/utils/utils' import { useParams } from '@/views/rule-engine/Scene/Save/util' @@ -172,7 +172,7 @@ const onDelete = () => { const rules = [ { validator(_: any, v?: Record) { - if (v !== undefined) { + if (v !== undefined && !v.error) { if (!Object.keys(v).length) { return Promise.reject(new Error('该数据已发生变更,请重新配置')) } diff --git a/src/views/rule-engine/Scene/Save/action/ListItem/Item.vue b/src/views/rule-engine/Scene/Save/action/ListItem/Item.vue index fb39cff4..761b00b2 100644 --- a/src/views/rule-engine/Scene/Save/action/ListItem/Item.vue +++ b/src/views/rule-engine/Scene/Save/action/ListItem/Item.vue @@ -234,7 +234,7 @@ @click="onType('device')" >