diff --git a/src/main/webapp/app/entities/dict/dict.vue b/src/main/webapp/app/entities/dict/dict.vue index f0db256..af11672 100644 --- a/src/main/webapp/app/entities/dict/dict.vue +++ b/src/main/webapp/app/entities/dict/dict.vue @@ -34,7 +34,7 @@ v-model="filterParams.number" :options="numberOptions" :is-loading="isLoadingNumberOptions" - placeholder="请选择或输入父级字典" + :placeholder="$t('jewpmsApp.dict.parentPlaceholder')" @search="loadNumberOptions" @select="option => (filterParams.number = option.value)" /> diff --git a/src/main/webapp/app/shared/components/vue-select.vue b/src/main/webapp/app/shared/components/vue-select.vue index 986cc4b..8ee8452 100644 --- a/src/main/webapp/app/shared/components/vue-select.vue +++ b/src/main/webapp/app/shared/components/vue-select.vue @@ -18,7 +18,14 @@ - + + + + + + (null); const focusTriggered = ref(false); + const cleanTriggered = ref(false); // 计算当前选中的选项标签 const selectedLabel = computed(() => { @@ -135,6 +143,7 @@ export default defineComponent({ // 监听下拉框状态变化 watch(isOpen, newValue => { + //console.log('isOpen changed', newValue); if (newValue) { emit('open'); nextTick(() => { @@ -158,9 +167,11 @@ export default defineComponent({ // 切换下拉框显示状态 const toggleDropdown = () => { // 如果是由focus事件触发的,则不要切换状态,只重置标志 - if (focusTriggered.value) { + if (focusTriggered.value || cleanTriggered.value) { + cleanTriggered.value = false; focusTriggered.value = false; } else { + //console.log('toggleDropdown',isOpen.value); isOpen.value = !isOpen.value; } }; @@ -227,6 +238,19 @@ export default defineComponent({ }; }); + // 清除选择 + const clearSelection = () => { + cleanTriggered.value = true; + emit('update:modelValue', null); + searchQuery.value = ''; + emit('select', searchQuery.value); + }; + + // 清除选择 + const onDropdown = () => { + //console.log('onDropdown'); + }; + return { isOpen, searchQuery, @@ -240,6 +264,8 @@ export default defineComponent({ highlightNext, highlightPrev, selectHighlighted, + clearSelection, + onDropdown, }; }, }); @@ -319,4 +345,14 @@ export default defineComponent({ .v-select-loading { margin-right: 8px; } + +.v-select-clear { + margin-right: 8px; + cursor: pointer; + color: #6c757d; +} + +.v-select-clear:hover { + color: #dc3545; +} diff --git a/src/main/webapp/i18n/zh-cn/dict.json b/src/main/webapp/i18n/zh-cn/dict.json index d40f960..4f98d70 100644 --- a/src/main/webapp/i18n/zh-cn/dict.json +++ b/src/main/webapp/i18n/zh-cn/dict.json @@ -31,7 +31,8 @@ "createdDate": "创建时间", "updatedBy": "更新人", "updatedDate": "更新时间", - "version": "版本号" + "version": "版本号", + "parentPlaceholder": "请选择或输入父级字典" } } }