From 9f29f88d53e1a3f62c7d68870a553219310658e3 Mon Sep 17 00:00:00 2001 From: chenying Date: Fri, 22 Mar 2024 16:27:04 +0800 Subject: [PATCH 1/2] chore(SelectMenu): Add Boolean type to modelValue prop in SelectMenu.vue --- src/runtime/components/forms/SelectMenu.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/components/forms/SelectMenu.vue b/src/runtime/components/forms/SelectMenu.vue index 8094516050..c22def8928 100644 --- a/src/runtime/components/forms/SelectMenu.vue +++ b/src/runtime/components/forms/SelectMenu.vue @@ -174,7 +174,7 @@ export default defineComponent({ inheritAttrs: false, props: { modelValue: { - type: [String, Number, Object, Array], + type: [String, Number, Object, Array, Boolean], default: '' }, query: { From 9539d3295645dcc5fc0b8d6557d836675af6c79a Mon Sep 17 00:00:00 2001 From: chenying Date: Tue, 26 Mar 2024 10:12:40 +0800 Subject: [PATCH 2/2] chore: update --- docs/content/2.components/select-menu.md | 2 +- src/runtime/components/forms/SelectMenu.vue | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/content/2.components/select-menu.md b/docs/content/2.components/select-menu.md index 5363d147bc..43f90c0947 100644 --- a/docs/content/2.components/select-menu.md +++ b/docs/content/2.components/select-menu.md @@ -50,7 +50,7 @@ componentProps: --- :: -If you only want to select a single object property rather than the whole object as value, you can set the `value-attribute` property. This prop defaults to `null`. +If you only want to select a single object property rather than the whole object as value, you can set the `value-attribute` property. This prop defaults to `null`.The value of the `value-attribute` field in options must be unique. ::component-example --- diff --git a/src/runtime/components/forms/SelectMenu.vue b/src/runtime/components/forms/SelectMenu.vue index 8a03203e32..212bddba84 100644 --- a/src/runtime/components/forms/SelectMenu.vue +++ b/src/runtime/components/forms/SelectMenu.vue @@ -362,7 +362,7 @@ export default defineComponent({ } else { return null } - } else if (props.modelValue) { + } else if (props.modelValue !== undefined && props.modelValue !== null) { if (props.valueAttribute) { const option = props.options.find(option => option[props.valueAttribute] === props.modelValue) return option ? option[props.optionAttribute] : null @@ -387,7 +387,7 @@ export default defineComponent({ variant?.replaceAll('{color}', color.value), (isLeading.value || slots.leading) && ui.value.leading.padding[size.value], (isTrailing.value || slots.trailing) && ui.value.trailing.padding[size.value] - ), props.placeholder && !props.modelValue && ui.value.placeholder, props.selectClass) + ), props.placeholder && (props.modelValue === undefined && props.modelValue === null) && ui.value.placeholder, props.selectClass) }) const isLeading = computed(() => {