From 91b935f3e3bd52d9aa6db545ce9e4963f0f39de0 Mon Sep 17 00:00:00 2001 From: wpxp123456 <2677556700@qq.com> Date: Fri, 17 Jul 2020 17:47:48 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/alternateformat.js | 2 +- src/controllers/conditionformat.js | 17 ++++--- src/controllers/filter.js | 1 + src/controllers/handler.js | 63 ++++++++++++++--------- src/controllers/ifFormulaGenerator.js | 6 +-- src/controllers/insertFormula.js | 4 +- src/controllers/locationCell.js | 8 +-- src/controllers/menuButton.js | 33 ++++++------ src/controllers/pivotTable.js | 72 ++++++++++++++++----------- src/controllers/postil.js | 9 ++-- src/controllers/searchReplace.js | 18 +++---- src/controllers/select.js | 2 +- src/controllers/selection.js | 16 +++--- src/controllers/sheetmanage.js | 26 +++++----- src/global/createdom.js | 2 +- src/global/draw.js | 4 +- src/global/formula.js | 8 +-- src/global/validate.js | 3 +- 18 files changed, 165 insertions(+), 129 deletions(-) diff --git a/src/controllers/alternateformat.js b/src/controllers/alternateformat.js index 1c37d0e..86514aa 100644 --- a/src/controllers/alternateformat.js +++ b/src/controllers/alternateformat.js @@ -844,7 +844,7 @@ const alternateformat = { let rangeMap = _this.getRangeMap(range["row"], range["column"]); //遍历 - for(x in rangeMap){ + for(let x in rangeMap){ if(isExists){ break; } diff --git a/src/controllers/conditionformat.js b/src/controllers/conditionformat.js index 00ef1b9..772cad5 100644 --- a/src/controllers/conditionformat.js +++ b/src/controllers/conditionformat.js @@ -209,7 +209,7 @@ const conditionformat = { rule = { "type": "dataBar", - "cellrange": $.extend(true, [], luckysheet_select_save), + "cellrange": $.extend(true, [], Store.luckysheet_select_save), "format": format }; } @@ -227,7 +227,7 @@ const conditionformat = { rule = { "type": "colorGradation", - "cellrange": $.extend(true, [], luckysheet_select_save), + "cellrange": $.extend(true, [], Store.luckysheet_select_save), "format": format }; } @@ -244,7 +244,7 @@ const conditionformat = { rule = { "type": "icons", - "cellrange": $.extend(true, [], luckysheet_select_save), + "cellrange": $.extend(true, [], Store.luckysheet_select_save), "format": format }; } @@ -476,7 +476,7 @@ const conditionformat = { rule = { "type": "default", - "cellrange": $.extend(true, [], luckysheet_select_save), + "cellrange": $.extend(true, [], Store.luckysheet_select_save), "format": format, "conditionName": conditionName, "conditionRange": conditionRange, @@ -3375,7 +3375,7 @@ const conditionformat = { } //循环应用范围计算 if(conditionValue0 == "0"){//重复值 - for(x in dmap){ + for(let x in dmap){ if(x != "null" && x != "undefined" && dmap[x].length > 1){ for(let j = 0; j < dmap[x].length; j++){ if((dmap[x][j].r + "_" + dmap[x][j].c) in computeMap){ @@ -3390,7 +3390,7 @@ const conditionformat = { } } if(conditionValue0 == "1"){//唯一值 - for(x in dmap){ + for(let x in dmap){ if(x != "null" && x != "undefined" && dmap[x].length == 1){ if((dmap[x][0].r + "_" + dmap[x][0].c) in computeMap){ computeMap[dmap[x][0].r + "_" + dmap[x][0].c]["textColor"] = textColor; @@ -3536,8 +3536,9 @@ const conditionformat = { let historyRules = _this.getHistoryRules(fileH); //保存当前的规则 + let ruleArr; if(type == "delSheet"){ - let ruleArr = []; + ruleArr = []; } else{ let rule = { @@ -3545,7 +3546,7 @@ const conditionformat = { "cellrange": cellrange, "format": format }; - let ruleArr = Store.luckysheetfile[index]["luckysheet_conditionformat_save"] == null ? [] : Store.luckysheetfile[index]["luckysheet_conditionformat_save"]; + ruleArr = Store.luckysheetfile[index]["luckysheet_conditionformat_save"] == null ? [] : Store.luckysheetfile[index]["luckysheet_conditionformat_save"]; ruleArr.push(rule); } diff --git a/src/controllers/filter.js b/src/controllers/filter.js index e7d5eca..862ab8d 100644 --- a/src/controllers/filter.js +++ b/src/controllers/filter.js @@ -7,6 +7,7 @@ import { rowlenByRange } from '../global/getRowlen'; import { jfrefreshgrid } from '../global/refresh'; import { selectHightlightShow } from './select'; import { luckysheetMoveEndCell } from './sheetMove'; +import server from './server'; import Store from '../store'; //筛选配置状态 diff --git a/src/controllers/handler.js b/src/controllers/handler.js index 2ba3578..6fc401c 100644 --- a/src/controllers/handler.js +++ b/src/controllers/handler.js @@ -28,6 +28,7 @@ import splitColumn from './splitColumn'; import { labelFilterOptionState, orderbydatafiler, createFilter, createFilterOptions } from './filter'; import insertFormula from './insertFormula'; import { + replaceHtml, getObjType, chatatABC, ArrayUnique, @@ -60,7 +61,7 @@ import { jfrefreshgrid_rhcw, luckysheetrefreshgrid, } from '../global/refresh'; -import { getdatabyselection, getcellvalue } from '../global/getdata'; +import { getdatabyselection, getcellvalue, datagridgrowth } from '../global/getdata'; import { orderbydata, orderbydata1D, sortColumnSeletion } from '../global/sort'; import tooltip from '../global/tooltip'; import editor from '../global/editor'; @@ -69,6 +70,7 @@ import json from '../global/json'; import { update, genarate } from '../global/format'; import method from '../global/method'; import { getBorderInfoCompute } from '../global/border'; +import { luckysheetDrawMain } from '../global/draw'; import Store from '../store'; //, columeflowset, rowflowset @@ -111,14 +113,18 @@ export default function luckysheetHandler() { //一次滚动三行或三列 if(event.deltaX != 0){ + let col_ed; + if(event.deltaX < 0){ - let col_ed = col_st + 3; + col_ed = col_st + 3; + if(col_ed >= visibledatacolumn_c.length){ col_ed = visibledatacolumn_c.length - 1; } } else{ - let col_ed = col_st - 3; + col_ed = col_st - 3; + if(col_ed < 0){ col_ed = 0; } @@ -130,14 +136,18 @@ export default function luckysheetHandler() { } if(event.deltaY != 0){ + let row_ed; + if(event.deltaY < 0){ - let row_ed = row_st + 3; + row_ed = row_st + 3; + if(row_ed >= visibledatarow_c.length){ row_ed = visibledatarow_c.length - 1; } } else{ - let row_ed = row_st - 3; + row_ed = row_st - 3; + if(row_ed < 0){ row_ed = 0; } @@ -640,8 +650,9 @@ export default function luckysheetHandler() { let currSelection = window.getSelection(); let anchorOffset = currSelection.anchorNode; + let $editor; if($("#luckysheet-search-formula-parm").is(":visible") || $("#luckysheet-search-formula-parm-select").is(":visible")){ - $editor=$("#luckysheet-rich-text-editor"); + $editor = $("#luckysheet-rich-text-editor"); formula.rangechangeindex = formula.data_parm_index; } else{ @@ -3574,7 +3585,7 @@ export default function luckysheetHandler() { cfg["rowlen"][Store.luckysheet_rows_change_size_start[1]] = Math.ceil(size); - if (clearjfundo) { + if (Store.clearjfundo) { Store.jfundo = []; Store.jfredo.push({ @@ -3642,7 +3653,7 @@ export default function luckysheetHandler() { cfg["columlen"][Store.luckysheet_cols_change_size_start[1]] = Math.ceil(size); - if (clearjfundo) { + if (Store.clearjfundo) { Store.jfundo = []; Store.jfredo.push({ @@ -4304,6 +4315,8 @@ export default function luckysheetHandler() { setTimeout(function(){ let currSelection = window.getSelection(); let anchorOffset = currSelection.anchorNode; + + let $editor; if($("#luckysheet-search-formula-parm").is(":visible")||$("#luckysheet-search-formula-parm-select").is(":visible")){ $editor = $("#luckysheet-rich-text-editor"); formula.rangechangeindex = formula.data_parm_index; @@ -4311,6 +4324,7 @@ export default function luckysheetHandler() { else{ $editor = $(anchorOffset).closest("div"); } + let $span = $editor.find("span[rangeindex='" + formula.rangechangeindex + "']"); formula.setCaretPosition($span.get(0), 0, $span.html().length); @@ -6402,7 +6416,7 @@ export default function luckysheetHandler() { Store.luckysheetfile[index].color = color; server.saveParam("all", Store.currentSheetIndex, color, { "k": "color" }); - if (clearjfundo) { + if (Store.clearjfundo) { let redo = {}; redo["type"] = "sheetColor"; redo["sheetIndex"] = Store.currentSheetIndex; @@ -6427,7 +6441,7 @@ export default function luckysheetHandler() { Store.luckysheetfile[index].color = null; server.saveParam("all", Store.currentSheetIndex, null, { "k": "color" } ); - if (clearjfundo) { + if (Store.clearjfundo) { let redo = {}; redo["type"] = "sheetColor"; redo["sheetIndex"] = Store.currentSheetIndex; @@ -6590,7 +6604,7 @@ export default function luckysheetHandler() { $t.attr("contenteditable", "false").removeClass("luckysheet-mousedown-cancel"); - if (clearjfundo) { + if (Store.clearjfundo) { let redo = {}; redo["type"] = "sheetName"; redo["sheetIndex"] = Store.currentSheetIndex; @@ -6780,7 +6794,7 @@ export default function luckysheetHandler() { $("#luckysheet-sheet-list").html(item); } - $t = $("#luckysheet-sheet-list"); + let $t = $("#luckysheet-sheet-list"); mouseclickposition($t, $(this).offset().left, $(this).offset().top - 12, "leftbottom"); $("#luckysheet-input-box").removeAttr("style"); @@ -7025,7 +7039,7 @@ export default function luckysheetHandler() { } } - if (clearjfundo) { + if (Store.clearjfundo) { Store.jfundo = []; Store.jfredo.push({ "type": "resize", @@ -7191,11 +7205,12 @@ export default function luckysheetHandler() { //数据具有标题行 let t = $("#luckysheet-sort-haveheader").is(':checked'); + let str; if(t){ - let str = r1 + 1; + str = r1 + 1; } else{ - let str = r1; + str = r1; } let hasMc = false; //排序选区是否有合并单元格 @@ -7553,11 +7568,11 @@ export default function luckysheetHandler() { let ysum = 0; let monthHtml = ''; - for(m in dvmap[y]){ + for(let m in dvmap[y]){ let msum = 0; let dayHtml = ''; - for(d in dvmap[y][m]){ + for(let d in dvmap[y][m]){ let dayL = dvmap[y][m][d]; msum += dayL; @@ -7668,7 +7683,7 @@ export default function luckysheetHandler() { for(let i = 0; i < vmapKeys.length; i++){ let v = vmapKeys[i]; - for(x in vmap[v]){ + for(let x in vmap[v]){ let text; if((v + "#$$$#" + x) == "null#$$$#null"){ text = "(空白)"; @@ -7767,7 +7782,7 @@ export default function luckysheetHandler() { fc = fc.substr(0, 1) + fc.substr(1, 1).repeat(2) + fc.substr(2, 1).repeat(2) + fc.substr(3, 1).repeat(2); } - if(config != null && config["rowhidden"] != null && r in config["rowhidden"]){ + if(Store.config != null && Store.config["rowhidden"] != null && r in Store.config["rowhidden"]){ bgMap[bg] = 1; if(cell != null && !isRealNull(cell.v)){ @@ -7786,7 +7801,7 @@ export default function luckysheetHandler() { let filterBgColorHtml = ''; if(JSON.stringify(bgMap).length > 2 && Object.keys(bgMap).length > 1){ let bgColorItemHtml = ''; - for(b in bgMap){ + for(let b in bgMap){ if(bgMap[b] == 0){ bgColorItemHtml += '
'; } @@ -7800,7 +7815,7 @@ export default function luckysheetHandler() { let filterFcColorHtml = ''; if(JSON.stringify(fcMap).length > 2 && Object.keys(fcMap).length > 1){ let fcColorItemHtml = ''; - for(f in fcMap){ + for(let f in fcMap){ if(fcMap[f] == 0){ fcColorItemHtml += '
'; } @@ -7996,11 +8011,11 @@ export default function luckysheetHandler() { labelFilterOptionState($top, optionstate, rowhidden, caljs, true, st_r, ed_r, cindex, st_c, ed_c); - let cfg = $.extend(true, {}, config); + let cfg = $.extend(true, {}, Store.config); cfg["rowhidden"] = rowhiddenall; //保存撤销 - if(clearjfundo){ + if(Store.clearjfundo){ let redo = {}; redo["type"] = "datachangeAll_filter"; redo["sheetIndex"] = Store.currentSheetIndex; @@ -8718,7 +8733,7 @@ export default function luckysheetHandler() { cfg["rowhidden"] = rowhiddenall; //保存撤销 - if(clearjfundo){ + if(Store.clearjfundo){ let redo = {}; redo["type"] = "datachangeAll_filter"; redo["sheetIndex"] = Store.currentSheetIndex; diff --git a/src/controllers/ifFormulaGenerator.js b/src/controllers/ifFormulaGenerator.js index 015edae..c0bf6f3 100644 --- a/src/controllers/ifFormulaGenerator.js +++ b/src/controllers/ifFormulaGenerator.js @@ -459,9 +459,9 @@ const ifFormulaGenerator = { getIfList: function(compareValue, smallRange, largeRange, method, methodVal){ $("#luckysheet-ifFormulaGenerator-dialog .ifList").empty(); - let smallRange = parseInt(smallRange); - let largeRange = parseInt(largeRange); - let methodVal = parseInt(methodVal); + smallRange = parseInt(smallRange); + largeRange = parseInt(largeRange); + methodVal = parseInt(methodVal); let arr = []; diff --git a/src/controllers/insertFormula.js b/src/controllers/insertFormula.js index 5dacc19..862e3e2 100644 --- a/src/controllers/insertFormula.js +++ b/src/controllers/insertFormula.js @@ -210,13 +210,13 @@ const insertFormula = { $("#formulaTypeList .listBox:first-child").addClass("on"); //默认公式列表第一个为选中状态 }, - formulaParmDialog: function(formula, parm){ //参数弹出框 + formulaParmDialog: function(formulaTxt, parm){ //参数弹出框 let parm_title = '', parm_content = '', parm_list_content = ''; for(let i = 0; i < functionlist.length; i++){ - if(functionlist[i].n == formula.toUpperCase()){ + if(functionlist[i].n == formulaTxt.toUpperCase()){ parm_title = functionlist[i].n; for(let j = 0; j < functionlist[i].p.length; j++){ diff --git a/src/controllers/locationCell.js b/src/controllers/locationCell.js index 87aba95..1d62898 100644 --- a/src/controllers/locationCell.js +++ b/src/controllers/locationCell.js @@ -259,8 +259,8 @@ const luckysheetLocationCell = { if(st_r == ed_r){ let stack_stc = null, stack_edc = null; - let r = st_r; - for(let c = st_c; c <= ed_c; c++){ + var r = st_r; //r, c var定义,否则eval报错 + for(var c = st_c; c <= ed_c; c++){ if(c == st_c){ if(eval(str)){ stack_stc = c; @@ -313,11 +313,11 @@ const luckysheetLocationCell = { else{ let stack = {}; - for(let r = st_r; r <= ed_r; r++){ + for(var r = st_r; r <= ed_r; r++){ stack[r] = []; let stack_stc = null, stack_edc = null; - for(let c = st_c; c <= ed_c; c++){ + for(var c = st_c; c <= ed_c; c++){ if(c == ed_c){ if(eval(str)){ if(stack_stc == null){ diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index 51622f9..e358aa6 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -26,7 +26,7 @@ import { rowLocationByIndex, colLocationByIndex } from '../global/location'; import { isdatatypemulti } from '../global/datecontroll'; import { setcellvalue } from '../global/setdata'; import { countfunc } from '../global/count'; -import { getSheetIndex, getluckysheetfile } from '../methods/get'; +import { getSheetIndex, getRangetxt, getluckysheetfile } from '../methods/get'; import { setluckysheetfile } from '../methods/set'; import { replaceHtml, getObjType, rgbTohex, mouseclickposition, luckysheetfontformat } from '../utils/util'; import Store from '../store'; @@ -261,7 +261,7 @@ const menuButton = { let fa = main.split(""); let tail = ""; - for(i=fa.length-1;i>=0;i--){ + for(let i = fa.length-1; i >= 0; i--){ let c = fa[i]; if((c!="#" && c!="0" && c!="," && isNaN(parseInt(c)))) { tail = c + tail; @@ -343,7 +343,7 @@ const menuButton = { let fa = main.split(""); let tail = ""; - for(i=fa.length-1;i>=0;i--){ + for(let i = fa.length - 1; i >= 0; i--){ let c = fa[i]; if(( c!="#" && c!="0" && c!="," && isNaN(parseInt(c)))) { tail = c + tail; @@ -2602,8 +2602,9 @@ const menuButton = { col_index = last["column"][0]; } + let itemdata; if(Store.flowdata[row_index][col_index] != null && Store.flowdata[row_index][col_index].ps != null){ - let itemdata = [ + itemdata = [ {"text": "编辑批注", "value": "editPs", "example": ""}, {"text": "删除", "value": "delPs", "example": ""}, {"text": "", "value": "split", "example": ""}, @@ -2612,7 +2613,7 @@ const menuButton = { ]; } else{ - let itemdata = [ + itemdata = [ {"text": "新建批注", "value": "newPs", "example": ""}, {"text": "", "value": "split", "example": ""}, {"text": "显示/隐藏所有批注", "value": "showHideAllPs", "example": ""} @@ -4032,7 +4033,7 @@ const menuButton = { col_pre = colLocationByIndex(columnh[0])[0], col = colLocationByIndex(columnh[1])[1]; - let formulaTxt = '='+ formula.toUpperCase() +'('+ _this.getRangetxt(Store.currentSheetIndex, {"row":rowh, "column":columnh }, Store.currentSheetIndex) +')'; + let formulaTxt = '='+ formula.toUpperCase() +'('+ getRangetxt(Store.currentSheetIndex, {"row":rowh, "column":columnh }, Store.currentSheetIndex) +')'; $("#luckysheet-rich-text-editor").html(formulaTxt); luckysheetformula.israngeseleciton(); @@ -4061,7 +4062,7 @@ const menuButton = { backFormulaInput: function(d, r, c, rowh, columnh, formula){ let _this = this; - let f = '='+ formula.toUpperCase() +'('+ _this.getRangetxt(Store.currentSheetIndex, {"row":rowh, "column":columnh }, Store.currentSheetIndex) +')'; + let f = '='+ formula.toUpperCase() +'('+ getRangetxt(Store.currentSheetIndex, {"row":rowh, "column":columnh }, Store.currentSheetIndex) +')'; let v = luckysheetformula.execfunction(f, r, c); let value = { "v": v[1], "f": v[2] }; setcellvalue(r, c, d, value); @@ -4284,25 +4285,25 @@ const menuButton = { let isfalse = true; luckysheetformula.execFunctionExist = []; - let execFormulaInput_c = function(){ + let execFormulaInput_c = function(d, st_r, ed_r, st_c, ed_c, formula){ let st_c_c = _this.getNoNullValue(d, st_r, ed_c, "c"); if(st_c_c == null){ _this.activeFormulaInput(st_r, st_c, null, null, formula, true); } else{ - _this.activeFormulaInput(st_r, st_c, [st_r ,ed_r], [st_c_c, ed_c-1], formula); + _this.activeFormulaInput(st_r, st_c, [st_r, ed_r], [st_c_c, ed_c - 1], formula); } } - let execFormulaInput = function(){ + let execFormulaInput = function(d, st_r, ed_r, st_c, ed_c, formula){ let st_r_c = _this.getNoNullValue(d, st_c, ed_r, "r"); if(st_r_c == null){ - execFormulaInput_c(); + execFormulaInput_c(d, st_r, ed_r, st_c, ed_c, formula); } else{ - _this.activeFormulaInput(st_r, st_c, [st_r_c, ed_r-1], [st_c ,ed_c], formula); + _this.activeFormulaInput(st_r, st_c, [st_r_c, ed_r - 1], [st_c, ed_c], formula); } } @@ -4321,13 +4322,13 @@ const menuButton = { } if(ed_r - 1 >= 0 && _this.checkNoNullValue(d[ed_r - 1][st_c])){ - execFormulaInput(); + execFormulaInput(d, st_r, ed_r, st_c, ed_c, formula); } else if(ed_c - 1 >= 0 && _this.checkNoNullValue(d[st_r][ed_c - 1])){ - execFormulaInput_c(); + execFormulaInput_c(d, st_r, ed_r, st_c, ed_c, formula); } else{ - execFormulaInput(); + execFormulaInput(d, st_r, ed_r, st_c, ed_c, formula); } } else if(st_r == ed_r){ @@ -4356,7 +4357,7 @@ const menuButton = { if(!isfalse){ luckysheetformula.execFunctionExist.reverse(); luckysheetformula.execFunctionGroup(null, null, null, null, d); - jfrefreshgrid(d, [{"row": [st_r, ed_r], "column": [st_c, ed_c]}]); + jfrefreshgrid(d, Store.luckysheet_select_save); clearTimeout(Store.jfcountfuncTimeout); Store.jfcountfuncTimeout = setTimeout(function () { countfunc() }, 500); diff --git a/src/controllers/pivotTable.js b/src/controllers/pivotTable.js index 9c0f181..9ebc023 100644 --- a/src/controllers/pivotTable.js +++ b/src/controllers/pivotTable.js @@ -20,6 +20,7 @@ import cleargridelement from '../global/cleargridelement'; import luckysheetArray from '../global/array'; import analysis from '../global/analysis'; import { selectHightlightShow } from './select'; +import { luckysheet_searcharray } from './sheetSearch'; import { modelHTML, filtermenuHTML, @@ -375,15 +376,15 @@ const pivotTable = { let item = []; if(JSON.stringify(dvmap).length > 2){ - for(y in dvmap){ + for(let y in dvmap){ let ysum = 0; let monthHtml = ''; - for(m in dvmap[y]){ + for(let m in dvmap[y]){ let msum = 0; let dayHtml = ''; - for(d in dvmap[y][m]){ + for(let d in dvmap[y][m]){ let dayL = dvmap[y][m][d]; msum += dayL; @@ -494,7 +495,7 @@ const pivotTable = { for(let i = 0; i < vmapKeys.length; i++){ let v = vmapKeys[i]; - for(x in vmap[v]){ + for(let x in vmap[v]){ let text; if((v + "#$$$#" + x) == "null#$$$#null"){ text = "(空白)"; @@ -665,6 +666,9 @@ const pivotTable = { let d = $.extend(true, [], sheetmanage.nulldata); let data = d; + + let addr = 0, addc = 0; + if (ret.length == 0) { _this.setDatatojsfile("drawPivotTable", true); _this.setDatatojsfile("pivotTableBoundary", [12, 6]); @@ -675,8 +679,9 @@ const pivotTable = { let rlen = ret.length, clen = ret[0].length; - let addr = rlen - d.length, - addc = clen - d[0].length; + + addr = rlen - d.length; + addc = clen - d[0].length; data = datagridgrowth(d, addr + 20, addc + 10, true); @@ -2034,18 +2039,24 @@ const pivotTable = { }); $("#luckysheet-modal-dialog-pivotTable-list").on("click", ".luckysheet-slider-list-item-selected", function () { - let $t = $(this), $item = $t.parent(), index = $item.data("index"), name = $item.data("name"); + let $t = $(this), + $item = $t.parent(), + index = $item.data("index"), + name = $item.data("name"); if ($t.find("i").length == 0) { $t.append(''); - let type = _this.pivot_data_type[index.toString()], itemHTML; + let type = _this.pivot_data_type[index.toString()], + itemHTML; + if (type == "num") { itemHTML = '
求和:' + name + '
'; $("#luckysheet-modal-dialog-config-value").append(itemHTML); } else { itemHTML = '
' + name + '
'; + let $column = $("#luckysheet-modal-dialog-config-column"), $row = $("#luckysheet-modal-dialog-config-row"); let columnitem = $column.find(".luckysheet-modal-dialog-slider-config-item"), @@ -2661,12 +2672,14 @@ const pivotTable = { coltitle.unshift("总计"); } - let curentLevelobj = datarowposition, curentLevelarr = datarowtitlegroup; + let curentLevelobj_row = datarowposition, + curentLevelarr_row = datarowtitlegroup; + for (let r = 0; r < rowtitle.length; r++) { let item = rowtitle[r], name = r == 0 ? "总计" : rowtitlename[r - 1];//修改 - if (curentLevelobj[r.toString()] != null && curentLevelobj[r.toString()][item] != null) {//修改 - curentLevelarr = curentLevelarr[curentLevelobj[r.toString()][item]].children; + if (curentLevelobj_row[r.toString()] != null && curentLevelobj_row[r.toString()][item] != null) {//修改 + curentLevelarr_row = curentLevelarr_row[curentLevelobj_row[r.toString()][item]].children; } else { let orderby = r == 0 ? "self" : ((row[r - 1].orderby == "self" || row[r - 1].orderby == null) ? item : (showType == "column" ? item + values[parseInt(row[r - 1].orderby)].fullname : item + "合计")); @@ -2675,25 +2688,28 @@ const pivotTable = { name = "(空白)"; } - curentLevelarr.push({ "name": name, "fullname": item, "index": r, "orderby": orderby, "children": [] }); + curentLevelarr_row.push({ "name": name, "fullname": item, "index": r, "orderby": orderby, "children": [] }); - if (curentLevelobj[r.toString()] == null) { - curentLevelobj[r.toString()] = {}; + if (curentLevelobj_row[r.toString()] == null) { + curentLevelobj_row[r.toString()] = {}; } - if (curentLevelobj[r.toString()][item] == null) { - curentLevelobj[r.toString()][item] = curentLevelarr.length - 1; + if (curentLevelobj_row[r.toString()][item] == null) { + curentLevelobj_row[r.toString()][item] = curentLevelarr_row.length - 1; } - curentLevelarr = curentLevelarr[curentLevelarr.length - 1].children; + curentLevelarr_row = curentLevelarr_row[curentLevelarr_row.length - 1].children; } } + let curentLevelobj_col = datacolposition, + curentLevelarr_col = datacoltitlegroup; + for (let r = 0; r < coltitle.length; r++) { let item = coltitle[r], name = r == 0 ? "总计" : coltitlename[r - 1]; - if (curentLevelobj[r.toString()] != null && curentLevelobj[r.toString()][item] != null) { - curentLevelarr = curentLevelarr[curentLevelobj[r.toString()][item]].children; + if (curentLevelobj_col[r.toString()] != null && curentLevelobj_col[r.toString()][item] != null) { + curentLevelarr_col = curentLevelarr_col[curentLevelobj_col[r.toString()][item]].children; } else { let orderby = r == 0 ? "self" : ((column[r - 1].orderby == "self" || column[r - 1].orderby == null) ? item : (showType == "column" ? "合计" + item : values[parseInt(column[r - 1].orderby)].fullname + item)); @@ -2702,17 +2718,17 @@ const pivotTable = { name = "(空白)"; } - curentLevelarr.push({ "name": name, "fullname": item, "index": r, "orderby": orderby, "children": [] }); + curentLevelarr_col.push({ "name": name, "fullname": item, "index": r, "orderby": orderby, "children": [] }); - if (curentLevelobj[r.toString()] == null) { - curentLevelobj[r.toString()] = {}; + if (curentLevelobj_col[r.toString()] == null) { + curentLevelobj_col[r.toString()] = {}; } - if (curentLevelobj[r.toString()][item] == null) { - curentLevelobj[r.toString()][item] = curentLevelarr.length - 1; + if (curentLevelobj_col[r.toString()][item] == null) { + curentLevelobj_col[r.toString()][item] = curentLevelarr_col.length - 1; } - curentLevelarr = curentLevelarr[curentLevelarr.length - 1].children; + curentLevelarr_col = curentLevelarr_col[curentLevelarr_col.length - 1].children; } } @@ -2750,7 +2766,7 @@ const pivotTable = { for (let r = 0; r < rowtitle_c.length; r++) { for (let c = 0; c < coltitle_c.length; c++) { - indicator = rowtitle_c[r] + coltitle_c[c]; + let indicator = rowtitle_c[r] + coltitle_c[c]; _this.addStatisticsData(dataposition, values[v], indicator, d_value); } } @@ -2759,7 +2775,7 @@ const pivotTable = { //计算值列 //SUM/COUNT/COUNTA/COUNTUNIQUE/AVERAGE/MAX/MIN/MEDIAN/PRODUCT/STDEV/STDEVP/let/VARP - for (indicator in dataposition) { + for (let indicator in dataposition) { let json = dataposition[indicator]; if (json.sumtype == "SUM") { @@ -3018,7 +3034,7 @@ const pivotTable = { for(let j = 1; j < _this.celldata.length; j++){ let isEqual = true - for(x in obj){ + for(let x in obj){ let value; if(!!_this.celldata[j][x] && !!_this.celldata[j][x]["m"]){ value = _this.celldata[j][x]["m"]; diff --git a/src/controllers/postil.js b/src/controllers/postil.js index 9c2fe7d..27d74d0 100644 --- a/src/controllers/postil.js +++ b/src/controllers/postil.js @@ -1,8 +1,10 @@ import { rowLocation, colLocation, mouseposition } from '../global/location'; import editor from '../global/editor'; +import formula from '../global/formula'; import { luckysheetRangeLast } from '../global/cursorPos'; import { luckysheetrefreshgrid } from '../global/refresh'; import { setluckysheet_scroll_status } from '../methods/set'; +import { getSheetIndex } from '../methods/get'; import { getObjType } from '../utils/util'; import luckysheetFreezen from './freezen'; import menuButton from './menuButton'; @@ -622,9 +624,8 @@ const luckysheetPostil = { } } + let rc = []; if(allPs.length > 0){ - let rc = []; - if(isAllShow){ //全部显示,操作为隐藏所有批注 $("#luckysheet-cell-main #luckysheet-postil-showBoxs").empty(); @@ -748,7 +749,7 @@ const luckysheetPostil = { } }, ref: function(data, rc){ - if (clearjfundo) { + if (Store.clearjfundo) { Store.jfundo = []; Store.jfredo.push({ @@ -764,7 +765,7 @@ const luckysheetPostil = { Store.flowdata = data; editor.webWorkerFlowDataCache(Store.flowdata);//worker存数据 - Store.luckysheetfile[sheetmanage.getSheetIndex(Store.currentSheetIndex)].data = Store.flowdata; + Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].data = Store.flowdata; formula.execFunctionGroupData = Store.flowdata; //共享编辑模式 diff --git a/src/controllers/searchReplace.js b/src/controllers/searchReplace.js index 5976dd3..0300ad0 100644 --- a/src/controllers/searchReplace.js +++ b/src/controllers/searchReplace.js @@ -328,20 +328,20 @@ const luckysheetSearchReplace = { let searchAllHtml = ''; for(let i = 0; i < searchIndexArr.length; i++){ - let valueShowEs = valueShowEs(searchIndexArr[i].r, searchIndexArr[i].c, Store.flowdata).toString(); + let value_ShowEs = valueShowEs(searchIndexArr[i].r, searchIndexArr[i].c, Store.flowdata).toString(); - if(valueShowEs.indexOf(" -1 && valueShowEs.indexOf(">") > -1){ + if(value_ShowEs.indexOf(" -1 && value_ShowEs.indexOf(">") > -1){ searchAllHtml += '
' + '' + Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].name + '' + '' + chatatABC(searchIndexArr[i].c) + (searchIndexArr[i].r + 1) + '' + - '' + valueShowEs + '' + + '' + value_ShowEs + '' + '
'; } else{ searchAllHtml += '
' + '' + Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].name + '' + '' + chatatABC(searchIndexArr[i].c) + (searchIndexArr[i].r + 1) + '' + - '' + valueShowEs + '' + + '' + value_ShowEs + '' + '
'; } } @@ -550,9 +550,10 @@ const luckysheetSearchReplace = { let d = editor.deepCopyFlowData(Store.flowdata); + let r, c; if(wordCheck){ - let r = searchIndexArr[count].r; - let c = searchIndexArr[count].c; + r = searchIndexArr[count].r; + c = searchIndexArr[count].c; let v = replaceText; @@ -567,8 +568,8 @@ const luckysheetSearchReplace = { reg = new RegExp(func_methods.getRegExpStr(searchText), "ig"); } - let r = searchIndexArr[count].r; - let c = searchIndexArr[count].c; + r = searchIndexArr[count].r; + c = searchIndexArr[count].c; let v = valueShowEs(r, c, d).toString().replace(reg, replaceText); @@ -668,7 +669,6 @@ const luckysheetSearchReplace = { let replaceText = $("#luckysheet-search-replace #replaceInput input").val(); let d = editor.deepCopyFlowData(Store.flowdata); - let range = []; if(wordCheck){ for(let i = 0; i < searchIndexArr.length; i++){ diff --git a/src/controllers/select.js b/src/controllers/select.js index fa2d5a3..006f3ec 100644 --- a/src/controllers/select.js +++ b/src/controllers/select.js @@ -139,7 +139,7 @@ function selectHightlightShow() { } } else{ - $("#luckysheet-cell-selected-boxs").append('
'); + $("#luckysheet-cell-selected-boxs").append('
'); } if(i == Store.luckysheet_select_save.length - 1){ diff --git a/src/controllers/selection.js b/src/controllers/selection.js index 857a9c0..0f6e62d 100644 --- a/src/controllers/selection.js +++ b/src/controllers/selection.js @@ -307,13 +307,13 @@ const selection = { if(JSON.stringify(bl_obj).length > 23){ let bl_color = null, bl_style = null; - for(x in bl_obj.color){ + for(let x in bl_obj.color){ if(bl_obj.color[x] >= (rowlen / 2)){ bl_color = x; } } - for(x in bl_obj.style){ + for(let x in bl_obj.style){ if(bl_obj.style[x] >= (rowlen / 2)){ bl_style = x; } @@ -327,13 +327,13 @@ const selection = { if(JSON.stringify(br_obj).length > 23){ let br_color = null, br_style = null; - for(x in br_obj.color){ + for(let x in br_obj.color){ if(br_obj.color[x] >= (rowlen / 2)){ br_color = x; } } - for(x in br_obj.style){ + for(let x in br_obj.style){ if(br_obj.style[x] >= (rowlen / 2)){ br_style = x; } @@ -347,13 +347,13 @@ const selection = { if(JSON.stringify(bt_obj).length > 23){ let bt_color = null, bt_style = null; - for(x in bt_obj.color){ + for(let x in bt_obj.color){ if(bt_obj.color[x] >= (collen / 2)){ bt_color = x; } } - for(x in bt_obj.style){ + for(let x in bt_obj.style){ if(bt_obj.style[x] >= (collen / 2)){ bt_style = x; } @@ -367,13 +367,13 @@ const selection = { if(JSON.stringify(bb_obj).length > 23){ let bb_color = null, bb_style = null; - for(x in bb_obj.color){ + for(let x in bb_obj.color){ if(bb_obj.color[x] >= (collen / 2)){ bb_color = x; } } - for(x in bb_obj.style){ + for(let x in bb_obj.style){ if(bb_obj.style[x] >= (collen / 2)){ bb_style = x; } diff --git a/src/controllers/sheetmanage.js b/src/controllers/sheetmanage.js index fdaf45f..be96af3 100644 --- a/src/controllers/sheetmanage.js +++ b/src/controllers/sheetmanage.js @@ -177,7 +177,7 @@ const sheetmanage = { let sheetname = _this.generateRandomSheetName(Store.luckysheetfile, isPivotTable); - $("#luckysheet-sheet-Store.container-c").append(replaceHtml(sheetHTML, { "index": index, "active": "", "name": sheetname, "style": "","colorset":"" })); + $("#luckysheet-sheet-container-c").append(replaceHtml(sheetHTML, { "index": index, "active": "", "name": sheetname, "style": "","colorset":"" })); let sheetconfig = { "name": sheetname, @@ -320,18 +320,18 @@ const sheetmanage = { $("#luckysheet-cell-main").append('
'); } - $("#luckysheet-sheet-Store.container-c").append(btn.join("")); + $("#luckysheet-sheet-container-c").append(btn.join("")); _this.locationSheet(); }, locationSheet: function() { - let $c = $("#luckysheet-sheet-Store.container-c"), winW = $("#"+Store.container).width(); - let $cursheet = $("#luckysheet-sheet-Store.container-c > div.luckysheet-sheets-item-active").eq(0); + let $c = $("#luckysheet-sheet-container-c"), winW = $("#"+Store.container).width(); + let $cursheet = $("#luckysheet-sheet-container-c > div.luckysheet-sheets-item-active").eq(0); let scrollLeftpx = 0; let c_width = 0; - $("#luckysheet-sheet-Store.container-c > div.luckysheet-sheets-item:visible").each(function(){ + $("#luckysheet-sheet-container-c > div.luckysheet-sheets-item:visible").each(function(){ if($(this).hasClass("luckysheet-sheets-item-active")){ scrollLeftpx = c_width; } @@ -343,7 +343,7 @@ const sheetmanage = { if (c_width >= winW * 0.7) { $("#luckysheet-sheet-area .luckysheet-sheets-scroll").css("display", "inline-block"); - $("#luckysheet-sheet-Store.container .docs-sheet-fade-left").show(); + $("#luckysheet-sheet-container .docs-sheet-fade-left").show(); } }, 1) }, @@ -370,7 +370,7 @@ const sheetmanage = { } let copyobject = $("#luckysheet-sheets-item" + copyindex); - $("#luckysheet-sheet-Store.container-c").append(replaceHtml(sheetHTML, { "index": copyjson.index, "active": "", "name": copyjson.name, "order": copyjson.order, "style": "", "colorset": colorset })); + $("#luckysheet-sheet-container-c").append(replaceHtml(sheetHTML, { "index": copyjson.index, "active": "", "name": copyjson.name, "order": copyjson.order, "style": "", "colorset": colorset })); $("#luckysheet-sheets-item" + copyjson.index).insertAfter(copyobject); Store.luckysheetfile.splice(copyindex + 1, 0, copyjson); @@ -423,7 +423,7 @@ const sheetmanage = { colorset = '
'; } - $("#luckysheet-sheet-Store.container-c").append(replaceHtml(sheetHTML, { "index": data.index, "active": "", "name": data.name, "order": data.order, "style": "", "colorset": colorset })); + $("#luckysheet-sheet-container-c").append(replaceHtml(sheetHTML, { "index": data.index, "active": "", "name": data.name, "order": data.order, "style": "", "colorset": colorset })); let previndex = data.order; if(previndex >= Store.luckysheetfile.length){ @@ -1024,23 +1024,23 @@ const sheetmanage = { formula.createRangeHightlight(); } - let $c = $("#luckysheet-sheet-Store.container-c"); + let $c = $("#luckysheet-sheet-container-c"); $c.scrollLeft($sheet.offset().left); let c_width = $c.width(), c_srollwidth = $c[0].scrollWidth, scrollLeft = $c.scrollLeft(); if (scrollLeft <= 0) { - $("#luckysheet-sheet-Store.container .docs-sheet-fade-left").hide(); + $("#luckysheet-sheet-container .docs-sheet-fade-left").hide(); } else { - $("#luckysheet-sheet-Store.container .docs-sheet-fade-left").show(); + $("#luckysheet-sheet-container .docs-sheet-fade-left").show(); } if (c_width + scrollLeft >= c_srollwidth) { - $("#luckysheet-sheet-Store.container .docs-sheet-fade-right").hide(); + $("#luckysheet-sheet-container .docs-sheet-fade-right").hide(); } else { - $("#luckysheet-sheet-Store.container .docs-sheet-fade-right").show(); + $("#luckysheet-sheet-container .docs-sheet-fade-right").show(); } }, delChart: function(chart_id, sheetIndex) { diff --git a/src/global/createdom.js b/src/global/createdom.js index c4c1806..f0da13c 100644 --- a/src/global/createdom.js +++ b/src/global/createdom.js @@ -59,7 +59,7 @@ export default function luckysheetcreatedom(colwidth, rowheight, data, menu, tit rhchInit(rowheight, colwidth); - let addControll = '(在底部添加)'; + let addControll = '(在底部添加)'; let backControll = ' '; // let pageControll = ' 共'+ luckysheetConfigsetting.pageInfo.totalPage +'页,当前已显示'+ (luckysheetConfigsetting.pageInfo.currentPage) +'页,每页'+ luckysheetConfigsetting.pageInfo.pageSize +'条 '; let pageControll = ' 共'+ luckysheetConfigsetting.total +'条,'+ luckysheetConfigsetting.pageInfo.totalPage +'页,当前已显示'+ (luckysheetConfigsetting.pageInfo.currentPage) +'页 '; diff --git a/src/global/draw.js b/src/global/draw.js index 2c26630..18be503 100644 --- a/src/global/draw.js +++ b/src/global/draw.js @@ -1593,7 +1593,7 @@ function luckysheetDrawMain(scrollWidth, scrollHeight, drawWidth, drawHeight, of let borderInfoCompute = getBorderInfoCompute(); - for(x in borderInfoCompute){ + for(let x in borderInfoCompute){ let bd_r = x.split("_")[0], bd_c = x.split("_")[1]; if(borderOffset[bd_r + "_" + bd_c]){ @@ -1924,7 +1924,7 @@ function luckysheetDrawMain_back(scrollWidth, scrollHeight, drawWidth, drawHeigh if (Store.flowdata[r] != null && Store.flowdata[r][c] != null && start_r >= -1 && start_c >= -1 ) { let value = Store.flowdata[r][c]; - let firstcolumlen = defaultcollen; + let firstcolumlen = Store.defaultcollen; if (Store.config["columlen"] != null && Store.config["columlen"][c] != null) { firstcolumlen = Store.config["columlen"][c]; } diff --git a/src/global/formula.js b/src/global/formula.js index 4b7309f..4fe5afc 100644 --- a/src/global/formula.js +++ b/src/global/formula.js @@ -2728,10 +2728,10 @@ const luckysheetformula = { let row_index_original = luckysheet_cell_selected_move_index[0], col_index_original = luckysheet_cell_selected_move_index[1]; - let row_s = luckysheet_select_save["row"][0] - row_index_original + row_index, - row_e = luckysheet_select_save["row"][1] - row_index_original + row_index; - let col_s = luckysheet_select_save["column"][0] - col_index_original + col_index, - col_e = luckysheet_select_save["column"][1] - col_index_original + col_index; + let row_s = luckysheet_select_save["row"][0] - row_index_original + rowLocation(y)[2], + row_e = luckysheet_select_save["row"][1] - row_index_original + rowLocation(y)[2]; + let col_s = luckysheet_select_save["column"][0] - col_index_original + colLocation(x)[2], + col_e = luckysheet_select_save["column"][1] - col_index_original + colLocation(x)[2]; if (row_s < 0 || y < 0) { row_s = 0; diff --git a/src/global/validate.js b/src/global/validate.js index e9989ae..92b3c6b 100644 --- a/src/global/validate.js +++ b/src/global/validate.js @@ -1,4 +1,5 @@ import luckysheetConfigsetting from '../controllers/luckysheetConfigsetting'; +import Store from '../store'; const error = { v: "#VALUE!", //错误的参数或运算符 @@ -79,7 +80,7 @@ function isEditMode() { function hasPartMC(cfg, r1, r2, c1, c2) { let hasPartMC = false; - for(let x in config["merge"]){ + for(let x in Store.config["merge"]){ let mc = cfg["merge"][x]; if(r1 < mc.r){