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. 4
      src/controllers/resize.js
  3. 10
      src/controllers/sheetmanage.js
  4. 4
      src/core.js
  5. 15
      src/global/refresh.js

8
src/controllers/pivotTable.js

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

4
src/controllers/resize.js

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

10
src/controllers/sheetmanage.js

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

4
src/core.js

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

15
src/global/refresh.js

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

Loading…
Cancel
Save