Bläddra i källkod

补充工料机debug

zhongzewei 8 år sedan
förälder
incheckning
d112a1c7ba

+ 2 - 2
web/building_saas/complementary_glj_lib/html/tools-gongliaoji.html

@@ -82,7 +82,7 @@
         <div class="main-nav">
             <ul class="nav flex-column">
               <li><a href="#">定额库编辑器</a></li>
-              <li><a href="tools-gongliaoji.html" class="active">工料机库编辑器</a></li>
+              <li><a href="/complementaryGlj" class="active">工料机库编辑器</a></li>
             </ul>
         </div>
         <div class="content">
@@ -133,7 +133,7 @@
                                   <input type="radio" class="glj-radio" name="glj" value="stdGljs">标准工料机&nbsp;&nbsp;
                                   <input type="radio" class="glj-radio" name="glj" value="complementaryGljs">补充工料机&nbsp;&nbsp;
                                   <input type="radio" class="glj-radio" name="glj" value="selectedGljs">已选工料机机&nbsp;&nbsp;
-                                  <div class="form-group"><input id="searchGlj" type="text" class="form-control-sm" placeholder="查询工料机"></div>
+                                 <!-- <div class="form-group"><input id="searchGlj" type="text" class="form-control-sm" placeholder="查询工料机"></div>-->
                               </div>
                               <div class="modal-auto-height col-12"  id="componentSheet">
                                <!--   <table class="table table-sm table-bordered m-0">

+ 13 - 2
web/building_saas/complementary_glj_lib/js/components.js

@@ -35,16 +35,27 @@ let componentOprObj = {
         //sheetOpr.cleanSheet(me.workBook.getSheet(0), me.setting, -1);
         me.componentsBtnOpr($('#componentsConf'));
         me.radiosChange();
-        me.searchChange();
+        //me.searchChange();
     },
     onButtonClicked: function (sender, args) {
         let me = componentOprObj, re = repositoryGljObj;
         let val = args.sheet.getValue(args.row, args.col);
         let thisComponent = me.currentCache[args.row];
         thisComponent.isChecked = val;
+        console.log(val);
         //维护选中组成物列表
         if(val === true){
-            me.selectedList.push(thisComponent);
+            //解决复选框编辑状态的暂时方法todo
+            let isExist = false;
+            for(let i = 0, len = me.selectedList.length; i < len; i++){
+                if(me.selectedList[i].ID === thisComponent.ID){
+                    isExist = true;
+                    break;
+                }
+            }
+            if(!isExist){
+                me.selectedList.push(thisComponent);
+            }
         }
         else if(val === false){
             for(let i = 0, len = me.selectedList.length; i < len; i++){

+ 58 - 41
web/building_saas/complementary_glj_lib/js/glj.js

@@ -383,9 +383,12 @@ let repositoryGljObj = {
                             let field = me.setting.header[col].dataCode;
                             if(field === 'gljType'){
                                 me.workBook.getSheet(0).getCell(me.editingRowIdx, col).value(
-                                    me.distTypeTree.distTypes[me.distTypeTree.prefix + me.currentEditingGlj[field]].data.fullName);
+                                    typeof me.currentEditingGlj[field] !== 'undefined'?
+                                    me.distTypeTree.distTypes[me.distTypeTree.prefix + me.currentEditingGlj[field]].data.fullName
+                                    : '');
                             }
                             else{
+                                me.workBook.getSheet(0).getCell(me.editingRowIdx, 0).formatter("@");
                                 me.workBook.getSheet(0).getCell(me.editingRowIdx, col).value(me.currentEditingGlj[me.setting.header[col].dataCode]);
                             }
                         }
@@ -421,30 +424,33 @@ let repositoryGljObj = {
         if (me.currentEditingGlj["ID"]) {
             rObj["ID"] = me.currentEditingGlj["ID"];
             rObj.gljClass = me.currentEditingGlj.gljClass;
-            for(let col =0; col< me.setting.header.length; col++){
-                if(me.currentEditingGlj[me.setting.header[col].dataCode] !== rObj[me.setting.header[col].dataCode]){
-                    me.addGljObj = rObj;
-                    if(rObj[me.setting.header[0].dataCode] && rObj[me.setting.header[1].dataCode] && rObj[me.setting.header[5].dataCode]){
+            //for(let col =0; col< me.setting.header.length; col++){
+                if(me.currentEditingGlj[me.setting.header[args.col].dataCode] !== rObj[me.setting.header[args.col].dataCode]){
+                    //me.addGljObj = rObj;
+                    //编码、名称、单位、类型不可为空
+                    if(rObj[me.setting.header[0].dataCode] && rObj[me.setting.header[1].dataCode] && rObj[me.setting.header[3].dataCode] && rObj[me.setting.header[5].dataCode]
+                    &&rObj[me.setting.header[0].dataCode].toString().trim().length !== 0 && rObj[me.setting.header[1].dataCode].toString().trim().length !== 0 && rObj[me.setting.header[3].dataCode].toString().trim().length !== 0&&
+                        rObj[me.setting.header[5].dataCode].toString().trim().length !== 0){
                         if(rObj.gljType !== me.currentEditingGlj.gljType){//修改了工料机类型
-                            if(me.currentGlj){
-                                me.currentGlj.component = [];
-                            }
-                            if(me.allowComponent.indexOf(rObj.gljType) !== -1){
-                                rObj.basePrice = 0;
-                            }
-                            if(me.componentGljType.indexOf(me.currentEditingGlj.gljType) !== -1 &&
-                                !(me.currentEditingGlj.gljType === 302 && rObj.gljType === 303) && !(me.currentEditingGlj.gljType === 303 && rObj.gljType === 302)){//修改了原本是组成物的工料机
-                               //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
-                                let updateGljs = me.getUpdateGljs(rObj);
-                                if(updateGljs.updateArr.length > 0 || updateGljs.updateBasePrcArr.length > 0){
-                                    for(let i = 0; i < updateGljs.updateArr.length; i++){
-                                        updateArr.push(updateGljs.updateArr[i]);
-                                    }
-                                    for(let i = 0; i < updateGljs.updateBasePrcArr.length; i++){
-                                        updateArr.push(updateGljs.updateBasePrcArr[i]);
+                                if(me.currentGlj){
+                                    me.currentGlj.component = [];
+                                }
+                                if(me.allowComponent.indexOf(rObj.gljType) !== -1){
+                                    rObj.basePrice = 0;
+                                }
+                                if(me.componentGljType.indexOf(me.currentEditingGlj.gljType) !== -1 &&
+                                    !(me.currentEditingGlj.gljType === 302 && rObj.gljType === 303) && !(me.currentEditingGlj.gljType === 303 && rObj.gljType === 302)){//修改了原本是组成物的工料机
+                                    //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
+                                    let updateGljs = me.getUpdateGljs(rObj);
+                                    if(updateGljs.updateArr.length > 0 || updateGljs.updateBasePrcArr.length > 0){
+                                        for(let i = 0; i < updateGljs.updateArr.length; i++){
+                                            updateArr.push(updateGljs.updateArr[i]);
+                                        }
+                                        for(let i = 0; i < updateGljs.updateBasePrcArr.length; i++){
+                                            updateArr.push(updateGljs.updateBasePrcArr[i]);
+                                        }
                                     }
                                 }
-                            }
                         }
                         else if(rObj.basePrice !== me.currentEditingGlj.basePrice){//修改了单价,可修改单价的必为可成为组成物的
                             //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
@@ -461,10 +467,19 @@ let repositoryGljObj = {
                         }
                         rObj.component = me.currentGlj.component;
                         updateArr.push(rObj);
-                        break;
+                    }
+                    else{
+                        if(me.setting.header[args.col].dataCode === 'gljType'){
+                            console.log(me.distTypeTree);
+                            let distTypeVal =  me.distTypeTree.distTypes[me.distTypeTree.prefix + me.currentEditingGlj[me.setting.header[args.col].dataCode]].data.fullName;
+                            args.sheet.setValue(args.row, args.col, distTypeVal);
+                        }
+                        else{
+                            args.sheet.setValue(args.row, args.col, me.currentEditingGlj[me.setting.header[args.col].dataCode]);
+                        }
                     }
                 }
-            }
+          //  }
             //--------------------------------------
             if(me.currentEditingGlj.basePrice !== rObj.basePrice){
                 //update basePrice of ration when editting basePrice of glj
@@ -496,20 +511,22 @@ let repositoryGljObj = {
         }
         //新增
         else {
-            me.addGljObj = rObj;
-            let isCanSav = true;
-            if(!rObj[me.setting.header[0].dataCode] || !rObj[me.setting.header[1].dataCode] || !rObj[me.setting.header[3].dataCode] || !rObj[me.setting.header[5].dataCode]){
-                isCanSav = false;
-            }
-            if(isCanSav){
-                me.addGljObj = null;
-                rObj.component = [];
-                //如果类型为混凝土、砂浆、配合比、机械台班时,添加时填写的单价清空
-                if(me.allowComponent.indexOf(rObj.gljType) !== -1){
-                    rObj.basePrice = 0;
+            if(typeof rObj.code !== 'undefined'){
+                me.addGljObj = rObj;
+                let isCanSav = true;
+                if(!rObj[me.setting.header[0].dataCode] || !rObj[me.setting.header[1].dataCode] || !rObj[me.setting.header[3].dataCode] || !rObj[me.setting.header[5].dataCode]){
+                    isCanSav = false;
+                }
+                if(isCanSav){
+                    me.addGljObj = null;
+                    rObj.component = [];
+                    //如果类型为混凝土、砂浆、配合比、机械台班时,添加时填写的单价清空
+                    if(me.allowComponent.indexOf(rObj.gljType) !== -1){
+                        rObj.basePrice = 0;
+                    }
+                    rObj.basePrice = !isNaN(parseFloat(rObj.basePrice)) && (rObj.basePrice && typeof rObj.basePrice !== 'undefined') ? parseFloat(rObj.basePrice) : 0;
+                    addArr.push(rObj);
                 }
-                rObj.basePrice = !isNaN(parseFloat(rObj.basePrice)) && (rObj.basePrice && typeof rObj.basePrice !== 'undefined') ? parseFloat(rObj.basePrice) : 0;
-                addArr.push(rObj);
             }
         }
         if(me.gljCurTypeId !== 732){
@@ -518,7 +535,6 @@ let repositoryGljObj = {
         if(updateArr.length >0 || addArr.length >0){
             me.currentEditingGlj = null;
             //me.workBook.getSheet(0).setValue(11, 5, "人工");
-            console.log(updateArr);
             me.mixUpdateRequest(updateArr, addArr, []);
         }
     },
@@ -548,7 +564,6 @@ let repositoryGljObj = {
                                         updateBasePrcArr.push(updateGljs.updateBasePrcArr[i]);
                                     }
                                 }
-                                console.log(updateArr);
                                 removeArr.push(cacheSection[sels[i].row + j].ID);
                                 //tempRemoveArr.push({ID: cacheSection[sels[i].row + j].ID, code: cacheSection[sels[i].row + j].code});
                                 //删除后重新计算引用了此工料机的定额单价
@@ -611,9 +626,9 @@ let repositoryGljObj = {
                     //确认
                     $('#aleConfBtn').click(function () {
                         me.mixUpdateRequest(updateArr, [], removeArr);
-                        if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
+                        /*if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
                             me.updateRationBasePrcRq(updateBasePrcArr);
-                        }
+                        }*/
                     });
                 }
             }
@@ -1034,6 +1049,8 @@ let gljTypeTreeOprObj = {
             gljTypeId = treeNode.ID;
         me.gljCurTypeId = treeNode.ID;
         that.isLocked = true;
+        //消除新增到一半的数据
+        me.addGljObj = null;
         //me.currentCache = me.getCache();
         sheetOpr.cleanSheet(that.workBook.getSheet(0), that.setting, 5);
         that.workBook.getSheet(0).getRange(-1, 0 , -1, 1, GC.Spread.Sheets.SheetArea.viewport).locked(true);

+ 1 - 0
web/building_saas/complementary_glj_lib/js/gljComponent.js

@@ -86,6 +86,7 @@ let gljComponentOprObj = {
                             "insert": {name: "插入", disabled: insertDis, callback: function (key, opt) {
                                 //默认radio所有工料机
                                 co.initRadio();
+                                co.gljCurTypeId = null;
                                 //默认点击树根节点
                                 if(co.rootNode){
                                     co.treeObj.selectNode(co.rootNode);

+ 44 - 5
web/building_saas/complementary_glj_lib/js/sheetOpr.js

@@ -132,6 +132,9 @@ let sheetOpr = {
                 else {
                     sheet.setValue(row, col, data[row][setting.header[col].dataCode], ch);
                     sheet.setTag(row, 0, data[row].ID, ch);
+                    if(typeof setting.owner === 'undefined'){
+                        sheet.getCell(row, 0, GC.Spread.Sheets.SheetArea.viewport).locked(true);
+                    }
                 }
                 //复选框
                 if(setting.header[col].dataCode === 'isComplementary'){
@@ -200,11 +203,12 @@ let sheetOpr = {
             }
             else if (setting.header[col].dataCode === 'code'){
                 if(repositoryGljObj){
-                    let gljList = repositoryGljObj.gljList,
+                    let stdGljList = repositoryGljObj.stdGljList,
+                        complementaryGljList = repositoryGljObj.complementaryGljList,
                         orgCode = repositoryGljObj.orgCode,
                         isExist = false;
-                    for(let i=0; i< gljList.length; i++){
-                        if(gljList[i].code === sheet.getValue(row, col) && sheet.getValue(row, col)!== orgCode){
+                    for(let i=0; i< stdGljList.length; i++){
+                        if(stdGljList[i].code == sheet.getValue(row, col) && sheet.getValue(row, col)!== orgCode){
                             me.lockAllCells(sheet);
                             $('#alertText').text("输入的编号已存在,请重新输入!");
                             $('#codeAlertBtn').click();
@@ -212,18 +216,53 @@ let sheetOpr = {
                                 // me.reLockSomeCodes(sheet, 0, repositoryGljObj.currentCache.length);
                                 me.unLockAllCells(sheet);
                                 me.reLockSomeCodes(sheet, 0, repositoryGljObj.currentCache.length);
-                                sheet.setValue(row, 0, orgCode);
+                                //sheet.setText(row, 0, '');
+                                sheet.getCell(row, 0).formatter("@");
+                                sheet.getCell(row, 0).text("");
                                 sheet.setActiveCell(row, 0);
                             });
                             $('#codAleClose').click(function () {
                                 //me.reLockSomeCodes(sheet, 0, repositoryGljObj.currentCache.length);
                                 me.unLockAllCells(sheet);
                                 me.reLockSomeCodes(sheet, 0, repositoryGljObj.currentCache.length);
-                                sheet.setValue(row, 0, orgCode);
+                                //sheet.setText(row, 0, '');
+                                sheet.getCell(row, 0).formatter("@");
+                                sheet.getCell(row, 0).text("");
                                 sheet.setActiveCell(row, 0);
                             });
                             // sheet.setValue(row, col, orgCode);
                             isExist = true
+                            break;
+                        }
+                    }
+                    if(!isExist){
+                        for(let i=0; i< complementaryGljList.length; i++){
+                            if(complementaryGljList[i].code == sheet.getValue(row, col) && sheet.getValue(row, col)!== orgCode){
+                                me.lockAllCells(sheet);
+                                $('#alertText').text("输入的编号已存在,请重新输入!");
+                                $('#codeAlertBtn').click();
+                                $('#codAleConfBtn').click(function () {
+                                    // me.reLockSomeCodes(sheet, 0, repositoryGljObj.currentCache.length);
+                                    me.unLockAllCells(sheet);
+                                    me.reLockSomeCodes(sheet, 0, repositoryGljObj.currentCache.length);
+                                    //sheet.setText(row, 0, '');
+                                    sheet.getCell(row, 0).formatter("@");
+                                    sheet.getCell(row, 0).text("");
+                                    sheet.setActiveCell(row, 0);
+                                });
+                                $('#codAleClose').click(function () {
+                                    //me.reLockSomeCodes(sheet, 0, repositoryGljObj.currentCache.length);
+                                    me.unLockAllCells(sheet);
+                                    me.reLockSomeCodes(sheet, 0, repositoryGljObj.currentCache.length);
+                                    //sheet.setText(row, 0, '');
+                                    sheet.getCell(row, 0).formatter("@");
+                                    sheet.getCell(row, 0).text("");
+                                    sheet.setActiveCell(row, 0);
+                                });
+                                // sheet.setValue(row, col, orgCode);
+                                isExist = true
+                                break;
+                            }
                         }
                     }
                     if(!isExist){