Bladeren bron

Merge branch 'master' of http://120.55.44.4:10080/xujunjie/Luckysheet

xujunjie 1 jaar geleden
bovenliggende
commit
c651b097a2
4 gewijzigde bestanden met toevoegingen van 734 en 678 verwijderingen
  1. 7 2
      src/controllers/server.js
  2. 3 0
      src/core.js
  3. 556 506
      src/global/method.js
  4. 168 170
      src/store/index.js

+ 7 - 2
src/controllers/server.js

@@ -90,6 +90,10 @@ const server = {
     }
   },
   saveParam: function(type, index, value, params) {
+    if (Store.pauseUpdate) {
+      return;
+    }
+
     let _this = this;
 
     if (!_this.allowUpdate) {
@@ -436,7 +440,7 @@ const server = {
         }
       };
 
-      //通信发生错误时触发
+      // 通信发生错误时触发
       _this.websocket.onerror = function() {
         _this.wxErrorCount++;
 
@@ -448,7 +452,7 @@ const server = {
         }
       };
 
-      //连接关闭时触发
+      // 连接关闭时触发
       _this.websocket.onclose = function(e) {
         console.info(locale().websocket.close);
         if (e.code === 1000) {
@@ -465,6 +469,7 @@ const server = {
     }
   },
   wsUpdateMsg: function(item) {
+    console.log(item);
     let type = item.t,
       index = item.i,
       value = item.v;

+ 3 - 0
src/core.js

@@ -85,6 +85,7 @@ luckysheet.create = function(setting) {
   Store.limitSheetNameLength = extendsetting.limitSheetNameLength;
   Store.defaultSheetNameMaxLength = extendsetting.defaultSheetNameMaxLength;
   Store.fontList = extendsetting.fontList;
+  Store.pauseUpdate = extendsetting.pauseUpdate;
   server.gridKey = extendsetting.gridKey;
   server.loadUrl = extendsetting.loadUrl;
   server.updateUrl = extendsetting.updateUrl;
@@ -269,6 +270,8 @@ luckysheet.selectHightlightShow = selectHightlightShow;
 // Reset parameters after destroying the table
 luckysheet.destroy = method.destroy;
 
+luckysheet.setPauseUpdate = method.setPauseUpdate;
+
 luckysheet.showLoadingProgress = showloading;
 luckysheet.hideLoadingProgress = hideloading;
 luckysheet.luckysheetextendData = luckysheetextendData;

+ 556 - 506
src/global/method.js

@@ -1,534 +1,584 @@
-import server from '../controllers/server';
-import { luckysheetlodingHTML, luckyColor } from '../controllers/constant';
-import sheetmanage from '../controllers/sheetmanage';
-import luckysheetformula from './formula';
-import imageCtrl from '../controllers/imageCtrl';
-import dataVerificationCtrl from '../controllers/dataVerificationCtrl';
-import pivotTable from '../controllers/pivotTable';
-import luckysheetFreezen from '../controllers/freezen';
-import { getSheetIndex } from '../methods/get';
-import { luckysheetextendData } from './extend';
-import luckysheetConfigsetting from '../controllers/luckysheetConfigsetting';
-import editor from './editor';
-import luckysheetcreatesheet from './createsheet';
-import Store from '../store';
+import server from "../controllers/server";
+import { luckysheetlodingHTML, luckyColor } from "../controllers/constant";
+import sheetmanage from "../controllers/sheetmanage";
+import luckysheetformula from "./formula";
+import imageCtrl from "../controllers/imageCtrl";
+import dataVerificationCtrl from "../controllers/dataVerificationCtrl";
+import pivotTable from "../controllers/pivotTable";
+import luckysheetFreezen from "../controllers/freezen";
+import { getSheetIndex } from "../methods/get";
+import { luckysheetextendData } from "./extend";
+import luckysheetConfigsetting from "../controllers/luckysheetConfigsetting";
+import editor from "./editor";
+import luckysheetcreatesheet from "./createsheet";
+import Store from "../store";
 
 const defaultConfig = {
-    defaultStore:{
-        container: null, 
-        luckysheetfile: null, 
-        defaultcolumnNum: 60, 
-        defaultrowNum: 84, 
-        fullscreenmode: true,
-        devicePixelRatio: 1,
-    
-        currentSheetIndex: 0,
-        calculateSheetIndex: 0,
-        flowdata: [],
-        config: {},
-    
-        visibledatarow: [],
-        visibledatacolumn: [],
-        ch_width: 0,
-        rh_height: 0,
-    
-        cellmainWidth: 0,
-        cellmainHeight: 0,
-        toolbarHeight: 0,
-        infobarHeight: 0,
-        calculatebarHeight: 0,
-        rowHeaderWidth: 46,
-        columnHeaderHeight: 20,
-        cellMainSrollBarSize: 12,
-        sheetBarHeight: 31,
-        statisticBarHeight: 23,
-        luckysheetTableContentHW: [0, 0], 
-    
-        defaultcollen: 73,
-        defaultrowlen: 19,
-    
-        jfcountfuncTimeout: null, 
-        jfautoscrollTimeout: null,
-    
-        luckysheet_select_status: false,
-        luckysheet_select_save: [{ "row": [0, 0], "column": [0, 0] }],
-        luckysheet_selection_range: [],
-    
-        luckysheet_copy_save: {}, //复制粘贴
-        luckysheet_paste_iscut: false,
-    
-        filterchage: true, //筛选
-        luckysheet_filter_save: { "row": [], "column": [] },
-    
-        luckysheet_sheet_move_status: false,
-        luckysheet_sheet_move_data: [],
-        luckysheet_scroll_status: false,
-    
-        luckysheetisrefreshdetail: true,
-        luckysheetisrefreshtheme: true,
-        luckysheetcurrentisPivotTable: false,
-    
-        luckysheet_rows_selected_status: false,  //行列标题相关参
-        luckysheet_cols_selected_status: false,  
-        luckysheet_rows_change_size: false,
-        luckysheet_rows_change_size_start: [],
-        luckysheet_cols_change_size: false,
-        luckysheet_cols_change_size_start: [],
-        luckysheet_cols_dbclick_timeout: null,
-        luckysheet_cols_dbclick_times: 0,
-    
-        luckysheetCellUpdate: [],
-        
-        luckysheet_shiftpositon: null,
-    
-        iscopyself: true,
-    
-        orderbyindex: 0, //排序下标
-    
-        luckysheet_model_move_state: false, //模态框拖动
-        luckysheet_model_xy: [0, 0],
-        luckysheet_model_move_obj: null,
-    
-        luckysheet_cell_selected_move: false,  //选区拖动替换
-        luckysheet_cell_selected_move_index: [],
-    
-        luckysheet_cell_selected_extend: false,  //选区下拉
-        luckysheet_cell_selected_extend_index: [],
-        luckysheet_cell_selected_extend_time: null,
-    
-        clearjfundo: true,
-        jfredo: [],
-        jfundo: [],
-        lang: 'en', //language
-        createChart: '',
-        highlightChart: '',
-        zIndex: 15,
-        chartparam: {
-            luckysheetCurrentChart: null, //current chart_id
-            luckysheetCurrentChartActive: false,
-            luckysheetCurrentChartMove: null, // Debounce state
-            luckysheetCurrentChartMoveTimeout: null,//拖动图表框的节流定时器
-            luckysheetCurrentChartMoveObj: null, //chart DOM object
-            luckysheetCurrentChartMoveXy: null, //上一次操作结束的图表信息,x,y: chart框位置,scrollLeft1,scrollTop1: 滚动条位置
-            luckysheetCurrentChartMoveWinH: null, //左右滚动条滑动距离
-            luckysheetCurrentChartMoveWinW: null, //上下滚动条滑动距离
-            luckysheetCurrentChartResize: null,
-            luckysheetCurrentChartResizeObj: null,
-            luckysheetCurrentChartResizeXy: null,
-            luckysheetCurrentChartResizeWinH: null,
-            luckysheetCurrentChartResizeWinW: null,
-            luckysheetInsertChartTosheetChange: true, // 正在执行撤销
-            luckysheetCurrentChartZIndexRank : 100,
-            luckysheet_chart_redo_click:false, //撤销重做时标识
-            luckysheetCurrentChartMaxState: false, //图表全屏状态
-            jfrefreshchartall: '',
-            changeChartCellData: '',
-            renderChart: '',
-            getChartJson: ''
-        },
-        functionList:null, //function list explanation
-        luckysheet_function:null,
-        chart_selection: {},
-        currentChart: '',
-        scrollRefreshSwitch:true,
-    
-        measureTextCache:{},
-        measureTextCellInfoCache:{},
-        measureTextCacheTimeOut:null,
-        cellOverflowMapCache:{},
-    
-        zoomRatio:1,
-    
-        visibledatacolumn_unique:null,
-        visibledatarow_unique:null,
-    
-        showGridLines:true,
-    
-        toobarObject: {}, //toolbar constant
-        inlineStringEditCache:null,
-        inlineStringEditRange:null,
-    
-        fontList:[],
-
-        currentSheetView:"viewNormal",
-    
-    },    
-    defaultFormula:{
-        searchFunctionCell: null,
-        functionlistPosition: {},
-        rangechangeindex: null,
-        rangestart: false,
-        rangetosheet: null,
-        rangeSetValueTo: null,
-        func_selectedrange: {}, //函数选区范围
-        rangedrag_column_start: false,
-        rangedrag_row_start: false,
-        rangeResizeObj: null,
-        rangeResize: null,
-        rangeResizeIndex: null,
-        rangeResizexy: null,
-        rangeResizeWinH: null,
-        rangeResizeWinW: null,
-        rangeResizeTo: null,
-        rangeMovexy: null,
-        rangeMove: false,
-        rangeMoveObj: null,
-        rangeMoveIndex: null,
-        rangeMoveRangedata: null,
-        functionHTMLIndex: 0,
-        functionRangeIndex: null,
-        execvertex: {},
-        execFunctionGroupData: null,
-        execFunctionExist: null,
-        formulaContainSheetList:{},
-        cellTextToIndexList:{},
-        isFunctionRangeSave: false,
-        execvertex: {},
-        execFunctionGroupData: null,
-        execFunctionExist: null,
-        formulaContainSheetList:{},
-        formulaContainCellList:{},
-        cellTextToIndexList:{},
-        execFunctionGlobalData:{},
-        groupValuesRefreshData: [],
-        functionResizeData: {},
-        functionResizeStatus: false,
-        functionResizeTimeout: null,
-        data_parm_index: 0  //选择公式后参数索引标记
+  defaultStore: {
+    container: null,
+    luckysheetfile: null,
+    defaultcolumnNum: 60,
+    defaultrowNum: 84,
+    fullscreenmode: true,
+    devicePixelRatio: 1,
+
+    currentSheetIndex: 0,
+    calculateSheetIndex: 0,
+    flowdata: [],
+    config: {},
+
+    visibledatarow: [],
+    visibledatacolumn: [],
+    ch_width: 0,
+    rh_height: 0,
+
+    cellmainWidth: 0,
+    cellmainHeight: 0,
+    toolbarHeight: 0,
+    infobarHeight: 0,
+    calculatebarHeight: 0,
+    rowHeaderWidth: 46,
+    columnHeaderHeight: 20,
+    cellMainSrollBarSize: 12,
+    sheetBarHeight: 31,
+    statisticBarHeight: 23,
+    luckysheetTableContentHW: [0, 0],
+
+    defaultcollen: 73,
+    defaultrowlen: 19,
+
+    jfcountfuncTimeout: null,
+    jfautoscrollTimeout: null,
+
+    luckysheet_select_status: false,
+    luckysheet_select_save: [{ row: [0, 0], column: [0, 0] }],
+    luckysheet_selection_range: [],
+
+    luckysheet_copy_save: {}, //复制粘贴
+    luckysheet_paste_iscut: false,
+
+    filterchage: true, //筛选
+    luckysheet_filter_save: { row: [], column: [] },
+
+    luckysheet_sheet_move_status: false,
+    luckysheet_sheet_move_data: [],
+    luckysheet_scroll_status: false,
+
+    luckysheetisrefreshdetail: true,
+    luckysheetisrefreshtheme: true,
+    luckysheetcurrentisPivotTable: false,
+
+    luckysheet_rows_selected_status: false, //行列标题相关参
+    luckysheet_cols_selected_status: false,
+    luckysheet_rows_change_size: false,
+    luckysheet_rows_change_size_start: [],
+    luckysheet_cols_change_size: false,
+    luckysheet_cols_change_size_start: [],
+    luckysheet_cols_dbclick_timeout: null,
+    luckysheet_cols_dbclick_times: 0,
+
+    luckysheetCellUpdate: [],
+
+    luckysheet_shiftpositon: null,
+
+    iscopyself: true,
+
+    orderbyindex: 0, //排序下标
+
+    luckysheet_model_move_state: false, //模态框拖动
+    luckysheet_model_xy: [0, 0],
+    luckysheet_model_move_obj: null,
+
+    luckysheet_cell_selected_move: false, //选区拖动替换
+    luckysheet_cell_selected_move_index: [],
+
+    luckysheet_cell_selected_extend: false, //选区下拉
+    luckysheet_cell_selected_extend_index: [],
+    luckysheet_cell_selected_extend_time: null,
+
+    clearjfundo: true,
+    jfredo: [],
+    jfundo: [],
+    lang: "en", //language
+    createChart: "",
+    highlightChart: "",
+    zIndex: 15,
+    chartparam: {
+      luckysheetCurrentChart: null, //current chart_id
+      luckysheetCurrentChartActive: false,
+      luckysheetCurrentChartMove: null, // Debounce state
+      luckysheetCurrentChartMoveTimeout: null, //拖动图表框的节流定时器
+      luckysheetCurrentChartMoveObj: null, //chart DOM object
+      luckysheetCurrentChartMoveXy: null, //上一次操作结束的图表信息,x,y: chart框位置,scrollLeft1,scrollTop1: 滚动条位置
+      luckysheetCurrentChartMoveWinH: null, //左右滚动条滑动距离
+      luckysheetCurrentChartMoveWinW: null, //上下滚动条滑动距离
+      luckysheetCurrentChartResize: null,
+      luckysheetCurrentChartResizeObj: null,
+      luckysheetCurrentChartResizeXy: null,
+      luckysheetCurrentChartResizeWinH: null,
+      luckysheetCurrentChartResizeWinW: null,
+      luckysheetInsertChartTosheetChange: true, // 正在执行撤销
+      luckysheetCurrentChartZIndexRank: 100,
+      luckysheet_chart_redo_click: false, //撤销重做时标识
+      luckysheetCurrentChartMaxState: false, //图表全屏状态
+      jfrefreshchartall: "",
+      changeChartCellData: "",
+      renderChart: "",
+      getChartJson: "",
     },
-    defaultSheet:{
-        sheetMaxIndex: 0,
-        nulldata: null,
-        mergeCalculationSheet:{},
-        checkLoadSheetIndexToDataIndex:{},
-        CacheNotLoadControll:[],
+    functionList: null, //function list explanation
+    luckysheet_function: null,
+    chart_selection: {},
+    currentChart: "",
+    scrollRefreshSwitch: true,
+
+    measureTextCache: {},
+    measureTextCellInfoCache: {},
+    measureTextCacheTimeOut: null,
+    cellOverflowMapCache: {},
+
+    zoomRatio: 1,
+
+    visibledatacolumn_unique: null,
+    visibledatarow_unique: null,
+
+    showGridLines: true,
+
+    toobarObject: {}, //toolbar constant
+    inlineStringEditCache: null,
+    inlineStringEditRange: null,
+
+    fontList: [],
+
+    currentSheetView: "viewNormal",
+  },
+  defaultFormula: {
+    searchFunctionCell: null,
+    functionlistPosition: {},
+    rangechangeindex: null,
+    rangestart: false,
+    rangetosheet: null,
+    rangeSetValueTo: null,
+    func_selectedrange: {}, //函数选区范围
+    rangedrag_column_start: false,
+    rangedrag_row_start: false,
+    rangeResizeObj: null,
+    rangeResize: null,
+    rangeResizeIndex: null,
+    rangeResizexy: null,
+    rangeResizeWinH: null,
+    rangeResizeWinW: null,
+    rangeResizeTo: null,
+    rangeMovexy: null,
+    rangeMove: false,
+    rangeMoveObj: null,
+    rangeMoveIndex: null,
+    rangeMoveRangedata: null,
+    functionHTMLIndex: 0,
+    functionRangeIndex: null,
+    execvertex: {},
+    execFunctionGroupData: null,
+    execFunctionExist: null,
+    formulaContainSheetList: {},
+    cellTextToIndexList: {},
+    isFunctionRangeSave: false,
+    execvertex: {},
+    execFunctionGroupData: null,
+    execFunctionExist: null,
+    formulaContainSheetList: {},
+    formulaContainCellList: {},
+    cellTextToIndexList: {},
+    execFunctionGlobalData: {},
+    groupValuesRefreshData: [],
+    functionResizeData: {},
+    functionResizeStatus: false,
+    functionResizeTimeout: null,
+    data_parm_index: 0, //选择公式后参数索引标记
+  },
+  defaultSheet: {
+    sheetMaxIndex: 0,
+    nulldata: null,
+    mergeCalculationSheet: {},
+    checkLoadSheetIndexToDataIndex: {},
+    CacheNotLoadControll: [],
+  },
+  defaultPivotTable: {
+    pivotDatas: null,
+    pivotSheetIndex: 0,
+    pivotDataSheetIndex: 0,
+    celldata: null,
+    origindata: null,
+    pivot_data_type: {},
+    pivot_select_save: null,
+    column: null,
+    row: null,
+    values: null,
+    filter: null,
+    showType: null,
+    rowhidden: null,
+    selected: null,
+    caljs: null,
+    initial: true,
+    filterparm: null,
+    luckysheet_pivotTable_select_state: false,
+    jgridCurrentPivotInput: null,
+    movestate: false,
+    moveitemposition: [],
+    movesave: {},
+    drawPivotTable: true,
+    pivotTableBoundary: [12, 6],
+  },
+  defaultImage: {
+    imgItem: {
+      type: "3", //1移动并调整单元格大小 2移动并且不调整单元格的大小 3不要移动单元格并调整其大小
+      src: "", //图片url
+      originWidth: null, //图片原始宽度
+      originHeight: null, //图片原始高度
+      default: {
+        width: null, //图片 宽度
+        height: null, //图片 高度
+        left: null, //图片离表格左边的 位置
+        top: null, //图片离表格顶部的 位置
+      },
+      crop: {
+        width: null, //图片裁剪后 宽度
+        height: null, //图片裁剪后 高度
+        offsetLeft: 0, //图片裁剪后离未裁剪时 左边的位移
+        offsetTop: 0, //图片裁剪后离未裁剪时 顶部的位移
+      },
+      isFixedPos: false, //固定位置
+      fixedLeft: null, //固定位置 左位移
+      fixedTop: null, //固定位置 右位移
+      border: {
+        width: 0, //边框宽度
+        radius: 0, //边框半径
+        style: "solid", //边框类型
+        color: "#000", //边框颜色
+      },
     },
-    defaultPivotTable:{
-        pivotDatas: null,
-        pivotSheetIndex: 0,
-        pivotDataSheetIndex: 0,
-        celldata: null,
-        origindata: null,
-        pivot_data_type: {},
-        pivot_select_save: null,
-        column: null,
-        row: null,
-        values: null,
-        filter: null,
-        showType: null,
-        rowhidden: null,
-        selected: null,
-        caljs: null,
-        initial: true,
-        filterparm: null,
-        luckysheet_pivotTable_select_state: false,
-        jgridCurrentPivotInput: null,
-        movestate: false,
-        moveitemposition: [],
-        movesave: {},
-        drawPivotTable: true,
-        pivotTableBoundary: [12, 6],
+    images: null,
+    currentImgId: null,
+    currentWinW: null,
+    currentWinH: null,
+    resize: null,
+    resizeXY: null,
+    move: false,
+    moveXY: null,
+    cropChange: null,
+    cropChangeXY: null,
+    cropChangeObj: null,
+    copyImgItemObj: null,
+  },
+  defaultDataVerification: {
+    defaultItem: {
+      type: "dropdown", //类型
+      type2: null, //
+      value1: "", //
+      value2: "", //
+      checked: false,
+      remote: false, //自动远程获取选项
+      prohibitInput: false, //输入数据无效时禁止输入
+      hintShow: false, //选中单元格时显示提示语
+      hintText: "", //
     },
-    defaultImage:{
-        imgItem: {
-            type: '3',  //1移动并调整单元格大小 2移动并且不调整单元格的大小 3不要移动单元格并调整其大小
-            src: '',  //图片url
-            originWidth: null,  //图片原始宽度
-            originHeight: null,  //图片原始高度
-            default: {
-                width: null,  //图片 宽度
-                height: null,  //图片 高度
-                left: null,  //图片离表格左边的 位置
-                top: null,  //图片离表格顶部的 位置
-            },
-            crop: {
-                width: null,  //图片裁剪后 宽度
-                height: null,  //图片裁剪后 高度
-                offsetLeft: 0,  //图片裁剪后离未裁剪时 左边的位移
-                offsetTop: 0,  //图片裁剪后离未裁剪时 顶部的位移
-            },
-            isFixedPos: false,  //固定位置
-            fixedLeft: null,  //固定位置 左位移
-            fixedTop: null,  //固定位置 右位移
-            border: {
-                width: 0,  //边框宽度
-                radius: 0,  //边框半径
-                style: 'solid',  //边框类型
-                color: '#000',  //边框颜色
-            }
-        },
-        images: null,
-        currentImgId: null,
-        currentWinW: null,
-        currentWinH: null,
-        resize: null,  
-        resizeXY: null,
-        move: false,
-        moveXY: null,
-        cropChange: null,  
-        cropChangeXY: null,
-        cropChangeObj: null,
-        copyImgItemObj: null,
-    },
-    defaultDataVerification:{
-        defaultItem: {
-            type: 'dropdown',  //类型
-            type2: null,  //
-            value1: '',  //
-            value2: '',  //
-            checked: false,
-            remote: false,  //自动远程获取选项
-            prohibitInput: false,  //输入数据无效时禁止输入
-            hintShow: false,  //选中单元格时显示提示语
-            hintText: '',  //
-        },
-        curItem: null,
-        dataVerification: null,
-        selectRange: [],
-        selectStatus: false,
-    }
-}
+    curItem: null,
+    dataVerification: null,
+    selectRange: [],
+    selectStatus: false,
+  },
+};
 
 const method = {
-    //翻页
-    addDataAjax: function(param, index, url, func){
-        let _this = this;
-
-        if(index == null){
-            index = Store.currentSheetIndex;
-        }
-
-        if(url == null){
-            url = server.loadSheetUrl;
-        }
+  //翻页
+  addDataAjax: function(param, index, url, func) {
+    let _this = this;
 
-        $("#luckysheet-grid-window-1").append(luckysheetlodingHTML());
-        param.currentPage++;
-        
-        let dataType = 'application/json;charset=UTF-8';
-        let token = sessionStorage.getItem('x-auth-token');
-
-        $.ajax({
-            method: 'POST',
-            url: url,
-            headers: { "x-auth-token": token },
-            data: JSON.stringify(param),
-            contentType: dataType,
-            success: function(d) {
-                //d可能为json字符串
-                if(typeof d == "string"){
-                    d = JSON.parse(d);
-                }
-
-                let dataset = d.data;
-                
-                let newData = dataset.celldata;
-                luckysheetextendData(dataset["row"], newData);
-
-                setTimeout(function(){
-                    Store.loadingObj.close()
-                }, 500);
-
-                if(func && typeof(func)=="function"){ 
-                    func(dataset);
-                }
-            }
-        })
-    },
-    //重载
-    reload: function(param, index, url, func){
-        let _this = this;
+    if (index == null) {
+      index = Store.currentSheetIndex;
+    }
 
-        if(index == null){
-            index = Store.currentSheetIndex;
-        }
+    if (url == null) {
+      url = server.loadSheetUrl;
+    }
 
-        if(url == null){
-            url = server.loadSheetUrl;
+    $("#luckysheet-grid-window-1").append(luckysheetlodingHTML());
+    param.currentPage++;
+
+    let dataType = "application/json;charset=UTF-8";
+    let token = sessionStorage.getItem("x-auth-token");
+
+    $.ajax({
+      method: "POST",
+      url: url,
+      headers: { "x-auth-token": token },
+      data: JSON.stringify(param),
+      contentType: dataType,
+      success: function(d) {
+        //d可能为json字符串
+        if (typeof d == "string") {
+          d = JSON.parse(d);
         }
 
-        $("#luckysheet-grid-window-1").append(luckysheetlodingHTML());
-
-        let arg = {"gridKey" : server.gridKey, "index": index};
-        param = $.extend(true, param, arg);
-        let file = Store.luckysheetfile[getSheetIndex(index)];
+        let dataset = d.data;
 
-        $.post(url, param, function (d) {
-            let dataset = new Function("return " + d)();
-            file.celldata = dataset[index.toString()];
-            let data = sheetmanage.buildGridData(file);
+        let newData = dataset.celldata;
+        luckysheetextendData(dataset["row"], newData);
 
-            setTimeout(function(){
-                Store.loadingObj.close()
-            }, 500);
+        setTimeout(function() {
+          Store.loadingObj.close();
+        }, 500);
 
-            file["data"] = data;
-            Store.flowdata = data;
-            editor.webWorkerFlowDataCache(data);//worker存数据
-
-            luckysheetcreatesheet(data[0].length, data.length, data, null, false);
-            file["load"] = "1";
-
-            Store.luckysheet_select_save.length = 0;
-            Store.luckysheet_selection_range = [];
-
-            server.saveParam("shs", null, Store.currentSheetIndex);
-
-            sheetmanage.changeSheet(index);
-
-            if(func && typeof(func)=="function"){ 
-                func();
-            }
-        });
-    },
-    clearSheetByIndex: function(i){
-        let index = getSheetIndex(i);
-        let sheetfile = Store.luckysheetfile[index];
-
-        if(!sheetfile.isPivotTable){
-            sheetfile.data = [];
-            sheetfile.row = Store.defaultrowNum;
-            sheetfile.column = Store.defaultcolumnNum;
-
-            sheetfile.chart = [];
-            sheetfile.config = null;
-            sheetfile.filter = null;
-            sheetfile.filter_select = null;
-            sheetfile.celldata = [];
-            sheetfile.pivotTable = {};
-            sheetfile.calcChain = [];
-            sheetfile.status = 0;
-            sheetfile.load = 0;
-
-            Store.flowdata = [];
-            editor.webWorkerFlowDataCache(Store.flowdata);//worker存数据
-
-            $("#"+ Store.container +" .luckysheet-data-visualization-chart").remove();
-            $("#"+ Store.container +" .luckysheet-datavisual-selection-set").remove();
-
-            $("#luckysheet-row-count-show, #luckysheet-formula-functionrange-select, #luckysheet-row-count-show, #luckysheet-column-count-show, #luckysheet-change-size-line, #luckysheet-cell-selected-focus, #luckysheet-selection-copy, #luckysheet-cell-selected-extend, #luckysheet-cell-selected-move, #luckysheet-cell-selected").hide();
-
-            delete sheetfile.load;
-        }
-        else {
-            delete Store.luckysheetfile[index];
-        }
-    },
-    clear: function(index){
-        let _this = this;
-
-        if(index == "all"){
-            for(let i = 0; i < Store.luckysheetfile.length; i++){
-                let sheetfile = Store.luckysheetfile[i];
-                _this.clearSheetByIndex(sheetfile.index);
-            }
-            
-        }
-        else{
-            if(index == null){
-                index = Store.currentSheetIndex;
-            }
-            _this.clearSheetByIndex(index);
-        }
-
-        sheetmanage.changeSheet(Store.luckysheetfile[0].index);
-    },
-    destroy:function(){
-        $("#" + Store.container).empty();
-        $("body > .luckysheet-cols-menu").remove();
-
-        $("#luckysheet-modal-dialog-mask, #luckysheetTextSizeTest, #luckysheet-icon-morebtn-div").remove();
-        $("#luckysheet-input-box").parent().remove();
-        $("#luckysheet-formula-help-c").remove();
-        $(".chartSetting, .luckysheet-modal-dialog-slider").remove();
-
-        //document event release
-        $(document).off(".luckysheetEvent");
-        $(document).off(".luckysheetProtection");
-        
-        //参数重置
-        luckysheetFreezen.initialHorizontal = true;
-        luckysheetFreezen.initialVertical = true;
-
-        let defaultStore = $.extend(true, {}, defaultConfig.defaultStore);
-        for(let key in defaultStore){
-            if(key in Store){
-                Store[key] = defaultStore[key];
-            }
+        if (func && typeof func == "function") {
+          func(dataset);
         }
+      },
+    });
+  },
+  //重载
+  reload: function(param, index, url, func) {
+    let _this = this;
+
+    if (index == null) {
+      index = Store.currentSheetIndex;
+    }
 
-        let defaultFormula = $.extend(true, {}, defaultConfig.defaultFormula);
-        for(let key in defaultFormula){
-            if(key in luckysheetformula){
-                luckysheetformula[key] = defaultFormula[key];
-            }
-        }
+    if (url == null) {
+      url = server.loadSheetUrl;
+    }
 
-        let defaultSheet = $.extend(true, {}, defaultConfig.defaultSheet);
-        for(let key in defaultSheet){
-            if(key in sheetmanage){
-                sheetmanage[key] = defaultSheet[key];
-            }
-        }
+    $("#luckysheet-grid-window-1").append(luckysheetlodingHTML());
+
+    let arg = { gridKey: server.gridKey, index: index };
+    param = $.extend(true, param, arg);
+    let file = Store.luckysheetfile[getSheetIndex(index)];
+
+    $.post(url, param, function(d) {
+      let dataset = new Function("return " + d)();
+      file.celldata = dataset[index.toString()];
+      let data = sheetmanage.buildGridData(file);
+
+      setTimeout(function() {
+        Store.loadingObj.close();
+      }, 500);
+
+      file["data"] = data;
+      Store.flowdata = data;
+      editor.webWorkerFlowDataCache(data); //worker存数据
+
+      luckysheetcreatesheet(data[0].length, data.length, data, null, false);
+      file["load"] = "1";
+
+      Store.luckysheet_select_save.length = 0;
+      Store.luckysheet_selection_range = [];
+
+      server.saveParam("shs", null, Store.currentSheetIndex);
+
+      sheetmanage.changeSheet(index);
+
+      if (func && typeof func == "function") {
+        func();
+      }
+    });
+  },
+  clearSheetByIndex: function(i) {
+    let index = getSheetIndex(i);
+    let sheetfile = Store.luckysheetfile[index];
+
+    if (!sheetfile.isPivotTable) {
+      sheetfile.data = [];
+      sheetfile.row = Store.defaultrowNum;
+      sheetfile.column = Store.defaultcolumnNum;
+
+      sheetfile.chart = [];
+      sheetfile.config = null;
+      sheetfile.filter = null;
+      sheetfile.filter_select = null;
+      sheetfile.celldata = [];
+      sheetfile.pivotTable = {};
+      sheetfile.calcChain = [];
+      sheetfile.status = 0;
+      sheetfile.load = 0;
+
+      Store.flowdata = [];
+      editor.webWorkerFlowDataCache(Store.flowdata); //worker存数据
+
+      $(
+        "#" + Store.container + " .luckysheet-data-visualization-chart"
+      ).remove();
+      $(
+        "#" + Store.container + " .luckysheet-datavisual-selection-set"
+      ).remove();
+
+      $(
+        "#luckysheet-row-count-show, #luckysheet-formula-functionrange-select, #luckysheet-row-count-show, #luckysheet-column-count-show, #luckysheet-change-size-line, #luckysheet-cell-selected-focus, #luckysheet-selection-copy, #luckysheet-cell-selected-extend, #luckysheet-cell-selected-move, #luckysheet-cell-selected"
+      ).hide();
+
+      delete sheetfile.load;
+    } else {
+      delete Store.luckysheetfile[index];
+    }
+  },
+  clear: function(index) {
+    let _this = this;
+
+    if (index == "all") {
+      for (let i = 0; i < Store.luckysheetfile.length; i++) {
+        let sheetfile = Store.luckysheetfile[i];
+        _this.clearSheetByIndex(sheetfile.index);
+      }
+    } else {
+      if (index == null) {
+        index = Store.currentSheetIndex;
+      }
+      _this.clearSheetByIndex(index);
+    }
 
-        let defaultPivotTable = $.extend(true, {}, defaultConfig.defaultPivotTable);
-        for(let key in defaultPivotTable){
-            if(key in pivotTable){
-                pivotTable[key] = defaultPivotTable[key];
-            }
-        }
+    sheetmanage.changeSheet(Store.luckysheetfile[0].index);
+  },
+  destroy: function() {
+    $("#" + Store.container).empty();
+    $("body > .luckysheet-cols-menu").remove();
+
+    $(
+      "#luckysheet-modal-dialog-mask, #luckysheetTextSizeTest, #luckysheet-icon-morebtn-div"
+    ).remove();
+    $("#luckysheet-input-box")
+      .parent()
+      .remove();
+    $("#luckysheet-formula-help-c").remove();
+    $(".chartSetting, .luckysheet-modal-dialog-slider").remove();
+
+    //document event release
+    $(document).off(".luckysheetEvent");
+    $(document).off(".luckysheetProtection");
+
+    //参数重置
+    luckysheetFreezen.initialHorizontal = true;
+    luckysheetFreezen.initialVertical = true;
+
+    let defaultStore = $.extend(true, {}, defaultConfig.defaultStore);
+    for (let key in defaultStore) {
+      if (key in Store) {
+        Store[key] = defaultStore[key];
+      }
+    }
 
-        let defaultImage = $.extend(true, {}, defaultConfig.defaultImage);
-        for(let key in defaultImage){
-            if(key in imageCtrl){
-                imageCtrl[key] = defaultImage[key];
-            }
-        }
+    let defaultFormula = $.extend(true, {}, defaultConfig.defaultFormula);
+    for (let key in defaultFormula) {
+      if (key in luckysheetformula) {
+        luckysheetformula[key] = defaultFormula[key];
+      }
+    }
 
-        let defaultDataVerification = $.extend(true, {}, defaultConfig.defaultDataVerification);
-        for(let key in defaultDataVerification){
-            if(key in dataVerificationCtrl){
-                dataVerificationCtrl[key] = defaultDataVerification[key];
-            }
-        }
+    let defaultSheet = $.extend(true, {}, defaultConfig.defaultSheet);
+    for (let key in defaultSheet) {
+      if (key in sheetmanage) {
+        sheetmanage[key] = defaultSheet[key];
+      }
+    }
 
-        // remove proxy
-        Store.asyncLoad = ['core'];
-    },
-    editorChart:function(c){
-        let chart_selection_color = luckyColor[0];
-        let chart_id = "luckysheetEditMode-datav-chart";
-        let chart_selection_id = chart_id + "_selection";
-        c.chart_id = chart_id;
-        let chartTheme = c.chartTheme;
-        chartTheme = chartTheme == null ? "default0000" : chartTheme;
+    let defaultPivotTable = $.extend(true, {}, defaultConfig.defaultPivotTable);
+    for (let key in defaultPivotTable) {
+      if (key in pivotTable) {
+        pivotTable[key] = defaultPivotTable[key];
+      }
+    }
 
-        luckysheet.insertChartTosheet(c.sheetIndex, c.dataSheetIndex, c.option, c.chartType, c.selfOption, c.defaultOption, c.row, c.column, chart_selection_color, chart_id, chart_selection_id, c.chartStyle, c.rangeConfigCheck, c.rangeRowCheck, c.rangeColCheck, c.chartMarkConfig, c.chartTitleConfig, c.winWidth, c.winHeight, c.scrollLeft, c.scrollTop, chartTheme, c.myWidth, c.myHeight, c.myLeft!=null?parseFloat(c.myLeft):null, c.myTop!=null?parseFloat(c.myTop):null, c.myindexrank, true);
+    let defaultImage = $.extend(true, {}, defaultConfig.defaultImage);
+    for (let key in defaultImage) {
+      if (key in imageCtrl) {
+        imageCtrl[key] = defaultImage[key];
+      }
+    }
 
-        $("#"+chart_id).find(".luckysheet-modal-controll-update").click();
-    },
-    /**
-     * 获取单元格的值
-     * @param {name} 函数名称
-     * @param {arguments} 函数参数
-     */
-    createHookFunction:function(){
-        let hookName = arguments[0];
-        if(luckysheetConfigsetting.hook && luckysheetConfigsetting.hook[hookName]!=null && (typeof luckysheetConfigsetting.hook[hookName] == "function")){
-            var args = Array.prototype.slice.apply(arguments);
-            args.shift();
-            let ret = luckysheetConfigsetting.hook[hookName].apply(this, args);
-            if(ret===false){
-                return false;
-            }
-            else{
-                return true;
-            }
-        }
+    let defaultDataVerification = $.extend(
+      true,
+      {},
+      defaultConfig.defaultDataVerification
+    );
+    for (let key in defaultDataVerification) {
+      if (key in dataVerificationCtrl) {
+        dataVerificationCtrl[key] = defaultDataVerification[key];
+      }
+    }
 
+    // remove proxy
+    Store.asyncLoad = ["core"];
+  },
+  editorChart: function(c) {
+    let chart_selection_color = luckyColor[0];
+    let chart_id = "luckysheetEditMode-datav-chart";
+    let chart_selection_id = chart_id + "_selection";
+    c.chart_id = chart_id;
+    let chartTheme = c.chartTheme;
+    chartTheme = chartTheme == null ? "default0000" : chartTheme;
+
+    luckysheet.insertChartTosheet(
+      c.sheetIndex,
+      c.dataSheetIndex,
+      c.option,
+      c.chartType,
+      c.selfOption,
+      c.defaultOption,
+      c.row,
+      c.column,
+      chart_selection_color,
+      chart_id,
+      chart_selection_id,
+      c.chartStyle,
+      c.rangeConfigCheck,
+      c.rangeRowCheck,
+      c.rangeColCheck,
+      c.chartMarkConfig,
+      c.chartTitleConfig,
+      c.winWidth,
+      c.winHeight,
+      c.scrollLeft,
+      c.scrollTop,
+      chartTheme,
+      c.myWidth,
+      c.myHeight,
+      c.myLeft != null ? parseFloat(c.myLeft) : null,
+      c.myTop != null ? parseFloat(c.myTop) : null,
+      c.myindexrank,
+      true
+    );
+
+    $("#" + chart_id)
+      .find(".luckysheet-modal-controll-update")
+      .click();
+  },
+  /**
+   * 获取单元格的值
+   * @param {name} 函数名称
+   * @param {arguments} 函数参数
+   */
+  createHookFunction: function() {
+    let hookName = arguments[0];
+    if (
+      luckysheetConfigsetting.hook &&
+      luckysheetConfigsetting.hook[hookName] != null &&
+      typeof luckysheetConfigsetting.hook[hookName] == "function"
+    ) {
+      var args = Array.prototype.slice.apply(arguments);
+      args.shift();
+      let ret = luckysheetConfigsetting.hook[hookName].apply(this, args);
+      if (ret === false) {
+        return false;
+      } else {
         return true;
+      }
     }
 
-}
-
-export default method;
+    return true;
+  },
+  /**
+   * 设定是否暂停更新
+   * @param {boolean} value
+   */
+  setPauseUpdate: function(value) {
+    Store.pauseUpdate = value;
+  },
+};
+
+export default method;

+ 168 - 170
src/store/index.js

@@ -1,171 +1,169 @@
 const Store = {
-    container: null, 
-    loadingObj:{},
-    luckysheetfile: null, 
-    defaultcolumnNum: 60, 
-    defaultrowNum: 84, 
-    fullscreenmode: true,
-    devicePixelRatio: 1,
-
-    currentSheetIndex: 0,
-    calculateSheetIndex: 0,
-	flowdata: [],
-    config: {},
-
-    visibledatarow: [],
-    visibledatacolumn: [],
-    ch_width: 0,
-    rh_height: 0,
-
-    cellmainWidth: 0,
-    cellmainHeight: 0,
-    toolbarHeight: 0,
-    infobarHeight: 0,
-    calculatebarHeight: 0,
-    rowHeaderWidth: 46,
-    columnHeaderHeight: 20,
-    cellMainSrollBarSize: 12,
-    sheetBarHeight: 31,
-    statisticBarHeight: 23,
-    luckysheetTableContentHW: [0, 0], 
-
-    defaultcollen: 73,
-    defaultrowlen: 19,
-
-    jfcountfuncTimeout: null, 
-    jfautoscrollTimeout: null,
-
-    luckysheet_select_status: false,
-    luckysheet_select_save: [{ "row": [0, 0], "column": [0, 0] }],
-    luckysheet_selection_range: [],
-
-    luckysheet_copy_save: {}, //复制粘贴
-    luckysheet_paste_iscut: false,
-
-    filterchage: true, //筛选
-    luckysheet_filter_save: { "row": [], "column": [] },
-
-    luckysheet_sheet_move_status: false,
-    luckysheet_sheet_move_data: [],
-    luckysheet_scroll_status: false,
-
-    luckysheetisrefreshdetail: true,
-    luckysheetisrefreshtheme: true,
-    luckysheetcurrentisPivotTable: false,
-
-    luckysheet_rows_selected_status: false,  //行列标题相关参
-    luckysheet_cols_selected_status: false,  
-    luckysheet_rows_change_size: false,
-    luckysheet_rows_change_size_start: [],
-    luckysheet_cols_change_size: false,
-    luckysheet_cols_change_size_start: [],
-    luckysheet_cols_dbclick_timeout: null,
-    luckysheet_cols_dbclick_times: 0,
-
-    luckysheetCellUpdate: [],
-    
-    luckysheet_shiftpositon: null,
-
-    iscopyself: true,
-
-    orderbyindex: 0, //排序下标
-
-    luckysheet_model_move_state: false, //模态框拖动
-    luckysheet_model_xy: [0, 0],
-    luckysheet_model_move_obj: null,
-
-    luckysheet_cell_selected_move: false,  //选区拖动替换
-    luckysheet_cell_selected_move_index: [],
-
-    luckysheet_cell_selected_extend: false,  //选区下拉
-    luckysheet_cell_selected_extend_index: [],
-    luckysheet_cell_selected_extend_time: null,
-
-    clearjfundo: true,
-    jfundo: [],
-    jfredo: [],
-    lang: 'en', //language
-    createChart: '',
-    highlightChart: '',
-    zIndex: 15,
-    chartparam: {
-        luckysheetCurrentChart: null, //current chart_id
-        luckysheetCurrentChartActive: false,
-        luckysheetCurrentChartMove: null, // Debounce state
-        luckysheetCurrentChartMoveTimeout: null,//拖动图表框的节流定时器
-        luckysheetCurrentChartMoveObj: null, //chart DOM object
-        luckysheetCurrentChartMoveXy: null, //上一次操作结束的图表信息,x,y: chart框位置,scrollLeft1,scrollTop1: 滚动条位置
-        luckysheetCurrentChartMoveWinH: null, //左右滚动条滑动距离
-        luckysheetCurrentChartMoveWinW: null, //上下滚动条滑动距离
-        luckysheetCurrentChartResize: null,
-        luckysheetCurrentChartResizeObj: null,
-        luckysheetCurrentChartResizeXy: null,
-        luckysheetCurrentChartResizeWinH: null,
-        luckysheetCurrentChartResizeWinW: null,
-        luckysheetInsertChartTosheetChange: true, // 正在执行撤销
-        luckysheetCurrentChartZIndexRank : 100,
-        luckysheet_chart_redo_click:false, //撤销重做时标识
-        luckysheetCurrentChartMaxState: false, //图表全屏状态
-        jfrefreshchartall: '',
-        changeChartCellData: '',
-        renderChart: '',
-        getChartJson: ''
-    },
-    functionList:null, //function list explanation
-    luckysheet_function:null,
-    chart_selection: {},
-    currentChart: '',
-    scrollRefreshSwitch:true,
-
-    measureTextCache:{},
-    measureTextCellInfoCache:{},
-    measureTextCacheTimeOut:null,
-    cellOverflowMapCache:{},
-
-    zoomRatio:1,
-
-    visibledatacolumn_unique:null,
-    visibledatarow_unique:null,
-
-    showGridLines:true,
-
-    toobarObject: {}, //toolbar constant
-    inlineStringEditCache:null,
-    inlineStringEditRange:null,
-
-    fontList:[],
-    defaultFontSize: 10,
-
-    currentSheetView:"viewNormal",
-
-    // cooperative editing
-    cooperativeEdit:{
-        usernameTimeout:{
-
-        },
-        changeCollaborationSize:[], //改变行高或者列宽时,协同提示框需要跟随改变所需数据
-        allDataColumnlen:[],//列宽发生过改变的列
-        merge_range:{},//合并时单元格信息
-        checkoutData:[],//切换表格页时所需数据
-    },
-
-    // Resources that currently need to be loaded asynchronously, especially plugins. 'Core' marks the core rendering process.
-    asyncLoad:['core'],
-    // 默认单元格
-    defaultCell: {
-        bg: null,
-        bl: 0,
-        ct: {fa: "General", t: "n"},
-        fc: "rgb(51, 51, 51)",
-        ff: 0,
-        fs: 11,
-        ht: 1,
-        it: 0,
-        vt: 1,
-        m: '',
-        v: ''
-    }
-
-}
-
-export default Store;
+  container: null,
+  loadingObj: {},
+  luckysheetfile: null,
+  defaultcolumnNum: 60,
+  defaultrowNum: 84,
+  fullscreenmode: true,
+  devicePixelRatio: 1,
+
+  currentSheetIndex: 0,
+  calculateSheetIndex: 0,
+  flowdata: [],
+  config: {},
+
+  visibledatarow: [],
+  visibledatacolumn: [],
+  ch_width: 0,
+  rh_height: 0,
+
+  cellmainWidth: 0,
+  cellmainHeight: 0,
+  toolbarHeight: 0,
+  infobarHeight: 0,
+  calculatebarHeight: 0,
+  rowHeaderWidth: 46,
+  columnHeaderHeight: 20,
+  cellMainSrollBarSize: 12,
+  sheetBarHeight: 31,
+  statisticBarHeight: 23,
+  luckysheetTableContentHW: [0, 0],
+
+  defaultcollen: 73,
+  defaultrowlen: 19,
+
+  jfcountfuncTimeout: null,
+  jfautoscrollTimeout: null,
+
+  luckysheet_select_status: false,
+  luckysheet_select_save: [{ row: [0, 0], column: [0, 0] }],
+  luckysheet_selection_range: [],
+
+  luckysheet_copy_save: {}, //复制粘贴
+  luckysheet_paste_iscut: false,
+
+  filterchage: true, //筛选
+  luckysheet_filter_save: { row: [], column: [] },
+
+  luckysheet_sheet_move_status: false,
+  luckysheet_sheet_move_data: [],
+  luckysheet_scroll_status: false,
+
+  luckysheetisrefreshdetail: true,
+  luckysheetisrefreshtheme: true,
+  luckysheetcurrentisPivotTable: false,
+
+  luckysheet_rows_selected_status: false, //行列标题相关参
+  luckysheet_cols_selected_status: false,
+  luckysheet_rows_change_size: false,
+  luckysheet_rows_change_size_start: [],
+  luckysheet_cols_change_size: false,
+  luckysheet_cols_change_size_start: [],
+  luckysheet_cols_dbclick_timeout: null,
+  luckysheet_cols_dbclick_times: 0,
+
+  luckysheetCellUpdate: [],
+
+  luckysheet_shiftpositon: null,
+
+  iscopyself: true,
+
+  orderbyindex: 0, //排序下标
+
+  luckysheet_model_move_state: false, //模态框拖动
+  luckysheet_model_xy: [0, 0],
+  luckysheet_model_move_obj: null,
+
+  luckysheet_cell_selected_move: false, //选区拖动替换
+  luckysheet_cell_selected_move_index: [],
+
+  luckysheet_cell_selected_extend: false, //选区下拉
+  luckysheet_cell_selected_extend_index: [],
+  luckysheet_cell_selected_extend_time: null,
+
+  clearjfundo: true,
+  jfundo: [],
+  jfredo: [],
+  lang: "en", //language
+  createChart: "",
+  highlightChart: "",
+  zIndex: 15,
+  chartparam: {
+    luckysheetCurrentChart: null, //current chart_id
+    luckysheetCurrentChartActive: false,
+    luckysheetCurrentChartMove: null, // Debounce state
+    luckysheetCurrentChartMoveTimeout: null, //拖动图表框的节流定时器
+    luckysheetCurrentChartMoveObj: null, //chart DOM object
+    luckysheetCurrentChartMoveXy: null, //上一次操作结束的图表信息,x,y: chart框位置,scrollLeft1,scrollTop1: 滚动条位置
+    luckysheetCurrentChartMoveWinH: null, //左右滚动条滑动距离
+    luckysheetCurrentChartMoveWinW: null, //上下滚动条滑动距离
+    luckysheetCurrentChartResize: null,
+    luckysheetCurrentChartResizeObj: null,
+    luckysheetCurrentChartResizeXy: null,
+    luckysheetCurrentChartResizeWinH: null,
+    luckysheetCurrentChartResizeWinW: null,
+    luckysheetInsertChartTosheetChange: true, // 正在执行撤销
+    luckysheetCurrentChartZIndexRank: 100,
+    luckysheet_chart_redo_click: false, //撤销重做时标识
+    luckysheetCurrentChartMaxState: false, //图表全屏状态
+    jfrefreshchartall: "",
+    changeChartCellData: "",
+    renderChart: "",
+    getChartJson: "",
+  },
+  functionList: null, //function list explanation
+  luckysheet_function: null,
+  chart_selection: {},
+  currentChart: "",
+  scrollRefreshSwitch: true,
+
+  measureTextCache: {},
+  measureTextCellInfoCache: {},
+  measureTextCacheTimeOut: null,
+  cellOverflowMapCache: {},
+
+  zoomRatio: 1,
+
+  visibledatacolumn_unique: null,
+  visibledatarow_unique: null,
+
+  showGridLines: true,
+
+  toobarObject: {}, //toolbar constant
+  inlineStringEditCache: null,
+  inlineStringEditRange: null,
+
+  fontList: [],
+  defaultFontSize: 10,
+
+  currentSheetView: "viewNormal",
+
+  // cooperative editing
+  cooperativeEdit: {
+    usernameTimeout: {},
+    changeCollaborationSize: [], //改变行高或者列宽时,协同提示框需要跟随改变所需数据
+    allDataColumnlen: [], //列宽发生过改变的列
+    merge_range: {}, //合并时单元格信息
+    checkoutData: [], //切换表格页时所需数据
+  },
+
+  // Resources that currently need to be loaded asynchronously, especially plugins. 'Core' marks the core rendering process.
+  asyncLoad: ["core"],
+  // 默认单元格
+  defaultCell: {
+    bg: null,
+    bl: 0,
+    ct: { fa: "General", t: "n" },
+    fc: "rgb(51, 51, 51)",
+    ff: 0,
+    fs: 11,
+    ht: 1,
+    it: 0,
+    vt: 1,
+    m: "",
+    v: "",
+  },
+  pauseUpdate: false,
+};
+
+export default Store;