From fdf885c261af8b01fde114ac4e1b37bb97590a7b Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 18 一月 2024 17:39:29 +0800 Subject: [PATCH] !82 修复 DictTag组件,当未找到匹配的数据时,不会显示value Merge pull request !82 from lee/bugfix/DictTag_Unmatch --- src/components/DictTag/index.vue | 23 +++++++++++++++-------- 1 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/components/DictTag/index.vue b/src/components/DictTag/index.vue index 8d9fb40..7442546 100644 --- a/src/components/DictTag/index.vue +++ b/src/components/DictTag/index.vue @@ -2,16 +2,20 @@ <div> <template v-for="(item, index) in options"> <template v-if="values.includes(item.value)"> - <span v-if="(item.elTagType === 'default' || item.elTagType === '') && (item.elTagClass === '' || item.elTagClass == null)" - :key="item.value" :index="index" :class="item.elTagClass"> - {{ item.label + " " }} + <span + v-if="(item.elTagType === 'default' || item.elTagType === '') && (item.elTagClass === '' || item.elTagClass == null)" + :key="item.value" + :index="index" + :class="item.elTagClass" + > + {{ item.label + ' ' }} </span> <el-tag v-else :key="item.value + ''" :disable-transitions="true" :index="index" - :type="(item.elTagType === 'primary' || item.elTagType === 'default')? '' : item.elTagType" + :type="item.elTagType === 'primary' || item.elTagType === 'default' ? '' : item.elTagType" :class="item.elTagClass" > {{ item.label + ' ' }} @@ -25,11 +29,13 @@ </template> <script setup lang="ts"> +import { propTypes } from '@/utils/propTypes'; + interface Props { options: Array<DictDataOption>; value: number | string | Array<number | string>; - showValue: boolean; - separator: string; + showValue?: boolean; + separator?: string; } const props = withDefaults(defineProps<Props>(), { showValue: true, @@ -44,12 +50,13 @@ const unmatch = computed(() => { if (props.options?.length == 0 || props.value === '' || props.value === null || typeof props.value === 'undefined') return false; // 浼犲叆鍊间负闈炴暟缁� + let unmatch = false; // 娣诲姞涓�涓爣蹇楁潵鍒ゆ柇鏄惁鏈夋湭鍖归厤椤� values.value.forEach((item) => { if (!props.options.some((v) => v.value === item)) { - return true; // 濡傛灉鏈夋湭鍖归厤椤癸紝灏嗘爣蹇楄缃负true + unmatch = true; // 濡傛灉鏈夋湭鍖归厤椤癸紝灏嗘爣蹇楄缃负true } }); - return false; // 杩斿洖鏍囧織鐨勫�� + return unmatch; // 杩斿洖鏍囧織鐨勫�� }); const unmatchArray = computed(() => { -- Gitblit v1.9.3