浏览代码

slideResize.js、辅助定额编号bug、人材机编辑器拖动、定额编辑器子目换算拖动

zhongzewei 6 年之前
父节点
当前提交
c79c7bf808

+ 2 - 1
config/gulpConfig.js

@@ -178,7 +178,8 @@ module.exports = {
         'public/web/ztree_common.js',
         'public/web/sheet/sheet_common.js',
         'web/building_saas/complementary_glj_lib/js/sheetOpr.js',
-        'public/web/storageUtil.js'
+        'public/web/storageUtil.js',
+        'public/web/slideResize.js'
     ],
     compleRation_ration_css: [
         'lib/ztree/css/zTreeStyle.css',

+ 1 - 0
modules/all_models/stdBills_bills.js

@@ -14,6 +14,7 @@ const stdBills_bills = new Schema({
             ruleText: String,
             engineering: Number, //工程专业,填计算程序工程专业ID
             Expression: String,
+            comment: String, //备注,后台清单精灵录入
             jobs: [],
             items: [],
             recharge:String,

+ 83 - 0
public/web/slideResize.js

@@ -0,0 +1,83 @@
+'use strict';
+
+/**
+ *
+ *
+ * @author Zhong
+ * @date 2018/11/7
+ * @version
+ */
+
+/*
+ * div之间的水平拖动,适应各种情况
+ * module: 所属模块,防止不同页面相同id导致localstorage数据被覆盖
+ * eleObj: resize, parent, left, right
+ * limit: min, max
+ * */
+
+const SlideResize = (function() {
+    let mouseMoveCount = 0;
+    function horizontalSlide(module, eleObj, limit, callback) {
+        const triggerCBSize = 5;
+        let drag = false,
+            startPoint = 0,
+            leftWidth = 0,
+            rightWidth = 0,
+            leftChange = 0,
+            rightChange = 0,
+            limitMax = 0;
+
+        eleObj.resize.mousedown(function (e) {
+            drag = true;
+            startPoint = e.clientX;
+            leftWidth = eleObj.left.width();
+            rightWidth = eleObj.right.width();
+            limitMax = eval(limit.max);
+        });
+        $('body').mousemove(function (e) {
+            if (drag) {
+                let moveSize = e.clientX - startPoint;
+                leftChange = leftWidth + moveSize;
+                leftChange = leftChange < limit.min ? limit.min : leftChange;
+                leftChange = leftChange > limitMax ? limitMax - 3 : leftChange;
+                rightChange = rightWidth - moveSize;
+                rightChange = rightChange < limit.min ? limit.min : rightChange;
+                rightChange = rightChange > limitMax ? limitMax - 3 : rightChange;
+                let leftPercentWidth = leftChange / eleObj.parent.width() * 100 + '%',
+                    rightPercentWidth = rightChange / eleObj.parent.width() * 100 + '%';
+                eleObj.left.css('width', leftPercentWidth);
+                eleObj.right.css('width', rightPercentWidth);
+                mouseMoveCount += Math.abs(moveSize);
+                if (mouseMoveCount > triggerCBSize && callback) {
+                    callback();
+                    mouseMoveCount = 0;
+                }
+            }
+        });
+        $('body').mouseup(function (e) {
+            if (drag) {
+                drag = false;
+                mouseMoveCount = 0;
+                //将宽度信息存储到localstorage
+                let leftWidthInfo = eleObj.left[0].style.width;
+                setLocalCache(`${module}${eleObj.left.attr('id')}Width`, leftWidthInfo);
+                let rightWidthInfo = eleObj.right[0].style.width;
+                setLocalCache(`${module}${eleObj.right.attr('id')}Width`, rightWidthInfo);
+            }
+        });
+    }
+
+    function loadHorizonWidth(module, eles, callback) {
+        for (let ele of eles) {
+            let cache = getLocalCache(`${module}${ele.attr('id')}Width`);
+            if (cache) {
+                ele.css('width', cache);
+            }
+        }
+        if (callback) {
+            callback();
+        }
+    }
+
+    return {horizontalSlide, loadHorizonWidth}
+})();

+ 11 - 5
web/building_saas/complementary_glj_lib/html/tools-gongliaoji.html

@@ -32,18 +32,23 @@
     <div class="main">
         <div class="content" style="margin-left: 0px;">
             <div class="container-fluid">
-                <div class="row">
-                    <div class="col-lg-3 p-0">
+                <div class="row" id="dataRow">
+                    <div id="leftContent" style="width: 25%;">
                         <div class="print-list">
                             <div class="form-list">
                                 <div id="gljClassSpread" style="height: 100%; width: 100%;"></div>
                             </div>
                         </div>
                     </div>
-                    <div id="GLJListSheet" class="col-lg-6 p-0">
-
+                    <div id="midContent" style="width: 50%">
+                        <div id="leftResize" style="width: 1%; height: 100%; resize:horizontal; cursor: w-resize; float: left; background: #F1F1F1"></div>
+                        <div id="GLJListSheet" class="p-0" style="height: 100%; width: 99%; float: left">
+                        </div>
                     </div>
-                    <div id="gljComponentSheet" class="col-lg-3 p-0">
+                    <div id="rightContent" style="width: 25%" >
+                        <div id="rightResize" style="width: 1%; height: 100%; resize:horizontal; cursor: w-resize; float: left; background: #F1F1F1"></div>
+                        <div id="gljComponentSheet" class="p-0" style="height: 100%; width: 99%; float: left">
+                        </div>
                     </div>
                 </div>
             </div>
@@ -169,6 +174,7 @@
     <script type="text/javascript" src="/public/web/sheet/sheet_common.js"></script>
     <script type="text/javascript" src="/web/building_saas/complementary_glj_lib/js/sheetOpr.js"></script>
     <script type="text/javascript" src="/public/web/storageUtil.js"></script>
+    <script src="/public/web/slideResize.js"></script>
     <!--endinject-->
     <script type="text/javascript" src="<%= overWriteUrl %>"></script>
     <SCRIPT type="text/javascript">

+ 37 - 0
web/building_saas/complementary_glj_lib/js/glj.js

@@ -1,6 +1,43 @@
 /**
  * Created by Zhong on 2017/8/14.
  */
+
+$(document).ready(function () {
+    let moduleName = 'compleGLj';
+    function refreshALlWorkBook() {
+        if (gljClassTreeObj.workBook) {
+            gljClassTreeObj.workBook.refresh();
+        }
+        if (repositoryGljObj.workBook) {
+            repositoryGljObj.workBook.refresh();
+        }
+        if (gljComponentOprObj.workBook) {
+            gljComponentOprObj.workBook.refresh();
+        }
+    }
+    SlideResize.loadHorizonWidth(moduleName, [$('#leftContent'), $('#midContent'), $('#rightContent')], function () {
+        refreshALlWorkBook();
+    });
+    //章节树与人材机表
+    let leftElesObj = {};
+    leftElesObj.resize = $('#leftResize');
+    leftElesObj.parent = $('#dataRow');
+    leftElesObj.left = $('#leftContent');
+    leftElesObj.right = $('#midContent');
+    SlideResize.horizontalSlide(moduleName, leftElesObj, {min: 200, max: `$('#dataRow').width() - $('#rightContent').width() - 200`}, function () {
+        refreshALlWorkBook();
+    });
+    //人材机表与人材机组成物表
+    let rightElesObj = {};
+    rightElesObj.resize = $('#rightResize');
+    rightElesObj.parent = $('#dataRow');
+    rightElesObj.left = $('#midContent');
+    rightElesObj.right = $('#rightContent');
+    SlideResize.horizontalSlide(moduleName, rightElesObj, {min: 200, max: `$('#dataRow').width() - $('#leftContent').width() - 200`}, function () {
+        refreshALlWorkBook();
+    });
+});
+
 let pageOprObj = {
     gljLibName : null,
     stdGljLibId: null,

+ 8 - 7
web/building_saas/complementary_ration_lib/html/dinge.html

@@ -60,9 +60,9 @@
             <!--<li class="nav-item">
                 <a class="nav-link px-3" id="fuzhu" href="<%= redirectCoe %>">子目换算</a>
             </li>-->
-            <li class="nav-item">
+            <!--<li class="nav-item">
                 <a class="nav-link px-3" id="anzhuang" href="<%= redirectInstallation %>">安装增加费</a>
-            </li>
+            </li>-->
         </ul>
         <ul class="nav nav-tabs" role="tablist">
             <li class="nav-item">
@@ -74,8 +74,8 @@
 <div class="main" style="overflow: hidden">
     <div class="content" style="margin-left: 0px">
         <div class="container-fluid">
-            <div class="row">
-                <div class="main-side p-0" style="width: 25%; height: 100%; overflow: hidden">
+            <div class="row" id="dataRow">
+                <div class="main-side p-0" style="width: 25%; height: 100%; overflow: hidden" id="leftContent">
                     <div class="tab-bar">
                         <a href="javascript:void(0);" id="tree_Insert" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="插入"><i class="fa fa-plus" aria-hidden="true"></i></a>
                         <a href="javascript:void(0);" id="tree_remove" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
@@ -125,9 +125,9 @@
                                     <li class="nav-item">
                                         <a class="nav-link" id="linkFZTJ" data-toggle="tab" href="#rDetail" role="tab">子目换算调整</a>
                                     </li>
-                                    <li class="nav-item">
+                                    <!--<li class="nav-item">
                                         <a class="nav-link px-3" id="linkAZZJ" data-toggle="tab" href="#rDetail" role="tab">安装增加费</a>
-                                    </li>
+                                    </li>-->
                                 </ul>
                                 <!-- 内容 -->
                                 <div class="tab-content">
@@ -186,7 +186,7 @@
                     </div>
                 </div>
                 <div class="main-side p-0 main-side-right" id="zmhsContent" style="width: 25%; display: none">
-                    <div class="resize" id="sideResize" style="width: 1%; height: 100%; resize:horizontal; cursor: w-resize; float: left; background: #F1F1F1"></div>
+                    <div class="resize" id="rightResize" style="width: 1%; height: 100%; resize:horizontal; cursor: w-resize; float: left; background: #F1F1F1"></div>
                     <div style="width: 99%; float: left">
                         <div class="main-data-top-fluid" id="mainSpread">
                         </div>
@@ -590,6 +590,7 @@
 <script type="text/javascript" src="/web/building_saas/complementary_ration_lib/js/ration_coe.js"></script>
 <script type="text/javascript" src="/web/building_saas/complementary_ration_lib/js/ration_assist.js"></script>
 <script type="text/javascript" src="/web/building_saas/complementary_ration_lib/js/ration_installation.js"></script>
+<script src="/public/web/slideResize.js"></script>
 <script src="/web/building_saas/complementary_ration_lib/js/coe.js"></script>
 <!--endinject-->
 <script type="text/javascript">

+ 16 - 10
web/building_saas/complementary_ration_lib/js/coe.js

@@ -3,21 +3,27 @@
  */
 //modiyied by zhong on 2017/9/21
 
+let moduleName = 'compleRation';
+$(document).ready(function () {
+    //定额表与子目换算表
+    let rightElesObj = {};
+    rightElesObj.resize = $('#rightResize');
+    rightElesObj.parent = $('#dataRow');
+    rightElesObj.left = $('#mainContent');
+    rightElesObj.right = $('#zmhsContent');
+    SlideResize.horizontalSlide(moduleName, rightElesObj, {min: 200, max: `$('#dataRow').width() - $('#leftContent').width() - 200`}, function () {
+        pageOprObj.refreshAllBooks();
+    });
+});
+
 $('#zmhs').click(function () {
     if(!$(this).hasClass('active')){
         $(this).addClass('active');
         $('#mainContent').css('width', '50%');
         $('#zmhsContent').show();
-      /*  loadSize(sideResizeEles, 'width', function(){
-
-        });*/
-        if(!coeOprObj.workBook){
-            pageObj.initPage();
-        }
-        coeOprObj.workBook.refresh();
-        gljAdjOprObj.workBook.refresh();
-        rationOprObj.workBook.refresh();
-        rationGLJOprObj.sheet.getParent().refresh();
+        SlideResize.loadHorizonWidth(moduleName, [$('#mainContent'), $('#zmhsContent')], function () {
+            pageOprObj.refreshAllBooks();
+        });
     } else {
         $(this).removeClass('active');
         $('#mainContent').css('width', '75%')

+ 38 - 35
web/building_saas/complementary_ration_lib/js/ration.js

@@ -78,12 +78,12 @@ let rationOprObj = {
         let me = rationOprObj,
             sheetGLJ = rationGLJOprObj.sheet, settingGLJ = rationGLJOprObj.setting,
             sheetCoe = rationCoeOprObj.sheet, settingCoe = rationCoeOprObj.setting,
-            sheetAss = rationAssistOprObj.sheet, settingAss = rationAssistOprObj.setting,
-            sheetInst = rationInstObj.sheet, settingInst = rationInstObj.setting;
+            sheetAss = rationAssistOprObj.sheet, settingAss = rationAssistOprObj.setting;
+            //sheetInst = rationInstObj.sheet, settingInst = rationInstObj.setting;
         sheetCommonObj.cleanData(sheetGLJ, settingGLJ, -1);
         sheetCommonObj.cleanData(sheetCoe, settingCoe, -1);
         sheetCommonObj.cleanData(sheetAss, settingAss, -1);
-        sheetCommonObj.cleanData(sheetInst, settingInst, -1);
+        //sheetCommonObj.cleanData(sheetInst, settingInst, -1);
         let cacheSection = me.getCache();
         if (cacheSection && row < cacheSection.length) {
             rationGLJOprObj.getGljItems(cacheSection[row], function () {
@@ -101,13 +101,13 @@ let rationOprObj = {
                 }
             });
             rationAssistOprObj.getAssItems(cacheSection[row]);
-            rationInstObj.getInstItems(cacheSection[row], function () {
+            /*rationInstObj.getInstItems(cacheSection[row], function () {
                 if (focusOnSection){
                     sectionTreeObj.workBook.focus(true);
                 } else {
                     me.workBook.focus(true);
                 }
-            });
+            });*/
         }
         else {
             rationGLJOprObj.currentRationItem = null;
@@ -149,7 +149,7 @@ let rationOprObj = {
                         cacheSection[j]["rationGljList"] = rstData.ops[i]["rationGljList"];
                         cacheSection[j]["rationCoeList"] = rstData.ops[i]["rationCoeList"];
                         cacheSection[j]["rationAssList"] = rstData.ops[i]["rationAssList"];
-                        cacheSection[j]["rationInstList"] = rstData.ops[i]["rationInstList"];
+                        //cacheSection[j]["rationInstList"] = rstData.ops[i]["rationInstList"];
                     }
                 }
             }
@@ -164,7 +164,7 @@ let rationOprObj = {
                                 cacheSection[j]['rationGljList'] : [];
                         updateArr[i]['rationCoeList'] = cacheSection[j]['rationCoeList'] ? cacheSection[j]['rationCoeList'] : [];
                         updateArr[i]['rationAssList'] = cacheSection[j]['rationAssList'];
-                        updateArr[i]['rationInstList'] = cacheSection[j]['rationInstList'];
+                        //updateArr[i]['rationInstList'] = cacheSection[j]['rationInstList'];
                         cacheSection[j] = updateArr[i];
                     }
                 } else {
@@ -175,7 +175,7 @@ let rationOprObj = {
                                 cacheSection[j]['rationGljList'] : [];
                         updateArr[i]['rationCoeList'] = cacheSection[j]['rationCoeList'] ? cacheSection[j]['rationCoeList'] : [];
                         updateArr[i]['rationAssList'] = cacheSection[j]['rationAssList'];
-                        updateArr[i]['rationInstList'] = cacheSection[j]['rationInstList'];
+                        //updateArr[i]['rationInstList'] = cacheSection[j]['rationInstList'];
                         cacheSection[j] = updateArr[i];
                     }
                 }
@@ -664,8 +664,8 @@ let rationOprObj = {
         let me = rationOprObj,
             sheetGLJ = rationGLJOprObj.sheet, settingGLJ = rationGLJOprObj.setting,
             sheetCoe = rationCoeOprObj.sheet, settingCoe = rationCoeOprObj.setting,
-            sheetAss = rationAssistOprObj.sheet, settingAss = rationAssistOprObj.setting,
-            sheetInst = rationInstObj.sheet, settingInst = rationInstObj.setting;
+            sheetAss = rationAssistOprObj.sheet, settingAss = rationAssistOprObj.setting;
+            //sheetInst = rationInstObj.sheet, settingInst = rationInstObj.setting;
         if (me.workBook) {
             if (me.currentRations && me.currentRations["_SEC_ID_" + sectionID] && me.currentRations["_SEC_ID_" + sectionID].length > 0) {
                 let cacheSection = me.currentRations["_SEC_ID_" + sectionID];
@@ -680,18 +680,18 @@ let rationOprObj = {
                         sheetCommonObj.cleanData(sheetGLJ, settingGLJ, -1);
                         sheetCommonObj.cleanData(sheetCoe, settingCoe, -1);
                         sheetCommonObj.cleanData(sheetAss, settingAss, -1);
-                        sheetCommonObj.cleanData(sheetInst, settingInst, -1);
+                        //sheetCommonObj.cleanData(sheetInst, settingInst, -1);
                         rationGLJOprObj.getGljItems(cacheSection[row]);
                         rationCoeOprObj.getCoeItems(cacheSection[row]);
                         rationAssistOprObj.getAssItems(cacheSection[row]);
-                        rationInstObj.getInstItems(cacheSection[row]);
+                        //rationInstObj.getInstItems(cacheSection[row]);
                     }
                     else {
                         rationGLJOprObj.currentRationItem = null;
                         sheetCommonObj.cleanData(sheetGLJ, settingGLJ, -1);
                         sheetCommonObj.cleanData(sheetCoe, settingCoe, -1);
                         sheetCommonObj.cleanData(sheetAss, settingAss, -1);
-                        sheetCommonObj.cleanData(sheetInst, settingInst, -1);
+                        //sheetCommonObj.cleanData(sheetInst, settingInst, -1);
                         sheetCommonObj.setDynamicCombo(sheetAss, 0, 5, sheetAss.getRowCount(), rationAssistOprObj.setting.comboItems, false, false);
                     }
                 }
@@ -705,36 +705,39 @@ let rationOprObj = {
                 sheetCommonObj.cleanSheet(sheetGLJ, settingGLJ, -1);
                 sheetCommonObj.cleanSheet(sheetCoe, settingCoe, -1);
                 sheetCommonObj.cleanSheet(sheetAss, settingAss, -1);
-                sheetCommonObj.cleanSheet(sheetInst, settingInst, -1);
+                //sheetCommonObj.cleanSheet(sheetInst, settingInst, -1);
             }
             //--- me.workBook.focus(true);
         }
         sectionTreeObj.workBook.focus(true);
     },
     sortByCode: function(arr){
-        arr.sort(function (a, b) {
-            let rst = 0;
-            let splitA = a.code.split('-'),
-                splitB = b.code.split('-');
-            if(splitA[0] > splitB[0]){
-                rst = 1;
-            }
-            else if(splitA[0] < splitB[0]){
-                rst = -1;
-            }
-            else {
-                if(splitA[1] && splitB[1]){
-                    let floatA = parseFloat(splitA[1]),
-                        floatB = parseFloat(splitB[1]);
-                    if(floatA > floatB){
-                        rst = 1;
-                    }
-                    else if(floatA < floatB){
-                        rst = -1;
-                    }
+        function recurCompare(a, b, index){
+            if (a[index] && !b[index]) {
+                return 1;
+            } else if (!a[index] && b[index]) {
+                return -1;
+            } else if (a[index] && b[index]) {
+                let aV = a[index],
+                    bV = b[index];
+                if (!isNaN(aV) && !isNaN(bV)) {
+                    aV = parseFloat(a[index]);
+                    bV = parseFloat(b[index]);
+                }
+                if (aV > bV) {
+                    return 1;
+                } else if (aV < bV) {
+                    return -1;
+                } else {
+                    return recurCompare(a, b, index + 1);
                 }
             }
-            return rst;
+            return 0;
+        }
+        arr.sort(function (a, b) {
+            let aArr = a.code.split('-'),
+                bArr = b.code.split('-');
+            return recurCompare(aArr, bArr, 0);
         });
     },
     saveInString(datas){

+ 1 - 1
web/building_saas/complementary_ration_lib/js/ration_assist.js

@@ -7,7 +7,7 @@ var rationAssistOprObj = {
     setting: {
         header:[
             {headerName:"调整名称",headerWidth:200,dataCode:"name", dataType: "String", hAlign: "left"},
-            {headerName:"辅助定额号",headerWidth:120,dataCode:"assistCode", dataType: "String", hAlign: "center"},
+            {headerName:"辅助定额号",headerWidth:120,dataCode:"assistCode", dataType: "String", hAlign: "center", formatter: '@'},
             {headerName:"标准值",headerWidth:100,dataCode:"stdValue", dataType: "String", hAlign: "right"},
             {headerName:"步距",headerWidth:100,dataCode:"stepValue", dataType: "String", hAlign: "right"},
             {headerName:"精度",headerWidth:80,dataCode:"decimal",  dataType: "String", hAlign: "right"},

+ 19 - 0
web/building_saas/complementary_ration_lib/js/section_tree.js

@@ -2,6 +2,25 @@
  * Created by Zhong on 2017/12/18.
  */
 let pageOprObj = {
+    refreshAllBooks: function () {
+        if (sectionTreeObj.workBook) {
+            sectionTreeObj.workBook.refresh();
+        }
+        if (rationOprObj.workBook) {
+            rationOprObj.workBook.refresh();
+        }
+        if (coeOprObj.workBook) {
+            coeOprObj.workBook.refresh();
+        } else {
+            pageObj.initPage();
+        }
+        if (gljAdjOprObj.workBook) {
+            gljAdjOprObj.workBook.refresh();
+        }
+        if (rationGLJOprObj.sheet.getParent()) {
+            rationGLJOprObj.sheet.getParent().refresh();
+        }
+    },
     rationLibName : null,
     rationLibId : null,
     gljLibId: gljLibId,

+ 15 - 2
web/building_saas/pm/js/pm_newMain.js

@@ -39,6 +39,18 @@ function isDef(v) {
     return typeof v !== 'undefined' && v !== null;
 }
 
+let keyupTime = 0,
+    delayTime = 500;
+function delayKeyup(callback) {
+    let nowTime = Date.now();
+    keyupTime = nowTime;
+    setTimeout(function () {
+        if (nowTime - keyupTime == 0) {
+            callback();
+        }
+    }, delayTime);
+}
+
 const projTreeObj = {
     tree: null,
     workBook: null,
@@ -1668,7 +1680,6 @@ function init() {
                 data.feeStandardName = data.property.feeStandardName || '';
             }
         }
-        console.log(datas);
         CommonAjax.post('/options/getOptions', [], function (rstData) {
             projTreeObj.setting.style.selectedColor = rstData.COLOROPTS.SELECTED.backColor;
             projTreeObj.tree = pmTree.createNew(projTreeObj.setting, datas);
@@ -3320,7 +3331,9 @@ function shareTender(){
     });
 }
 $('#sharePhone').on('keyup',function () {
-    shareTender();
+    delayKeyup(function () {
+        shareTender();
+    });
 });
 //确认分享
 $('#share-confirm').click(function(){