产品一张表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.

141 lines
5.3 KiB

5 years ago
5 years ago
import defaultSetting from './config.js';
import { common_extend } from './utils/util';
import Store from './store';
import server from './controllers/server';
import luckysheetConfigsetting from './controllers/luckysheetConfigsetting';
import sheetmanage from './controllers/sheetmanage';
5 years ago
import luckysheetsizeauto from './controllers/resize';
5 years ago
import luckysheetHandler from './controllers/handler';
import {initPlugins} from './controllers/expendPlugins';
import {
getluckysheetfile,
getluckysheet_select_save,
getconfig,
} from './methods/get';
import {
setluckysheetfile,
setluckysheet_select_save,
setconfig,
} from './methods/set';
import { luckysheetrefreshgrid } from './global/refresh';
5 years ago
let luckysheet = {};
5 years ago
//创建luckysheet表格
5 years ago
luckysheet.create = function (setting) {
5 years ago
let extendsetting = common_extend(defaultSetting, setting);
let loadurl = extendsetting.loadUrl,
5 years ago
menu = extendsetting.menu,
title = extendsetting.title;
5 years ago
let container = extendsetting.container;
Store.container = container;
Store.luckysheetfile = extendsetting.data;
Store.defaultcolumnNum = extendsetting.column;
Store.defaultrowNum = extendsetting.row;
Store.fullscreenmode = extendsetting.fullscreenmode;
Store.lang = extendsetting.lang; //language
Store.allowEdit = extendsetting.allowEdit;
5 years ago
server.gridKey = extendsetting.gridKey;
server.loadUrl = extendsetting.loadUrl;
server.updateUrl = extendsetting.updateUrl;
server.updateImageUrl = extendsetting.updateImageUrl;
server.title = extendsetting.title;
server.loadSheetUrl = extendsetting.loadSheetUrl;
server.allowUpdate = extendsetting.allowUpdate;
5 years ago
luckysheetConfigsetting.autoFormatw = extendsetting.autoFormatw;
luckysheetConfigsetting.accuracy = extendsetting.accuracy;
5 years ago
luckysheetConfigsetting.total = extendsetting.data[0].total;
5 years ago
luckysheetConfigsetting.allowCopy = extendsetting.allowCopy;
luckysheetConfigsetting.showtoolbar = extendsetting.showtoolbar;
luckysheetConfigsetting.showinfobar = extendsetting.showinfobar;
luckysheetConfigsetting.showsheetbar = extendsetting.showsheetbar;
luckysheetConfigsetting.showstatisticBar = extendsetting.showstatisticBar;
luckysheetConfigsetting.pointEdit = extendsetting.pointEdit;
luckysheetConfigsetting.pointEditUpdate = extendsetting.pointEditUpdate;
luckysheetConfigsetting.pointEditZoom = extendsetting.pointEditZoom;
luckysheetConfigsetting.userInfo = extendsetting.userInfo;
luckysheetConfigsetting.userMenuItem = extendsetting.userMenuItem;
luckysheetConfigsetting.myFolderUrl = extendsetting.myFolderUrl;
luckysheetConfigsetting.functionButton = extendsetting.functionButton;
luckysheetConfigsetting.showConfigWindowResize = extendsetting.showConfigWindowResize;
luckysheetConfigsetting.enableAddRow = extendsetting.enableAddRow;
luckysheetConfigsetting.enableAddCol = extendsetting.enableAddCol;
luckysheetConfigsetting.enablePage = extendsetting.enablePage;
luckysheetConfigsetting.pageInfo = extendsetting.pageInfo;
luckysheetConfigsetting.editMode = extendsetting.editMode;
luckysheetConfigsetting.chartConfigChange = extendsetting.chartConfigChange;
luckysheetConfigsetting.beforeCreateDom = extendsetting.beforeCreateDom;
luckysheetConfigsetting.fireMousedown = extendsetting.fireMousedown;
luckysheetConfigsetting.plugins = extendsetting.plugins;
// Register plugins
initPlugins(extendsetting.plugins);
5 years ago
5 years ago
let devicePixelRatio = extendsetting.devicePixelRatio;
if(devicePixelRatio == null){
5 years ago
devicePixelRatio = 1;
}
5 years ago
Store.devicePixelRatio = Math.ceil(devicePixelRatio);
5 years ago
//loading
$("#" + container).append('<div id="luckysheetloadingdata" style="width:100%;text-align:center;position:absolute;top:0px;height:100%;font-size: 16px;z-index:1000000000;background:#fff;"><div style="position:relative;top:45%;width:100%;"> <div class="luckysheetLoaderGif"> </div> <span>渲染中...</span></div></div>');
5 years ago
let data = [];
5 years ago
if (loadurl == "") {
5 years ago
sheetmanage.initialjfFile(menu, title);
luckysheetsizeauto();
luckysheetHandler();
5 years ago
}
else {
5 years ago
$.post(loadurl, {"gridKey" : server.gridKey}, function (d) {
let data = eval("(" + d + ")");
Store.luckysheetfile = data;
5 years ago
5 years ago
sheetmanage.initialjfFile(menu, title);
luckysheetsizeauto();
luckysheetHandler();
5 years ago
//需要更新数据给后台时,建立WebSocket连接
5 years ago
if(server.allowUpdate){
server.openWebSocket();
5 years ago
}
});
}
}
5 years ago
//获取所有表格数据
luckysheet.getluckysheetfile = getluckysheetfile;
//获取当前表格 选区
luckysheet.getluckysheet_select_save = getluckysheet_select_save;
//设置当前表格 选区
luckysheet.setluckysheet_select_save = setluckysheet_select_save;
//获取当前表格 config配置
luckysheet.getconfig = getconfig;
//设置当前表格 config配置
luckysheet.setconfig = setconfig;
//二维数组数据 转化成 {r, c, v}格式 一维数组 (传入参数为二维数据data)
luckysheet.getGridData = sheetmanage.getGridData;
//生成表格所需二维数组 (传入参数为表格数据对象file)
luckysheet.buildGridData = sheetmanage.buildGridData;
luckysheet.luckysheetrefreshgrid = luckysheetrefreshgrid;
5 years ago
export {
luckysheet
}