Browse Source

定额计量单位悬停,项目特征表格调整,左右拖动调整大小功能

zhangweicheng 6 years ago
parent
commit
9f624945e5

+ 3 - 2
public/web/sheet/sheet_common.js

@@ -539,7 +539,7 @@ var sheetCommonObj = {
         };
         return new ComboCellForActiveCell();
     },
-    getTipsCombo:function (forLocked,tips,setting) {
+    getTipsCombo:function (forLocked,tips,setting,node) {
         let getTipsCombo = function () {
             this.clickCom=false;
         };
@@ -550,7 +550,8 @@ var sheetCommonObj = {
                     this.clickCom = false;
                     return;
                 }
-                TREE_SHEET_HELPER.delayShowTips(hitinfo,setting,tips);
+                let text =  typeof tips == 'function'?tips(node):tips;
+                TREE_SHEET_HELPER.delayShowTips(hitinfo,setting,text);
             };
             getTipsCombo.prototype.processMouseLeave = function (hitinfo) {
                 TREE_SHEET_HELPER.hideTipsDiv();

+ 2 - 1
web/building_saas/css/custom.css

@@ -259,6 +259,7 @@ legend.legend{
 }
 
 .item_spread{
-    width: 30%;
+    width: 29.8%;
     float: left;
+    background: #F1F1F1
 }

+ 1 - 0
web/building_saas/main/html/main.html

@@ -174,6 +174,7 @@
                               <div class="tab-content" id="tabCon">
                                   <div class="tab-pane active" id="subItems" role="tabpanel">
                                       <div class="main-data-bottom ovf-hidden" id="subSpread" style="display: none" tabindex="0"></div>
+                                      <div class="main-data-bottom ovf-hidden" id="rgResize" style="width: 0.2%; height: 100%; resize:horizontal; cursor: w-resize; float: left; background: #F1F1F1"></div>
                                       <div class="main-data-bottom ovf-hidden item_spread" id="replaceM" style="display: none" ></div>
                                       <div class="main-data-bottom ovf-hidden" id="tabZMHS" style="display: none">
                                           <div class=" main-data-bottom ovf-hidden" style="width: 60%; float: left; margin: 0; padding:0;" id="coeSpread"></div>

+ 34 - 2
web/building_saas/main/js/controllers/material_controller.js

@@ -2,6 +2,7 @@
  * Created by zhang on 2018/9/12.
  */
 let MaterialController = {
+    subSpreadDivWidth:"",
     //规则相关映射
     rule1: function (node) {
         let itemText = node.data.itemCharacterText;
@@ -164,11 +165,15 @@ let MaterialController = {
     showReplaceDiv:function (node) {
         $("#subSpread").addClass("ration_glj_spread");
         $("#replaceM").show();
-        if(node) this.showReplaceSpread(node);//如果不是只刷新页面
+        $("#rgResize").show();// 拖动调整大小功能添加
+        // 2018-11-07 需求变更,这个项目特征替换表格暂时隐藏不删除,以后可能还要用,先把项目初始化这句注释掉
+       // if(node) this.showReplaceSpread(node);//如果不是只刷新页面
+        this.showItemCharacterText(node);//只显示文本
         refreshSubSpread();
     },
     hideReplaceDiv:function(){
         $("#subSpread").removeClass("ration_glj_spread");
+        $("#subSpread").css("width",""); //左右拖动调整表格大小的时候会设置css属性,所以隐藏这个div的时候也要把这个属性给去掉
         $("#replaceM").hide();
         refreshSubSpread();
     },
@@ -201,6 +206,22 @@ let MaterialController = {
         sheetCommonObj.showData(this.sheet, this.setting,this.datas);
         this.sheet.setRowCount(this.datas.length);
     },
+    showItemCharacterText:function (node) {
+        let text="";
+        let selected = node?node:projectObj.project.mainTree.selected;
+        let parent = selected.parent;
+        if(selected&&parent){
+            text = parent.data.itemCharacterText?parent.data.itemCharacterText.replace(/\n/g,"<br>"):"";
+        }
+        if(text == "") {//为空的时候不显示
+            $("#replaceM").hide();
+            $("#subSpread").removeClass("ration_glj_spread");
+            $('#subSpread').css('width','');
+            return;
+        }
+        $('#subSpread').css('width',MaterialController.subSpreadDivWidth);
+        $("#replaceM").html(text);
+    },
     getItems:function(characterText){
         if(!characterText) return;
         let strArray =  characterText.split(/\n/);
@@ -238,4 +259,15 @@ let MaterialController = {
             if(!_.isEmpty(doc)) this.postReplace([{glj:ration_glj,doc:doc}]);
         }
     }
-};
+};
+
+let rg_sideResizeEles = {};
+rg_sideResizeEles.id = 'tabRG';
+rg_sideResizeEles.resize = $('#rgResize');
+rg_sideResizeEles.nearElement = $('#subSpread');
+rg_sideResizeEles.farElement = $('#replaceM');
+rg_sideResizeEles.nav = null;
+slideResize(rg_sideResizeEles, {min: 100, max: $('#tabCon').width()-100}, 'width', function(){
+    MaterialController.subSpreadDivWidth = $('#subSpread').css('width');
+    refreshSubSpread();
+});

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

@@ -568,8 +568,8 @@ var gljOprObj = {
         this.detailSheet.getRange(-1, 0, -1, this.detailSetting.header.length).locked(true);//锁住工程量明细的所有列
     },
     showRationGLJData: function (node) {
-        var gljList = [];
-        var ration_glj = projectObj.project.ration_glj;
+        let gljList = [];
+        let ration_glj = projectObj.project.ration_glj;
         node = node ? node : projectObj.project.mainTree.selected;
         if (node.sourceType == ModuleNames.ration) {
             if(node.data.type==rationType.gljRation){

+ 22 - 1
web/building_saas/main/js/views/main_tree_col.js

@@ -255,7 +255,11 @@ let MainTreeCol = {
              if(node.sourceType == ModuleNames.bills &&projectObj.ifItemCharHiden(setting)){//清单、并且项目特征列隐藏的时候悬浮提示
                 tips = node.data.itemCharacterText?node.data.itemCharacterText:'';
              }
-                    let dynamicCombo = sheetCommonObj.getTipsCombo(true,tips,setting);//sheetCommonObj.getDynamicCombo(true);
+            if(node.sourceType == ModuleNames.ration && node.data.type == rationType.ration){//定额类型时,显示人材机,工作内容等
+                //这里的人材机需要进行过滤,在初始化时组装会影响性能,应实时显示
+                tips = MainTreeCol.getRationUnitTips
+            }
+             let dynamicCombo = sheetCommonObj.getTipsCombo(true,tips,setting,node);//sheetCommonObj.getDynamicCombo(true);
             dynamicCombo.itemHeight(10).items(['m', 'm2', 'm3', 'km', 't', 'kg', '台班', '工日', '昼夜', '元', '项', '处', '个', '件',
                 '根', '组', '系统', '台', '套', '株', '丛', '缸', '支', '只', '块', '座', '对', '份', '樘', '攒', '榀']).editable(true);
             return dynamicCombo;
@@ -409,6 +413,23 @@ let MainTreeCol = {
             }
             ;
         }
+    },
+    getRationUnitTips:function (node) {
+        let tips="";
+        let ration_glj = projectObj.project.ration_glj;
+        let gljList = gljOprObj.filterGljByRation(node.data, ration_glj.datas);
+        for(let glj of gljList){
+            tips += `${glj.code} ${glj.name}${glj.specs ? '&nbsp;&nbsp;&nbsp;' + glj.specs : ''}&nbsp;&nbsp&nbsp;${glj.unit}&nbsp;&nbsp;&nbsp;${glj.quantity}<br>`;
+        }
+        if(node.data.content && node.data.content.toString().trim() !== ''){
+            tips += `工作内容:<br>`;
+            tips += `${node.data.content.replace(/\n/g,"<br>")}<br>`;
+        }
+        if(node.data.annotation && node.data.annotation.toString().trim() !== ''){
+            tips += `附注:<br>`;
+            tips += `${node.data.annotation.replace(/\n/g,"<br>")}<br>`;
+        }
+        return tips
     }
 };