浏览代码

bugs fixed

zhangweicheng 7 年之前
父节点
当前提交
f8e6433c36

+ 1 - 1
public/web/tree_sheet/tree_sheet_helper.js

@@ -159,7 +159,7 @@ var TREE_SHEET_HELPER = {
                 if(colSetting.data.autoHeight == true){
                     colSetting.setAutoHeight(cell,node);
                 }
-                if(sheet.name()=='mainSheet'&&gljOprObj.isInstallationNode(node)){//如果是通过安装增加费自动生成的,都是只读类型
+                if(colSetting.editChecking&&colSetting.editChecking(node)){
                     cell.locked(true);
                 }else if (colSetting.readOnly) {
                     if (Object.prototype.toString.apply(colSetting.readOnly) === "[object Function]") {

+ 3 - 3
web/building_saas/css/main.css

@@ -367,9 +367,9 @@ div.resize{
     width: 100%;
     cursor: s-resize;
 }
-.zlfb-check{
-    margin-left: 0;
-}
+/*.zlfb-check{
+    margin-left: 20px;
+}*/
 legend.legend{
     display:block;
     width:auto;

+ 10 - 1
web/building_saas/main/js/models/bills.js

@@ -349,11 +349,14 @@ var Bills = {
             return node.downLevel();
         };
 
-        bills.prototype.updateField = function (node, field, newValue) {
+        bills.prototype.updateField = function (node, field, newValue,toBX) {//当toBX为true时类型改为补项
             calcFees.setFee(node.data, field, newValue);
             let updateData = [];
             let data = {'ID': node.getID(), 'projectID': this.project.ID()};
             data[field] = newValue;
+            if(toBX == true){
+                data.type = billType.BX
+            }
             updateData.push({'updateType': 'ut_update', 'updateData': tools.formatBillsUpdateData(data)});
             this.project.pushNow('updateBills', this.getSourceType(), updateData);
         };
@@ -505,6 +508,12 @@ var Bills = {
                 return false;
             }
         };
+        bills.prototype.isBX = function (node) {//判读是否属于补项
+            if(node && node.sourceType == ModuleNames.bills&&node.data.type==billType.BX){
+                return  true;
+            }
+            return false;
+        };
         bills.prototype.isTechMeasure = function (node) {//判读是否属于技术措施项目部分
             let techMeasureCheck = function (checkNode) {
                 if(isFlag(checkNode.data)&&checkNode.data.flagsIndex.fixed.flag==fixedFlag.CONSTRUCTION_TECH){

+ 1 - 1
web/building_saas/main/js/models/quantity_detail.js

@@ -571,7 +571,7 @@ var quantity_detail = {
             console.log(value);
             let needUpdateChildren = [];//需更新的子定额
             let gljNodes=[];//当定额工程量改变时需刷新的子工料机
-            if(node.children.length>0){//如果有子项
+            if(node.children.length>0){//如果有子项
                 for(let rationNode of node.children){
                     let EXPString = rationNode.data.quantityEXP+"";
                     if(EXPString.indexOf("QDL")!=-1){

+ 1 - 1
web/building_saas/main/js/views/glj_view.js

@@ -375,7 +375,7 @@ var gljOprObj = {
         }
     },
     isInstallationNode:function(node){
-        if((node.sourceType == ModuleNames.ration&&node.data.type == rationType.install)||(node.sourceType == ModuleNames.bills&&node.data.type==billType.BX)){//是定额安装费类型或者补项
+        if(node.sourceType == ModuleNames.ration&&node.data.type == rationType.install){//是定额安装费类型时只读,原先是补项的时候也是控制只读的||(node.sourceType == ModuleNames.bills&&node.data.type==billType.BX)){//是定额安装费类型或者补项
             return true;
         }
         return false

+ 6 - 0
web/building_saas/main/js/views/main_tree_col.js

@@ -269,6 +269,12 @@ let MainTreeCol = {
                 return new GC.Spread.Sheets.CellTypes.CheckBox();
         }
     },
+    editChecking:function(node){
+        if(gljOprObj.isInstallationNode(node)){//如果是通过安装增加费自动生成的,都是只读类型
+            return true;
+        }
+        return false;
+    },
     setAutoHeight:function (cell,node) {//设置自动行高
         let displaySetting = projectObj.project.property.displaySetting;
         let billsAutoH = displaySetting && displaySetting.billsAutoHeight?displaySetting.billsAutoHeight:false;

+ 28 - 11
web/building_saas/main/js/views/project_view.js

@@ -235,19 +235,21 @@ var projectObj = {
         return rst;
     },
     updateBillsCode: function (node, value) {
-        let project = projectObj.project;
+        let project = projectObj.project,me = this;
         let stdMatchCode, formatCode, matchs;
         let searchStdBillsAndUpdate = function (stdCode, formatCode) {
             let orgCode = node.data.code?node.data.code.substr(0, 9):"";
             if (stdCode === orgCode || projectInfoObj.projectInfo.engineeringInfo.bill_lib.length === 0) {
-                project.Bills.updateField(node.source, 'code', formatCode, true);
-                projectObj.mainController.refreshTreeNode([node], false);
+                normalUpdate(node,value);
             } else if (projectInfoObj.projectInfo.engineeringInfo.bill_lib.length > 0) {
                 let libId = projectInfoObj.projectInfo.engineeringInfo.bill_lib[0].id;
                 CommonAjax.post('/stdBillsEditor/getStdBillsByCode', {userId: userID, billsLibId: libId, code: stdCode}, function (data) {
                     if (data) {
                         //data.itemCharacter = pageCCOprObj.safeItemCharater(data.itemCharacter);
                         node.data.name = data.name;
+                        if(node.data.type == billType.BX){//从清单库中找到标准清单的话,要把补项改成分项
+                            node.data.type = billType.FX;
+                        }
                         pageCCOprObj.setItemContentNode(node, data.jobContent, data.itemCharacter, node.data.name);
                         if (/\//.test(data.unit)) {
                             let existB = projectObj.project.Bills.sameStdCodeBillsData(data.code);
@@ -269,13 +271,12 @@ var projectObj = {
                             projectObj.mainController.refreshTreeNode([node], false);
                         }
                     } else {
-                        project.Bills.updateField(node.source, 'code', formatCode, true);
-                        projectObj.mainController.refreshTreeNode([node], false);
+                        normalUpdate(node,value);
                     }
                 });
             }
         }
-        if(node.data.type==billType.FX||(node.data.type==billType.BILL&&node.source.children.length==0)){//是分项或者叶子清单的情况下才需要查找替换
+        if(node.data.type==billType.FX||node.data.type==billType.BX||(node.data.type==billType.BILL&&node.source.children.length==0)){//是分项、补项或者叶子清单的情况下才需要查找替换
             if (value&&value.length === 9 && /^[\d]+$/.test(value)) {
                 stdMatchCode = value;
                 formatCode = project.Bills.newFormatCode(stdMatchCode);
@@ -286,16 +287,31 @@ var projectObj = {
                 matchs = project.Bills.sameStdCode(stdMatchCode, node.data.code);
                 if (matchs.indexOf(value) === -1) {
                     searchStdBillsAndUpdate(stdMatchCode, value);
-                } else if (confirm('已存在该编码的清单,是否继续?')) {
-                    formatCode = project.Bills.newFormatCode(stdMatchCode, node.data.code);
-                    searchStdBillsAndUpdate(stdMatchCode, formatCode);
                     return;
+                } else {
+                   if (confirm('已存在该编码的清单,是否继续?')) {
+                       // formatCode = project.Bills.newFormatCode(stdMatchCode, node.data.code);
+                        searchStdBillsAndUpdate(stdMatchCode, value);
+                        return;
+                    }else {
+                       this.mainController.refreshTreeNode([node], false);
+                       return;
+                   }
                 }
             }
         }
-        project.Bills.updateField(node.source, 'code', value, true);
-        this.mainController.refreshTreeNode([node], false);
+        normalUpdate(node,value);
+
 
+        function normalUpdate(billnode,codeValue) {//在标准库中没有找到清单时改分项为补项再更新
+            let toBX = false;
+            if(billnode.data.type == billType.FX){
+                billnode.data.type = billType.BX;
+                 toBX = true;
+            }
+            project.Bills.updateField(billnode.source, 'code', codeValue, toBX);
+            me.mainController.refreshTreeNode([billnode], false);
+        }
     },
     updateRationCode: function (node, value) {
         if(!isDef(node.data.code) && (!isDef(value) || value.toString().trim() == '')){
@@ -544,6 +560,7 @@ var projectObj = {
                         col.data.formatter = '@';
                     }
                     col.setAutoHeight = MainTreeCol.getEvent("setAutoHeight");
+                    col.editChecking = MainTreeCol.getEvent("editChecking");
                     // 根据配置设置自动行高,在这里先做个标记,然后对每个单元格单独配置
                     if (col.data.field === 'name' || col.data.field === 'itemCharacterText' ||
                         col.data.field === 'jobContentText' || col.data.field === 'adjustState') {