zhangweicheng %!s(int64=7) %!d(string=hai) anos
pai
achega
606bf6362c

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

@@ -121,9 +121,7 @@ var TREE_SHEET_HELPER = {
                 var cell = sheet.getCell(iRow, iCol, GC.Spread.Sheets.SheetArea.viewport);
                 if(typeof projectObj !== 'undefined'){
                     let boldFontStyle = projectObj.getBoldFontStyle(node, colSetting);
-                    if(boldFontStyle){
-                        sheet.setStyle(iRow, iCol, boldFontStyle);
-                    }
+                    sheet.setStyle(iRow, iCol, boldFontStyle);
                 }
 
                 // var getFieldText = function () {

+ 1 - 2
web/building_saas/main/js/controllers/block_controller.js

@@ -524,10 +524,9 @@ let BlockController = {
             if(temData.billsLibId && temData.billsLibId!="" && temData.code.length == 12){//是从清单库来的
                 let value = temData.code.substr(0,9);
                 if (value&&value.length === 9 && /^[\d]+$/.test(value)) {
-                    temData.code = projectObj.project.Bills.newFormatCode(value);
+                    temData.code = me.newFormatCode(value);
                 }
             }
-
             me.datas.push(temData);//为了下一个清单的std code 一样
             return temData;
         }

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

@@ -38,14 +38,14 @@ $(function () {
         zmhs_obj.refresh();
     });
 
-    /*const projectId = scUrlUtil.GetQueryString('project');
+    const projectId = scUrlUtil.GetQueryString('project');
     // 绑定点击事件
     projectObj.mainSpread.bind(GC.Spread.Sheets.Events.CellClick, function(sender, info) {
         if (info.row !== undefined && projectId !== undefined) {
             setLocalCache('lastRow:' + projectId, info.row);
             setLocalCache('lastCol:' + projectId, info.col);
         }
-    });*/
+    });
 });
 
 function getMainResizeEles() {
@@ -260,4 +260,4 @@ function disableRightMenu(id,spread,rowChangeFunction) {
 function show()
 {
     return "exit"
-};*/
+};*/

+ 19 - 17
web/building_saas/main/js/models/quantity_detail.js

@@ -82,7 +82,6 @@ var quantity_detail = {
             var showList = _.filter(this.datas,filter_object);
             gljOprObj.detailData=showList;
             gljOprObj.detailData=_.sortBy(gljOprObj.detailData,'seq');
-            console.log(batchCallback);
             if(batchCallback == undefined){
                 this.refreshSheetData();
             }
@@ -168,7 +167,7 @@ var quantity_detail = {
                 }else {
                     data.newRecord?me.refreshAfterSave(data.newRecord,batchCallback):me.refreshAfterSave(data,batchCallback);
                     if(batchCallback){
-                        batchCallback(args)
+                        batchCallback(args);
                     }else if(data.node){
                         me.refreshRationOrBillNodes(data.node);
                     }
@@ -183,14 +182,13 @@ var quantity_detail = {
 
 
         quantity_detail.prototype.refreshRationOrBillNodes=function(node){//工程量明细更新后触发定额或清单工程量改变,进行相应的更新
-            var nodes = gljOprObj.refreshTreeNode(node);
-            if(nodes.length>0){//触发计算
-                let newNode = nodes[0];
-                if(newNode.sourceType === project.Bills.getSourceType()){
-                    console.log(newNode.data.quantity);
-                    this.updateBillQuantity(newNode.data.quantity,newNode,newNode.data.quantityEXP);
+            let treeNode = gljOprObj.updateDataNodeProperty(node.ID,node.data);
+            if(treeNode){//触发计算
+                if(treeNode.sourceType === project.Bills.getSourceType()){
+                    console.log(treeNode.data.quantity);
+                    this.updateBillQuantity(treeNode.data.quantity,treeNode,treeNode.data.quantityEXP);
                 }else {//更新定额所使用的值要用还没转换前的
-                    node.data? this.updateRationQuantity(node.data.r_quantity,newNode,newNode.data.quantityEXP):"";
+                    node.data? this.updateRationQuantity(node.data.r_quantity,treeNode,treeNode.data.quantityEXP):"";
                 }
             }
         };
@@ -199,7 +197,7 @@ var quantity_detail = {
             var args = {
                 row:row,
                 editingText:1
-            }
+            };
             if(row < gljOprObj.detailData.length){
                 args.insertRecode = true;
             }
@@ -240,18 +238,22 @@ var quantity_detail = {
         };
 
         quantity_detail.prototype.moveDown = function (row) {
+            let sel =  gljOprObj.detailSheet.getSelections()[0];
             this.swapRow(row);
+            gljOprObj.detailSheet.setSelection(row+1,sel.col,sel.rowCount,sel.colCount);//更改选中行
         };
         quantity_detail.prototype.moveUp = function (row) {
+            let sel =  gljOprObj.detailSheet.getSelections()[0];
             this.swapRow(row-1);
+            gljOprObj.detailSheet.setSelection(row-1,sel.col,sel.rowCount,sel.colCount);//更改选中行
         };
         quantity_detail.prototype.swapRow = function (preRow) {
-            var me = this;
-            var update_task = [];
-            var a_row = gljOprObj.detailData[preRow];//
-            var b_row = gljOprObj.detailData[preRow +1];//
-            var temA = a_row.seq;
-            var temB = b_row.seq;
+            let me = this;
+            let update_task = [];
+            let a_row = gljOprObj.detailData[preRow];//
+            let b_row = gljOprObj.detailData[preRow +1];//
+            let temA = a_row.seq;
+            let temB = b_row.seq;
             a_row.seq = temB;
             update_task.push({query:{ID:a_row.ID,projectID:a_row.projectID},doc:{seq:a_row.seq}});
             b_row.seq = temA;
@@ -274,7 +276,7 @@ var quantity_detail = {
                     regex =  me.replaceAll('b','c',regex);
                     update_task.push({query:{ID:item.ID,projectID:item.projectID},doc:{regex:regex,referenceIndexs:item.referenceIndexs}});
                 }
-            })
+            });
             me.commonUpdate("/quantity_detail/swapRow",update_task);
         };
         quantity_detail.prototype.replaceAll=function(FindText, RepText,str) {

+ 3 - 3
web/building_saas/main/js/views/glj_col.js

@@ -33,9 +33,9 @@ let gljCol = {
             {headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String"},
             {headerName: "类型", headerWidth: 45, dataCode: "short_name", hAlign: "center", dataType: "String"},
             {headerName: "总消耗量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
-            {headerName: "定额价", headerWidth: 70, dataCode: "basePrice", hAlign: "right", dataType: "Number",decimalField:'glj.unitPrice',validator:"number"},
-            {headerName: "调整价", headerWidth: 70, dataCode: "adjustPrice", hAlign: "right", dataType: "Number",decimalField:"glj.unitPrice"},
-            {headerName: "市场价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",decimalField:"glj.unitPrice",validator:"number"},
+            {headerName: "定额价", headerWidth: 70, dataCode: "basePrice", hAlign: "right", dataType: "Number",validator:"number"},//decimalField:'glj.unitPrice',
+            {headerName: "调整价", headerWidth: 70, dataCode: "adjustPrice", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
+            {headerName: "市场价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:"glj.unitPrice"
             {headerName: "暂估", headerWidth: 60, dataCode: "is_evaluate", hAlign: "center", dataType: "String",cellType:'checkBox'},
             {headerName: "主要\n材料", headerWidth: 60, dataCode: "is_main_material", hAlign: "center", dataType: "String",cellType:'checkBox'},
             {headerName: "供货方式", headerWidth: 80, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},

+ 10 - 6
web/building_saas/main/js/views/glj_view.js

@@ -1102,13 +1102,8 @@ var gljOprObj = {
             objectArray.push(obj);
         }
         for (let o of objectArray) {
-            var node = _.find(projectObj.project.mainTree.items, function (n) {
-                return n.sourceType == o.type && n.data.ID == o.ID;
-            })
+            let node = this.updateDataNodeProperty(o.ID,o.data);
             if (node) {
-                for (var k in o.data) {
-                    node.data[k] = o.data[k];
-                }
                 nodes.push(node);
             }
         }
@@ -1116,6 +1111,15 @@ var gljOprObj = {
         return nodes;
 
     },
+    updateDataNodeProperty:function(nodeID,data){
+        let node =  projectObj.project.mainTree.findNode(nodeID);
+        if (node) {
+            for (let k in data) {
+                node.data[k] = data[k];
+            }
+        }
+        return node;
+    },
     getTreeNodeCellType: function (data) {
         var ns = GC.Spread.Sheets;
         var rectW = 10;

+ 20 - 6
web/building_saas/main/js/views/glj_view_contextMenu.js

@@ -202,10 +202,16 @@ var gljContextMenu = {
                     name: '复制',
                     icon: 'fa-files-o',
                     disabled: function () {
-                        var sheet = subSpread.getActiveSheet();
-                        var sheetData = gljOprObj.detailData;
-                        var value = sheet.getCell(gljContextMenu.selectedRow,gljContextMenu.selectedCol).value();
-                        return gljContextMenu.selectedRow>sheetData.length-1||value==null;
+                        let sheet = subSpread.getActiveSheet();
+                        let sheetData = gljOprObj.detailData;
+                        let value = sheet.getCell(gljContextMenu.selectedRow,gljContextMenu.selectedCol).value();
+                        if(gljContextMenu.selectedRow>sheetData.length-1||value==null){
+                            return true;
+                        }
+                        if(gljOprObj.detailSetting.header[gljContextMenu.selectedCol].dataCode == 'isSummation'){//累加列恢显
+                            return true;
+                        }
+                        return false;
                     },
                     callback: function () {
                         gljContextMenu.clipboard={
@@ -221,8 +227,16 @@ var gljContextMenu = {
                     name: '粘贴',
                     icon: 'fa-clipboard',
                     disabled: function () {
-                        var sheetData = gljOprObj.detailData;
-                        return gljContextMenu.selectedRow>sheetData.length||gljContextMenu.clipboard==null;
+                        let sheetData = gljOprObj.detailData;
+                        let dataCode = gljOprObj.detailSetting.header[gljContextMenu.selectedCol].dataCode;
+                        if(gljContextMenu.selectedRow>sheetData.length||gljContextMenu.clipboard==null){
+                            return true;
+                        }
+                        //结果列和累加列灰显
+                        if(dataCode == 'result' || dataCode == 'isSummation'){
+                            return true;
+                        }
+                        return false;
                     },
                     callback: function () {
                         var sheet = subSpread.getActiveSheet();

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

@@ -3,7 +3,7 @@
  */
 let installationFeeObj={
     rationInstallSheet:null,
-    rationInstallData:null,
+    rationInstallData:[],
     rationInstallSetting:{
         header: [
             {headerName: "按统一设置", headerWidth: 80, dataCode: "unifiedSetting", dataType: "String",cellType: "checkBox"},

+ 14 - 7
web/building_saas/main/js/views/project_view.js

@@ -277,8 +277,8 @@ var projectObj = {
         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) {
-                normalUpdate(node,value);
+            if (projectInfoObj.projectInfo.engineeringInfo.bill_lib.length === 0) {
+                normalUpdate(node,value,stdCode === orgCode);
             } 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) {
@@ -334,23 +334,29 @@ var projectObj = {
                     searchStdBillsAndUpdate(stdMatchCode, value);
                     return;
                 } else {
-                   if (confirm('已存在该编码的清单,是否继续?')) {
+                    hintBox.infoBox("系统提示","已存在该编码的清单,是否继续?",2,function () {
+                        searchStdBillsAndUpdate(stdMatchCode, value);
+                    },function () {
+                        me.mainController.refreshTreeNode([node], false);
+                    },['确定','取消']);
+                    return;
+                   /*if (confirm('已存在该编码的清单,是否继续?')) {
                        // formatCode = project.Bills.newFormatCode(stdMatchCode, node.data.code);
                         searchStdBillsAndUpdate(stdMatchCode, value);
                         return;
                     }else {
                        this.mainController.refreshTreeNode([node], false);
                        return;
-                   }
+                   }*/
                 }
             }
         }
         normalUpdate(node,value);
 
 
-        function normalUpdate(billnode,codeValue) {//在标准库中没有找到清单时改分项为补项再更新
+        function normalUpdate(billnode,codeValue,onNeedCheck) {//在标准库中没有找到清单时改分项为补项再更新
             let toBX = false;
-            if(billnode.data.type == billType.FX){
+            if(onNeedCheck!==true && billnode.data.type == billType.FX){
                 billnode.data.type = billType.BX;
                  toBX = true;
             }
@@ -1378,8 +1384,9 @@ var projectObj = {
     getBoldFontStyle: function (node, colSetting) {
         let style = new GC.Spread.Sheets.Style();
         if(node.sourceType !== this.project.Bills.getSourceType() || node.data.type !== billType.DXFY){
-            return null
+            return null;
         }
+
         //备注暂无字段
         let stringFields = [
             'code',