{"remainingRequest":"D:\\jenkins\\workspace\\jd_cgpt_fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\jd_cgpt_fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\jd_cgpt_fvue\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\jd_cgpt_fvue\\src\\utils\\mergingTable.js","dependencies":[{"path":"D:\\jenkins\\workspace\\jd_cgpt_fvue\\src\\utils\\mergingTable.js","mtime":1702932074295},{"path":"D:\\jenkins\\workspace\\jd_cgpt_fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\jd_cgpt_fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\jd_cgpt_fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\jd_cgpt_fvue\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\n\n/*\r\n分析每一列,找出所有【列】可合并(数据相同)的单元格\r\n@param {Array} tableData 表数据\r\n@param {Array} tableColumn 表字段/表头\r\n@param {Array} mergeCols 指定合并哪些列(字段)\r\n@returns\r\n*/\nexport var getMergeCells = function getMergeCells() {\n var tableData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var tableColumn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var mergeCols = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var fields = tableColumn.map(function (v) {\n return v.prop;\n });\n var array = [];\n if (!tableData.length || !tableColumn.length || !mergeCols.length) return; // 倒叙遍历行(方便统计合并列单元格数至最上方,避免表格塌陷)\n\n var _loop = function _loop(row) {\n array[row] = [];\n\n for (var col = 0; col < fields.length; col++) {\n // 1.最后一行单元格不合并(初始无可对比数据)\n // 2.不在指定列(mergeCols)的单元格不合并\n // 3.空值不合并\n if (row === tableData.length - 1 || !mergeCols.includes(fields[col]) || !tableData[row][fields[col]]) {\n array[row][col] = [1, 1];\n continue;\n } // 4.数据相同但所属父级不一致的单元格不合并\n\n\n var parentFields = mergeCols.slice(0, col); // 在指定合并列中找出所有父级\n\n if (mergeCols.includes(fields[col]) && parentFields.includes(fields[col - 1])) {\n var currentParents = parentFields.map(function (field) {\n return tableData[row][field];\n }); // 当前单元格所有父级\n\n var nextRowParents = parentFields.map(function (field) {\n return tableData[row + 1][field];\n }); // 下一行单元格所有父级\n\n if (currentParents.toString() !== nextRowParents.toString()) {\n array[row][col] = [1, 1];\n continue;\n }\n } // 5.合并相同数据的单元格\n\n\n if (tableData[row][fields[col]] === tableData[row + 1][fields[col]]) {\n var beforeCell = array[row + 1][col];\n array[row][col] = [1 + beforeCell[0], 1];\n beforeCell[0] = 0;\n beforeCell[1] = 0;\n } else {\n array[row][col] = [1, 1]; // 否则不合并\n }\n }\n };\n\n for (var row = tableData.length - 1; row >= 0; row--) {\n _loop(row);\n } // console.log(array, 'array')\n\n\n return array;\n};",null]}