123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- 'use strict';
- /**
- *
- *
- * @author Zhong
- * @date 2018/6/28
- * @version
- */
- const pmShare = (function () {
- const spreadDom = $('#shareSpread');
- let spread = null;
- const headers = [
- {name: '工程列表', dataCode: 'name', width: 0.55, vAlign: 'center', hAlign: 'left'},
- {name: '由...分享', dataCode: 'from', width: 0.15, vAlign: 'center', hAlign: 'right'},
- {name: '分享给...', dataCode: 'to', width: 0.15, vAlign: 'center', hAlign: 'left'},
- {name: '操作', dataCode: 'operation', width: 0.15, vAlign: 'center', hAlign: 'left'},
- ];
- const spreadOpts = {
- workBook: {
- tabStripVisible: false,
- allowContextMenu: false,
- allowCopyPasteExcelStyle : false,
- allowExtendPasteRange: false,
- allowUserDragDrop : false,
- allowUserDragFill: false,
- scrollbarMaxAlign : true
- },
- sheet: {
- isProtected: true,
- protectionOptions: {allowResizeRows: true, allowResizeColumns: true},
- clipBoardOptions: GC.Spread.Sheets.ClipboardPasteOptions.values
- }
- };
- //渲染时方法,停止渲染
- //@param {Object}sheet {Function}func @return {void}
- function renderSheetFunc(sheet, func){
- sheet.suspendEvent();
- sheet.suspendPaint();
- if(func){
- func();
- }
- sheet.resumeEvent();
- sheet.resumePaint();
- }
- //设置表选项
- //@param {Object}workBook {Object}opts @return {void}
- function setSpreadOptions (workBook, opts) {
- for(let opt in opts.workBook){
- workBook.options[opt] = opts.workBook[opt];
- }
- for(let opt in opts.sheet){
- workBook.getActiveSheet().options[opt] = opts.sheet[opt];
- }
- }
- //建表头
- //@param {Object}sheet {Array}headers @return {void}
- function buildHeader(sheet, headers) {
- let fuc = function () {
- sheet.setColumnCount(headers.length);
- sheet.setRowHeight(0, 40, GC.Spread.Sheets.SheetArea.colHeader);
- for(let i = 0, len = headers.length; i < len; i++){
- sheet.setValue(0, i, headers[i].name, GC.Spread.Sheets.SheetArea.colHeader);
- sheet.setColumnWidth(i, headers[i].width, GC.Spread.Sheets.SheetArea.colHeader);
- if(headers[i].formatter){
- sheet.setFormatter(-1, i, headers[i].formatter);
- }
- sheet.getRange(-1, i, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign[headers[i]['hAlign']]);
- sheet.getRange(-1, i, -1, 1).vAlign(GC.Spread.Sheets.VerticalAlign[headers[i]['vAlign']]);
- }
- };
- renderSheetFunc(sheet, fuc);
- }
- //表监听事件
- //@param {Object}workBook @return {void}
- function bindEvent(workBook, events) {
- if(Object.keys(events).length === 0){
- return;
- }
- const Events = GC.Spread.Sheets.Events;
- for(let event in events){
- workBook.bind(Events[event], events[event]);
- }
- }
- //建表
- //
- function buildSheet(){
- if(spread){
- spread.destroy();
- return;
- }
- spread = new GC.Spread.Sheets.Workbook(spreadDom[0], {sheetCount: 1});
- setSpreadOptions(spread, spreadOpts);
- const sheet = spread.getActiveSheet();
- buildHeader(sheet, headers);
- //全表不可编辑
- sheet.getRange(-1, -1, -1, -1).locked(true);
- }
- return {buildSheet}
- })();
- $(document).ready(function () {
- });
|