fix(仪表板): 下拉过滤器交换多字段顺序后排序逻辑错乱

This commit is contained in:
fit2cloud-chenyw 2022-07-07 01:56:55 -04:00
parent e5b1e25a77
commit db1147caf0
3 changed files with 18 additions and 11 deletions

View File

@ -132,6 +132,13 @@ export default {
return this.index > 0
}
},
watch: {
index(val, old) {
if (val !== old) {
this.sortChange('none')
}
}
},
mounted() {
},
created() {

View File

@ -181,7 +181,7 @@
<de-main-container class="ms-main-container">
<div v-if="currentElement.options && currentElement.options.attrs">
<filter-head :element="currentElement" :all-fields="allFields" :widget="widget" />
<filter-head :element="currentElement" :table-fields-map="tableFieldsMap" :widget="widget" />
<filter-control :element="currentElement" :widget="widget" :control-attrs="myAttrs" :child-views="childViews" />
@ -297,7 +297,7 @@ export default {
datasetParams: []
},
currentElement: null,
allFields: [],
tableFieldsMap: {},
tempTreeDatas: null,
showTips: false
}
@ -632,7 +632,7 @@ export default {
loadField(tableId) {
fieldListWithPermission(tableId).then(res => {
let datas = res.data
this.allFields = JSON.parse(JSON.stringify(datas))
this.$set(this.tableFieldsMap, tableId, JSON.parse(JSON.stringify(datas)))
if (this.widget && this.widget.filterFieldMethod) {
datas = this.widget.filterFieldMethod(datas)
}
@ -643,7 +643,7 @@ export default {
comLoadField(tableId) {
fieldListWithPermission(tableId).then(res => {
let datas = res.data
this.allFields = JSON.parse(JSON.stringify(datas))
this.$set(this.tableFieldsMap, tableId, JSON.parse(JSON.stringify(datas)))
if (this.widget && this.widget.filterFieldMethod) {
datas = this.widget.filterFieldMethod(datas)
}

View File

@ -18,8 +18,7 @@
>
<v-flex v-for="(item,index) in element.options.attrs.dragItems" :key="item.id">
<drag-item :key="item.id" :is-sort-widget="isSortWidget" :item="item" :index="index" :sort="element.options.attrs.sort" :all-fields="index ? [] : allFields" @closeItem="closeItem" @sort-change="sortChange" />
<drag-item :key="item.id" :is-sort-widget="isSortWidget" :item="item" :index="index" :sort="element.options.attrs.sort" :all-fields="index ? [] : fieldsMap[item.tableId]" @closeItem="closeItem" @sort-change="sortChange" />
</v-flex>
<span solt="footer">{{ $t('panel.drag_here') }}</span>
@ -46,9 +45,9 @@ export default {
type: Object,
default: () => {}
},
allFields: {
type: Array,
default: () => []
tableFieldsMap: {
type: Object,
default: () => {}
},
widget: {
type: Object,
@ -63,6 +62,9 @@ export default {
computed: {
isSortWidget() {
return this.widget && this.widget.isSortWidget && this.widget.isSortWidget()
},
fieldsMap() {
return JSON.parse(JSON.stringify(this.tableFieldsMap))
}
},
@ -74,7 +76,6 @@ export default {
},
methods: {
onMove(e, originalEvent) {
// this.moveId = e.draggedContext.element.id
return true
},
end2(e) {},
@ -88,7 +89,6 @@ export default {
},
sortChange(param) {
this.element.options.attrs.sort = param
// this.$emit('sort-change', param)
}
}
}