由于若依是基于element,但是在实际业务中,往往会出现标签不够用的情况,数据标签回显样式只有一下六种:
// 数据标签回显样式
const listClassOptions = ref([
{ value: "default", label: "默认" },
{ value: "primary", label: "主要" },
{ value: "success", label: "成功" },
{ value: "info", label: "信息" },
{ value: "warning", label: "警告" },
{ value: "danger", label: "危险" }
])
我优化了一下,使得不用填写也可以有标签颜色出现:
- statusFilter 方法
// 数据标签颜色
const statusFilter = function(status) {
const statusMap = {
0:"",
1:'success',
2:'info',
3:'warning',
4:'danger'
}
return statusMap[status%5]
} - 字典标签 dictTag.js
<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> -->
<!-- v-else -->
<el-tag
:disable-transitions="true"
:key="item.value + ''"
:index="index"
:type="item.elTagType === 'primary' ? '' : (item.elTagType == '' ? statusFilter(item.elTagType) : item.elTagType)"
:class="item.elTagClass"
>{{ item.label }}</el-tag>
</template>
</template>
</div>
</template>
<script setup>
import { statusFilter } from '@/utils/etax.js'
const props = defineProps({
// 数据
options: {
type: Array,
default: null,
},
// 当前的值
value: [Number, String, Array],
})
const values = computed(() => {
if (props.value !== null && typeof props.value !== 'undefined') {
return Array.isArray(props.value) ? props.value : [String(props.value)];
} else {
return [];
}
})
</script>
<style scoped>
.el-tag + .el-tag {
margin-left: 10px;
}
</style>
标签:const,--,标签,value,label,若依,props,statusFilter,字典
From: https://www.cnblogs.com/kitty-blog/p/17381229.html