diff --git a/src/views/modules/base/smartExcel/cpts/excel-view.vue b/src/views/modules/base/smartExcel/cpts/excel-view.vue index 7fcfb5f32..0e9bf89c4 100644 --- a/src/views/modules/base/smartExcel/cpts/excel-view.vue +++ b/src/views/modules/base/smartExcel/cpts/excel-view.vue @@ -126,21 +126,39 @@ export default { } }, - //自动检查 - async handleClickInspect() { - //流程:发送当前cellData到后台,后台处理返回有问题的行跟列后遍历更改其背景色 - let list = luckysheet.getAllSheets()[0].celldata.map(item => ({ r: item.r, c: item.c, v: item.v.v || '' })) - let {data,code,msg} = await requestPost('/actual/base/intelligentImportData/checkData',list) - if(code === 0){ - if(data && data.length > 0){ - for (let i in data) { - luckysheet.setCellFormat(data[i].r, data[i].c, 'bg', '#f5504a') - } - }else{ - this.$message.success('没有找到异常') + async handleClickInspect() { + // 获取celldata并转换为list + const list = luckysheet.getAllSheets()[0].celldata.map(item => ({ + r: item.r, + c: item.c, + v: item.v.v || '' + })); + // 发送请求获取异常数据 + let { data, code, msg } = await requestPost('/actual/base/intelligentImportData/checkData', list); + if (code === 0) { + if (data && data.length > 0) { + for (const { r, c } of data) { + luckysheet.setCellFormat(r, c, 'bg', '#f5504a'); + } + const findArr = this.findUniqueElements(luckysheet.getAllSheets()[0].celldata, data); + findArr.forEach(({ r, c, v }) => { + if (v.bg === "#f5504a") { + luckysheet.setCellFormat(r, c, 'bg', '#ffffff'); + } + }); + } else { + this.$message.success('没有找到异常'); } } - }, + }, + + findUniqueElements(A, B) { + // 创建B中r和c组合的键集合 + const bCombinations = new Set(B.map(item => `${item.r},${item.c}`)); + // 过滤A中不存在于B的组合 + return A.filter(item => !bCombinations.has(`${item.r},${item.c}`)); + }, + onClickUplond() { this.showUploadData = true; let list = luckysheet.getAllSheets()