fix(通用功能): 全选框下拉列表,点击选择所有数据或者可见数据,不出现勾选效果

--bug=1022406 --user=郭雨琦
https://www.tapd.cn/55049933/bugtrace/bugs/view/1155049933001022406
This commit is contained in:
guoyuqi 2023-02-03 18:11:30 +08:00 committed by jianxing
parent 0de0057909
commit 800d8839a2
2 changed files with 36 additions and 9 deletions

View File

@ -137,13 +137,13 @@ import {
_sort,
checkTableRowIsSelect,
clearShareDragParam,
deleteTableRow,
getCustomTableHeader,
getSelectDataCounts,
handleRowDrop,
saveCustomTableWidth,
saveLastTableSortField,
setUnSelectIds,
toggleAllSelection,
} from "../../utils/tableUtils";
import MsTableHeaderSelectPopover from "./MsTableHeaderSelectPopover";
import MsTablePagination from "../pagination/TablePagination";
@ -337,6 +337,7 @@ export default {
}
this.doLayout();
this.checkTableRowIsSelect();
this.deleteTableRow();
this.listenRowDrop();
});
}
@ -421,11 +422,7 @@ export default {
this.condition
);
setUnSelectIds(selection, this.condition, this.selectRows);
this.selectDataCounts = getSelectDataCounts(
this.condition,
this.total,
this.selectRows
);
this.selectDataCounts = this.selectRows.size
this.selectIds = Array.from(this.selectRows).map((o) => o.id);
//
this.$emit("callBackSelectAll", selection);
@ -458,6 +455,11 @@ export default {
this.condition.selectAll = data;
//
_handleSelectAll(this, this.data, this.data, this.selectRows);
//
this.selectRows.forEach(t => {
this.$refs.table.toggleRowSelection(t, true);
})
this.deleteTableRow();
//ID()
this.condition.unSelectIds = [];
//
@ -553,6 +555,15 @@ export default {
this.selectRows
);
},
deleteTableRow() {
deleteTableRow(
this,
this.condition,
this.data,
this.$refs.table,
this.selectRows
);
},
clearSelection() {
this.clearSelectRows();
},

View File

@ -31,11 +31,11 @@ export function _handleSelectAll(component, selection, tableData, selectRows, co
tableData.forEach(item => {
component.$set(item, "showMore", false);
});
}
if (condition) {
condition.selectAll = false;
}
}
}
export function _handleSelect(component, selection, row, selectRowMap) {
row.hashTree = [];
@ -115,6 +115,22 @@ export function checkTableRowIsSelect(component, condition, tableData, table, se
}
}
//删除不需要的row(使用场景点击表格下拉框全选时在翻页的时候会把翻页的数据也加勾选如果勾选了table认为已经选中当点击只选此页数据时前几页的数据不会消失)
export function deleteTableRow(component, condition, tableData, table, selectRows) {
//所有以选中的数据
let selectRowMap = new Map();
for (let selectRow of selectRows) {
selectRowMap.set(selectRow.id, selectRow);
}
//表格标为选中的数据
table.selection.forEach(t => {
if (!selectRowMap.get(t.id)) {
table.toggleRowSelection(t, false);
}
})
}
// nexttick:表格加载完成之后触发。判断是否需要勾选行
export function checkTableRowIsSelected(veuObj, table) {
veuObj.$nextTick(function () {