// +---------------------------------------------------------------------- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ] // +---------------------------------------------------------------------- // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. // +---------------------------------------------------------------------- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 // +---------------------------------------------------------------------- // | Author: CRMEB Team // +---------------------------------------------------------------------- export default { // 设置选中的方法 // 记忆选择核心方法 changePageCoreRecordData: function (multipleSelectionAll, multipleSelection, tableData, successFn) { // 标识当前行的唯一键的名称 const idKey = 'uid'; const that = this; // 如果总记忆中还没有选择的数据,那么就直接取当前页选中的数据,不需要后面一系列计算 if (multipleSelectionAll.length <= 0) { multipleSelectionAll = multipleSelection; successFn(multipleSelectionAll); return; } // 总选择里面的key集合 const selectAllIds = []; multipleSelectionAll.forEach((row) => { selectAllIds.push(row[idKey]); }); const selectIds = []; // 获取当前页选中的id multipleSelection.forEach((row) => { selectIds.push(row[idKey]); // 如果总选择里面不包含当前页选中的数据,那么就加入到总选择集合里 if (selectAllIds.indexOf(row[idKey]) < 0) { multipleSelectionAll.push(row); } }); const noSelectIds = []; // 得到当前页没有选中的id tableData.forEach((row) => { if (selectIds.indexOf(row[idKey]) < 0) { noSelectIds.push(row[idKey]); } }); noSelectIds.forEach((uid) => { if (selectAllIds.indexOf(uid) >= 0) { for (let i = 0; i < multipleSelectionAll.length; i++) { if (multipleSelectionAll[i][idKey] == uid) { // 如果总选择中有未被选中的,那么就删除这条 multipleSelectionAll.splice(i, 1); break; } } } }); successFn(multipleSelectionAll); }, };