|
@@ -0,0 +1,135 @@
|
|
|
+/**
|
|
|
+ * Created by CSL on 2017-06-08.
|
|
|
+ */
|
|
|
+var rationCoeObj = {
|
|
|
+ spread: null,
|
|
|
+ datas: [],
|
|
|
+ libID: Number,
|
|
|
+ tempID: -999999, // 本地新增一条数据给的默认ID,用作标记,服务端返回新ID后替换该ID
|
|
|
+
|
|
|
+ colDef: [
|
|
|
+ {name: "ID", displayName: "ID", size: 70, hAlign: "center"},
|
|
|
+ {name: "name", displayName: "名称", size: 400, readOnly: true},
|
|
|
+ {name: "content", displayName: "内容", size: 500, readOnly: true}
|
|
|
+ ],
|
|
|
+
|
|
|
+ show: function (){
|
|
|
+ var me = this;
|
|
|
+ me.libID = getQueryString("repository");
|
|
|
+ me.getDatas();
|
|
|
+ me.spread = sheetObj.create($('#rationCoeSpread')[0], me.colDef, me.datas);
|
|
|
+ me.spread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onMainCellChanged);
|
|
|
+ me.spread.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onMainRangeChanged);
|
|
|
+ },
|
|
|
+
|
|
|
+ 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('内部程序错误!');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ onMainCellChanged: function(sender, args) {
|
|
|
+ if (args.propertyName !== "value"){return;};
|
|
|
+ var me = rationCoeObj;
|
|
|
+ var row = args.sheet.getActiveRowIndex();
|
|
|
+ var obj = me.datas[row];
|
|
|
+
|
|
|
+ if (obj.ID == undefined){ // 空行录入,即新增
|
|
|
+ obj.libID = me.libID;
|
|
|
+ obj.ID = me.tempID;
|
|
|
+ if (obj.name == undefined){obj.name = '';}; // 生成属性,令属性存储顺序一致
|
|
|
+ if (obj.content == undefined){obj.content = '';};
|
|
|
+ obj.coes = [{coeType:"全部", operator:"*", amount: "0"}];
|
|
|
+ me.datas[row] = obj;
|
|
|
+
|
|
|
+ me.save([obj],[],[]);
|
|
|
+
|
|
|
+ var sheet = me.spread.getSheet(0);
|
|
|
+ me.showNullRow(sheet);
|
|
|
+ }
|
|
|
+ else{ // 正常修改
|
|
|
+ me.save([],[],[obj]);
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ onMainRangeChanged: function(sender, args) {
|
|
|
+ if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
|
|
|
+ if (!confirm('确定要删除本条附注条件吗?')){ args.cancel = true; return; }
|
|
|
+ var me = rationCoeObj;
|
|
|
+ var obj = me.datas[args.row];
|
|
|
+ me.save([],[obj],[]);
|
|
|
+ args.sheet.deleteRows(args.row, 1);
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ 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) {
|
|
|
+ var me = rationCoeObj;
|
|
|
+
|
|
|
+ //var addArrTemp = [];
|
|
|
+ //var deleteArrTemp = [];
|
|
|
+ var updateArrTemp = [];
|
|
|
+
|
|
|
+ // 空行会产生空对象数据,清理空对象会给sheet的空行效果带来奇怪的干扰,这里要中转一下。
|
|
|
+ if (updateArr.length > 0){
|
|
|
+ $.extend(true, updateArrTemp, updateArr);
|
|
|
+ //debug.d('011: ', updateArrTemp);
|
|
|
+ //debug.d('012: ', updateArr);
|
|
|
+ deleteEmptyObject(updateArrTemp[0].coes);
|
|
|
+ //debug.d('013: ', updateArrTemp);
|
|
|
+ //debug.d('014: ', updateArr);
|
|
|
+ //return;
|
|
|
+ };
|
|
|
+
|
|
|
+ $.ajax({
|
|
|
+ type:"POST",
|
|
|
+ url:"api/saveCoeList",
|
|
|
+ data: {"data": JSON.stringify({"addArr": addArr, "deleteArr": deleteArr, "updateArr": updateArrTemp})},
|
|
|
+ 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.spread.getSheet(0).repaint();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error:function(err){
|
|
|
+ alert("内部程序错误!");
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+};
|