| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794 | 
							- /**
 
-  * Created by Tony on 2017/4/28.
 
-  */
 
- $(document).ready(function () {
 
-     //定额表与下方子表上下拖动
 
-     let rationSubResize = getRationSubResize();
 
-     SlideResize.verticalSlide(rationSubResize.eleObj, rationSubResize.limit, function () {
 
-         if (rationOprObj.workBook) {
 
-             rationOprObj.workBook.refresh();
 
-         }
 
-         if (rationGLJOprObj.sheet && rationGLJOprObj.sheet.getParent()) {
 
-             rationGLJOprObj.sheet.getParent().refresh();
 
-         }
 
-     });
 
-     SlideResize.loadVerticalHeight(rationSubResize.eleObj.module, rationSubResize.eleObj, rationSubResize.limit, function () {
 
-         if (rationOprObj.workBook) {
 
-             rationOprObj.workBook.refresh();
 
-         }
 
-         if (rationGLJOprObj.sheet && rationGLJOprObj.sheet.getParent()) {
 
-             rationGLJOprObj.sheet.getParent().refresh();
 
-         }
 
-     });
 
- });
 
- function getRationSubResize() {
 
-     let rationSubResize = {};
 
-     rationSubResize.eleObj = {
 
-         module: 'compleRation',
 
-         resize: $('#rationSubResize'),
 
-         top: $('#rationItemsSheet'),
 
-         topSpread: $('#rationItemsSheet'),
 
-         bottom: $('#subContent'),
 
-         bottomSpread: $('#rdSpread')
 
-     };
 
-     rationSubResize.limit = {
 
-         min: 150,
 
-         max: `$(window).height()-$('.header').height()-$('.tools-bar').height()-150-5`,
 
-         totalHeight: `$(window).height()-$('.header').height()-$('.tools-bar').height()-5`,
 
-         notTopSpread: 0,
 
-         notBottomSpread: $('#subContent ul').height(),
 
-     };
 
-     return rationSubResize;
 
- }
 
- function loadRationSubSize(resizeObj) {
 
-     if (!resizeObj) {
 
-         resizeObj = getRationSubResize();
 
-     }
 
-     SlideResize.loadVerticalHeight(resizeObj.eleObj.module, resizeObj.eleObj, resizeObj.limit, function () {
 
-         if (rationOprObj.workBook) {
 
-             rationOprObj.workBook.refresh();
 
-         }
 
-         if (rationGLJOprObj.sheet && rationGLJOprObj.sheet.getParent()) {
 
-             rationGLJOprObj.sheet.getParent().refresh();
 
-         }
 
-     });
 
- }
 
- const digital = {
 
-     gljPrc: -3,//计算定额基价时单个工料机价格取三位
 
-     rationBasePrc: -2,
 
-     consumeAmt: -3
 
- };
 
- let rationOprObj = {
 
-     workBook: null,
 
-     currentRations: {},
 
-     currentEditingRation: null,
 
-     currentSectionId: -1,
 
-     rationsCodes: [],
 
-     setting: {
 
-         header:[
 
-             {headerName:"编码",headerWidth:70,dataCode:"code", dataType: "String", formatter: "@"},
 
-             {headerName:"名称",headerWidth:240,dataCode:"name", dataType: "String"},
 
-             {headerName:"计量单位",headerWidth:70,dataCode:"unit", dataType: "String", hAlign: "center"},
 
-             {headerName:"人工费",headerWidth:80,dataCode:"labourPrice", dataType: "Number", formatter: "0.00", hAlign: "right"},
 
-             {headerName:"材料费",headerWidth:80,dataCode:"materialPrice", dataType: "Number", formatter: "0.00",  hAlign: "right"},
 
-             {headerName:"机械费",headerWidth:80,dataCode:"machinePrice", dataType: "Number", formatter: "0.00", hAlign: "right"},
 
-             {headerName:"基价",headerWidth:80,dataCode:"basePrice", dataType: "Number", formatter: "0.00", hAlign: "right"},
 
-             {headerName:"显示名称(以%s表示参数)",headerWidth:240,dataCode:"caption", dataType: "String"},
 
-             {headerName:"取费专业",headerWidth:70,dataCode:"feeType", dataType: "Number", hAlign: "center"}
 
-         ],
 
-         view:{
 
-             comboBox:[
 
-                 {row:-1,col:2,rowCount:-1,colCount:1}
 
-             ],
 
-             lockedCells:[
 
-                 {row:-1,col:3,rowCount:-1, colCount:1}
 
-             ],
 
-             lockColumns: [
 
-                 3, 4, 5, 6
 
-             ]
 
-         }
 
-     },
 
-     buildSheet: function(container) {
 
-         let rationRepId = getQueryString("repository");
 
-         let me = rationOprObj;
 
-         me.workBook = sheetCommonObj.buildSheet(container, me.setting, 30);
 
-         sheetCommonObj.bindEscKey(me.workBook, [{sheet: me.workBook.getSheet(0), editStarting: me.onCellEditStart, editEnded: me.onCellEditEnd}]);
 
-         me.onContextmenuOpr();
 
-         me.rationDelOpr();
 
-         me.setCombo(me.workBook.getSheet(0), 'dynamic');
 
-         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
 
-         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
 
-         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.LeaveCell, me.onLeaveCell);
 
-         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onEnterCell);
 
-         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EditStarting, me.onCellEditStart);
 
-         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EditEnded, me.onCellEditEnd);
 
-         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.SelectionChanged, me.onSelectionChanged);
 
-     },
 
-     setCombo: function (sheet, combo) {
 
-         let me = rationOprObj;
 
-         sheet.suspendPaint();
 
-         sheet.suspendEvent();
 
-         if(combo){
 
-             combo = sheetCommonObj.getDynamicCombo();
 
-             combo.items(rationAndGljUnits).itemHeight(10).editable(true);
 
-         }
 
-         sheet.getRange(-1, me.setting.view.comboBox[0].col, -1, 1).cellType(combo);
 
-         sheet.resumePaint();
 
-         sheet.resumeEvent();
 
-     },
 
-     onSelectionChanged: function (sender, info) {
 
-         if(info.oldSelections.length === 0 && info.newSelections.length > 0 || info.oldSelections[0].row !== info.newSelections[0].row){
 
-             let row = info.newSelections[0].row;
 
-             let me = rationOprObj;
 
-             me.rationSelInit(row);
 
-         }
 
-     },
 
-     //focusOnSection将工作簿焦点移到章节表上
 
-     rationSelInit: function (row, focusOnSection = null) {
 
-         let me = rationOprObj,
 
-             sheetGLJ = rationGLJOprObj.sheet, settingGLJ = rationGLJOprObj.setting,
 
-             sheetCoe = rationCoeOprObj.sheet, settingCoe = rationCoeOprObj.setting,
 
-             sheetAss = rationAssistOprObj.sheet, settingAss = rationAssistOprObj.setting;
 
-             //sheetInst = rationInstObj.sheet, settingInst = rationInstObj.setting;
 
-         sheetCommonObj.cleanData(sheetGLJ, settingGLJ, -1);
 
-         sheetCommonObj.cleanData(sheetCoe, settingCoe, -1);
 
-         sheetCommonObj.cleanData(sheetAss, settingAss, -1);
 
-         //sheetCommonObj.cleanData(sheetInst, settingInst, -1);
 
-         let cacheSection = me.getCache();
 
-         if (cacheSection && row < cacheSection.length) {
 
-             rationGLJOprObj.getGljItems(cacheSection[row], function () {
 
-                 if (focusOnSection){
 
-                     sectionTreeObj.workBook.focus(true);
 
-                 } else {
 
-                     me.workBook.focus(true);
 
-                 }
 
-             });
 
-             rationCoeOprObj.getCoeItems(cacheSection[row], function () {
 
-                 if (focusOnSection){
 
-                     sectionTreeObj.workBook.focus(true);
 
-                 } else {
 
-                     me.workBook.focus(true);
 
-                 }
 
-             });
 
-             rationAssistOprObj.getAssItems(cacheSection[row]);
 
-             /*rationInstObj.getInstItems(cacheSection[row], function () {
 
-                 if (focusOnSection){
 
-                     sectionTreeObj.workBook.focus(true);
 
-                 } else {
 
-                     me.workBook.focus(true);
 
-                 }
 
-             });*/
 
-         }
 
-         else {
 
-             rationGLJOprObj.currentRationItem = null;
 
-         }
 
-         if (!focusOnSection) {
 
-             me.workBook.focus(true);
 
-         }
 
-     },
 
-     isInt: function (num) {
 
-         return !isNaN(num) && num % 1 === 0;
 
-     },
 
-     isDef: function (v) {
 
-         return v !== undefined && v !== null;
 
-     },
 
-     getCache: function() {
 
-         let me = this, rst = me.currentRations["_SEC_ID_" + me.currentSectionId];
 
-         if (!(rst)) {
 
-             me.currentRations["_SEC_ID_" + me.currentSectionId] = [];
 
-             rst = me.currentRations["_SEC_ID_" + me.currentSectionId];
 
-         }
 
-         return rst;
 
-     },
 
-     updateCache: function(addArr, updateArr, removeIds, rstData) {
 
-         let me = this, cacheSection = me.getCache();
 
-         if (addArr.length > 0) {
 
-             me.currentRations["_SEC_ID_" + me.currentSectionId] = cacheSection.concat(addArr);
 
-             cacheSection = me.currentRations["_SEC_ID_" + me.currentSectionId];
 
-         }
 
-         for (let i = removeIds.length - 1; i >= 0; i--) {
 
-             for (let j = cacheSection.length - 1; j >= 0 ; j--) {
 
-                 if (cacheSection[j]["ID"] == removeIds[i]) {
 
-                     cacheSection.splice(j,1);
 
-                 }
 
-             }
 
-         }
 
-         if (rstData && rstData.ops && rstData.ops.length > 0) {
 
-             for (let i = 0; i < rstData.ops.length; i++) {
 
-                 for (let j = 0; j < cacheSection.length; j++) {
 
-                     if (cacheSection[j][me.setting.header[0].dataCode] == rstData.ops[i][me.setting.header[0].dataCode]) {
 
-                         cacheSection[j]["ID"] = rstData.ops[i]["ID"];
 
-                         cacheSection[j]["rationGljList"] = rstData.ops[i]["rationGljList"];
 
-                         cacheSection[j]["rationCoeList"] = rstData.ops[i]["rationCoeList"];
 
-                         cacheSection[j]["rationAssList"] = rstData.ops[i]["rationAssList"];
 
-                         //cacheSection[j]["rationInstList"] = rstData.ops[i]["rationInstList"];
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         for (let i = 0; i < updateArr.length; i++) {
 
-             for (let j = 0; j < cacheSection.length; j++) {
 
-                 if (updateArr[i]["ID"] && cacheSection[j]["ID"]) {
 
-                     if (cacheSection[j]["ID"] == updateArr[i]["ID"]) {
 
-                         updateArr[i]['rationGljList'] = rationGLJOprObj.cache['_GLJ_' + cacheSection[j]['ID']] ?
 
-                             rationGLJOprObj.cache['_GLJ_' + cacheSection[j]['ID']] :
 
-                             cacheSection[j]['rationGljList'] ?
 
-                                 cacheSection[j]['rationGljList'] : [];
 
-                         updateArr[i]['rationCoeList'] = cacheSection[j]['rationCoeList'] ? cacheSection[j]['rationCoeList'] : [];
 
-                         updateArr[i]['rationAssList'] = cacheSection[j]['rationAssList'];
 
-                         //updateArr[i]['rationInstList'] = cacheSection[j]['rationInstList'];
 
-                         cacheSection[j] = updateArr[i];
 
-                     }
 
-                 } else {
 
-                     if (cacheSection[j][me.setting.header[0].dataCode] == updateArr[i][me.setting.header[0].dataCode]) {
 
-                         updateArr[i]['rationGljList'] = rationGLJOprObj.cache['_GLJ_' + cacheSection[j]['ID']] ?
 
-                             rationGLJOprObj.cache['_GLJ_' + cacheSection[j]['ID']] :
 
-                             cacheSection[j]['rationGljList'] ?
 
-                                 cacheSection[j]['rationGljList'] : [];
 
-                         updateArr[i]['rationCoeList'] = cacheSection[j]['rationCoeList'] ? cacheSection[j]['rationCoeList'] : [];
 
-                         updateArr[i]['rationAssList'] = cacheSection[j]['rationAssList'];
 
-                         //updateArr[i]['rationInstList'] = cacheSection[j]['rationInstList'];
 
-                         cacheSection[j] = updateArr[i];
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         return cacheSection;
 
-     },
 
-     onContextmenuOpr: function () {//右键菜单
 
-         let me = this;
 
-         $.contextMenu({
 
-             selector: '#rationItemsSheet',
 
-             build: function($triggerElement, e){
 
-                 //控制允许右键菜单在哪个位置出现
 
-                 let target = SheetDataHelper.safeRightClickSelection($triggerElement, e, me.workBook);
 
-                 let sheet = me.workBook.getSheet(0);
 
-                 let  delDis = false;
 
-                 let cacheSection = me.getCache();
 
-                 let ration = cacheSection[target.row];
 
-                 if(target.hitTestType === 3){//在表格内&& typeof target.row !== 'undefined' && typeof target.col !== 'undefined'
 
-                     if(typeof target.row !== 'undefined'){
 
-                         //控制按钮是否可用
 
-                         sheet.setActiveCell(target.row, target.col);
 
-                         if(!cacheSection ||target.row >= cacheSection.length){//右键定位在有数据的行,删除键才显示可用
 
-                             delDis = true;
 
-                         }
 
-                         else{//有数据
 
-                             if(typeof target.col === 'undefined'){//定位不在表格内
 
-                                 delDis = true;
 
-                             }
 
-                         }
 
-                     }
 
-                     else{
 
-                         delDis = true;
 
-                     }
 
-                     return {
 
-                         callback: function(){},
 
-                         items: {
 
-                             "delete": {name: "删除", disabled: delDis, icon: "fa-remove", callback: function (key, opt) {
 
-                                 let removeInfo = `确定要删除定额 “${ration.code}” 及其下的所有数据吗?`;
 
-                                 $('#delRationAlert').find('.modal-body h5').text(removeInfo);
 
-                                 $('#delRationAlert').modal('show');
 
-                                 $('#delRationConfirm').unbind('click');
 
-                                 $('#delRationConfirm').bind('click', function () {
 
-                                     me.rationsCodes.splice(me.rationsCodes.indexOf(ration.code.toString()), 1);
 
-                                     me.mixDel = 1;
 
-                                     me.mixUpdateRequest([], [], [ration.ID]);
 
-                                     $('#delRationAlert').modal('hide');
 
-                                 });
 
-                             }}
 
-                         }
 
-                     };
 
-                 }
 
-                 else{
 
-                     return false;
 
-                 }
 
-             }
 
-         });
 
-     },
 
-     rationDelOpr: function () {
 
-         let me = rationOprObj;
 
-         me.workBook.commandManager().register('rationDelete', function () {
 
-             let rationSheet = me.workBook.getActiveSheet();
 
-             let sels = rationSheet.getSelections(), updateArr = [], removeArr = [], lockCols = me.setting.view.lockColumns;
 
-             let removeCodes = [];
 
-             let cacheSection = me.getCache();
 
-             if(sels.length > 0){
 
-                 for(let sel = 0; sel < sels.length; sel++){
 
-                     if(sels[sel].colCount === me.setting.header.length){
 
-                         if(cacheSection){
 
-                             for(let i = 0; i < sels[sel].rowCount; i++){
 
-                                 if(sels[sel].row + i < cacheSection.length){
 
-                                     removeArr.push(cacheSection[sels[sel].row + i].ID);
 
-                                     removeCodes.push(cacheSection[sels[sel].row + i].code);
 
-                                     me.rationsCodes.splice(me.rationsCodes.indexOf(cacheSection[sels[sel].row + i].code.toString()), 1);
 
-                                 }
 
-                             }
 
-                         }
 
-                     }
 
-                     else{
 
-                         if(sels[sel].col === 0){
 
-                             $('#alertText').text("编号不能为空,修改失败!");
 
-                             $('#alertModalBtn').click();
 
-                             $('#alertModalCls').click(function () {
 
-                             });
 
-                             $('#alertModalCof').click(function () {
 
-                             })
 
-                         }
 
-                         else if(sels[sel].col !== 0 && !(sels[sel].col === 3 && sels.col + sels[sel].colCount -1 === 6)){
 
-                             if(cacheSection){
 
-                                 for(let i = sels[sel].row === -1 ? 1 : 0; i < sels[sel].rowCount; i++){
 
-                                     if(sels[sel].row + i < cacheSection.length){
 
-                                         for(let col = sels[sel].col; col <= sels[sel].col + sels[sel].colCount - 1; col++){
 
-                                             if(lockCols.indexOf(col) === -1){
 
-                                                 cacheSection[sels[sel].row + i][me.setting.header[col].dataCode] = '';
 
-                                             }
 
-                                         }
 
-                                     }
 
-                                     if(cacheSection[sels[sel].row + i] && typeof cacheSection[sels[sel].row + i] !== 'undefined'){
 
-                                         updateArr.push(cacheSection[sels[sel].row + i]);
 
-                                     }
 
-                                 }
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             /*  if(updateArr.length > 0 || removeArr.length > 0){
 
-              me.mixUpdate = 1;
 
-              me.mixDel = removeArr.length > 0 ? 1 : 0;
 
-              me.mixUpdateRequest(updateArr, [], removeArr);
 
-              }*/
 
-             if(updateArr.length > 0){
 
-                 me.mixUpdate = 1;
 
-                 me.mixUpdateRequest(updateArr, [], []);
 
-             }
 
-             if(removeArr.length > 0){
 
-                 let removeInfo = `确定要删除定额 “${removeCodes.join(',')}” 及其下的所有数据吗?`;
 
-                 $('#delRationAlert').find('.modal-body h5').text(removeInfo);
 
-                 $('#delRationAlert').modal('show');
 
-                 $('#delRationConfirm').bind('click', function () {
 
-                     me.mixDel = 1;
 
-                     me.mixUpdateRequest([], [], removeArr);
 
-                     $('#delRationConfirm').unbind('click');
 
-                     $('#delRationAlert').modal('hide');
 
-                 });
 
-             }
 
-         });
 
-         me.workBook.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false);
 
-         me.workBook.commandManager().setShortcutKey('rationDelete', GC.Spread.Commands.Key.del, false, false, false, false);
 
-     },
 
-     onLeaveCell: function (sender, args) {
 
-         let me = rationOprObj;
 
-         me.lastCol = me.setting.header[args.col];
 
-     },
 
-     onEnterCell: function (sender, args) {
 
-         let me = rationOprObj;
 
-         if(me.setting.header[args.col]['dataCode'] === 'unit' || me.lastCol.dataCode === 'unit'){
 
-             args.sheet.repaint();
 
-         }
 
-         me.cellRowIdx = args.row;
 
-         let isHasData = false;
 
-         if(me.addRationItem){
 
-             for(let i=0; i<me.setting.header.length; i++){
 
-                 if(me.addRationItem[me.setting.header[i].dataCode]){
 
-                     isHasData = true;
 
-                     break;
 
-                 }
 
-             }
 
-         }
 
-         if(isHasData){
 
-             if(me.editingRowIdx !== me.cellRowIdx) {
 
-                 let focusToCol = !me.addRationItem.code ? 0 : -1;
 
-                 if(focusToCol !== -1){
 
-                     $('#rationAlertBtn').click();
 
-                     $('#rationAlertCac').click(function () {
 
-                         me.addRationItem = null;
 
-                         for(let col=0; col<me.setting.header.length; col++){
 
-                             me.workBook.getSheet(0).getCell(me.editingRowIdx, col).value('');
 
-                         }
 
-                     });
 
-                     $('#rationAlertCls').click(function () {
 
-                         me.workBook.getSheet(0).setActiveCell(me.editingRowIdx, focusToCol);
 
-                     });
 
-                     $('#rationAlertCof').click(function () {
 
-                         me.workBook.getSheet(0).setActiveCell(me.editingRowIdx, focusToCol);
 
-                     });
 
-                 }
 
-             }
 
-         }
 
-     },
 
-     onCellEditStart: function(sender, args) {
 
-         let me = rationOprObj;
 
-         if(!me.canRations || me.setting.view.lockColumns.indexOf(args.col) !== -1){
 
-             args.cancel = true;
 
-         }
 
-         else{
 
-             let rObj = sheetsOprObj.combineRationRowData(me.workBook.getSheet(0), me.setting, args.row);
 
-             me.currentEditingRation = rObj;
 
-             let cacheSection = me.getCache();
 
-             if (cacheSection) {
 
-                 for (let j = 0; j < cacheSection.length; j++) {
 
-                     if (cacheSection[j][me.setting.header[0].dataCode] == rObj[me.setting.header[0].dataCode]) {
 
-                         rObj["ID"] = cacheSection[j]["ID"];
 
-                         break;
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-     },
 
-     onCellEditEnd: function(sender, args) {
 
-         let me = rationOprObj;
 
-         // 输入编号、名称、单位时,如果输入回车符或粘贴回车符,提交时应转换为空格。
 
-         let dataCode = me.setting.header[args.col].dataCode;
 
-         let deESCFields = ['code', 'name', 'unit'];
 
-         if(deESCFields.includes(dataCode)){
 
-             args.editingText = me.isDef(args.editingText) ? args.editingText.toString().replace(/[\r\n]/g, ' ') : '';
 
-             args.sheet.setValue(args.row, args.col, args.editingText);
 
-         }
 
-         let rObj = sheetsOprObj.combineRationRowData(me.workBook.getSheet(0), me.setting, args.row),
 
-             updateArr = [],
 
-             addArr = [];
 
-         me.editingRowIdx = args.row;
 
-         if (me.currentEditingRation["ID"]) {
 
-             if((!args.editingText || args.editingText.toString().trim().length === 0) && args.col === 0){
 
-                 args.sheet.setValue(args.row, args.col, me.currentEditingRation[dataCode] + '');
 
-             }
 
-             else {
 
-                 rObj["ID"] = me.currentEditingRation["ID"];
 
-                 if(me.currentEditingRation[dataCode] !== rObj[dataCode]){
 
-                     me.addRationItem = rObj;
 
-                     if(dataCode === 'code'){
 
-                         if(me.rationsCodes.indexOf(rObj.code.toString()) === -1){
 
-                             me.rationsCodes.splice(me.rationsCodes.indexOf(rObj.code.toString()), 1);
 
-                             me.rationsCodes.push(rObj.code.toString());
 
-                             updateArr.push(rObj);
 
-                         }
 
-                         else{
 
-                             alert("编码已存在!");
 
-                             args.sheet.setValue(args.row, args.col, me.currentEditingRation[dataCode]);
 
-                         }
 
-                     }
 
-                     else if(dataCode === 'feeType'){//取费专业控制为整数
 
-                         if(me.isInt(rObj[dataCode])){
 
-                             updateArr.push(rObj);
 
-                         }
 
-                         else {
 
-                             rObj[dataCode] = '';
 
-                             args.sheet.setValue(args.row, args.col, typeof me.currentEditingRation[dataCode] !== 'undefined' && me.currentEditingRation[dataCode] ? me.currentEditingRation[dataCode] : '');
 
-                         }
 
-                     }
 
-                     else{
 
-                         updateArr.push(rObj);
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         else if(!me.currentEditingRation["ID"]) {
 
-             if (!sheetCommonObj.chkIfEmpty(rObj, me.setting)) {
 
-                 //addArr.push(rObj);
 
-                 me.addRationItem = rObj;
 
-                 if(rObj.code && rObj.code.toString().trim().length > 0){
 
-                     if(me.rationsCodes.indexOf(rObj.code.toString()) === -1){
 
-                         //jobContent
 
-                        /* if(jobContentOprObj && jobContentOprObj.currentSituation === jobContentOprObj.situations.ALL){
 
-                             rObj.jobContent = jobContentOprObj.currentJobContent ? jobContentOprObj.currentJobContent : '';
 
-                         }
 
-                         if(annotationOprObj && annotationOprObj.currentSituation === annotationOprObj.situations.ALL){
 
-                             rObj.annotation = annotationOprObj.currentAnnotation ? annotationOprObj.currentAnnotation : '';
 
-                         }*/
 
-                         me.setInitPrc(rObj);
 
-                         if (rObj.code && rObj.code !== '') {
 
-                             rObj.code = rObj.code.toUpperCase();
 
-                         }
 
-                         addArr.push(rObj);
 
-                         me.rationsCodes.push(rObj.code.toString());
 
-                         me.addRationItem = null;
 
-                     }
 
-                     else{
 
-                         alert('编码已存在!');
 
-                         me.workBook.getSheet(0).setValue(args.row, args.col, '');
 
-                     }
 
-                 }
 
-                 else if(rObj.code && rObj.code.toString.trim().length === 0){
 
-                     me.workBook.getSheet(0).setValue(args.row, args.col, '');
 
-                 }
 
-             }
 
-         }
 
-         if (updateArr.length > 0 || addArr.length > 0) {
 
-             me.currentEditingRation = null;
 
-             me.mixUpdate = 1;
 
-             me.mixUpdateRequest(updateArr, addArr, []);
 
-         }
 
-     },
 
-     canPasted: function (beginCol, maxCol) {
 
-         let rst = false;
 
-         if(maxCol < 3 || beginCol > 6){
 
-             rst = true;
 
-         }
 
-         return rst;
 
-     },
 
-     onClipboardPasting: function(sender, args) {
 
-         let me = rationOprObj;
 
-         let maxCol = args.cellRange.col + args.cellRange.colCount -1;
 
-         if(!me.canRations || !me.canPasted(args.cellRange.col, maxCol) || maxCol > me.setting.header.length - 1){
 
-             args.cancel = true;
 
-         }
 
-     },
 
-     //todo: overwrite?
 
-     onClipboardPasted: function(e, info) {
 
-         console.log('cp');
 
-         let me = rationOprObj;
 
-         let cacheSection = me.getCache();
 
-         let updateArr = [], addArr = [];
 
-         let items = sheetCommonObj.analyzePasteData(me.setting, info);
 
-         for (let i = 0; i < items.length; i++) {
 
-             if (items[i].code && items[i].code !== '') {
 
-                 items[i].code = items[i].code.toUpperCase();
 
-             }
 
-             let rowIdx = info.cellRange.row + i;
 
-             if (cacheSection) {
 
-                 /*  if(!me.isValidUnit(items[i], rationUnits)){//无效单位
 
-                  items[i].unit = rowIdx < cacheSection.length  && typeof cacheSection[rowIdx].unit !== 'undefined' ? cacheSection[rowIdx].unit : '';
 
-                  }*/
 
-                 if(!cacheSection[rowIdx] && info.cellRange.col === 0 ){
 
-                     if(me.rationsCodes.indexOf(items[i].code.toString()) === -1){
 
-                         //jobConten
 
-                         /*if(jobContentOprObj && jobContentOprObj.currentSituation === jobContentOprObj.situations.ALL){
 
-                             items[i].jobContent = jobContentOprObj.currentJobContent ? jobContentOprObj.currentJobContent : '';
 
-                         }
 
-                         if(annotationOprObj && annotationOprObj.currentSituation === annotationOprObj.situations.ALL){
 
-                             items[i].annotation = annotationOprObj.currentAnnotation ? annotationOprObj.currentAnnotation : '';
 
-                         }*/
 
-                         me.setInitPrc(items[i]);
 
-                         addArr.push(items[i]);
 
-                         me.rationsCodes.push(items[i].code.toString());
 
-                     }
 
-                     else{
 
-                         me.workBook.getSheet(0).setValue(rowIdx, 0, '');
 
-                     }
 
-                 }
 
-                 else if(cacheSection[rowIdx]){
 
-                     for(let col = 0; col < me.setting.header.length; col++){
 
-                         if(!items[i][me.setting.header[col].dataCode] && typeof cacheSection[rowIdx][me.setting.header[col].dataCode] !== 'undefined'){
 
-                             items[i][me.setting.header[col].dataCode] = cacheSection[rowIdx][me.setting.header[col].dataCode];
 
-                         }
 
-                     }
 
-                     if(items[i].feeType && !me.isInt(items[i].feeType)){
 
-                         items[i].feeType = '';
 
-                         me.workBook.getSheet(0).setValue(rowIdx, 8, '');
 
-                     }
 
-                     if(info.cellRange.col === 0){
 
-                         if(me.rationsCodes.indexOf(items[i].code.toString()) === -1){
 
-                             items[i].ID = cacheSection[rowIdx].ID;
 
-                             updateArr.push(items[i]);
 
-                         }
 
-                         else{
 
-                             me.workBook.getSheet(0).setValue(rowIdx, 0, cacheSection[rowIdx].code);
 
-                         }
 
-                     }
 
-                     else{
 
-                         items[i].ID = cacheSection[rowIdx].ID;
 
-                         updateArr.push(items[i]);
 
-                     }
 
-                 }
 
-             } else {
 
-                 /* if(!me.isValidUnit(items[i], rationUnits)){//无效单位
 
-                  items[i].unit = '';
 
-                  }*/
 
-                 //add
 
-                 if(info.cellRange.col === 0){
 
-                     //是否含有已存在的编号
 
-                     if(me.rationsCodes.indexOf(items[i].code.toString()) === -1){
 
-                         //jobConten
 
-                        /* if(jobContentOprObj && jobContentOprObj.currentSituation === jobContentOprObj.situations.ALL){
 
-                             items[i].jobContent = jobContentOprObj.currentJobContent ? jobContentOprObj.currentJobContent : '';
 
-                         }
 
-                         if(annotationOprObj && annotationOprObj.currentSituation === annotationOprObj.situations.ALL){
 
-                             items[i].annotation = annotationOprObj.currentAnnotation ? annotationOprObj.currentAnnotation : '';
 
-                         }*/
 
-                         me.setInitPrc(items[i]);
 
-                         addArr.push(items[i]);
 
-                     }
 
-                 }
 
-             }
 
-         };
 
-         if (updateArr.length > 0 || addArr.length > 0) {
 
-             console.log(updateArr);
 
-             me.mixUpdate = 1;
 
-             me.mixUpdateRequest(updateArr, addArr, []);
 
-         }
 
-         else{
 
-             me.getRationItems(me.currentSectionId);
 
-         }
 
-     },
 
-     setInitPrc: function (obj) {
 
-         obj.labourPrice = 0;
 
-         obj.materialPrice = 0;
 
-         obj.machinePrice = 0;
 
-         obj.basePrice = 0;
 
-     },
 
-     mixUpdateRequest: function(updateArr, addArr, removeIds, callback) {
 
-         let me = rationOprObj;
 
-         me.saveInString(updateArr);
 
-         CommonAjax.post('api/mixUpdateRationItems', {sectionId: me.currentSectionId, updateItems: updateArr, addItems: addArr, removeIds: removeIds}, function (rstData) {
 
-             let cacheSection = me.updateCache(addArr, updateArr, removeIds, rstData);
 
-             me.sortByCode(cacheSection);
 
-             /*cacheSection.sort(function(a, b){
 
-                 let rst = 0;
 
-                 if (a.code > b.code) rst = 1
 
-                 else if (a.code < b.code) rst = -1;
 
-                 return rst;
 
-             });*/
 
-             //add
 
-             let curRow = me.workBook.getActiveSheet().getActiveRowIndex();
 
-             me.rationSelInit(curRow);
 
-             //add
 
-             //jobContent
 
-             /*if(jobContentOprObj ){
 
-                 jobContentOprObj.currentRationItems = cacheSection;
 
-                 jobContentOprObj.setRadiosDisabled(cacheSection.length > 0 ? false : true, jobContentOprObj.radios);
 
-                 if(cacheSection.length === 0){
 
-                     jobContentOprObj.updateSituation(pageOprObj.rationLibId, me.currentSectionId, 'NONE');
 
-                 }
 
-                 jobContentOprObj.setRadiosChecked(jobContentOprObj.currentSituation, jobContentOprObj.radios);
 
-                 if(jobContentOprObj.currentSituation === jobContentOprObj.situations.PARTIAL){
 
-                     jobContentOprObj.buildTablePartial(jobContentOprObj.tablePartial, jobContentOprObj.getGroup(cacheSection));
 
-                 }
 
-             }
 
-             if(annotationOprObj ){
 
-                 annotationOprObj.setRadiosDisabled(cacheSection.length > 0 ? false : true, annotationOprObj.radios);
 
-                 if(cacheSection.length === 0){
 
-                     annotationOprObj.updateAnnoSituation(pageOprObj.rationLibId, me.currentSectionId, 'NONE');
 
-                 }
 
-                 annotationOprObj.setRadiosChecked(annotationOprObj.currentSituation, annotationOprObj.radios);
 
-                 if(annotationOprObj.currentSituation === annotationOprObj.situations.PARTIAL){
 
-                     annotationOprObj.buildTablePartial(annotationOprObj.fzTablePartial, annotationOprObj.getGroup(cacheSection));
 
-                 }
 
-             }*/
 
-             me.showRationItems(me.currentSectionId);
 
-             me.mixUpdate = 0;
 
-             me.mixDel = 0;
 
-             me.workBook.focus(true);
 
-             if(callback) callback();
 
-         }, function () {
 
-             me.getRationItems(me.currentSectionId);
 
-         });
 
-     },
 
-     getRationItems: function(sectionID, callback = null){
 
-         if (sectionID != -1) {
 
-             let me = rationOprObj;
 
-             me.mixUpdate = 0;
 
-             me.currentSectionId = sectionID;
 
-             if (me.currentRations["_SEC_ID_" + sectionID]) {
 
-                 //jobContent--
 
-                /* jobContentOprObj.currentRationItems = me.currentRations["_SEC_ID_" + sectionID];
 
-                 jobContentOprObj.rationJobContentOpr(me.currentRations["_SEC_ID_" + sectionID]);*/
 
-                 //annotation
 
-                 //annotationOprObj.rationAnnotationOpr(me.currentRations["_SEC_ID_" + sectionID]);
 
-                 me.showRationItems(sectionID);
 
-                 sectionTreeObj.removeBtn.removeClass('disabled');
 
-                 if(callback){
 
-                     callback();
 
-                 }
 
-             } else {
 
-                 CommonAjax.post('api/getRationItems', {sectionId: sectionID}, function (rstData) {
 
-                     me.currentRations["_SEC_ID_" + sectionID] = rstData;
 
-                     me.sortByCode(me.currentRations["_SEC_ID_" + sectionID]);
 
-                     //job--
 
-                     /*jobContentOprObj.currentRationItems = me.currentRations["_SEC_ID_" + sectionID];
 
-                     jobContentOprObj.rationJobContentOpr(me.currentRations["_SEC_ID_" + sectionID]);*/
 
-                     //annotation
 
-                     //annotationOprObj.rationAnnotationOpr(me.currentRations["_SEC_ID_" + sectionID]);
 
-                     me.showRationItems(sectionID);
 
-                     sectionTreeObj.removeBtn.removeClass('disabled');
 
-                     if(callback) {
 
-                         callback();
 
-                     }
 
-                 }, function () {
 
-                     sectionTreeObj.removeBtn.removeClass('disabled');
 
-                 });
 
-             }
 
-         }
 
-     },
 
-     showRationItems: function(sectionID){
 
-         let me = rationOprObj,
 
-             sheetGLJ = rationGLJOprObj.sheet, settingGLJ = rationGLJOprObj.setting,
 
-             sheetCoe = rationCoeOprObj.sheet, settingCoe = rationCoeOprObj.setting,
 
-             sheetAss = rationAssistOprObj.sheet, settingAss = rationAssistOprObj.setting;
 
-         if (me.workBook) {
 
-             sheetCommonObj.cleanData(me.workBook.getSheet(0), me.setting, -1);
 
-             if (me.currentRations && me.currentRations["_SEC_ID_" + sectionID]) {
 
-                 let cacheSection = me.currentRations["_SEC_ID_" + sectionID];
 
-                 sheetsOprObj.showData(me.workBook.getSheet(0), me.setting, cacheSection);
 
-                 if(me.mixDel === 1){
 
-                     let row = me.workBook.getSheet(0).getSelections()[0].row;
 
-                     if (cacheSection && row < cacheSection.length) {
 
-                         sheetCommonObj.cleanData(sheetGLJ, settingGLJ, -1);
 
-                         sheetCommonObj.cleanData(sheetCoe, settingCoe, -1);
 
-                         sheetCommonObj.cleanData(sheetAss, settingAss, -1);
 
-                         rationGLJOprObj.getGljItems(cacheSection[row]);
 
-                         rationCoeOprObj.getCoeItems(cacheSection[row]);
 
-                         rationAssistOprObj.getAssItems(cacheSection[row]);
 
-                     }
 
-                     else {
 
-                         rationGLJOprObj.currentRationItem = null;
 
-                         sheetCommonObj.cleanData(sheetGLJ, settingGLJ, -1);
 
-                         sheetCommonObj.cleanData(sheetCoe, settingCoe, -1);
 
-                         sheetCommonObj.cleanData(sheetAss, settingAss, -1);
 
-                         sheetCommonObj.setDynamicCombo(sheetAss, 0, 5, sheetAss.getRowCount(), rationAssistOprObj.setting.comboItems, false, false);
 
-                     }
 
-                 }
 
-             } else {
 
-                 sheetCommonObj.setDynamicCombo(sheetAss, 0, 5, sheetAss.getRowCount(), rationAssistOprObj.setting.comboItems, false, false);
 
-                 //清除ration数据及工料机数据
 
-                 rationGLJOprObj.currentRationItem = null;
 
-                 sheetCommonObj.cleanSheet(sheetGLJ, settingGLJ, -1);
 
-                 sheetCommonObj.cleanSheet(sheetCoe, settingCoe, -1);
 
-                 sheetCommonObj.cleanSheet(sheetAss, settingAss, -1);
 
-             }
 
-         }
 
-         sectionTreeObj.workBook.focus(true);
 
-     },
 
-     sortByCode: function(arr){
 
-         function recurCompare(a, b, index){
 
-             if (a[index] && !b[index]) {
 
-                 return 1;
 
-             } else if (!a[index] && b[index]) {
 
-                 return -1;
 
-             } else if (a[index] && b[index]) {
 
-                 let aV = a[index],
 
-                     bV = b[index];
 
-                 if (!isNaN(aV) && !isNaN(bV)) {
 
-                     aV = parseFloat(a[index]);
 
-                     bV = parseFloat(b[index]);
 
-                 }
 
-                 if (aV > bV) {
 
-                     return 1;
 
-                 } else if (aV < bV) {
 
-                     return -1;
 
-                 } else {
 
-                     return recurCompare(a, b, index + 1);
 
-                 }
 
-             }
 
-             return 0;
 
-         }
 
-         arr.sort(function (a, b) {
 
-             let aArr = a.code.split('-'),
 
-                 bArr = b.code.split('-');
 
-             return recurCompare(aArr, bArr, 0);
 
-         });
 
-     },
 
-     saveInString(datas){
 
-         for(let i = 0, len = datas.length; i < len; i++){
 
-             let data = datas[i];
 
-             if(data.labourPrice !== undefined && data.labourPrice){
 
-                 data.labourPrice = data.labourPrice.toString();
 
-             }
 
-             if(data.materialPrice !== undefined && data.materialPrice){
 
-                 data.materialPrice = data.materialPrice.toString();
 
-             }
 
-             if(data.machinePrice !== undefined && data.machinePrice){
 
-                 data.machinePrice = data.machinePrice.toString();
 
-             }
 
-             if(data.basePrice !== undefined && data.basePrice){
 
-                 data.basePrice = data.basePrice.toString();
 
-             }
 
-             if(data.rationGljList !== undefined && data.rationGljList && data.rationGljList.length > 0){
 
-                 for(let j = 0, jLen = data.rationGljList.length; j < jLen; j++){
 
-                     let raGljObj = data.rationGljList[j];
 
-                     if(raGljObj.consumeAmt !== undefined && raGljObj.consumeAmt){
 
-                         raGljObj.consumeAmt = raGljObj.consumeAmt.toString();
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |