优化字典标签支持自定义分隔符

This commit is contained in:
RuoYi 2023-11-29 12:40:47 +08:00
parent 1525bd8b54
commit 72e4cd9fb3
1 changed files with 23 additions and 26 deletions

View File

@ -7,7 +7,7 @@
:key="item.value" :key="item.value"
:index="index" :index="index"
:class="item.raw.cssClass" :class="item.raw.cssClass"
>{{ item.label + " " }}</span >{{ item.label + ' ' }}</span
> >
<el-tag <el-tag
v-else v-else
@ -17,7 +17,7 @@
:type="item.raw.listClass == 'primary' ? '' : item.raw.listClass" :type="item.raw.listClass == 'primary' ? '' : item.raw.listClass"
:class="item.raw.cssClass" :class="item.raw.cssClass"
> >
{{ item.label + " " }} {{ item.label + ' ' }}
</el-tag> </el-tag>
</template> </template>
</template> </template>
@ -40,6 +40,10 @@ export default {
showValue: { showValue: {
type: Boolean, type: Boolean,
default: true, default: true,
},
separator: {
type: String,
default: ","
} }
}, },
data() { data() {
@ -49,39 +53,32 @@ export default {
}, },
computed: { computed: {
values() { values() {
if (this.value !== null && typeof this.value !== "undefined") { if (this.value === null || typeof this.value === 'undefined' || this.value === '') return []
return Array.isArray(this.value) ? this.value : [String(this.value)]; return Array.isArray(this.value) ? this.value.map(item => '' + item) : String(this.value).split(this.separator)
} else {
return [];
}
}, },
unmatch() { unmatch() {
this.unmatchArray = []; this.unmatchArray = []
if (this.value !== null && typeof this.value !== "undefined") {
//
if (!Array.isArray(this.value)) {
if (this.options.some((v) => v.value == this.value)) return false;
this.unmatchArray.push(this.value);
return true;
}
// Array
this.value.forEach((item) => {
if (!this.options.some((v) => v.value == item))
this.unmatchArray.push(item);
});
return true;
}
// value // value
return false; if (this.value === null || typeof this.value === 'undefined' || this.value === '' || this.options.length === 0) return false
//
let unmatch = false //
this.values.forEach(item => {
if (!this.options.some(v => v.value === item)) {
this.unmatchArray.push(item)
unmatch = true // true
}
})
return unmatch //
}, },
}, },
filters: { filters: {
handleArray(array) { handleArray(array) {
if (array.length === 0) return ""; if (array.length === 0) return '';
return array.reduce((pre, cur) => { return array.reduce((pre, cur) => {
return pre + " " + cur; return pre + ' ' + cur;
}) })
} },
} }
}; };
</script> </script>