| 
					
				 | 
			
			
				@@ -1,135 +1,215 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var rationCoeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sheet: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    libID: -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    currentRationItem: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cache: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setting: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        header:[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {headerName:"编号",headerWidth:120,dataCode:"ID", dataType: "Number"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {headerName:"名称",headerWidth:400,dataCode:"name", dataType: "String"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {headerName:"内容",headerWidth:300,dataCode:"content", dataType: "String"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        view:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            comboBox:[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lockColumns:[1,2] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getDatas: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    buildSheet: function(sheet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         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('内部程序错误!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.sheet = sheet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //alert('0020 libID:' + JSON.stringify(me.libID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.libID = storageUtil.getSessionCache("RationGrp","repositoryID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //alert('0021 libID:' + JSON.stringify(me.libID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sheetCommonObj.initSheet(me.sheet, me.setting, 30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.sheet.bind(GC.Spread.Sheets.Events.EditEnded, me.onCellEditEnd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.sheet.bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onRangeChanged: function(sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var me = rationCoeOprObj, updateArr = [], removeArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (args.col == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (me.cache["_Coe_" + me.currentRationItem.ID]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var cacheArr = me.cache["_Coe_" + me.currentRationItem.ID]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (var i = args.rowCount - 1; i >= 0; i--) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (args.row + i < cacheArr.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            cacheArr.splice(args.row + i, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.updateRationItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sheetCommonObj.cleanSheet(me.sheet, me.setting, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.showCoeItems(me.currentRationItem.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/*    onClipboardPasting: function(sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var me = rationCoeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (args.cellRange.colCount != 1 || args.cellRange.col != 0 || !(me.currentRationItem)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    showNullRow: function(sheet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var datas = sheet.getDataSource(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var lastData = datas[datas.length - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!$.isEmptyObject(lastData)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sheet.addRows(sheet.getRowCount(), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onClipboardPasted: function(e, info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var me = rationCoeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (me.libID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (info.cellRange.col == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var tmpCoeIDs = sheetCommonObj.analyzePasteData({header:[{dataCode: "ID"}] }, info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var IDs = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (var i = 0; i < tmpCoeIDs.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    IDs.push(tmpCoeIDs[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.addCoeItems(IDs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //修改用量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    },*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onCellEditEnd: function(sender, args){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var me = rationCoeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (args.col == 0) {   // 编号列 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (args.editingText == null || args.editingText.trim() == "") {  //delete 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var cacheArr = me.cache["_Coe_" + me.currentRationItem.ID]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (cacheArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (args.row < cacheArr.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        cacheArr.splice(args.row, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.updateRationItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        sheetCommonObj.cleanSheet(me.sheet, me.setting, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.showCoeItems(me.currentRationItem.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (me.libID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var coeIDs = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    coeIDs.push(args.editingText.trim()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.addCoeItems(coeIDs, me.libID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addCoeItems: function(coeIDs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var me = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $.ajax({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             type:"POST", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            url:"api/saveCoeList", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data: {"data": JSON.stringify({"addArr": addArr, "deleteArr": deleteArr, "updateArr": updateArrTemp})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            url:"api/getCoeItemsByIDs", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data: {"data": JSON.stringify({"libID": me.libID, "coeIDs": coeIDs})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sheetCommonObj.cleanSheet(me.sheet, me.setting, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var rstArr = [], newAddArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (var i = 0; i < result.data.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rstArr.push(result.data[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (me.cache["_Coe_" + me.currentRationItem.ID]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var cacheArr = me.cache["_Coe_" + me.currentRationItem.ID]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for (var i = 0; i < rstArr.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            var hasDup = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (var j = 0; j < cacheArr.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (cacheArr[j] == rstArr[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    hasDup = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (!hasDup) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                newAddArr.push(rstArr[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        cacheArr.sort(function(a, b) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            var rst = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (a > b) rst = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else if (a < b) rst = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.cache["_Coe_" + me.currentRationItem.ID] = cacheArr.concat(newAddArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.showCoeItems(me.currentRationItem.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (newAddArr.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.updateRationItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sheetCommonObj.lockCells(me.sheet, me.setting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             error:function(err){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                alert("内部程序错误!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                alert(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateRationItem: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var me = this, updateArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (me.currentRationItem) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.currentRationItem.rationCoeList = me.getCoeIDsArr(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            updateArr.push(me.currentRationItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rationOprObj.mixUpdateRequest(updateArr, [], []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getCoeIDsArr: function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var me = this, rst = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (me.currentRationItem && me.cache["_Coe_" + me.currentRationItem.ID]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var cacheArr = me.cache["_Coe_" + me.currentRationItem.ID]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (var i = 0; i < cacheArr.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst.push(cacheArr[i].ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getCoeItems: function(rationItem) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var me = this, rationID = rationItem.ID, rationCoeList = rationItem.rationCoeList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (rationCoeList == undefined){return;}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.currentRationItem = rationItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //alert('0009 ' + JSON.stringify(me.cache)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //alert('0010 ' + JSON.stringify(me.cache["_Coe_" + rationID])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //alert('0011 ' + JSON.stringify(me.libID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (me.cache["_Coe_" + rationID]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.showCoeItems(rationID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheetCommonObj.lockCells(me.sheet, me.setting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $.ajax({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                type:"POST", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                url:"api/getCoeItemsByIDs", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                data: {"data": JSON.stringify({"libID": me.libID, "coeIDs": rationCoeList})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dataType:"json", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cache:false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                timeout:5000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                success:function(result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sheetCommonObj.cleanSheet(me.sheet, me.setting, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (result.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var cacheArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for (var i = 0; i < result.data.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (var j = 0; j < rationCoeList.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (rationCoeList[j] == result.data[i].ID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    cacheArr.push(result.data[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.cache["_Coe_" + rationID] = cacheArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.showCoeItems(rationID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sheetCommonObj.lockCells(me.sheet, me.setting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                error:function(err){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    alert(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    showCoeItems: function(rationID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var me = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (me.cache["_Coe_" + rationID]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheetCommonObj.showData(me.sheet, me.setting, me.cache["_Coe_" + rationID]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |