You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.1 KiB
51 lines
1.1 KiB
<template> |
|
<div> |
|
<template v-for="(item, index) in options"> |
|
<template v-if="values.includes(item.dictValue)"> |
|
<span |
|
v-if="item.listClass == 'default' || item.listClass == ''" |
|
:key="item.dictValue" |
|
:index="index" |
|
:class="item.cssClass" |
|
>{{ item.dictLabel }}</span |
|
> |
|
<el-tag |
|
v-else |
|
:key="item.dictValue" |
|
:index="index" |
|
:type="item.listClass == 'primary' ? '' : item.listClass" |
|
:class="item.cssClass" |
|
> |
|
{{ item.dictLabel }} |
|
</el-tag> |
|
</template> |
|
</template> |
|
</div> |
|
</template> |
|
|
|
<script> |
|
export default { |
|
name: "DictTag", |
|
props: { |
|
options: { |
|
type: Array, |
|
default: null, |
|
}, |
|
value: [String, Array], |
|
}, |
|
computed: { |
|
values() { |
|
if (this.value) { |
|
return Array.isArray(this.value) ? this.value : [this.value]; |
|
} else { |
|
return []; |
|
} |
|
}, |
|
}, |
|
}; |
|
</script> |
|
<style scoped> |
|
.el-tag + .el-tag { |
|
margin-left: 10px; |
|
} |
|
</style> |