|
|
|
@ -120,7 +120,8 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<hr class="line"> |
|
|
|
<div class="selected-value">{{ t('common.selectedValue') }}:{{ selectedValue ? `(${selectedValue})` : t('common.none') }}</div> |
|
|
|
<div class="selected-value">{{ t('common.selectedValue') }}:{{ selectedValue ? `(${selectedValue})` : |
|
|
|
t('common.none') }}</div> |
|
|
|
<div class="confirm"> |
|
|
|
<el-button type="info" @click="cancelSelection">{{ t('common.cancel') }}</el-button> |
|
|
|
<el-button type="primary" @click="confirmSelection">{{ t('common.confirm') }}</el-button> |
|
|
|
@ -133,10 +134,12 @@ |
|
|
|
<script setup> |
|
|
|
import { ref, watch, onMounted, computed, onUnmounted, nextTick } from 'vue'; |
|
|
|
import { ArrowDown, ArrowRight } from '@element-plus/icons-vue'; |
|
|
|
import { useFormItem } from 'element-plus'; |
|
|
|
// 国际化 |
|
|
|
import { useI18n } from 'vue-i18n' |
|
|
|
|
|
|
|
const { t } = useI18n() |
|
|
|
const { formItem } = useFormItem() |
|
|
|
|
|
|
|
const searchData = ref('') |
|
|
|
const isOpen = ref(false) |
|
|
|
@ -165,18 +168,23 @@ const props = defineProps({ |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
const emit = defineEmits(['update:modelValue']) |
|
|
|
const emit = defineEmits(['update:modelValue', 'change']) |
|
|
|
|
|
|
|
const selectedValue = ref('') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const confirmSelection = () => { |
|
|
|
emit('update:modelValue', selectedValue.value ? selectedValue.value : ''); |
|
|
|
console.log('更新父组件', selectedValue.value); |
|
|
|
selectedItem.value = selectedValue.value || ''; |
|
|
|
emit('update:modelValue', selectedValue.value) |
|
|
|
emit('change', selectedValue.value) |
|
|
|
selectedItem.value = selectedValue.value |
|
|
|
formItem?.validate('change').catch(() => { }) |
|
|
|
isOpen.value = false |
|
|
|
} |
|
|
|
|
|
|
|
const cancelSelection = () => { |
|
|
|
emit('update:modelValue', ''); |
|
|
|
emit('change', ''); |
|
|
|
console.log('点击了取消', ''); |
|
|
|
selectedItem.value = ''; |
|
|
|
selectedValue.value = ''; |
|
|
|
|