123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- /**
- * Created by Syusuke on 2017/3/17.
- *
- */
- (function($){
- var _spSetting = {
- spType:"",
- view:{
- comboBox:[],
- lockedCells:[]
- },
- private:{
- spType:"",
- colCount:0,
- cellPrimValue:null,
- celCurrValue:null
- }
- }
- _tools = {
- isArray:function(arr){
- return Object.prototype.toString.apply(arr) === "[object Array]"
- },
- clone:function(obj){ //���colon���� �������ֱ����ȸ��ƣ�������
- if(obj===null) return null;
- var o = _tools.isArray(obj)?[]:{};
- for(var i in obj){
- o[i] = (obj[i] instanceof Date) ? new Date(obj[i].getTime()): (typeof obj[i] === "object"? _tools.clone(obj[i]): obj[i]);
- }
- return o;
- }
- }
- var _initSpread = function(spID,spSetting,headerItems){
- spSetting.private.colCount = headerItems.length;
- var spread = new GC.Spread.Sheets.Workbook(spID[0],{sheetCount:1});
- var ActiveSheet = spread.getActiveSheet();
- ActiveSheet.setColumnCount(headerItems.length, GC.Spread.Sheets.SheetArea.viewport);
- ActiveSheet.options.isProtected = true;
- ActiveSheet.getRange(-1, 0, -1 ,100, GC.Spread.Sheets.SheetArea.viewport).locked(false);
- spread.options.tabStripVisible = false;
- spread.options.scrollbarMaxAlign = false;
- for(var i=0;i<headerItems.length;i++){
- ActiveSheet.setValue(0, i, headerItems[i].headerName, GC.Spread.Sheets.SheetArea.colHeader);
- ActiveSheet.setColumnWidth(i,headerItems[i].headerWidth, GC.Spread.Sheets.SheetArea.colHeader);
- }
- for(var i=0;i<spSetting.view.comboBox.length;i++){
- var c = spSetting.view.comboBox[i]
- var cellType = new GC.Spread.Sheets.CellTypes.ComboBox();
- cellType.items(c.items);
- ActiveSheet.getRange(c.row,c.col,c.rowCount,c.colCount, GC.Spread.Sheets.SheetArea.viewport).cellType(cellType);
- }
- ActiveSheet.getRange(-1, 1, -1 , 100, GC.Spread.Sheets.SheetArea.viewport).locked(true);
- ActiveSheet.bind(GC.Spread.Sheets.Events.EditStarting,function(sender,args){
- spSetting.private.cellCurrValue = null;
- spSetting.private.cellPriValue = ActiveSheet.getValue(args.row,args.col);
- })
- ActiveSheet.bind(GC.Spread.Sheets.Events.EditEnding,function(sender,args){
- spSetting.private.celCurrValue = ActiveSheet.getValue(args.row,args.col);
- if(args.col == 0){
- var a = spSetting.view.lockedCells;
- var b = [];
- ActiveSheet.getRange(args.row, 1, 1 , 100, GC.Spread.Sheets.SheetArea.viewport).locked(args.editingText == null);
- a.forEach(function(x){
- b.push(x.col);
- })
- b.forEach(function(x){
- ActiveSheet.getCell(args.row,x).locked(true);
- });
- if(args.editingText == null){
- removeAction(spSetting)
- for(var i=0;i<spSetting.private.colCount;i++){
- ActiveSheet.setValue(args.row,i,null);
- }
- }else{
- upsertAction(spSetting);
- }
- }else
- upsertAction(spSetting);
- })
- return spread;
- }
- function upsertAction(spSetting){
- var value =JSON.parse(spSetting.private);
- $.ajax({
- type:"POST",
- url:"http://localhost:6060/rationLibEditor/insert" + spSetting.view.spType,
- data:{"rationLibName":properties.realLibName,"value":value},
- dataType:"json",
- cache:false,
- timeout:1000,
- success:function(result){
- spSetting.private.celCurrValue = null;
- spSetting.private.cellPrimValue = null;
- },
- error:function(){
- }
- })
- }
- function removeAction(spSetting){
- var value =JSON.parse(spSetting.private);
- $.ajax({
- type:"POST",
- url:"http://localhost:6060/rationLibEditor/delete" + spSetting.view.spType,
- data:{"rationLibName":properties.realLibName,"value":value},
- dataType:"json",
- cache:false,
- timeout:1000,
- success:function(result){
- spSetting.private.celCurrValue = null;
- spSetting.private.cellPrimValue = null;
- },
- error:function(){
- }
- })
- }
- $.fn.Spread = {
- init:function(spID,zSetting,headerItems){
- var spSetting = _tools.clone(_spSetting);
- $.extend(true,spSetting,zSetting);
- return _initSpread(spID,spSetting,headerItems);
- }
- }
- }(jQuery))
|