Browse Source

bug修改

master
wpxp123456 5 years ago
parent
commit
91b935f3e3
  1. 2
      src/controllers/alternateformat.js
  2. 17
      src/controllers/conditionformat.js
  3. 1
      src/controllers/filter.js
  4. 63
      src/controllers/handler.js
  5. 6
      src/controllers/ifFormulaGenerator.js
  6. 4
      src/controllers/insertFormula.js
  7. 8
      src/controllers/locationCell.js
  8. 33
      src/controllers/menuButton.js
  9. 72
      src/controllers/pivotTable.js
  10. 9
      src/controllers/postil.js
  11. 18
      src/controllers/searchReplace.js
  12. 2
      src/controllers/select.js
  13. 16
      src/controllers/selection.js
  14. 26
      src/controllers/sheetmanage.js
  15. 2
      src/global/createdom.js
  16. 4
      src/global/draw.js
  17. 8
      src/global/formula.js
  18. 3
      src/global/validate.js

2
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;
}

17
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);
}

1
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';
//筛选配置状态

63
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 += '<div class="item luckysheet-mousedown-cancel"><label class="luckysheet-mousedown-cancel" style="background-color: ' + b + '" title="' + b + '"></label><input class="luckysheet-mousedown-cancel" type="checkbox" checked="checked"/></div>';
}
@ -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 += '<div class="item luckysheet-mousedown-cancel"><label class="luckysheet-mousedown-cancel" style="background-color: ' + f + '" title="' + f + '"></label><input class="luckysheet-mousedown-cancel" type="checkbox" checked="checked"/></div>';
}
@ -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;

6
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 = [];

4
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++){

8
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){

33
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 = '<span dir="auto" class="luckysheet-formula-text-color">=</span><span dir="auto" class="luckysheet-formula-text-color">'+ formula.toUpperCase() +'</span><span dir="auto" class="luckysheet-formula-text-color">(</span><span class="luckysheet-formula-functionrange-cell" rangeindex="0" dir="auto" style="color:'+ luckyColor[0] +';">'+ _this.getRangetxt(Store.currentSheetIndex, {"row":rowh, "column":columnh }, Store.currentSheetIndex) +'</span><span dir="auto" class="luckysheet-formula-text-color">)</span>';
let formulaTxt = '<span dir="auto" class="luckysheet-formula-text-color">=</span><span dir="auto" class="luckysheet-formula-text-color">'+ formula.toUpperCase() +'</span><span dir="auto" class="luckysheet-formula-text-color">(</span><span class="luckysheet-formula-functionrange-cell" rangeindex="0" dir="auto" style="color:'+ luckyColor[0] +';">'+ getRangetxt(Store.currentSheetIndex, {"row":rowh, "column":columnh }, Store.currentSheetIndex) +'</span><span dir="auto" class="luckysheet-formula-text-color">)</span>';
$("#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);

72
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('<i class="fa fa-check luckysheet-mousedown-cancel"></i>');
let type = _this.pivot_data_type[index.toString()], itemHTML;
let type = _this.pivot_data_type[index.toString()],
itemHTML;
if (type == "num") {
itemHTML = '<div title="' + name + '" class="luckysheet-modal-dialog-slider-config-item" data-nameindex="0" data-sumtype="SUM" data-index="' + index + '" data-name="' + name + '"><div class="luckysheet-modal-dialog-slider-config-item-txt" data-nameindex="0" data-sumtype="SUM" data-index="' + index + '" data-name="' + name + '">求和:' + name + '</div><div class="luckysheet-modal-dialog-slider-config-item-icon"><i class="fa fa-sort-desc" aria-hidden="true"></i></div></div>';
$("#luckysheet-modal-dialog-config-value").append(itemHTML);
}
else {
itemHTML = '<div title="' + name + '" class="luckysheet-modal-dialog-slider-config-item" data-index="' + index + '" data-name="' + name + '"><div class="luckysheet-modal-dialog-slider-config-item-txt" data-index="' + index + '" data-name="' + name + '">' + name + '</div><div class="luckysheet-modal-dialog-slider-config-item-icon"><i class="fa fa-sort-desc" aria-hidden="true"></i></div></div>';
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"];

9
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;
//共享编辑模式

18
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 += '<div class="boxItem" data-row="' + searchIndexArr[i].r + '" data-col="' + searchIndexArr[i].c + '" data-sheetIndex="' + Store.currentSheetIndex + '">' +
'<span>' + Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].name + '</span>' +
'<span>' + chatatABC(searchIndexArr[i].c) + (searchIndexArr[i].r + 1) + '</span>' +
'<span>' + valueShowEs + '</span>' +
'<span>' + value_ShowEs + '</span>' +
'</div>';
}
else{
searchAllHtml += '<div class="boxItem" data-row="' + searchIndexArr[i].r + '" data-col="' + searchIndexArr[i].c + '" data-sheetIndex="' + Store.currentSheetIndex + '">' +
'<span>' + Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].name + '</span>' +
'<span>' + chatatABC(searchIndexArr[i].c) + (searchIndexArr[i].r + 1) + '</span>' +
'<span title="' + valueShowEs + '">' + valueShowEs + '</span>' +
'<span title="' + value_ShowEs + '">' + value_ShowEs + '</span>' +
'</div>';
}
}
@ -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++){

2
src/controllers/select.js

@ -139,7 +139,7 @@ function selectHightlightShow() {
}
}
else{
$("#luckysheet-cell-selected-boxs").append('<div class="luckysheet-cell-selected" style="left: '+ luckysheet_select_save[i]["left_move"] +'px; width: '+ luckysheet_select_save[i]["width_move"] +'px; top: '+ luckysheet_select_save[i]["top_move"] +'px; height: '+ luckysheet_select_save[i]["height_move"] +'px; border: 1px solid rgba(1, 136, 251, 0.15); display: block;"></div>');
$("#luckysheet-cell-selected-boxs").append('<div class="luckysheet-cell-selected" style="left: '+ Store.luckysheet_select_save[i]["left_move"] +'px; width: '+ Store.luckysheet_select_save[i]["width_move"] +'px; top: '+ Store.luckysheet_select_save[i]["top_move"] +'px; height: '+ Store.luckysheet_select_save[i]["height_move"] +'px; border: 1px solid rgba(1, 136, 251, 0.15); display: block;"></div>');
}
if(i == Store.luckysheet_select_save.length - 1){

16
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;
}

26
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('<div ' + display + ' id="luckysheet-datavisual-selection-set-' + sheetIndex + '" class="luckysheet-datavisual-selection-set"></div>');
}
$("#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 = '<div class="luckysheet-sheets-item-color" style=" position: absolute; width: 100%; height: 3px; bottom: 0px; left: 0px; background-color: ' + data.color + ';"></div>';
}
$("#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) {

2
src/global/createdom.js

@ -59,7 +59,7 @@ export default function luckysheetcreatedom(colwidth, rowheight, data, menu, tit
rhchInit(rowheight, colwidth);
let addControll = '<button id="luckysheet-bottom-add-row" class="btn btn-default">添加</button><input id="luckysheet-bottom-add-row-input" type="text" class="luckysheet-datavisual-Store.config-input luckysheet-mousedown-cancel" placeholder="100"><span style="font-size: 14px;">行</span><span style="font-size: 14px;color: #9c9c9c;">(在底部添加)</span>';
let addControll = '<button id="luckysheet-bottom-add-row" class="btn btn-default">添加</button><input id="luckysheet-bottom-add-row-input" type="text" class="luckysheet-datavisual-config-input luckysheet-mousedown-cancel" placeholder="100"><span style="font-size: 14px;">行</span><span style="font-size: 14px;color: #9c9c9c;">(在底部添加)</span>';
let backControll = ' <button id="luckysheet-bottom-bottom-top" class="btn btn-default" style="">回到顶部</button>';
// let pageControll = ' <span id="luckysheet-bottom-page-info" style="font-size: 14px;color: #f34141;">共'+ luckysheetConfigsetting.pageInfo.totalPage +'页,当前已显示'+ (luckysheetConfigsetting.pageInfo.currentPage) +'页,每页'+ luckysheetConfigsetting.pageInfo.pageSize +'条</span> <button id="luckysheet-bottom-page-next" class="btn btn-danger" style="">下一页</button>';
let pageControll = ' <span id="luckysheet-bottom-page-info" style="font-size: 14px;color: #f34141;">共'+ luckysheetConfigsetting.total +'条,'+ luckysheetConfigsetting.pageInfo.totalPage +'页,当前已显示'+ (luckysheetConfigsetting.pageInfo.currentPage) +'页</span> <button id="luckysheet-bottom-page-next" class="btn btn-danger" style="">下一页</button>';

4
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];
}

8
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;

3
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){

Loading…
Cancel
Save