产品一张表luckysheet前端代码库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

189 lines
6.5 KiB

import server from '../controllers/server';
import { luckysheetlodingHTML, luckyColor } from '../controllers/constant';
import sheetmanage from '../controllers/sheetmanage';
import luckysheetFreezen from '../controllers/freezen';
import { getSheetIndex } from '../methods/get';
import { luckysheetextendData } from './extend';
import editor from './editor';
import luckysheetcreatesheet from './createsheet';
import Store from '../store';
const method = {
//翻页
addDataAjax: function(param, index, url, func){
let _this = this;
if(index == null){
index = Store.currentSheetIndex;
}
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);
}
let dataset = d.data;
// rptapp
let newData = dataset.celldata;
luckysheetextendData(dataset["row"], newData);
setTimeout(function(){
$("#luckysheetloadingdata").fadeOut().remove();
}, 500);
if(func && typeof(func)=="function"){
func(dataset);
}
}
})
},
//重载
reload: function(param, index, url, func){
let _this = this;
if(index == null){
index = Store.currentSheetIndex;
}
if(url == null){
url = server.loadSheetUrl;
}
$("#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 = eval("(" + d + ")");
file.celldata = dataset[index.toString()];
let data = sheetmanage.buildGridData(file);
setTimeout(function(){
$("#luckysheetloadingdata").fadeOut().remove();
}, 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 = [];
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").remove();
//document event release
$(document).off(".luckysheetEvent");
//参数重置
Store.jfredo = [];
Store.jfundo = [];
luckysheetFreezen.initialHorizontal = true;
luckysheetFreezen.initialVertical = true;
},
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();
}
}
export default method;