From 8811173b66f5d9de0a35d6e49871605e2c1e4802 Mon Sep 17 00:00:00 2001 From: xieyonghong <18010623010@163.com> Date: Mon, 20 Mar 2023 20:17:05 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E4=BC=98=E5=8C=96=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E8=81=94=E5=8A=A8-=E6=89=A7=E8=A1=8C=E5=8A=A8=E4=BD=9C?= =?UTF-8?q?=E3=80=81=E8=BF=87=E6=BB=A4=E6=9D=A1=E4=BB=B6=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scene/Save/Device/AddModal.vue | 2 +- .../Save/action/ListItem/FilterCondition.vue | 20 +++++++++++++--- .../Save/action/ListItem/FilterGroup.vue | 4 ++-- .../Scene/Save/action/ListItem/Item.vue | 15 +++++++----- .../DropdownButton/DropdownButton.vue | 2 ++ .../Save/components/ParamsDropdown/index.vue | 4 +++- .../Save/components/Terms/ParamsItem.vue | 23 +++++++++++++------ .../Scene/Save/components/Terms/Terms.vue | 2 +- .../Scene/Save/components/Terms/TermsItem.vue | 7 +----- src/views/rule-engine/Scene/typings.ts | 1 + vite.config.ts | 4 ++-- yarn.lock | 4 ++-- 12 files changed, 57 insertions(+), 31 deletions(-) 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')" >