From 251d2411f235e23209d57173857e05b637729ce8 Mon Sep 17 00:00:00 2001 From: LiuHao <liuhaoai545@gmail.com> Date: 星期日, 02 四月 2023 01:01:56 +0800 Subject: [PATCH] refactor ts --- src/components/DictTag/index.vue | 65 +++++++++++++++++--------------- 1 files changed, 34 insertions(+), 31 deletions(-) diff --git a/src/components/DictTag/index.vue b/src/components/DictTag/index.vue index c03a1a6..7b7a657 100644 --- a/src/components/DictTag/index.vue +++ b/src/components/DictTag/index.vue @@ -1,31 +1,10 @@ -<template> - <div> - <template v-for="(item, index) in options"> - <template v-if="values.includes(item.value)"> - <span - v-if="item.elTagType == 'default' || item.elTagType == ''" - :key="item.value" - :index="index" - :class="item.elTagClass" - >{{ item.label }}</span> - <el-tag - v-else - :disable-transitions="true" - :key="item.value + ''" - :index="index" - :type="item.elTagType === 'primary' ? '' : item.elTagType" - :class="item.elTagClass" - >{{ item.label }}</el-tag> - </template> - </template> - </div> -</template> +<script setup lang="ts"> +import { PropType } from 'vue'; -<script setup> const props = defineProps({ // 鏁版嵁 options: { - type: Array, + type: Array as PropType<DictDataOption[]>, default: null, }, // 褰撳墠鐨勫�� @@ -33,17 +12,41 @@ }) const values = computed(() => { - if (props.value !== null && typeof props.value !== 'undefined') { - return Array.isArray(props.value) ? props.value : [String(props.value)]; - } else { - return []; - } + if (props.value !== null && typeof props.value !== 'undefined') { + return Array.isArray(props.value) ? props.value : [String(props.value)]; + } else { + return []; + } }) - </script> + +<template> + <div> + <template v-for="(item, index) in options"> + <template v-if="values.includes(item.value)"> + <span + v-if="item.elTagType == 'default' || item.elTagType == ''" + :key="item.value" + :index="index" + :class="item.elTagClass" + >{{ item.label }}</span + > + <el-tag + v-else + :disable-transitions="true" + :key="item.value + ''" + :index="index" + :type="item.elTagType === 'primary' ? '' : item.elTagType" + :class="item.elTagClass" + >{{ item.label }}</el-tag + > + </template> + </template> + </div> +</template> <style scoped> .el-tag + .el-tag { margin-left: 10px; } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3