zhongzewei 7 年之前
父节点
当前提交
05691beb1b

+ 1 - 0
config/gulpConfig.js

@@ -144,6 +144,7 @@ module.exports = {
         'public/web/common_ajax.js',
         'public/web/treeDataHelper.js',
         'public/web/QueryParam.js',
+        'lib/lodash/lodash.js',
         'public/web/id_tree.js',
         'public/web/tree_sheet/tree_sheet_controller.js',
         'public/web/tree_sheet/tree_sheet_helper.js',

+ 6 - 2
modules/main/controllers/bills_controller.js

@@ -176,6 +176,7 @@ module.exports = {
             uploadDir: './public'
         };
         const form = new multiparty.Form(uploadOption);
+        let uploadFullName;
         form.parse(req, async function(err, fields, files) {
             try{
                 const projectID = fields.projectID !== undefined && fields.projectID.length > 0 ?
@@ -192,7 +193,7 @@ module.exports = {
                     throw '不支持该类型';
                 }
                 // 重命名文件名
-                const uploadFullName = uploadOption.uploadDir + '/' + file.originalFilename;
+                uploadFullName = uploadOption.uploadDir + '/' + file.originalFilename;
                 fs.renameSync(file.path, uploadFullName);
 
                 const sheet = excel.parse(uploadFullName);
@@ -235,7 +236,7 @@ module.exports = {
                 const billsLibId = fields.billsLibId !== undefined && fields.billsLibId.length > 0 && fields.billsLibId[0]? parseInt(fields.billsLibId[0]) : null;
                 let stdBills = [], stdJobs = [], stdCharacters = [];
                 if(billsLibId){
-                    stdBills = await stdBillsModel.find({billsLibId: billsLibId, deleted: false});
+                    stdBills = await stdBillsModel.find({billsLibId: billsLibId, deleted: false}, '-_id code jobs items engineering');
                     stdJobs = await stdBillJobsModel.find({billsLibId: billsLibId, deleted: false});
                     stdCharacters = await stdBillCharacterModel.find({billsLibId: billsLibId, deleted: false});
                 }
@@ -255,6 +256,9 @@ module.exports = {
                 res.json(responseData);
             }
             catch (error){
+                if(fs.existsSync(uploadFullName)){
+                    fs.unlink(uploadFullName);
+                }
                 responseData.err = 1;
                 responseData.msg = error;
                 res.json(responseData);

+ 51 - 16
web/building_saas/complementary_glj_lib/html/tools-gongliaoji.html

@@ -83,7 +83,7 @@
       </div>
       <!--弹出组成物-->
     <button id="componentBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#component" style="display: none"></button>
-      <div class="modal fade" id="component" data-backdrop="static">
+      <!--<div class="modal fade" id="component" data-backdrop="static">
           <div class="modal-dialog modal-lg" role="document" id="modalCon">
               <div class="modal-content" >
                   <div class="modal-header">
@@ -96,11 +96,11 @@
                     <div class="row">
                       <div class="col-4">
                         <div  class="modal-auto-height" id="componentTreeDiv" style="overflow: hidden">
-                            <!--<div class="print-list">-->
+                            &lt;!&ndash;<div class="print-list">&ndash;&gt;
                                 <div style="width: 100%; height: 100%; overflow: auto">
                                     <ul id="componentTree" class="ztree"></ul>
                                 </div>
-                            <!--</div>-->
+                            &lt;!&ndash;</div>&ndash;&gt;
                         </div>
                       </div>
                       <div class="col-8">
@@ -109,20 +109,9 @@
                                   <input type="radio" class="glj-radio" name="glj" value="allGljs">所有工料机&nbsp;&nbsp;
                                   <input type="radio" class="glj-radio" name="glj" value="stdGljs">标准工料机&nbsp;&nbsp;
                                   <input type="radio" class="glj-radio" name="glj" value="complementaryGljs">补充工料机&nbsp;&nbsp;
-                                 <!-- <div class="form-group"><input id="searchGlj" type="text" class="form-control-sm" placeholder="查询工料机"></div>-->
+                                 &lt;!&ndash; <div class="form-group"><input id="searchGlj" type="text" class="form-control-sm" placeholder="查询工料机"></div>&ndash;&gt;
                               </div>
                               <div class="modal-auto-height col-12" style="overflow: hidden" id="componentSheet">
-                               <!--   <table class="table table-sm table-bordered m-0">
-                                      <thead>
-                                      <tr><th></th><th>编码</th><th>名称</th><th>规格型号</th><th>计量单位</th><th>单价</th><th>类型</th></tr>
-                                      </thead>
-                                      <tbody>
-                                      <tr><td>1</td><td></td><td></td><td></td><td></td><td></td></tr>
-                                      <tr><td>2</td><td></td><td></td><td></td><td></td><td></td></tr>
-                                      <tr><td>3</td><td></td><td></td><td></td><td></td><td></td></tr>
-                                      <tr><td>4</td><td></td><td></td><td></td><td></td><td></td></tr>
-                                      </tbody>
-                                  </table>-->
                               </div>
                           </div>
                       </div>
@@ -134,7 +123,52 @@
                   </div>
               </div>
           </div>
-      </div>
+      </div>-->
+    <div class="modal fade" id="component" data-backdrop="static">
+        <div class="modal-dialog modal-lg" role="document" id="modalCon">
+            <div class="modal-content" >
+                <div class="modal-header">
+                    <h5 class="modal-title">选择组成物</h5>
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                        <span aria-hidden="true">&times;</span>
+                    </button>
+                </div>
+                <div class="modal-body">
+                        <div style="width: 33%; float: left;">
+                            <div  class="modal-auto-height" id="componentTreeDiv" style="overflow: hidden">
+                                <!--<div class="print-list">-->
+                                <div style="width: 100%; height: 100%; overflow: auto">
+                                    <ul id="componentTree" class="ztree"></ul>
+                                </div>
+                                <!--</div>-->
+                            </div>
+                        </div>
+                        <div style="width: 67%; padding-left: 8px; float: left;">
+                            <div class="row">
+                                <div class="col-12" id="gljRadios">
+                                    <div class="row">
+                                        <div class="col-7" style="margin-top: 5px;">
+                                            <input type="radio" class="glj-radio" name="glj" value="allGljs">所有工料机&nbsp;&nbsp;
+                                            <input type="radio" class="glj-radio" name="glj" value="stdGljs">标准工料机&nbsp;&nbsp;
+                                            <input type="radio" class="glj-radio" name="glj" value="complementaryGljs">补充工料机&nbsp;&nbsp;
+                                        </div>
+                                        <div class="input-group col-5" style="margin-bottom: 5px;">
+                                            <input type="text" class="form-control form-control-sm" placeholder="请输入筛选编码或名称" value="" id="gljSearchKeyword">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="modal-auto-height col-12" style="overflow: hidden" id="componentSheet">
+                                </div>
+                            </div>
+                        </div>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" id="componentsCacnel" class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <a href="javascript:void(0);" id="componentsConf" class="btn btn-primary">确定</a>
+                </div>
+            </div>
+        </div>
+    </div>
     <!--弹出警告-->
     <button id="gljAlertBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#gljAlert" style="display: none"></button>
     <button id="codeAlertBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#codeAlert" style="display: none"></button>
@@ -194,6 +228,7 @@
     <script type="text/javascript" src="/public/web/common_ajax.js"></script>
     <script type="text/javascript" src="/public/web/treeDataHelper.js"></script>
     <script type="text/javascript" src="/public/web/QueryParam.js"></script>
+    <script type="text/javascript" src="/lib/lodash/lodash.js"></script>
     <script type="text/javascript" src="/public/web/id_tree.js"></script>
     <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_controller.js"></script>
     <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_helper.js"></script>

+ 54 - 30
web/building_saas/complementary_glj_lib/js/components.js

@@ -103,7 +103,7 @@ let componentOprObj = {
     //初始默认radio
     initRadio: function () {
         let that = repositoryGljObj, me = componentOprObj;
-        //$('#searchGlj').val('');//恢复搜索文本
+        $('#gljSearchKeyword').val('');//恢复搜索文本
         //初始化组成物列表
         me.selectedList = [].concat(that.currentComponent);
         //默认radio所有工料机
@@ -120,39 +120,52 @@ let componentOprObj = {
             that.sortGlj(me.showGljList);
         }
     },
+    filterDatasAndShow: function () {
+        let me = componentOprObj, re = repositoryGljObj;
+        let materialArr = [202, 203, 204];//混凝土、砂浆、配合比, 201普通材料
+        let val = $("input[name='glj']:checked").val();
+        me.radiosSelected = val;
+        //选择改变,数据重新筛选显示
+        me.showGljList = [];
+        if(me.radiosSelected === 'allGljs'){
+            me.setShowGljList(re.stdGljList);
+            me.setShowGljList(re.complementaryGljList);
+        }
+        else if(me.radiosSelected === 'stdGljs'){
+            me.setShowGljList(re.stdGljList);
+        }
+        else if(me.radiosSelected === 'complementaryGljs'){
+            me.setShowGljList(re.complementaryGljList);
+        }
+        //搜索匹配
+        let searchStr = $('#gljSearchKeyword').val();
+        if(searchStr && searchStr.trim() != ''){
+            let reg = new RegExp(searchStr);
+            me.showGljList = _.filter(me.showGljList, function (data) {
+                return reg.test(data.code) || reg.test(data.name);
+            });
+        }
+        re.sortGlj(me.showGljList);
+        //重新显示
+        me.showGljItems(me.showGljList, me.gljCurTypeId);
+        //切换radio后更新cache
+        if (me.currentOprParent = 1) {
+            if(re.parentNodeIds["_pNodeId_" + me.gljCurTypeId]){
+                me.currentCache = me.getParentCache(re.parentNodeIds["_pNodeId_" + me.gljCurTypeId]);
+            }
+            else{
+                me.currentCache = [];
+            }
+        } else {
+            me.currentCache = me.getCache();
+        }
+    },
     //监听radios选择事件
     radiosChange: function () {
         let me = componentOprObj, re = repositoryGljObj;
         let materialArr = [202, 203, 204];//混凝土、砂浆、配合比, 201普通材料
         $('.glj-radio').change(function () {
-            let val = $("input[name='glj']:checked").val();
-            me.radiosSelected = val;
-            //选择改变,数据重新筛选显示
-            me.showGljList = [];
-            if(me.radiosSelected === 'allGljs'){
-                me.setShowGljList(re.stdGljList);
-                me.setShowGljList(re.complementaryGljList);
-            }
-            else if(me.radiosSelected === 'stdGljs'){
-               me.setShowGljList(re.stdGljList);
-            }
-            else if(me.radiosSelected === 'complementaryGljs'){
-                me.setShowGljList(re.complementaryGljList);
-            }
-            re.sortGlj(me.showGljList);
-            //重新显示
-            me.showGljItems(me.showGljList, me.gljCurTypeId);
-            //切换radio后更新cache
-            if (me.currentOprParent = 1) {
-                if(re.parentNodeIds["_pNodeId_" + me.gljCurTypeId]){
-                    me.currentCache = me.getParentCache(re.parentNodeIds["_pNodeId_" + me.gljCurTypeId]);
-                }
-                else{
-                    me.currentCache = [];
-                }
-            } else {
-                me.currentCache = me.getCache();
-            }
+            me.filterDatasAndShow();
         });
     },
 
@@ -257,4 +270,15 @@ let componentTypeTreeOprObj = {
         }
         me.showGljItems(me.showGljList, gljTypeId);
     }
-}
+}
+$(document).ready(function () {
+    $('#gljSearchKeyword').change(function () {
+        componentOprObj.filterDatasAndShow();
+    });
+    $('#gljSearchKeyword').bind('keypress', function (e) {
+        if(e.keyCode === 13){
+            $(this).blur();
+            return false;
+        }
+    });
+});

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

@@ -601,49 +601,6 @@
         </div>
     </div>
     <!--工料机选择窗口-->
-    <!--<div class="modal fade" id="glj_tree_div" data-backdrop="static">
-        <div class="modal-dialog modal-lg" role="document" id="modalCon">
-            <div class="modal-content" style="width: 910px;">
-                <div class="modal-header">
-                    <h5 class="modal-title">请选择工料机</h5>
-                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                        <span aria-hidden="true">&times;</span>
-                    </button>
-                    <input type="hidden" id="actionType">
-                </div>
-                <div class="modal-body">
-                    <div class="row">
-                        <div class="col-4" >
-                            <div  class="modal-auto-height" id="componentTreeDiv" style="overflow: hidden;">
-                                &lt;!&ndash;<div class="print-list">&ndash;&gt;
-                                <div style="width: 100%; height: 100%; overflow: auto">
-                                    <ul id="gljTree" class="ztree"></ul>
-                                </div>
-                                &lt;!&ndash;</div>&ndash;&gt;
-                            </div>
-                        </div>
-                        <div class="col-8">
-                            <div class="row">
-                                <div class="col-12" id="gljRadios">
-                                    <input type="radio" class="glj-radio" name="glj" value="allGljs" checked>所有工料机&nbsp;&nbsp;
-                                    <input type="radio" class="glj-radio" name="glj" value="stdGLJ">标准工料机&nbsp;&nbsp;
-                                    <input type="radio" class="glj-radio" name="glj" value="complementaryGLJs">补充工料机&nbsp;&nbsp;
-                                    &lt;!&ndash; <div class="form-group"><input id="searchGlj" type="text" class="form-control-sm" placeholder="查询工料机"></div>&ndash;&gt;
-                                </div>
-                                <div class="modal-auto-height col-12" style="overflow: hidden" id="gljLibSheet">
-
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" id="componentsCacnel" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="javascript:void(0);" id="glj_selected_conf" class="btn btn-primary">确定</a>
-                </div>
-            </div>
-        </div>
-    </div>-->
     <div class="modal fade" id="glj_tree_div" data-backdrop="static">
         <div class="modal-dialog modal-lg" role="document" id="modalCon">
             <div class="modal-content" style="width: 1020px;">
@@ -1122,7 +1079,7 @@
         <script type="text/javascript" src="/lib/jquery-contextmenu/jquery.contextMenu.js"></script>
         <script type="text/javascript" src="/lib/jquery-contextmenu/jquery.ui.position.js"></script>
         <script type="text/javascript" src="/lib/lodash/lodash.js"></script>
-        <!-- Common -->
+    <!-- Common -->
         <script type="text/javascript" src="/public/web/common_ajax.js"></script>
         <script type="text/javascript" src="/public/web/url_util.js"></script>
         <script type="text/javascript" src="/public/web/number_util.js"></script>

+ 0 - 1
web/building_saas/main/js/models/cache_tree.js

@@ -393,7 +393,6 @@ var cacheTree = {
             //resort
             this.roots = tools.reSortNodes(this.roots, true);
             this.sortTreeItems();
-            console.log(this);
             return rst;
         };
         Tree.prototype.delete = function (node) {

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

@@ -1584,6 +1584,7 @@ $('#uploadConfirm').click(function () {
     }
     catch (err){
         alert(err);
+        $(me).removeClass('disabled');
     }
 });
 //导入后更新操作

二进制
web/dest/css/img/engineering.png


二进制
web/dest/css/img/folder_close.png


二进制
web/dest/css/img/folder_open.png


二进制
web/dest/css/img/project.png


二进制
web/dest/css/img/tender.png