import defaultSetting from './config.js'; import { common_extend } from './utils/util'; import Store from './store'; import { locales } from './locale/locale'; import server from './controllers/server'; import luckysheetConfigsetting from './controllers/luckysheetConfigsetting'; import sheetmanage from './controllers/sheetmanage'; import luckysheetsizeauto from './controllers/resize'; import luckysheetHandler from './controllers/handler'; import {initialFilterHandler} from './controllers/filter'; import {initialMatrixOperation} from './controllers/matrixOperation'; import {initialSheetBar} from './controllers/sheetBar'; import {formulaBarInitial} from './controllers/formulaBar'; import {rowColumnOperationInitial} from './controllers/rowColumnOperation'; import {keyboardInitial} from './controllers/keyboard'; import {orderByInitial} from './controllers/orderBy'; import {initPlugins} from './controllers/expendPlugins'; import { getluckysheetfile, getluckysheet_select_save, getconfig, } from './methods/get'; import { setluckysheet_select_save } from './methods/set'; import { luckysheetrefreshgrid, jfrefreshgrid } from './global/refresh'; import functionlist from './function/functionlist'; import { luckysheetlodingHTML } from './controllers/constant'; import { getcellvalue, getdatabyselection } from './global/getdata'; import { setcellvalue } from './global/setdata'; import { selectHightlightShow } from './controllers/select'; import {zoomInitial} from './controllers/zoom'; import {printInitial} from './controllers/print'; import method from './global/method'; import * as api from './global/api'; import flatpickr from 'flatpickr' import Mandarin from 'flatpickr/dist/l10n/zh.js' import { initListener } from './controllers/listener'; import { hideloading, showloading ,showSuccess} from './assets/config/loading.js'; import { luckysheetextendData } from './global/extend.js'; import {checkUser, getDocumentDetail, docNameInit, documentLogInit} from './controllers/extFunction.js' let luckysheet = {}; // mount api // luckysheet.api = api; // Object.assign(luckysheet, api); luckysheet = common_extend(api,luckysheet); //创建luckysheet表格 luckysheet.create = function (setting) { method.destroy() // Store original parameters for api: toJson Store.toJsonOptions = {} for(let c in setting){ if(c !== 'data'){ Store.toJsonOptions[c] = setting[c]; } } let extendsetting = common_extend(defaultSetting, setting); // 登录校验,返回用户账号 var userId = checkUser(extendsetting); if(!userId){ return; } // 获取文档详情 getDocumentDetail(extendsetting,userId); let loadurl = extendsetting.loadUrl, menu = extendsetting.menu, title = extendsetting.title; let container = extendsetting.container; Store.container = container; Store.luckysheetfile = extendsetting.data; Store.defaultcolumnNum = extendsetting.column; Store.defaultrowNum = extendsetting.row; Store.defaultFontSize = extendsetting.defaultFontSize; Store.fullscreenmode = extendsetting.fullscreenmode; Store.lang = extendsetting.lang; //language Store.allowEdit = extendsetting.allowEdit; Store.limitSheetNameLength = extendsetting.limitSheetNameLength; Store.defaultSheetNameMaxLength = extendsetting.defaultSheetNameMaxLength; Store.fontList = extendsetting.fontList; 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; // 文档配置相关 server.docConfigApi = extendsetting.docConfigApi; server.showShareFlag = extendsetting.showShareFlag; luckysheetConfigsetting.autoFormatw = extendsetting.autoFormatw; luckysheetConfigsetting.accuracy = extendsetting.accuracy; luckysheetConfigsetting.total = extendsetting.data[0].total; luckysheetConfigsetting.loading = extendsetting.loading; luckysheetConfigsetting.allowCopy = extendsetting.allowCopy; luckysheetConfigsetting.showtoolbar = extendsetting.showtoolbar; luckysheetConfigsetting.showtoolbarConfig = extendsetting.showtoolbarConfig; luckysheetConfigsetting.showinfobar = extendsetting.showinfobar; luckysheetConfigsetting.showsheetbar = extendsetting.showsheetbar; luckysheetConfigsetting.showsheetbarConfig = extendsetting.showsheetbarConfig; luckysheetConfigsetting.showstatisticBar = extendsetting.showstatisticBar; luckysheetConfigsetting.showstatisticBarConfig = extendsetting.showstatisticBarConfig; luckysheetConfigsetting.sheetFormulaBar = extendsetting.sheetFormulaBar; luckysheetConfigsetting.cellRightClickConfig = extendsetting.cellRightClickConfig; luckysheetConfigsetting.sheetRightClickConfig = extendsetting.sheetRightClickConfig; 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.enableAddBackTop = extendsetting.enableAddBackTop; luckysheetConfigsetting.addRowCount = extendsetting.addRowCount; luckysheetConfigsetting.enablePage = extendsetting.enablePage; luckysheetConfigsetting.pageInfo = extendsetting.pageInfo; luckysheetConfigsetting.editMode = extendsetting.editMode; luckysheetConfigsetting.beforeCreateDom = extendsetting.beforeCreateDom; luckysheetConfigsetting.workbookCreateBefore = extendsetting.workbookCreateBefore; luckysheetConfigsetting.workbookCreateAfter = extendsetting.workbookCreateAfter; luckysheetConfigsetting.remoteFunction = extendsetting.remoteFunction; luckysheetConfigsetting.fireMousedown = extendsetting.fireMousedown; luckysheetConfigsetting.forceCalculation = extendsetting.forceCalculation; luckysheetConfigsetting.plugins = extendsetting.plugins; luckysheetConfigsetting.rowHeaderWidth = extendsetting.rowHeaderWidth; luckysheetConfigsetting.columnHeaderHeight = extendsetting.columnHeaderHeight; luckysheetConfigsetting.defaultColWidth = extendsetting.defaultColWidth; luckysheetConfigsetting.defaultRowHeight = extendsetting.defaultRowHeight; luckysheetConfigsetting.title = extendsetting.title; luckysheetConfigsetting.container = extendsetting.container; luckysheetConfigsetting.hook = extendsetting.hook; luckysheetConfigsetting.pager = extendsetting.pager; luckysheetConfigsetting.initShowsheetbarConfig = false; luckysheetConfigsetting.imageUpdateMethodConfig = extendsetting.imageUpdateMethodConfig; if (Store.lang === 'zh') flatpickr.localize(Mandarin.zh); // Store the currently used plugins for monitoring asynchronous loading Store.asyncLoad.push(...luckysheetConfigsetting.plugins); // Register plugins initPlugins(extendsetting.plugins , extendsetting.data); // Store formula information, including internationalization functionlist(); let devicePixelRatio = extendsetting.devicePixelRatio; if(devicePixelRatio == null){ devicePixelRatio = 1; } Store.devicePixelRatio = Math.ceil(devicePixelRatio); //loading const loadingObj=luckysheetlodingHTML("#" + container) Store.loadingObj=loadingObj if (loadurl == "") { sheetmanage.initialjfFile(menu, title); // luckysheetsizeauto(); initialWorkBook(); } else { $.post(loadurl, {"gridKey" : server.gridKey}, function (d) { let data = new Function("return " + d)(); if(!data || data.length == 0){ // 增加提示 TODO } Store.luckysheetfile = data; sheetmanage.initialjfFile(menu, title); // luckysheetsizeauto(); initialWorkBook(); //需要更新数据给后台时,建立WebSocket连接 if(server.allowUpdate){ server.openWebSocket(); } }); } } function initialWorkBook(){ luckysheetHandler();//Overall dom initialization initialFilterHandler();//Filter initialization initialMatrixOperation();//Right click matrix initialization initialSheetBar();//bottom sheet bar initialization formulaBarInitial();//top formula bar initialization rowColumnOperationInitial();//row and coloumn operate initialization keyboardInitial();//Keyboard operate initialization orderByInitial();//menu bar orderby function initialization zoomInitial();//zoom method initialization printInitial();//print initialization initListener(); // 初始化文档名称函数 docNameInit(); documentLogInit() } //获取所有表格数据 luckysheet.getluckysheetfile = getluckysheetfile; //获取当前表格 选区 luckysheet.getluckysheet_select_save = getluckysheet_select_save; //设置当前表格 选区 luckysheet.setluckysheet_select_save = setluckysheet_select_save; //获取当前表格 config配置 luckysheet.getconfig = getconfig; //二维数组数据 转化成 {r, c, v}格式 一维数组 (传入参数为二维数据data) luckysheet.getGridData = sheetmanage.getGridData; //生成表格所需二维数组 (传入参数为表格数据对象file) luckysheet.buildGridData = sheetmanage.buildGridData; // Refresh the canvas display data according to scrollHeight and scrollWidth luckysheet.luckysheetrefreshgrid = luckysheetrefreshgrid; // Refresh canvas luckysheet.jfrefreshgrid = jfrefreshgrid; // Get the value of the cell luckysheet.getcellvalue = getcellvalue; // Set cell value luckysheet.setcellvalue = setcellvalue; // Get selection range value luckysheet.getdatabyselection = getdatabyselection; luckysheet.sheetmanage = sheetmanage; // Data of the current table luckysheet.flowdata = function () { return Store.flowdata; } // Set selection highlight luckysheet.selectHightlightShow = selectHightlightShow; // Reset parameters after destroying the table luckysheet.destroy = method.destroy; luckysheet.showLoadingProgress = showloading; luckysheet.hideLoadingProgress = hideloading; luckysheet.luckysheetextendData = luckysheetextendData; luckysheet.locales = locales; export { luckysheet }