若依--字典标签组件完善
由于若依是基于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.vue
<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 -->
<!-- (item.elTagType == '' ? statusFilter(item.elTagType) : item.elTagType)" -->
<el-tag
:disable-transitions="true"
:key="item.value + ''"
:index="index"
:type="item.elTagType === 'primary' ? '' : (item.elTagType == 'default' ? statusFilter(item.value) : 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>
作者:胡倩倩0903
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
posted on 2023-05-08 11:29 kitty20180903suzhou 阅读(1165) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示