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