| 
					
				 | 
			
			
				@@ -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("内部程序错误!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 |