浏览代码

新建-上下一步相关
拖动函数防抖

zhongzewei 6 年之前
父节点
当前提交
674be85498

+ 22 - 6
public/web/slideResize.js

@@ -15,6 +15,14 @@
 * */
 * */
 
 
 const SlideResize = (function() {
 const SlideResize = (function() {
+    //函数防抖
+    let timer = null;
+    function deBounce(fn, wait) {
+        if (timer) {
+            clearTimeout(timer);
+        }
+        timer = setTimeout(fn, wait);
+    }
     //设置水平拖动条的宽度
     //设置水平拖动条的宽度
     //@param {Object dom}resize滚动条
     //@param {Object dom}resize滚动条
     function setResizeWidth (resize) {
     function setResizeWidth (resize) {
@@ -81,10 +89,12 @@ const SlideResize = (function() {
                 eleObj.right.css('width', rightPercentWidth);
                 eleObj.right.css('width', rightPercentWidth);
                 setResizeWidth(eleObj.resize);
                 setResizeWidth(eleObj.resize);
                 mouseMoveCount += Math.abs(moveSize);
                 mouseMoveCount += Math.abs(moveSize);
-                if (mouseMoveCount > triggerCBSize && callback) {
-                    callback();
-                    mouseMoveCount = 0;
-                }
+                deBounce(function () {
+                    if (callback) {
+                        callback();
+                        mouseMoveCount = 0;
+                    }
+                }, 20)
             }
             }
         });
         });
         $('body').mouseup(function (e) {
         $('body').mouseup(function (e) {
@@ -159,10 +169,16 @@ const SlideResize = (function() {
                 //设置下部分div内spread高度
                 //设置下部分div内spread高度
                 eleObj.bottomSpread.height(bottomChange - limit.notBottomSpread);
                 eleObj.bottomSpread.height(bottomChange - limit.notBottomSpread);
                 mouseMoveCount += Math.abs(moveSize);
                 mouseMoveCount += Math.abs(moveSize);
-                if (mouseMoveCount > triggerCBSize && callback) {
+                deBounce(function () {
+                    if (callback) {
+                        callback();
+                        mouseMoveCount = 0;
+                    }
+                }, 20);
+                /*if (mouseMoveCount > triggerCBSize && callback) {
                     callback();
                     callback();
                     mouseMoveCount = 0;
                     mouseMoveCount = 0;
-                }
+                }*/
             }
             }
         });
         });
         $('body').mouseup(function (e) {
         $('body').mouseup(function (e) {

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

@@ -722,7 +722,7 @@ function refreshSubSpread(){
     }
     }
     BillsElf.refreshWorkBook();
     BillsElf.refreshWorkBook();
     //if($('#linkZMHS').hasClass('active')) zmhs_obj.refresh();
     //if($('#linkZMHS').hasClass('active')) zmhs_obj.refresh();
-    if($('#rnc-zm').is(':visible')|| $('#rnc-fz').is(':visible')) zmhs_obj.refresh();
+    if($('#rnc-zm').is(':visible')|| $('#rnc-fz').is(':visible') || $('#rnc-cus')) zmhs_obj.refresh();
     if($('#linkMBZM').hasClass('active')) mbzm_obj.refresh();
     if($('#linkMBZM').hasClass('active')) mbzm_obj.refresh();
 }
 }
 
 

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

@@ -261,6 +261,7 @@ let zmhs_obj = {
     refresh:function () {
     refresh:function () {
         $('#coeSpread').is(':visible')&&this.coeSpread?this.coeSpread.refresh():'';
         $('#coeSpread').is(':visible')&&this.coeSpread?this.coeSpread.refresh():'';
         $('#coeSpread').is(':visible')&&this.coeSpread?this.showDatas():'';//这里combobox下拉框要重新加载一下
         $('#coeSpread').is(':visible')&&this.coeSpread?this.showDatas():'';//这里combobox下拉框要重新加载一下
+        $('#coeSpread').is(':visible')&&this.coeSpread?this.coeSpread.refresh():'';
         $('#cusSpread').is(':visible')&&this.cusSpread?this.cusSpread.refresh():'';
         $('#cusSpread').is(':visible')&&this.cusSpread?this.cusSpread.refresh():'';
         $('#assSpread').is(':visible')&&this.assSpread?this.assSpread.refresh():'';
         $('#assSpread').is(':visible')&&this.assSpread?this.assSpread.refresh():'';
     },
     },

+ 1 - 1
web/building_saas/pm/html/project-management.html

@@ -237,7 +237,7 @@
             </div>
             </div>
             <div class="modal-footer">
             <div class="modal-footer">
                 <a href="javascript:void(0);" class="btn btn-primary hidden-area" id="add-proj-prev">上一步</a>
                 <a href="javascript:void(0);" class="btn btn-primary hidden-area" id="add-proj-prev">上一步</a>
-                <a href="javascript:void(0);" class="btn btn-primary" id="add-proj-next">下一步</a>
+                <a href="javascript:void(0);" class="btn btn-primary hidden-area" id="add-proj-next">下一步</a>
                 <a href="javascript:void(0);" class="btn btn-primary hidden-area" id="addProjOk">确定</a>
                 <a href="javascript:void(0);" class="btn btn-primary hidden-area" id="addProjOk">确定</a>
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
             </div>

+ 82 - 47
web/building_saas/pm/js/pm_newMain.js

@@ -13,6 +13,9 @@ let feeRateData = [];
 let isSaving = false;
 let isSaving = false;
 let projectProperty = [];
 let projectProperty = [];
 let fileDelObj = null;
 let fileDelObj = null;
+let curStep = 1; //当前在第几步
+let infoData = null; //建设项目基本信息数据
+let featureData = null; //工程特征数据
 let projectType = {
 let projectType = {
     folder: 'Folder',
     folder: 'Folder',
     tender: 'Tender',
     tender: 'Tender',
@@ -1611,14 +1614,28 @@ $(document).ready(function() {
         showProjFirstStep();
         showProjFirstStep();
     });
     });
     //显示新建建设项目第一步内容
     //显示新建建设项目第一步内容
-    function showProjFirstStep() {
+    async function showProjFirstStep() {
         $('#add-project-dialog').find('.modal-title').html('<i class="fa fa-cubes"></i> 新建建设项目');
         $('#add-project-dialog').find('.modal-title').html('<i class="fa fa-cubes"></i> 新建建设项目');
         $('#projInfoStep').hide();
         $('#projInfoStep').hide();
         $('#addProjOk').hide();
         $('#addProjOk').hide();
         $('#project-required-warn').hide();
         $('#project-required-warn').hide();
         $('#add-proj-prev').hide();
         $('#add-proj-prev').hide();
-        $('#add-proj-next').show();
         $('#projFirstStep').show();
         $('#projFirstStep').show();
+        let requiredData = null;
+        if (!infoData) {
+            try {
+                infoData = await ajaxPost('/pm/api/getBasicInfo', {user_id: userID});
+                console.log(infoData);
+            } catch (err) {
+                $('#add-project-dialog').modal('hide');
+            }
+        }
+        requiredData = getRequired([], infoData);
+        if (requiredData.length > 0) {
+            $('#add-proj-next').show();
+        } else {
+            $('#addProjOk').show();
+        }
     }
     }
     //显示新建建设项目-建设项目基本信息内容
     //显示新建建设项目-建设项目基本信息内容
     async function showProjInfoStep() {
     async function showProjInfoStep() {
@@ -1629,14 +1646,7 @@ $(document).ready(function() {
         $('#addProjOk').show();
         $('#addProjOk').show();
         $('#projInfoStep').show();
         $('#projInfoStep').show();
         $('#project-required-warn').show();
         $('#project-required-warn').show();
-        if (!infoData) {
-            try {
-                infoData = await ajaxPost('/pm/api/getBasicInfo', {user_id: userID});
-                showRequiredInfo($('#projInfoStep'), infoData);
-            } catch (err) {
-                $('#add-project-dialog').modal('hide');
-            }
-        }
+        showRequiredInfo($('#projInfoStep'), infoData);
     }
     }
 
 
     //新建建设项目、新建单项工程、新建文件夹、重命名弹窗隐藏事件
     //新建建设项目、新建单项工程、新建文件夹、重命名弹窗隐藏事件
@@ -1910,9 +1920,11 @@ $(document).ready(function() {
                 return false;
                 return false;
             }
             }
             let path = getAddPath();
             let path = getAddPath();
-            if (path === addPath.p_e_t) {
+            let infoRequired = getRequired([], infoData);
+            let featureRequired = getRequired([], featureData);
+            if (path === addPath.p_e_t && infoRequired.length > 0) {
                 showInfoStep();
                 showInfoStep();
-            } else {
+            } else if (featureRequired.length > 0) {
                 showFeatureStep();
                 showFeatureStep();
             }
             }
         } else if (curStep === 3) {
         } else if (curStep === 3) {
@@ -1951,7 +1963,7 @@ $(document).ready(function() {
         $('#add-tender-cancel').hide();
         $('#add-tender-cancel').hide();
     }
     }
     //显示第二步内容
     //显示第二步内容
-    function showSecondStep() {
+    async function showSecondStep() {
         $('#add-tender-title').html(`<i class="fa fa-sticky-note-o"></i>新建单位工程`);
         $('#add-tender-title').html(`<i class="fa fa-sticky-note-o"></i>新建单位工程`);
         $('#add-tender-confirm').hide();
         $('#add-tender-confirm').hide();
         $('#featureStep').hide();
         $('#featureStep').hide();
@@ -1960,26 +1972,54 @@ $(document).ready(function() {
         $('#tender-required-warn').hide();
         $('#tender-required-warn').hide();
         $('#secondStep').show();
         $('#secondStep').show();
         $('#add-tender-prev').show();
         $('#add-tender-prev').show();
-        $('#add-tender-next').show();
+        $('#add-tender-next').hide();
+        $('#add-tender-confirm').hide();
         $('#add-tender-cancel').show();
         $('#add-tender-cancel').show();
-    }
-    //显示新建单位工程-建设项目基本信息内容
-    async function showInfoStep() {
-        $('#add-tender-title').html('建设项目基本信息');
-        $('#secondStep').hide();
-        $('#infoStep').show();
-        $('#tender-required-warn').show();
         if (!infoData) {
         if (!infoData) {
             try {
             try {
                 infoData = await ajaxPost('/pm/api/getBasicInfo', {user_id: userID});
                 infoData = await ajaxPost('/pm/api/getBasicInfo', {user_id: userID});
-                showRequiredInfo($('#infoStep'), infoData);
             } catch (err) {
             } catch (err) {
                 $('#add-tender-dialog').modal('hide');
                 $('#add-tender-dialog').modal('hide');
             }
             }
         }
         }
+        if (!featureData) {
+            try{
+                let valuation = $("#valuation").val();
+                let engineeringName = $("#tender-engineering").val();
+                let feeName = $('#tender-feeStandard').val();
+                featureData = await ajaxPost('/pm/api/getProjectFeature',
+                    {user_id: userID, valuationID: valuation, engineeringName: engineeringName, feeName: feeName});
+            } catch (err) {
+                $('#add-tender-dialog').modal('hide');
+            }
+        }
+        let infoRequired = getRequired([], infoData),
+            featureRequired = getRequired([], featureData),
+            path = getAddPath();
+        if (path === addPath.p_e_t && infoRequired.length > 0 || featureRequired.length > 0) {
+            $('#add-tender-next').show();
+        } else {
+            $('#add-tender-confirm').show();
+        }
+    }
+    //显示新建单位工程-建设项目基本信息内容
+    function showInfoStep() {
+        $('#add-tender-title').html('建设项目基本信息');
+        $('#secondStep').hide();
+        $('#infoStep').show();
+        $('#tender-required-warn').show();
+        let featureRequired = getRequired([], featureData);
+        if (featureRequired.length > 0) {
+            $('#add-tender-next').show();
+            $('#add-tender-confirm').hide();
+        } else {
+            $('#add-tender-next').hide();
+            $('#add-tender-confirm').show();
+        }
+        showRequiredInfo($('#infoStep'), infoData);
     }
     }
     //显示新建单位工程-工厂特征内容
     //显示新建单位工程-工厂特征内容
-    async function showFeatureStep() {
+    function showFeatureStep() {
         $('#add-tender-next').hide();
         $('#add-tender-next').hide();
         $('#add-tender-confirm').show();
         $('#add-tender-confirm').show();
         $('#add-tender-title').html('工程特征');
         $('#add-tender-title').html('工程特征');
@@ -1987,37 +2027,29 @@ $(document).ready(function() {
         $('#infoStep').hide();
         $('#infoStep').hide();
         $('#featureStep').show();
         $('#featureStep').show();
         $('#tender-required-warn').show();
         $('#tender-required-warn').show();
-        if (!featureData) {
-            let valuation = $("#valuation").val();
-            let engineeringName = $("#tender-engineering").val();
-            let feeName = $('#tender-feeStandard').val();
-            try {
-                featureData = await ajaxPost('/pm/api/getProjectFeature',
-                    {user_id: userID, valuationID: valuation, engineeringName: engineeringName, feeName: feeName});
-                showRequiredInfo($('#featureStep'), featureData);
-            } catch (err) {
-                $('#add-tender-dialog').modal('hide');
+        showRequiredInfo($('#featureStep'), featureData);
+    }
+    function getRequired(rst, datas) {
+        if (!datas) {
+            return rst;
+        }
+        for (let data of datas) {
+            let required = typeof data.required === 'string' ? JSON.parse(data.required) : data.required,
+                readOnly = typeof data.readOnly === 'string' ? JSON.parse(data.readOnly) : data.readOnly;
+            if (required && !readOnly) {
+                rst.push(data);
+            }
+            if (data.items && data.items.length > 0) {
+                getRequired(rst, data.items);
             }
             }
         }
         }
+        return rst;
     }
     }
     //显示必填信息(建设项目基本信息、单位工程工程特征)
     //显示必填信息(建设项目基本信息、单位工程工程特征)
     //必填信息:标记了必填required且不只读!readOnly
     //必填信息:标记了必填required且不只读!readOnly
     function showRequiredInfo($form, datas) {
     function showRequiredInfo($form, datas) {
         $form.empty();
         $form.empty();
-        let requiredDatas = [];
-        function getRequired(datas) {
-            for (let data of datas) {
-                let required = typeof data.required === 'string' ? JSON.parse(data.required) : data.required,
-                    readOnly = typeof data.readOnly === 'string' ? JSON.parse(data.readOnly) : data.readOnly;
-                if (required && !readOnly) {
-                    requiredDatas.push(data);
-                }
-                if (data.items && data.items.length > 0) {
-                    getRequired(data.items);
-                }
-            }
-        }
-        getRequired(datas);
+        let requiredDatas = getRequired([], datas);
         for (let data of requiredDatas) {
         for (let data of requiredDatas) {
             $form.append(getFormRow(data));
             $form.append(getFormRow(data));
         }
         }
@@ -2094,6 +2126,9 @@ $(document).ready(function() {
 
 
     // 新增单位工程
     // 新增单位工程
     $("#add-tender-confirm").click(function() {
     $("#add-tender-confirm").click(function() {
+        if (getAddPath() === addPath.p_e_t && !validRequiredData($('#infoStep'))) {
+            return;
+        }
         if (!validRequiredData($('#featureStep'))) {
         if (!validRequiredData($('#featureStep'))) {
             return;
             return;
         }
         }