:sparks:DictTag组件新增自定义标签

This commit is contained in:
不做码农 2023-11-23 07:39:15 +08:00
parent 53ca3df03f
commit ad87248ab3
2 changed files with 43 additions and 1 deletions

View File

@ -1,5 +1,5 @@
<template> <template>
<template v-for="(item, index) in props.options"> <template v-for="(item, index) in dataList">
<template v-if="values.includes(item.dictValue)"> <template v-if="values.includes(item.dictValue)">
<span v-if="item.listClass == 'default' || item.listClass == ''" :key="item.dictValue" :index="index" :class="item.cssClass"> <span v-if="item.listClass == 'default' || item.listClass == ''" :key="item.dictValue" :index="index" :class="item.cssClass">
<template v-if="item.langKey"> <template v-if="item.langKey">
@ -42,9 +42,28 @@ const props = defineProps({
split: { split: {
type: String, type: String,
default: null default: null
},
// { label: 'name', value: 'id'}
config: {
type: Object,
default: null
} }
}) })
const dataList = computed(() => {
if (props.config) {
let config = props.config
var newList = []
for (let d of props.options) {
let label = d[config.label]
let value = d[config.value]
newList.push({ dictLabel: label, dictValue: value, ...d })
}
return newList
}
return props.options
})
const values = computed(() => { const values = computed(() => {
if (props.value !== null && typeof props.value !== 'undefined') { if (props.value !== null && typeof props.value !== 'undefined') {
if (props.split != null && props.split != '') { if (props.split != null && props.split != '') {

View File

@ -180,6 +180,29 @@ export function handleTree(data, id, parentId, children) {
} }
return tree return tree
} }
/**
* 将自定义数据转换成字典
* @param {*} data 数据源
* @param {*} dictLabel dictLabel
* @param {*} dictValue dictValue
*/
export function toDict(data, dictLabel, dictValue) {
let config = {
label: dictLabel || 'dictLabel',
value: dictValue || 'dictValue'
}
var tree = []
for (let d of data) {
let label = d[config.label]
let value = d[config.value]
tree.push({ dictLabel: label, dictValue: value })
}
return tree
}
/** /**
* 参数处理 * 参数处理