Browse Source

fix(change sheet bug): multiple refresh canvas bug

master
wbfsa 5 years ago
parent
commit
7a625e0dae
  1. 8
      src/controllers/pivotTable.js
  2. 6
      src/controllers/resize.js
  3. 10
      src/controllers/sheetmanage.js
  4. 4
      src/core.js
  5. 33
      src/global/refresh.js

8
src/controllers/pivotTable.js

@ -669,7 +669,7 @@ const pivotTable = {
_this.getCellData(index);
_this.initialPivotManage(true);
},
refreshPivotTable: function () {
refreshPivotTable: function (isRefreshCanvas=true) {
let _this = this;
let redo = {};
@ -730,10 +730,10 @@ const pivotTable = {
Store.clearjfundo = false;
if (addr > 0 || addc > 0) {
jfrefreshgridall(data[0].length, data.length, data, null, Store.luckysheet_select_save, "datachangeAll");
jfrefreshgridall(data[0].length, data.length, data, null, Store.luckysheet_select_save, "datachangeAll", undefined, undefined,isRefreshCanvas);
}
else {
jfrefreshgrid(data, Store.luckysheet_select_save);
jfrefreshgrid(data, Store.luckysheet_select_save, isRefreshCanvas, undefined, undefined, undefined, false);
selectHightlightShow();
}
@ -2345,7 +2345,7 @@ const pivotTable = {
$("#luckysheet-dialog-pivotTable-range").html(getRangetxt(_this.pivotDataSheetIndex, _this.pivot_select_save));
$("#luckysheet-modal-dialog-slider-pivot").show();
luckysheetsizeauto();
luckysheetsizeauto(false);
},
getComposeArray: function (data) {
if (data.length == 0) {

6
src/controllers/resize.js

@ -8,7 +8,7 @@ import sheetmanage from './sheetmanage';
let gridW = 0,
gridH = 0;
export default function luckysheetsizeauto() {
export default function luckysheetsizeauto(isRefreshCanvas=true) {
if (!luckysheetConfigsetting.showinfobar) {
Store.infobarHeight = 0;
$("#luckysheet_info_detail").hide();
@ -104,7 +104,9 @@ export default function luckysheetsizeauto() {
.css({ "height": gridheight - 10 });
luckysheetFreezen.createAssistCanvas();
luckysheetrefreshgrid($("#luckysheet-cell-main").scrollLeft(), $("#luckysheet-cell-main").scrollTop());
if(isRefreshCanvas){
luckysheetrefreshgrid($("#luckysheet-cell-main").scrollLeft(), $("#luckysheet-cell-main").scrollTop());
}
const _locale = locale();
const locale_toolbar = _locale.toolbar;
let ismore = false,

10
src/controllers/sheetmanage.js

@ -674,7 +674,7 @@ const sheetmanage = {
formula.execFunctionGroup();
_this.restoreSheetAll(Store.currentSheetIndex);
luckysheetrefreshgrid(0, 0);
// luckysheetrefreshgrid(0, 0);
$("#luckysheet_info_detail_save").html(locale_info.detailSave);
if (!!file.isPivotTable) {
@ -787,7 +787,7 @@ const sheetmanage = {
createFilterOptions(file["filter_select"], file["filter"]);
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length,false);
},
restoreselect: function() {
let index = this.getSheetIndex(Store.currentSheetIndex);
@ -1210,7 +1210,7 @@ const sheetmanage = {
file.config.rowhidden = {};
Store.config = file.config;
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length,false);
}
return;
@ -1265,7 +1265,7 @@ const sheetmanage = {
file.config["rowhidden"] = rowhidden;
Store.config = file.config;
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length,false);
},
restorePivot: function(sheetIndex) {
let index = this.getSheetIndex(sheetIndex);
@ -1277,7 +1277,7 @@ const sheetmanage = {
pivotTable.getCellData(sheetIndex);
pivotTable.initialPivotManage(true);
pivotTable.refreshPivotTable();
pivotTable.refreshPivotTable(false);
},
restoreSheetAll: function(sheetIndex) {
let _this= this;

4
src/core.js

@ -106,7 +106,7 @@ luckysheet.create = function (setting) {
let data = [];
if (loadurl == "") {
sheetmanage.initialjfFile(menu, title);
luckysheetsizeauto();
// luckysheetsizeauto();
initialWorkBook();
}
else {
@ -115,7 +115,7 @@ luckysheet.create = function (setting) {
Store.luckysheetfile = data;
sheetmanage.initialjfFile(menu, title);
luckysheetsizeauto();
// luckysheetsizeauto();
initialWorkBook();
//需要更新数据给后台时,建立WebSocket连接

33
src/global/refresh.js

@ -18,7 +18,7 @@ import { createFilterOptions } from '../controllers/filter';
import { getSheetIndex } from '../methods/get';
import Store from '../store';
function jfrefreshgrid(data, range, cfg, cdformat, RowlChange, isRunExecFunction=true) {
function jfrefreshgrid(data, range, cfg, cdformat, RowlChange, isRunExecFunction=true, isRefreshCanvas=true) {
if(data == null){
data = Store.flowdata;
}
@ -122,14 +122,17 @@ function jfrefreshgrid(data, range, cfg, cdformat, RowlChange, isRunExecFunction
}
//刷新表格
setTimeout(function () {
luckysheetrefreshgrid();
}, 1);
if(isRefreshCanvas){
setTimeout(function () {
luckysheetrefreshgrid();
}, 1);
}
window.luckysheet_getcelldata_cache = null;
}
function jfrefreshgridall(colwidth, rowheight, data, cfg, range, ctrlType, ctrlValue, cdformat, changeSize) {
function jfrefreshgridall(colwidth, rowheight, data, cfg, range, ctrlType, ctrlValue, cdformat, isRefreshCanvas=true) {
let redo = {};
if (ctrlType == "cellRowChange") {
@ -246,9 +249,12 @@ function jfrefreshgridall(colwidth, rowheight, data, cfg, range, ctrlType, ctrlV
//行高、列宽 刷新
jfrefreshgrid_rhcw(rowheight, colwidth);
setTimeout(function () {
luckysheetrefreshgrid();
}, 1);
if(isRefreshCanvas){
setTimeout(function () {
luckysheetrefreshgrid();
}, 1);
}
sheetmanage.storeSheetParamALL();
@ -633,7 +639,7 @@ function jfrefreshgrid_pastcut(source, target, RowlChange){
}
//行高、列宽改变 刷新表格
function jfrefreshgrid_rhcw(rowheight, colwidth){
function jfrefreshgrid_rhcw(rowheight, colwidth, isRefreshCanvas=true){
rhchInit(rowheight, colwidth);
sheetmanage.storeSheetParam();
@ -786,9 +792,12 @@ function jfrefreshgrid_rhcw(rowheight, colwidth){
sheetmanage.showSheet();
setTimeout(function () {
luckysheetrefreshgrid();
}, 1);
if(isRefreshCanvas){
setTimeout(function () {
luckysheetrefreshgrid();
}, 1);
}
}
//Refresh the canvas display data according to scrollHeight and scrollWidth

Loading…
Cancel
Save