From e48a9ba24f02f5c70c7f7f4876d0f265474f46b1 Mon Sep 17 00:00:00 2001 From: xieyonghong <18010623010@163.com> Date: Thu, 30 Mar 2023 21:13:11 +0800 Subject: [PATCH] fix: bug#10975 --- .../Save/components/ParamsDropdown/index.vue | 4 ++-- .../Scene/Save/components/Terms/ParamsItem.vue | 18 +++++++++++++++--- src/views/rule-engine/Scene/typings.ts | 1 + 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/index.vue b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/index.vue index 69b522a8..385bb201 100644 --- a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/index.vue +++ b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/index.vue @@ -95,7 +95,7 @@ import {openKeysByTree} from "@/utils/comm"; type Emit = { (e: 'update:value', data: ValueType): void (e: 'update:source', data: string): void - (e: 'select', data: any, label?: string, labelObj?: Record): void + (e: 'select', data: any, label?: string, labelObj?: Record, option?: any): void (e: 'tabChange', data: any): void } @@ -143,7 +143,7 @@ const onSelect = (e: string, option: any) => { visible.value = false label.value = option[props.labelName] emit('update:value', e) - emit('select', e, label.value, { 0: label.value }) + emit('select', e, label.value, { 0: label.value }, option) } const timeChange = (e: any) => { diff --git a/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue b/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue index d88a5072..21495ac7 100644 --- a/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue +++ b/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue @@ -146,7 +146,8 @@ const paramsValue = reactive({ column: props.value?.column, type: props.value?.type, termType: props.value?.termType, - value: props.value?.value + value: props.value?.value, + metric: undefined }) const showDelete = ref(false) @@ -167,6 +168,7 @@ const handOptionByColumn = (option: any) => { tabsOptions.value[0].component = option.dataType if (option.metrics && option.metrics.length) { + tabsOptions.value.push( { label: '指标值', key: 'metric', component: 'select' } ) @@ -289,8 +291,18 @@ const termsTypeSelect = (e: { key: string, name: string }) => { } -const valueSelect = (v: any, label: string, labelObj: Record) => { - emit('update:value', { ...paramsValue }) +const valueSelect = (v: any, label: string, labelObj: Record, option: any) => { + if (isMetric.value) { + paramsValue.metric = option?.id + } + + const newValues = { ...paramsValue } + + if (!isMetric.value) { + delete newValues.metric + } + + emit('update:value', { ...newValues }) formItemContext.onFieldChange() formModel.value.options!.when[props.branchName].terms[props.whenName].terms[props.name][2] = labelObj } diff --git a/src/views/rule-engine/Scene/typings.ts b/src/views/rule-engine/Scene/typings.ts index a544ce10..2711ae14 100644 --- a/src/views/rule-engine/Scene/typings.ts +++ b/src/views/rule-engine/Scene/typings.ts @@ -203,6 +203,7 @@ export type TermsType = { terms?: TermsType[]; key?: string; error?: boolean + metric?: string }; export type PlatformRelation = {