import selection from './selection'; import { getObjType, chatatABC, numFormat, luckysheetContainerFocus, } from '../utils/util'; import { hasPartMC, isEditMode } from '../global/validate'; import { getdatabyselection, getcellvalue } from '../global/getdata'; import tooltip from '../global/tooltip'; import editor from '../global/editor'; import locale from '../locale/locale'; import Store from '../store'; export function initialMatrixOperation(){ const locale_drag = locale().drag; //右键功能键 //复制为json格式字符串,首行为标题 $("#luckysheet-copy-json-head").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } if (getdata.length == 1) { let obj = {}; for (let i = 0; i < getdata[0].length; i++) { obj[getcellvalue(0, i, getdata)] = ""; } arr.push(obj); } else { for (let r = 1; r < getdata.length; r++) { let obj = {}; for (let c = 0; c < getdata[0].length; c++) { if(getcellvalue(0, c, getdata) == undefined){ obj[""] = getcellvalue(r, c, getdata); }else{ obj[getcellvalue(0, c, getdata)] = getcellvalue(r, c, getdata); } } arr.push(obj); } } selection.copybyformat(event, JSON.stringify(arr)); }); //复制为json格式字符串,无标题,采用ABCD作为标题 $("#luckysheet-copy-json-nohead").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } let st = Store.luckysheet_select_save[0]["column"][0]; for (let r = 0; r < getdata.length; r++) { let obj = {}; for (let c = 0; c < getdata[0].length; c++) { obj[chatatABC(c + st)] = getcellvalue(r, c, getdata); } arr.push(obj); } selection.copybyformat(event, JSON.stringify(arr)); }); //复制为一维数组 $("#luckysheet-copy-array1").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } for (let r = 0; r < getdata.length; r++) { for (let c = 0; c < getdata[0].length; c++) { arr.push(getcellvalue(r, c, getdata)); } } selection.copybyformat(event, JSON.stringify(arr)); }); //复制为二维数组 $("#luckysheet-copy-array2").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } for (let r = 0; r < getdata.length; r++) { let a = []; for (let c = 0; c < getdata[0].length; c++) { a.push(getcellvalue(r, c, getdata)); } arr.push(a); } selection.copybyformat(event, JSON.stringify(arr)); }); //复制为多维数组 $("#luckysheet-copy-arraymore-confirm").click(function (event) { // Click input element, don't comfirm if(event.target.nodeName === 'INPUT'){ return; } $("body .luckysheet-cols-menu").hide(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } for (let r = 0; r < getdata.length; r++) { for (let c = 0; c < getdata[0].length; c++) { arr.push(getdata[r][c]); } } let row = $("#luckysheet-copy-arraymore-row").val(), col = $("#luckysheet-copy-arraymore-col").val(); if (row == "" && col == "") { selection.copybyformat(event, JSON.stringify(arr)); $("body .luckysheet-cols-menu").hide(); return; } if (row == "") { row = 1; } else { row = parseInt(row); if (row == null) { row = 1; } } if (col == "") { col = 1; } else { col = parseInt(col); if (col == null) { col = 1; } } if(row.toString() == "NaN" || col.toString() == "NaN"){ if(isEditMode()){ alert(locale_drag.inputCorrect); } else{ tooltip.info(locale_drag.inputCorrect, ""); } return; } if(row < 1 || col < 1){ if(isEditMode()){ alert(locale_drag.notLessOne); } else{ tooltip.info(locale_drag.notLessOne, ""); } return; } let arrlen = arr.length, i = 0, ret = []; for (let r = 0; r < row; r++) { let a = []; for (let c = 0; c < col; c++) { a.push(arr[i++]); if (i >= arrlen) { selection.copybyformat(event, JSON.stringify(ret)); $("body .luckysheet-cols-menu").hide(); return; } } ret.push(a); } selection.copybyformat(event, JSON.stringify(ret)); }); //复制为对角线 $("#luckysheet-copy-diagonal").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } let clen = getdata[0].length; for (let r = 0; r < getdata.length; r++) { if (r >= clen) { break; } arr.push(getdata[r][r]); } selection.copybyformat(event, JSON.stringify(arr)); }); //复制为反对角线 $("#luckysheet-copy-antidiagonal").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } let clen = getdata[0].length; for (let r = 0; r < getdata.length; r++) { if (r >= clen) { break; } arr.push(getdata[r][clen - r - 1]); } selection.copybyformat(event, JSON.stringify(arr)); }); //复制为对角偏移n列 $("#luckysheet-copy-diagonaloffset").click(function (event) { // Click input element, don't comfirm if(event.target.nodeName === 'INPUT'){ return; } $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } let clen = getdata[0].length, offset = parseInt($("#luckysheet-copy-diagonaloffset-value").val()); if(offset.toString() == "NaN"){ if(isEditMode()){ alert(locale_drag.inputCorrect); } else{ tooltip.info(locale_drag.inputCorrect, ""); } return; } if(offset < 0){ if(isEditMode()){ alert(locale_drag.offsetColumnLessZero); } else{ tooltip.info(locale_drag.offsetColumnLessZero, ""); } return; } if (offset == null) { offset = 1; } for (let r = 0; r < getdata.length; r++) { if (r + offset >= clen) { break; } arr.push(getdata[r][r + offset]); } selection.copybyformat(event, JSON.stringify(arr)); }); //复制为布尔值 $("#luckysheet-copy-boolvalue").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } //复制范围内包含部分合并单元格,提示 if(Store.config["merge"] != null){ let has_PartMC = false; for(let s = 0; s < Store.luckysheet_select_save.length; s++){ let r1 = Store.luckysheet_select_save[s].row[0], r2 = Store.luckysheet_select_save[s].row[1]; let c1 = Store.luckysheet_select_save[s].column[0], c2 = Store.luckysheet_select_save[s].column[1]; has_PartMC = hasPartMC(Store.config, r1, r2, c1, c2); if(has_PartMC){ break; } } if(has_PartMC){ if(isEditMode()){ alert(locale_drag.noPartMerge); } else{ tooltip.info(locale_drag.noPartMerge, ""); } return; } } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); let arr = []; if (getdata.length == 0) { return; } for (let r = 0; r < getdata.length; r++) { let a = []; for (let c = 0; c < getdata[0].length; c++) { let bool = false; let v; if(getObjType(getdata[r][c]) == "object"){ v = getdata[r][c].v; } else{ v = getdata[r][c]; } if (v == null || v == "") { bool = false; } else { v = parseInt(v); if (v == null || v > 0) { bool = true; } else { bool = false; } } a.push(bool); } arr.push(a); } selection.copybyformat(event, JSON.stringify(arr)); }); //矩阵操作选区 翻转 上下 $("#luckysheet-matrix-turn-up").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; for (let r = getdata.length - 1; r >= 0; r--) { let a = []; for (let c = 0; c < getdata[0].length; c++) { let value = ""; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; } a.push(value); } arr.push(a); } editor.controlHandler(arr); }); //矩阵操作选区 翻转 左右 $("#luckysheet-matrix-turn-left").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; for (let r = 0; r < getdata.length; r++) { let a = []; for (let c = getdata[0].length - 1; c >= 0; c--) { let value = ""; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; } a.push(value); } arr.push(a); } editor.controlHandler(arr); }); //矩阵操作选区 翻转 顺时针 $("#luckysheet-matrix-turn-cw").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; for (let c = 0; c < getdata[0].length; c++) { let a = []; for (let r = getdata.length - 1; r >= 0; r--) { let value = ""; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; } a.push(value); } arr.push(a); } editor.controlHandlerD(arr); }); //矩阵操作选区 翻转 逆时针 $("#luckysheet-matrix-turn-anticw").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; for (let c = getdata[0].length - 1; c >= 0; c--) { let a = []; for (let r = 0; r < getdata.length; r++) { let value = ""; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; } a.push(value); } arr.push(a); } editor.controlHandlerD(arr); }); //矩阵操作选区 转置 $("#luckysheet-matrix-turn-trans").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; for (let c = 0; c < getdata[0].length; c++) { let a = []; for (let r = 0; r < getdata.length; r++) { let value = ""; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; } a.push(value); } arr.push(a); } editor.controlHandlerD(arr); }); let jfnqrt = function (x, p) { if (x == 0) return 0; let x0, x1; x0 = x; x1 = ((p - 1) * x0 / p) + (x / (Math.pow(x0, p - 1) * p));//利用迭代法求解 while (Math.abs(x1 - x0) > 0.000001) { x0 = x1; x1 = ((p - 1) * x0 / p) + (x / (Math.pow(x0, p - 1) * p)); } return x1; } //矩阵操作选区 矩阵计算 $("#luckysheet-matrix-cal-confirm").click(function (event) { // Click input element, don't comfirm if(event.target.nodeName === 'INPUT' || event.target.nodeName === 'SELECT'){ return; } $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let caltype = $("#luckysheet-matrix-cal-type").val(), calvalue = parseInt($("#luckysheet-matrix-cal-value").val()); if(calvalue.toString() == "NaN"){ if(isEditMode()){ alert(locale_drag.inputCorrect); } else{ tooltip.info(locale_drag.inputCorrect, ""); } return; } if (calvalue == null) { calvalue = 2; } let arr = []; for (let r = 0; r < getdata.length; r++) { let a = []; for (let c = 0; c < getdata[0].length; c++) { let value = ""; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; if (parseInt(value) != null && getdata[r][c].ct != undefined && getdata[r][c].ct.t == "n") { if (caltype == "minus") { value.v = value.v - calvalue; } else if (caltype == "multiply") { value.v = value.v * calvalue; } else if (caltype == "divided") { value.v = numFormat(value.v / calvalue, 4); } else if (caltype == "power") { value.v = Math.pow(value.v, calvalue); } else if (caltype == "root") { if (calvalue == 2) { value.v = numFormat(Math.sqrt(value.v), 4); } else if (calvalue == 3 && Math.cbrt) { value.v = numFormat(Math.cbrt(value.v), 4); } else { value.v = numFormat(jfnqrt(value.v, calvalue), 4); } } else if (caltype == "log") { value.v = numFormat(Math.log(value.v) * 10000 / Math.log(Math.abs(calvalue)), 4); } else { value.v = value.v + calvalue; } if(value.v == null){ value.m = ""; } else{ value.m = value.v.toString(); } } } a.push(value); } arr.push(a); } editor.controlHandler(arr); }); //矩阵操作选区 删除两端0值 按行 $("#luckysheet-matrix-delezero-row").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; let getdatalen = getdata[0].length; for (let r = 0; r < getdata.length; r++) { let a = [], stdel = true, eddel = true; for (let c = 0; c < getdatalen; c++) { let value = ""; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; if ((value.v == "0" || value.v == 0) && stdel) { continue; } else { stdel = false; } } a.push(value); } let a1 = []; if (a.length == getdatalen) { a1 = a; } else { for (let c = a.length - 1; c >= 0; c--) { let value = ""; if (a[c] != null) { value = a[c]; if ((value.v == "0" || value.v == 0) && eddel) { continue; } else { eddel = false; } } a1.unshift(value); } let l = getdatalen - a1.length; for (let c1 = 0; c1 < l; c1++) { a1.push(""); } } arr.push(a1); } editor.controlHandler(arr); }); //矩阵操作选区 删除两端0值 按列 $("#luckysheet-matrix-delezero-column").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; let getdatalen = getdata.length, collen = getdata[0].length; for (let c = 0; c < collen; c++) { let a = [], stdel = true, eddel = true; for (let r = 0; r < getdatalen; r++) { let value = ""; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; if ((value.v == "0" || value.v == 0) && stdel) { continue; } else { stdel = false; } } a.push(value); } let a1 = []; if (a.length == getdatalen) { a1 = a; } else { for (let r = a.length - 1; r >= 0; r--) { let value = ""; if (a[r] != null) { value = a[r]; if ((value.v == "0" || value.v == 0) && eddel) { continue; } else { eddel = false; } } a1.unshift(value); } let l = getdatalen - a1.length; for (let r1 = 0; r1 < l; r1++) { a1.push(""); } } arr.push(a1); } let arr1 = []; for (let c = 0; c < arr[0].length; c++) { let a = []; for (let r = 0; r < arr.length; r++) { let value = ""; if (arr[r] != null && arr[r][c] != null) { value = arr[r][c]; } a.push(value); } arr1.push(a); } editor.controlHandler(arr1); }); //矩阵操作选区 删除重复值 按行 $("#luckysheet-matrix-delerpt-row").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; let getdatalen = getdata[0].length; for (let r = 0; r < getdata.length; r++) { let a = [], repeat = {}; for (let c = 0; c < getdatalen; c++) { let value = null; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; if(value.v in repeat){ repeat[value.v].push(value); } else{ repeat[value.v] = []; repeat[value.v].push(value); } } } for (let c = 0; c < getdatalen; c++) { let value = null; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; if(repeat[value.v].length == 1){ a.push(value); } } } let l = getdatalen - a.length; for (let c1 = 0; c1 < l; c1++) { a.push(null); } arr.push(a); } editor.controlHandler(arr); }); //矩阵操作选区 删除重复值 按列 $("#luckysheet-matrix-delerpt-column").click(function (event) { $("body .luckysheet-cols-menu").hide(); luckysheetContainerFocus(); if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ alert(locale_drag.noMulti); } else{ tooltip.info(locale_drag.noMulti, ""); } return; } let getdata = getdatabyselection(Store.luckysheet_select_save[0]); if (getdata.length == 0) { return; } let arr = []; let getdatalen = getdata.length, collen = getdata[0].length; for (let c = 0; c < collen; c++) { let a = [], repeat = {}; for (let r = 0; r < getdatalen; r++) { let value = null; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; if(value.v in repeat){ repeat[value.v].push(value); } else{ repeat[value.v] = []; repeat[value.v].push(value); } } } for (let r = 0; r < getdatalen; r++) { let value = null; if (getdata[r] != null && getdata[r][c] != null) { value = getdata[r][c]; if(repeat[value.v].length == 1){ a.push(value); } } } a1 = a; let l = getdatalen - a1.length; for (let r1 = 0; r1 < l; r1++) { a1.push(null); } arr.push(a1); } let arr1 = []; for (let c = 0; c < arr[0].length; c++) { let a = []; for (let r = 0; r < arr.length; r++) { let value = null; if (arr[r] != null && arr[r][c] != null) { value = arr[r][c]; } a.push(value); } arr1.push(a); } editor.controlHandler(arr1); }); }