瀏覽代碼

子目换算功能

zhangweicheng 7 年之前
父節點
當前提交
ea48b5b19f

+ 1 - 0
config/gulpConfig.js

@@ -129,6 +129,7 @@ module.exports = {
         'web/building_saas/report/js/jpc_output.js',
         'web/building_saas/report/js/jpc_output.js',
         'web/building_saas/main/js/views/character_content_view.js',
         'web/building_saas/main/js/views/character_content_view.js',
         'web/building_saas/main/js/views/glj_view.js',
         'web/building_saas/main/js/views/glj_view.js',
+        'web/building_saas/main/js/views/zmhs_view.js',
         'web/building_saas/main/js/views/sub_view.js',
         'web/building_saas/main/js/views/sub_view.js',
         'web/building_saas/main/js/views/fee_rate_view.js',
         'web/building_saas/main/js/views/fee_rate_view.js',
         'web/building_saas/main/js/views/sub_fee_rate_views.js',
         'web/building_saas/main/js/views/sub_fee_rate_views.js',

+ 0 - 1
modules/main/facade/quantity_detail_facade.js

@@ -41,7 +41,6 @@ let updateFunctionMap = {
 }
 }
 
 
 async function saveQuantityDetail(datas) {
 async function saveQuantityDetail(datas) {
-    console.log(datas);
     let doc = datas;
     let doc = datas;
     doc.ID = uuidV1();
     doc.ID = uuidV1();
     if(doc.refreshQuantity==false){ //如果选择了不替换工程量,则清空
     if(doc.refreshQuantity==false){ //如果选择了不替换工程量,则清空

+ 10 - 2
web/building_saas/main/html/main.html

@@ -111,11 +111,14 @@
                                   <li class="nav-item">
                                   <li class="nav-item">
                                       <a class="nav-link active" id="linkGLJ" data-toggle="tab" href="#subSpread" role="tab">人材机</a>
                                       <a class="nav-link active" id="linkGLJ" data-toggle="tab" href="#subSpread" role="tab">人材机</a>
                                   </li>
                                   </li>
-                                  <li class="nav-item">
-                                      <a class="nav-link" id="linkFZTJ" data-toggle="tab" href="#subSpread" role="tab">子目换算</a>
+                              <!--    <li class="nav-item">
+                                      <a class="nav-link" id="linkFZTJ" data-toggle="tab" href="#subSpread" role="tab">附注条件</a>
                                   </li>
                                   </li>
                                   <li class="nav-item">
                                   <li class="nav-item">
                                       <a class="nav-link" id="linkFZDE" data-toggle="tab" href="#subSpread" role="tab">辅助定额</a>
                                       <a class="nav-link" id="linkFZDE" data-toggle="tab" href="#subSpread" role="tab">辅助定额</a>
+                                  </li>-->
+                                  <li class="nav-item">
+                                      <a class="nav-link" id="linkZMHS" data-toggle="tab" href="#subSpread" role="tab">子目换算</a>
                                   </li>
                                   </li>
                                   <li class="nav-item" id="AZZJF_div" style="display: none">
                                   <li class="nav-item" id="AZZJF_div" style="display: none">
                                       <a class="nav-link" id="linkAZZJF" data-toggle="tab" href="#subSpread" role="tab">安装增加费</a>
                                       <a class="nav-link" id="linkAZZJF" data-toggle="tab" href="#subSpread" role="tab">安装增加费</a>
@@ -138,6 +141,10 @@
                                   <div class="tab-pane active" id="subItems" role="tabpanel">
                                   <div class="tab-pane active" id="subItems" role="tabpanel">
                                       <div class="main-data-bottom ovf-hidden" id="subSpread" style="display: none">
                                       <div class="main-data-bottom ovf-hidden" id="subSpread" style="display: none">
                                       </div>
                                       </div>
+                                      <div class="main-data-bottom ovf-hidden" id="tabZMHS" style="display: none">
+                                          <div class=" main-data-bottom ovf-hidden" style="width: 50%; float: left; margin: 0; padding:0;" id="coeSpread"></div>
+                                          <div class=" main-data-bottom ovf-hidden" style="width: 50%; float: left; margin: 0; padding:0;" id="assSpread"></div>
+                                      </div>
                                       <div class="main-data-bottom ovf-hidden" style="display: none" id="comments">
                                       <div class="main-data-bottom ovf-hidden" style="display: none" id="comments">
                                           <textarea class="form-control" rows="8" readonly=""></textarea>
                                           <textarea class="form-control" rows="8" readonly=""></textarea>
                                       </div>
                                       </div>
@@ -1239,6 +1246,7 @@
         <script type="text/javascript" src="/web/building_saas/report/js/rpt_print.js"></script>
         <script type="text/javascript" src="/web/building_saas/report/js/rpt_print.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/character_content_view.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/character_content_view.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/glj_view.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/glj_view.js"></script>
+        <script type="text/javascript" src="/web/building_saas/main/js/views/zmhs_view.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/sub_view.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/sub_view.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/fee_rate_view.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/fee_rate_view.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/sub_fee_rate_views.js"></script>
         <script type="text/javascript" src="/web/building_saas/main/js/views/sub_fee_rate_views.js"></script>

+ 2 - 0
web/building_saas/main/js/main.js

@@ -14,6 +14,7 @@ $(function () {
     mainResizeEles.nav = mainResizeEles.farElement.children('ul.nav');
     mainResizeEles.nav = mainResizeEles.farElement.children('ul.nav');
     loadSize(mainResizeEles, 'height', function() {
     loadSize(mainResizeEles, 'height', function() {
         refreshSubSpread();
         refreshSubSpread();
+        zmhs_obj.refresh();
     });
     });
 
 
     $("#header-menu").removeAttr('style');
     $("#header-menu").removeAttr('style');
@@ -43,6 +44,7 @@ $(function () {
     slideResize(mainResizeEles, {min: 170, max: 700}, 'height', function() {
     slideResize(mainResizeEles, {min: 170, max: 700}, 'height', function() {
         projectObj.mainSpread.refresh();
         projectObj.mainSpread.refresh();
         refreshSubSpread();
         refreshSubSpread();
+        zmhs_obj.refresh();
     });
     });
 
 
     /*const projectId = scUrlUtil.GetQueryString('project');
     /*const projectId = scUrlUtil.GetQueryString('project');

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

@@ -587,7 +587,7 @@ var Ration = {
             billQuantity = parseFloat(billQuantity);
             billQuantity = parseFloat(billQuantity);
             node.data.contain = contain;
             node.data.contain = contain;
             node.data.quantityEXP="QDL*"+contain;
             node.data.quantityEXP="QDL*"+contain;
-            node.data.quantity=scMathUtil.roundForObj(billQuantity*contain,getDecimal("quantity"),node);
+            node.data.quantity=scMathUtil.roundForObj(billQuantity*contain,getDecimal("quantity",node));
             let times = parseInt(node.data.unit)
             let times = parseInt(node.data.unit)
             if (!isNaN(times)) {
             if (!isNaN(times)) {
                 node.data.quantityEXP+='*'+times;
                 node.data.quantityEXP+='*'+times;

+ 4 - 6
web/building_saas/main/js/models/ration_ass.js

@@ -42,8 +42,7 @@ var ration_ass = {
         ration_ass.prototype.refreshAfterUpdate=function(data){
         ration_ass.prototype.refreshAfterUpdate=function(data){
             this.updateRation(data.rationID,data.doc);
             this.updateRation(data.rationID,data.doc);
             //this.updateRationGLJ(data.ration_glj_list);
             //this.updateRationGLJ(data.ration_glj_list);
-            gljOprObj.assSheetData[data.editIndex].actualValue = data.actualValue;
-            sheetCommonObj.showData(gljOprObj.assSheet,gljOprObj.assSetting,gljOprObj.assSheetData);
+            zmhs_obj.showAssData();
         };
         };
 
 
         ration_ass.prototype.updateRation = function (rationID,doc) {
         ration_ass.prototype.updateRation = function (rationID,doc) {
@@ -69,10 +68,9 @@ var ration_ass = {
         };
         };
 
 
         ration_ass.prototype.refreshAfterDelete=function(data){
         ration_ass.prototype.refreshAfterDelete=function(data){
-            var glj_list = projectObj.project.ration_coe.datas;
-            _.remove(glj_list,data.query);
-            _.remove(gljOprObj.sheetData,data.query);
-            sheetCommonObj.showData(gljOprObj.coeSheet,gljOprObj.coeSetting,gljOprObj.sheetData);
+            var list = projectObj.project.ration_coe.datas;
+            _.remove(list,data.query);
+            zmhs_obj.showAssData();
         };
         };
         ration_ass.prototype.CreateNewAss = function (std) {
         ration_ass.prototype.CreateNewAss = function (std) {
             var newAssList = []
             var newAssList = []

+ 3 - 8
web/building_saas/main/js/models/ration_coe.js

@@ -38,9 +38,7 @@ var ration_coe = {
         };
         };
         ration_coe.prototype.refreshAfterSave=function(data){
         ration_coe.prototype.refreshAfterSave=function(data){
             projectObj.project.ration_coe.addDatasToList(data);
             projectObj.project.ration_coe.addDatasToList(data);
-            gljOprObj.showCoeData(gljOprObj.coeSheet,gljOprObj.coeSetting,data);
-            gljOprObj.coeSheetData=data;
-            // SheetDataHelper.loadSheetData(setting, rationLibObj.sectionRationsSpread.getActiveSheet(), datas);
+            zmhs_obj.showCoeData();
         };
         };
 
 
         ration_coe.prototype.addDatasToList = function (datas) {
         ration_coe.prototype.addDatasToList = function (datas) {
@@ -65,16 +63,13 @@ var ration_coe = {
             _.forEach(data.doc, function(n, key) {
             _.forEach(data.doc, function(n, key) {
                 coe_list[coe_index][key] = n;
                 coe_list[coe_index][key] = n;
             });
             });
-
-            var showList = _.filter(coe_list,{'projectID':data.query.projectID,'rationID':coe_list[coe_index].rationID});
-            gljOprObj.coeSheetData=showList;
-            gljOprObj.showCoeData(gljOprObj.coeSheet,gljOprObj.coeSetting,showList);
+            zmhs_obj.showCoeData();
         };
         };
         ration_coe.prototype.refreshAfterDelete=function(data){
         ration_coe.prototype.refreshAfterDelete=function(data){
             var glj_list = projectObj.project.ration_coe.datas;
             var glj_list = projectObj.project.ration_coe.datas;
             _.remove(glj_list,data.query);
             _.remove(glj_list,data.query);
             _.remove(gljOprObj.sheetData,data.query);
             _.remove(gljOprObj.sheetData,data.query);
-            gljOprObj.showCoeData(gljOprObj.coeSheet,gljOprObj.coeSetting,gljOprObj.sheetData);
+            zmhs_obj.showCoeData();
         };
         };
 
 
         ration_coe.prototype.getRationCoedata=function(newRation,data){
         ration_coe.prototype.getRationCoedata=function(newRation,data){

File diff suppressed because it is too large
+ 4 - 349
web/building_saas/main/js/views/glj_view.js


+ 23 - 33
web/building_saas/main/js/views/sub_view.js

@@ -4,12 +4,14 @@
 //modified by zhong on 2017-08-30
 //modified by zhong on 2017-08-30
 // Tab panes 下有多个Spread时,相互之间不能正确显示。改成一个Spread下多个Sheet。
 // Tab panes 下有多个Spread时,相互之间不能正确显示。改成一个Spread下多个Sheet。
 //特征及内容spread,解决不能正确显示spread
 //特征及内容spread,解决不能正确显示spread
+
+//zhang 5-31  删除附注条件、辅助定额tab,增加子目换算tab
 contentOprObj.buildSheet($("#jobSpread")[0]);
 contentOprObj.buildSheet($("#jobSpread")[0]);
 characterOprObj.buildSheet($("#itemSpread")[0]);
 characterOprObj.buildSheet($("#itemSpread")[0]);
 $("#tzjnrCon").hide();
 $("#tzjnrCon").hide();
 $("#subSpread").show();
 $("#subSpread").show();
-var subSpread = sheetCommonObj.createSpread($("#subSpread")[0], 6);
-subSpread.getSheet(4).name('JSCX');
+var subSpread = sheetCommonObj.createSpread($("#subSpread")[0], 4);
+subSpread.getSheet(2).name('JSCX');
 
 
 pageCCOprObj.active = false;
 pageCCOprObj.active = false;
 
 
@@ -19,21 +21,15 @@ gljOprObj.initSheet(subSpread.getSheet(0));
 SheetDataHelper.protectdSheet(subSpread.getSheet(0));
 SheetDataHelper.protectdSheet(subSpread.getSheet(0));
 // assistOprObj.initSheet(subSpread.getSheet(1));
 // assistOprObj.initSheet(subSpread.getSheet(1));
 // sheetCommonObj.shieldAllCells(subSpread.getSheet(1), assistOprObj.setting);
 // sheetCommonObj.shieldAllCells(subSpread.getSheet(1), assistOprObj.setting);
-//附注条件
-gljOprObj.initCoeSheet(subSpread.getSheet(2));
-SheetDataHelper.protectdSheet(subSpread.getSheet(2));
 
 
-//辅助定额
-gljOprObj.initAssSheet(subSpread.getSheet(1));
-SheetDataHelper.protectdSheet(subSpread.getSheet(1));
 
 
 //工程量明细
 //工程量明细
-gljOprObj.initDetailSheet(subSpread.getSheet(3));
-SheetDataHelper.protectdSheet(subSpread.getSheet(3));
+gljOprObj.initDetailSheet(subSpread.getSheet(1));
+SheetDataHelper.protectdSheet(subSpread.getSheet(1));
 
 
 //安装增加费
 //安装增加费
-installationFeeObj.initRationInstallSheet(subSpread.getSheet(5));
-SheetDataHelper.protectdSheet(subSpread.getSheet(5));
+installationFeeObj.initRationInstallSheet(subSpread.getSheet(3));
+SheetDataHelper.protectdSheet(subSpread.getSheet(3));
 gljContextMenu.loadGLJSpreadContextMenu();
 gljContextMenu.loadGLJSpreadContextMenu();
 
 
 $("#linkGLJ").click(function(){
 $("#linkGLJ").click(function(){
@@ -47,23 +43,6 @@ $("#linkGLJ").click(function(){
     //subSpread.getActiveSheet().setValue(0, 0, "工料机");
     //subSpread.getActiveSheet().setValue(0, 0, "工料机");
 });
 });
 
 
-$("#linkFZDE").click(function(){
-    $("#subItems").children().hide();
-    $("#subSpread").show();
-    pageCCOprObj.active = false;
-    refreshSubSpread();
-    subSpread.setActiveSheetIndex(1);
-    gljOprObj.activeTab='#linkFZDE';
-});
-$("#linkFZTJ").click(function(){
-    $("#subItems").children().hide();
-    $("#subSpread").show();
-    pageCCOprObj.active = false;
-    refreshSubSpread();
-    subSpread.setActiveSheetIndex(2);
-    gljOprObj.activeTab='#linkFZTJ';
-});
-
 
 
 
 
 $("#linkAZZJF").click(function(){
 $("#linkAZZJF").click(function(){
@@ -71,7 +50,7 @@ $("#linkAZZJF").click(function(){
     $("#subSpread").show();
     $("#subSpread").show();
     pageCCOprObj.active = false;
     pageCCOprObj.active = false;
     refreshSubSpread();
     refreshSubSpread();
-    subSpread.setActiveSheetIndex(5);
+    subSpread.setActiveSheetIndex(3);
     gljOprObj.activeTab='#linkAZZJF';
     gljOprObj.activeTab='#linkAZZJF';
 });
 });
 
 
@@ -80,7 +59,7 @@ $("#linkGCLMX").click(function(){
     $("#subSpread").show();
     $("#subSpread").show();
     pageCCOprObj.active = false;
     pageCCOprObj.active = false;
     refreshSubSpread();
     refreshSubSpread();
-    subSpread.setActiveSheetIndex(3);
+    subSpread.setActiveSheetIndex(1);
     gljOprObj.activeTab='#linkGCLMX';
     gljOprObj.activeTab='#linkGCLMX';
 });
 });
 
 
@@ -89,8 +68,8 @@ $("#linkJSCX").click(function(){        // 计算程序
     $("#subSpread").show();
     $("#subSpread").show();
     pageCCOprObj.active = false;
     pageCCOprObj.active = false;
     refreshSubSpread();
     refreshSubSpread();
-    subSpread.setActiveSheetIndex(4);
-    calcProgramObj.initSheet(subSpread.getSheet(4));
+    subSpread.setActiveSheetIndex(2);
+    calcProgramObj.initSheet(subSpread.getSheet(2));
 
 
     if (!projectObj.mainController.tree.selected)
     if (!projectObj.mainController.tree.selected)
         projectObj.mainController.tree.selected = projectObj.mainController.tree.firstNode();
         projectObj.mainController.tree.selected = projectObj.mainController.tree.firstNode();
@@ -99,6 +78,17 @@ $("#linkJSCX").click(function(){        // 计算程序
     gljOprObj.activeTab='#linkJSCX';
     gljOprObj.activeTab='#linkJSCX';
 });
 });
 
 
+$("#linkZMHS").click(function(){        // 子目换算
+    $("#subItems").children().hide();
+    $("#tabZMHS").show();
+    pageCCOprObj.active = false;
+    refreshSubSpread();
+
+
+    gljOprObj.activeTab='#linkZMHS';
+});
+
+tabZMHS
 //特征及内容
 //特征及内容
 $("#linkTZJNR").click(function () {
 $("#linkTZJNR").click(function () {
     $("#subItems").children().hide();
     $("#subItems").children().hide();

+ 384 - 0
web/building_saas/main/js/views/zmhs_view.js

@@ -0,0 +1,384 @@
+/**
+ * Created by zhang on 2018/5/30.
+ */
+
+let zmhs_obj = {
+    coeSpread:null,
+    coeSheet:null,
+    coeSheetData:[],
+    coeSetting: {
+        header: [
+            {headerName: "调整", headerWidth: 100, dataCode: "isAdjust", dataType: "String", cellType: "checkBox"},
+            {headerName: "条件", headerWidth: 120, dataCode: "name", dataType: "String", cellType: "button"},
+            {headerName: "内容", headerWidth: 350, dataCode: "content", dataType: "String", hAlign: "left"}
+        ],
+        view: {
+            lockColumns: [0, 1, 2]
+        }
+    },
+    assSpread:null,
+    assSheet:null,
+    assSheetData: [],
+    assSetting: {
+        header: [
+            {headerName: "调整名称", headerWidth: 100, dataCode: "name", dataType: "String"},
+            {headerName: "定额值", headerWidth: 120, dataCode: "stdValue", hAlign: "right", dataType: "String"},
+            {headerName: "实际值", headerWidth: 120, dataCode: "actualValue", hAlign: "right", dataType: "String"}
+        ],
+        view: {
+            lockColumns: [0, 1]
+        }
+    },
+    initSpread:function () {
+        this.coeSpread = SheetDataHelper.createNewSpread($("#coeSpread")[0]);
+        this.assSpread = SheetDataHelper.createNewSpread($("#assSpread")[0]);
+        this.coeSheet = this.coeSpread.getSheet(0);
+        sheetCommonObj.initSheet(this.coeSheet, this.coeSetting, 30);
+        this.coeSheet.name('ration_coe');
+        this.coeSheet.bind(GC.Spread.Sheets.Events.CellClick, this.onCoeCellClick);
+        this.coeSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, this.onButtonClick);
+        this.coeSheet.bind(GC.Spread.Sheets.Events.EditStarting, function (e,args) {
+            args.cancel = true;
+        });
+        this.assSheet = this.assSpread.getSheet(0);
+        sheetCommonObj.initSheet(this.assSheet, this.assSetting, 30);
+        this.assSheet.bind(GC.Spread.Sheets.Events.EditEnded, this.onAssEditEnded);
+        this.assSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onAssRangeChanged);
+        this.assSheet.name('ration_ass');
+        SheetDataHelper.protectdSheet(this.coeSheet);
+    },
+    showCoeData:function (node) {
+        let selected = node?node:projectObj.project.mainTree.selected;
+        let ration_coe = projectObj.project.ration_coe;
+        let coeList = [];
+        if(selected&&selected.sourceType == "ration"){
+            let ration = selected.data;
+            coeList = ration_coe.getCoeByRationID(ration.ID);
+        }
+        sheetCommonObj.showData(this.coeSheet, this.coeSetting,coeList);
+        this.coeSheet.floatingObjects.remove("customerCoe");
+        if (coeList.length > 0) {
+            var cus_index = _.findIndex(coeList, function (item) {
+                return item.coeID == -1;
+            })
+            if (cus_index != -1) {
+                this.addDropDownList();
+                this.addCusButton(cus_index, 1, coeList[cus_index].name);
+            }
+        }
+        this.coeSheetData = coeList;
+
+    },
+    showAssData:function (node) {
+        let selected = node?node:projectObj.project.mainTree.selected;
+        let assList = selected&&selected.data.rationAssList ? selected.data.rationAssList : [];
+        this.assSheet.setRowCount(0);
+        sheetCommonObj.showData(this.assSheet, this.assSetting, assList);
+        this.assSheetData = assList;
+        this.assSheet.getRange(assList.length,-1,this.assSheet.getRowCount()-assList.length, -1, GC.Spread.Sheets.SheetArea.viewport).locked(true);
+
+    },
+    refresh:function () {
+        this.coeSpread?this.coeSpread.refresh():'';
+        this.assSpread?this.assSpread.refresh():'';
+    },
+    showZMHSData:function (node) {
+        if(this.coeSpread&& this.assSpread){
+            this.showCoeData(node);
+            this.showAssData(node);
+            //hide floatingObject
+            var floatingObject = this.coeSheet.floatingObjects.get('customerCoe');
+            if (floatingObject) {
+                floatingObject.isVisible(false);
+            }
+        }
+    },
+    onCoeCellClick: function (sender, args) {
+        let me = zmhs_obj;
+        let floatingObject = me.coeSheet.floatingObjects.get('customerCoe');
+        if(floatingObject){
+            let isVisable = floatingObject.isVisible();
+            if (isVisable) {
+                let result = me.checkIfNeedUpdate();
+                if (result.isNeed) {
+                    projectObj.project.ration_coe.updateCustomerCoe(result);
+                }
+                floatingObject.isVisible(false);
+            }
+        }
+
+    },
+    onButtonClick:function (sender, args) {
+        let me = zmhs_obj;
+        let sheet = args.sheet, row = args.row, col = args.col;
+        let cellType = sheet.getCellType(row, col);
+        if(args.sheet.isEditing()){
+            args.sheet.endEdit();
+        }
+        if (cellType instanceof GC.Spread.Sheets.CellTypes.Button) {
+            if(args.sheetName == 'ration_coe'){
+                me.onCusButtonClick(sender, args);
+            }
+        } else {
+            me.onCoeCheckBoxClick(sender, args)
+        }
+    },
+    onCusButtonClick: function (sender, args) {
+        var me = zmhs_obj;
+        var floatingObject = me.coeSheet.floatingObjects.get('customerCoe');
+        var isVisable = floatingObject.isVisible();
+        if (!isVisable) {
+            me.coeSheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).locked(false);
+            me.showFloationObject(floatingObject, me.coeSheetData[args.row]);
+        } else {
+            var result = me.checkIfNeedUpdate();
+            if (result.isNeed) {
+                projectObj.project.ration_coe.updateCustomerCoe(result);
+            }
+            floatingObject.isVisible(false);
+        }
+    },
+    showFloationObject(floatingObject, data){
+        floatingObject.isVisible(true);
+        var sheet = this.coeSheet;
+        var startRow = this.coeSheetData.length;
+        var endRow = startRow + 7;
+        floatingObject.startRow(startRow);
+        floatingObject.startColumn(1);
+        floatingObject.endColumn(2);
+        floatingObject.endRow(endRow);
+        this.bindFloadingObjectValue(data);
+        sheet.repaint();
+    },
+    bindFloadingObjectValue(data){
+        $('#coe_ration').val(data.coes[0].amount);
+        $('#manual').val(data.coes[1].amount);
+        $('#material').val(data.coes[2].amount);
+        $('#manchine').val(data.coes[3].amount);
+        $('#mainM').val(data.coes[4].amount);
+        $('#equipment').val(data.coes[5].amount);
+    },
+    onInputChange(id, name){
+        var coe = _.find(zmhs_obj.coeSheetData, function (c) {
+            return c.coeID == -1;
+        });
+        var newValue = zmhs_obj.numberValueChecking($('#' + id).val());
+        if (newValue) {
+            newValue = _.round(newValue, 2);
+            if (newValue == coe.coes[name].amount) return;
+            if (id == 'coe_ration') {
+                $('#coe_ration').val(newValue);
+                $('#manual').val(newValue);
+                $('#material').val(newValue);
+                $('#manchine').val(newValue);
+                $('#mainM').val(newValue);
+                $('#equipment').val(newValue);
+            } else {
+                $('#' + id).val(newValue);
+            }
+        } else {
+            $('#' + id).val(coe.coes[name].amount);
+        }
+    },
+    checkIfNeedUpdate(){
+        var data = _.find(zmhs_obj.coeSheetData, function (c) {
+            return c.coeID == -1;
+        });
+        var result = {
+            isNeed: false
+        }
+        var coe_ration = $('#coe_ration').val();
+        var manual = $('#manual').val();
+        var material = $('#material').val();
+        var manchine = $('#manchine').val();
+        var mainM = $('#mainM').val();
+        var equipment = $('#equipment').val();
+        if (coe_ration != data.coes[0].amount) {
+            result.isNeed = true;
+            data.coes[0].amount = coe_ration;
+        }
+        if (manual != data.coes[1].amount) {
+            result.isNeed = true;
+            data.coes[1].amount = manual;
+        }
+        if (material != data.coes[2].amount) {
+            result.isNeed = true;
+            data.coes[2].amount = material;
+        }
+        if (manchine != data.coes[3].amount) {
+            result.isNeed = true;
+            data.coes[3].amount = manchine;
+        }
+        if (mainM != data.coes[4].amount) {
+            result.isNeed = true;
+            data.coes[4].amount = mainM;
+        }
+        if (equipment != data.coes[5].amount) {
+            result.isNeed = true;
+            data.coes[5].amount = equipment;
+        }
+        if (result.isNeed) {
+            result.doc = {
+                coes: data.coes
+            };
+            result.query = {
+                projectID: data.projectID,
+                ID: data.ID,
+                rationID: data.rationID
+            };
+        }
+        return result;
+
+    },
+    numberValueChecking: function (val) {
+        var newval = Number(val);
+        if (number_util.isNumber(newval)) {
+            return newval;
+        } else {
+            if (val) {
+                alert('您输入的数据类型不正确,请重新输入。');
+            }
+            newval = null;
+        }
+        return newval;
+    },
+    onCoeCheckBoxClick:function (sender, args) {
+        let me = zmhs_obj;
+        let checkboxValue = args.sheet.getCell(args.row, args.col).value();
+        let newval = 0;
+        if (checkboxValue) {
+            newval = 0;
+            args.sheet.getCell(args.row, args.col).value(newval);
+        } else {
+            newval = 1;
+            args.sheet.getCell(args.row, args.col).value(newval);
+        }
+        let recode = me.coeSheetData[args.row];
+        projectObj.project.ration_coe.adjustCoeClick(recode, newval);
+    },
+    addCusButton: function (row, col, text) {
+        var cus_button = new GC.Spread.Sheets.CellTypes.Button();
+        zmhs_obj.coeSheet.setCellType(row, col, cus_button, GC.Spread.Sheets.SheetArea.viewport);
+        cus_button.marginLeft(0);
+        cus_button.marginTop(0);
+        cus_button.marginRight(0);
+        cus_button.marginBottom(0);
+        cus_button.text(text);
+        cus_button.buttonBackColor('white');
+        zmhs_obj.coeSheet.repaint();
+    },
+    addDropDownList: function () {
+        var sheet = this.coeSheet;
+        sheet.suspendPaint();
+        var customFloatingObject = new GC.Spread.Sheets.FloatingObjects.FloatingObject("customerCoe");
+        var div = document.createElement('div');
+        div.innerHTML = this.generateHtmlString();
+        customFloatingObject.startRow(1);
+        customFloatingObject.startColumn(1);
+        customFloatingObject.endColumn(2);
+        customFloatingObject.endRow(2);
+        $(div).css('background', 'white');
+        customFloatingObject.content(div);
+        sheet.floatingObjects.add(customFloatingObject);
+        customFloatingObject.isVisible(false);
+        sheet.resumePaint();
+    },
+    generateHtmlString: function () {
+        var newString = "<form ><table border='1px' bordercolor='#CCCCCC' cellspacing='0px' style='border-collapse:collapse;font-size: 10px;>";
+        newString += this.getOneRow('定额', 0, 'coe_ration');
+        newString += this.getOneRow('人工', 1, 'manual');
+        newString += this.getOneRow('材料', 2, 'material');
+        newString += this.getOneRow('机械', 3, 'manchine');
+        newString += this.getOneRow('主材', 4, 'mainM');
+        newString += this.getOneRow('设备', 5, 'equipment');
+        newString += "</table></form>";
+        return newString;
+    },
+    getOneRow: function (text, name, id) {
+        var rowstr = "<tr style='height:10px'><td style='width: 50px'>" + text
+            + ":</td><td style='width: 70px' align='right'><input type='text'value='1' name=" + name
+            + " style='width:30px;border:0;height:14px' align='right' id=" + id + " onchange='zmhs_obj.onInputChange(this.id,this.name)'></td></tr>";
+        return rowstr;
+
+    },
+    onAssEditEnded:function (e,args) {
+        var me = zmhs_obj;
+        if (args.row >= me.assSheetData.length) {
+            me.assSheet.getCell(args.row, args.col).value(null);
+            return;
+        }
+        if (me.assSetting.header[args.col].dataCode == 'actualValue') {//实际值
+            me.updateRationAss(args);
+        }
+    },
+    onAssRangeChanged:function (e,args) {
+        let me = zmhs_obj;
+        if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
+            args.editingText = null;
+        }else if(args.action == GC.Spread.Sheets.RangeChangedAction.paste){
+            args.editingText = args.sheet.getCell(args.row,args.col).value();
+        }
+        if (args.sheetName == 'ration_ass') {
+            me.updateRationAss(args);
+        }
+
+    },
+    updateRationAss: function (args) {
+        var me = zmhs_obj;
+        var newval;
+        newval = me.numberValueChecking(args.editingText);
+        var recode = me.assSheetData[args.row];
+        if (args.editingText === null) {
+            newval = parseFloat(recode.stdValue);
+        }
+        var isValidate = false;
+        if (newval) {
+            isValidate = me.checkingActualValue(recode, newval)
+        }
+        if (isValidate) {
+            newval = scMathUtil.roundTo(newval, -2);
+            projectObj.project.ration_ass.updateActualValue(me.assSheetData, args.row, newval)
+        } else {
+            newval = recode.actualValue;
+            me.assSheet.getCell(args.row, args.col).value(newval);
+        }
+    },
+    checkingActualValue(record, newval){
+        let minExist = record.minValue && record.minValue != '0' ? true : false;
+        let maxExist = record.maxValue && record.maxValue != '0' ? true : false;
+        let minValue = parseFloat(record.minValue);
+        let maxValue = parseFloat(record.maxValue);
+
+        if (!maxExist && minExist) {
+            if (newval < minValue) {
+                alert('实际值应≥' + minValue);
+                return false;
+            }
+        }
+        if (maxExist && !minExist) {
+            if (newval > maxValue) {
+                alert('实际值应≤' + maxValue);
+                return false;
+            }
+        }
+        if (maxExist && minExist) {
+            if (newval < minValue || newval > maxValue) {
+                alert('实际值应介于' + minValue + '~' + maxValue + '之间');
+                return false;
+            }
+        }
+        return true;
+    }
+
+};
+
+
+$(function () {
+    $('#linkZMHS').on('shown.bs.tab', function (e) {
+        if(zmhs_obj.coeSpread == null || zmhs_obj.assSpread == null){
+            zmhs_obj.initSpread();
+        }
+        zmhs_obj.refresh();
+        zmhs_obj.showZMHSData();
+    })
+});

+ 1 - 1
web/building_saas/pm/js/pm_newMain.js

@@ -1944,7 +1944,7 @@ function getAddTenderFile(tenderName, selected, options){
     //非新建
     //非新建
     else{
     else{
         rst.id = selected.val();
         rst.id = selected.val();
-        rst.name =  selected.text();
+        rst.name =  selected.children("option:selected").text();
     }
     }
     return rst;
     return rst;
 }
 }