/** * Created by CSL on 2017-05-18. */ var pageObj = { initPage: function (){ $("#drirect-dinge").click(function(){ $(this).attr('href', "/rationRepository/ration" + "?repository=" + getQueryString("repository")) }); $("#gongliao").click(function(){ $(this).attr('href', "/rationRepository/lmm" + "?repository=" + getQueryString("repository")) }); var libID = getQueryString("repository"); var libName = storageUtil.getSessionCache("RationGrp","repositoryID_" + libID); if (libName) { var html = $("#rationname")[0].outerHTML; html = html.replace("XXX定额库", libName); $("#rationname")[0].outerHTML = html; }; coeList.show(); } }; var coeList = { mainSpread: null, detailSpread: null, datas: [], libID: Number, tempID: -999999, // 本地新增一条数据给的默认ID,用作标记,服务端返回新ID后替换该ID colDefMain: [ {name: "ID", displayName: "编号", size: 60, hAlign: "center", readOnly: true}, {name: "name", displayName: "名称", size: 280}, {name: "content", displayName: "内容", size: 250} ], colDefContent: [ {name: "coeType", displayName: "类型", size: 100, hAlign: "center"}, {name: "gljID", displayName: "工料机ID", size: 100, hAlign: "center",formatter: "00000000"}, {name: "operator", displayName: "操作符", size: 60, hAlign: "center"}, {name: "amount", displayName: "数量", size: 80, hAlign: "right"} ], show: function (){ var me = this; me.libID = getQueryString("repository"); me.getDatas(); me.mainSpread = sheetObj.create($('#mainSpread')[0], me.colDefMain, me.datas); me.detailSpread = sheetObj.create($('#contentSpread')[0], me.colDefContent, me.datas[0].coes); var coeType = new GC.Spread.Sheets.CellTypes.ComboBox(); coeType.items(["单个","全部","人工类","材料类","机械类"]); me.detailSpread.getSheet(0).getRange(-1, 0, -1, 1).cellType(coeType); var operType = new GC.Spread.Sheets.CellTypes.ComboBox(); operType.items(["+","-","*","/","="]); me.detailSpread.getSheet(0).getRange(-1, 2, -1, 1).cellType(operType); me.detailSpread.options.showVerticalScrollbar = false; me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell); me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onMainCellChanged); me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onDetailCellChanged); }, getDatas: function () { var me = this; $.ajax({ type:"POST", url:"/rationRepository/api/getCoeList", data:{"libID": me.libID}, dataType:"json", cache:false, async: false, timeout:20000, success: function (result) { if (result.data) { me.datas = result.data; }; }, error: function (result) { alert('内部程序错误!'); } }) }, /*getLibID: function(libName){ var me = this; $.ajax({ type:"POST", url:"/rationRepository/api/getLibIDByName", data:{"libName": libName}, dataType:"json", cache:false, async: false, timeout:20000, success: function (result) { if (result.data) { me.libID = result.data; } }, error: function (result) { alert('内部程序错误!'); } }) },*/ onMainEnterCell: function(sender, args) { var me = coeList; var row = args.sheet.getActiveRowIndex(); me.detailSpread.suspendPaint(); var dSheet = me.detailSpread.getSheet(0); var dData = me.datas[row].coes; if (dData == undefined){ dSheet.setDataSource([]); dSheet.setRowCount(0); }else{ dSheet.setDataSource(dData); me.showNullRow(dSheet); /* var lastData = dData[dData.length - 1]; if (!$.isEmptyObject(lastData)){ dSheet.addRows(dSheet.getRowCount(), 1); };*/ }; me.detailSpread.resumePaint(); }, onMainCellChanged: function(sender, args) { if (args.propertyName !== "value"){return;}; var me = coeList; var row = args.sheet.getActiveRowIndex(); var obj = me.datas[row]; if (obj.ID == undefined){ // 空行录入,即新增 obj.libID = me.libID; obj.ID = me.tempID; obj.coes = [{coeType:"全部", operator:"*", amount: "0"}]; me.datas[row] = obj; me.save([obj],[],[]); me.detailSpread.suspendPaint(); me.detailSpread.getSheet(0).setDataSource(me.datas[row].coes); me.detailSpread.resumePaint(); var sheet = me.mainSpread.getSheet(0); //sheet.addRows(sheet.getRowCount(), 1); me.showNullRow(sheet); } else{ // 正常修改 me.save([],[],[obj]); }; }, onDetailCellChanged: function(sender, args) { if (args.propertyName !== "value"){return;}; var me = coeList; var mainRow = me.mainSpread.getSheet(0).getActiveRowIndex(); var detailRow = args.sheet.getActiveRowIndex(); var detailDatas = me.datas[mainRow].coes; var curDetailData = detailDatas[detailRow]; var curType = curDetailData.coeType; if (curType !== '单个'){ me.detailSpread.suspendPaint(); curDetailData.gljID = null; me.detailSpread.resumePaint(); }; /* var curType = args.sheet.getValue(detailRow, 0); if (curType !== '单个'){ me.detailSpread.suspendEvent(); args.sheet.setValue(detailRow, 1, null); me.detailSpread.resumeEvent(); //args.sheet.getCell(row, 1).backColor("red"); } else{ //args.sheet.getCell(row, 1).backColor("Blue"); };*/ var obj = me.datas[mainRow]; me.save([],[],[obj]); me.showNullRow(args.sheet); }, showNullRow: function(sheet){ var datas = sheet.getDataSource(); var lastData = datas[datas.length - 1]; if (!$.isEmptyObject(lastData)){ sheet.addRows(sheet.getRowCount(), 1); }; }, save: function(addArr, deleteArr, updateArr) { alert('触发了save'); var me = coeList; $.ajax({ type:"POST", url:"api/saveCoeList", data: {"data": JSON.stringify({"addArr": addArr, "deleteArr": deleteArr, "updateArr": updateArr})}, dataType:"json", cache:false, timeout:5000, success:function(result){ if (result.error) { alert(result.message); } else { // 成功。更新从后台返回的新ID。 if (addArr.length > 0){ for (var i = 0; i < me.datas.length; i++) { if (me.datas[i].ID == me.tempID){ me.datas[i].ID = result.data; me.mainSpread.getSheet(0).repaint(); break; } } }; } }, error:function(err){ alert("内部程序错误!"); } }) } }; pageObj.initPage();