fix: bug#11218
This commit is contained in:
parent
8d2c2133dd
commit
83b9cc8dfc
|
@ -65,12 +65,12 @@ const handleOptions = computed(() => {
|
||||||
{
|
{
|
||||||
label: _item.trueText || true,
|
label: _item.trueText || true,
|
||||||
value: _item.trueValue || true,
|
value: _item.trueValue || true,
|
||||||
id: _item.trueValue || true,
|
id: String(_item.trueValue || true),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: _item.falseText || false,
|
label: _item.falseText || false,
|
||||||
value: _item.falseValue || false,
|
value: _item.falseValue || false,
|
||||||
id: _item.falseValue || false,
|
id: String(_item.falseValue || false),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,13 +135,15 @@ const handleOptions = computed(() => {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
label: _item.trueText || true,
|
label: _item.trueText || true,
|
||||||
|
name: _item.trueText || true,
|
||||||
value: _item.trueValue || true,
|
value: _item.trueValue || true,
|
||||||
id: _item.trueValue || true,
|
id: String(_item.trueValue || true),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: _item.falseText || false,
|
label: _item.falseText || false,
|
||||||
|
name: _item.falseText || false,
|
||||||
value: _item.falseValue || false,
|
value: _item.falseValue || false,
|
||||||
id: _item.falseValue || false,
|
id: String(_item.falseValue || false),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -149,6 +151,7 @@ const handleOptions = computed(() => {
|
||||||
return _item?.elements.map((i: any) => {
|
return _item?.elements.map((i: any) => {
|
||||||
return {
|
return {
|
||||||
label: i.text,
|
label: i.text,
|
||||||
|
name: i.text,
|
||||||
value: i.value,
|
value: i.value,
|
||||||
id: i.value,
|
id: i.value,
|
||||||
};
|
};
|
||||||
|
@ -168,7 +171,7 @@ const onChange = () => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const onValueChange = (val: any) => {
|
const onValueChange = (val: any, label: string) => {
|
||||||
const obj = {
|
const obj = {
|
||||||
[`${propertyModelRef.properties}`]: {
|
[`${propertyModelRef.properties}`]: {
|
||||||
value: propertyModelRef?.propertiesValue,
|
value: propertyModelRef?.propertiesValue,
|
||||||
|
@ -176,7 +179,7 @@ const onValueChange = (val: any) => {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
emit('update:value', obj);
|
emit('update:value', obj);
|
||||||
emit('change', val?.name || val)
|
emit('change', label || val)
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang='ts' setup name='DropdownMenus'>
|
<script lang='ts' setup name='DropdownMenus'>
|
||||||
import { isBoolean, isUndefined } from 'lodash-es'
|
import { isArray, isBoolean, isString, isUndefined } from 'lodash-es'
|
||||||
import { getOption } from '../DropdownButton/util'
|
import { getOption } from '../DropdownButton/util'
|
||||||
|
|
||||||
type ValueType = string| number | boolean
|
type ValueType = string| number | boolean
|
||||||
|
@ -45,6 +45,9 @@ const myOptions = computed(() => {
|
||||||
_label = _value === true ? '是' : '否'
|
_label = _value === true ? '是' : '否'
|
||||||
_value = String(_value)
|
_value = String(_value)
|
||||||
}
|
}
|
||||||
|
if (isArray(_value)) {
|
||||||
|
_value = JSON.stringify(_value)
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
label: _label,
|
label: _label,
|
||||||
|
@ -60,7 +63,10 @@ const handleBoolean = (key: string) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const click = (e: any) => {
|
const click = (e: any) => {
|
||||||
const _key = ['true', 'false'].includes(e.key) ? handleBoolean(e.key) : e.key
|
let _key = ['true', 'false'].includes(e.key) ? handleBoolean(e.key) : e.key
|
||||||
|
if (isString(_key) && _key.startsWith('[') && _key.endsWith(']')) {
|
||||||
|
_key = JSON.parse(_key)
|
||||||
|
}
|
||||||
const option = getOption(myOptions.value, _key, props.valueName)
|
const option = getOption(myOptions.value, _key, props.valueName)
|
||||||
myValue.value = e.key
|
myValue.value = e.key
|
||||||
emit('update:value', _key)
|
emit('update:value', _key)
|
||||||
|
@ -71,7 +77,13 @@ const click = (e: any) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => props.value, () => {
|
watch(() => props.value, () => {
|
||||||
myValue.value = isBoolean(props.value) ? String(props.value) : props.value
|
if (isBoolean(props.value)) {
|
||||||
|
myValue.value = isBoolean(props.value)
|
||||||
|
} else if (isArray(props.value)) {
|
||||||
|
myValue.value = JSON.stringify(props.value)
|
||||||
|
} else {
|
||||||
|
myValue.value = props.value
|
||||||
|
}
|
||||||
}, { immediate: true})
|
}, { immediate: true})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
<DropdownMenus
|
<DropdownMenus
|
||||||
v-if='(["metric", "upper"].includes(item.key) ? metricOptions : options).length'
|
v-if='(["metric", "upper"].includes(item.key) ? metricOptions : options).length'
|
||||||
:options='["metric", "upper"].includes(item.key) ? metricOptions : options'
|
:options='["metric", "upper"].includes(item.key) ? metricOptions : options'
|
||||||
|
:value='myValue'
|
||||||
:valueName='valueName'
|
:valueName='valueName'
|
||||||
@click='onSelect'
|
@click='onSelect'
|
||||||
/>
|
/>
|
||||||
|
|
Loading…
Reference in New Issue