From f6e9bf64830ef933ae5e78633aefa3ac1576f0e6 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Mon, 1 Sep 2025 19:04:45 +0800 Subject: [PATCH] fix: Single line multi select cards (#3977) --- ui/src/components/dynamics-form/items/MultiRow.vue | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ui/src/components/dynamics-form/items/MultiRow.vue b/ui/src/components/dynamics-form/items/MultiRow.vue index 397459210..83c091931 100644 --- a/ui/src/components/dynamics-form/items/MultiRow.vue +++ b/ui/src/components/dynamics-form/items/MultiRow.vue @@ -37,12 +37,17 @@ const selected = (activeValue: string | number) => { props.modelValue.filter((i: any) => i != activeValue), ) } else { - emit('update:modelValue', props.modelValue ? [...props.modelValue, activeValue] : [activeValue]) + emit('update:modelValue', reset(activeValue)) } if (elFormItem?.validate) { elFormItem.validate('change') } } +const reset = (activeValue: string) => { + const _result = props.modelValue ? [...props.modelValue, activeValue] : [activeValue] + return _result.filter((r) => option_value_list.value.includes(r)) +} + const _value = computed(() => { return props.modelValue ? props.modelValue : [] }) @@ -55,7 +60,9 @@ const textField = computed(() => { const valueField = computed(() => { return props.formField.value_field ? props.formField.value_field : 'value' }) - +const option_value_list = computed(() => { + return option_list.value.map((item) => item[valueField.value]) +}) const option_list = computed(() => { return props.formField.option_list ? props.formField.option_list : [] })