From ea9f067f358e3746bbda4408624aa4de0a6ce194 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 25 Jun 2024 17:16:13 +0800 Subject: [PATCH] perf: json many to many --- .../FormFields/JSONManyToManySelect/ValueFormatter.vue | 8 ++++++-- .../Table/ListTable/TableAction/LabelSearch.vue | 2 +- src/components/Table/ListTable/TableAction/LeftSide.vue | 5 ++++- src/components/Table/ListTable/TableAction/index.vue | 9 +++++++-- src/components/Table/ListTable/index.vue | 2 +- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/components/Form/FormFields/JSONManyToManySelect/ValueFormatter.vue b/src/components/Form/FormFields/JSONManyToManySelect/ValueFormatter.vue index dd07818c5..aacbaee43 100644 --- a/src/components/Form/FormFields/JSONManyToManySelect/ValueFormatter.vue +++ b/src/components/Form/FormFields/JSONManyToManySelect/ValueFormatter.vue @@ -68,8 +68,12 @@ export default { const url = setUrlParam(this.attr.el.url, 'ids', this.cellValue.join(',')) const data = await this.$axios.get(url) || [] if (data.length > 0) { - const displayField = this.attr.el.displayField || 'name' - this.value = data.map(item => item[displayField]).join(', ') + if (this.attr.name === 'labels') { + this.value = data.map(item => `${item.name}:${item.value}`).join(', ') + } else { + const displayField = this.attr.el.displayField || 'name' + this.value = data.map(item => item[displayField]).join(', ') + } } } else if (this.attr.type === 'select') { const options = this.attr.el.options || [] diff --git a/src/components/Table/ListTable/TableAction/LabelSearch.vue b/src/components/Table/ListTable/TableAction/LabelSearch.vue index b4624f428..08f05fd6c 100644 --- a/src/components/Table/ListTable/TableAction/LabelSearch.vue +++ b/src/components/Table/ListTable/TableAction/LabelSearch.vue @@ -77,7 +77,7 @@ export default { this.showLabelSearch = true return } - this.labelValue = [[label.name, label.value]] + this.labelValue = [...this.labelValue, [label.name, label.value]] this.getLabelOptions() setTimeout(() => { this.showLabelSearch = true diff --git a/src/components/Table/ListTable/TableAction/LeftSide.vue b/src/components/Table/ListTable/TableAction/LeftSide.vue index 412efd981..390c6ea88 100644 --- a/src/components/Table/ListTable/TableAction/LeftSide.vue +++ b/src/components/Table/ListTable/TableAction/LeftSide.vue @@ -1,6 +1,6 @@