zhangweicheng %!s(int64=5) %!d(string=hai) anos
pai
achega
a532c7d3bd

+ 24 - 0
modules/main/facade/bid_facade.js

@@ -0,0 +1,24 @@
+/**
+ * Created by zhang on 2019/9/11.
+ */
+
+
+module.exports={
+    getData:getData
+};
+
+const mongoose = require('mongoose');
+let bidEvaluationListModel = mongoose.model("bid_evaluation_list");
+let consts = require('../../main/models/project_consts');
+
+
+
+function getData(projectID, callback) {
+    bidEvaluationListModel.find({'projectID': projectID}).lean().exec((err, datas) => {
+        if (err) {
+            callback(1, '', null);
+        } else {
+            callback(0, consts.projectConst.BID_EVALUATION_LIST, datas);
+        }
+    })
+}

+ 56 - 0
web/building_saas/glj/html/project_glj.html

@@ -321,4 +321,60 @@
             </div>
         </div>
     </div>
+</div>
+
+<!--暂估材料弹出 从人材机汇总中选择-->
+<div class="modal fade" id="selectPGLJ" data-backdrop="static">
+  <div class="modal-dialog modal-lg" role="document">
+      <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" style="padding: 0px">
+              <div class="btn-toolbar" style="margin: 10px">
+                  <div class="btn-group btn-group-sm mr-2">
+                      <button type="button" class="btn btn-outline-primary pglj_sel_check_btn">全选</button>
+                      <button type="button" class="btn btn-outline-primary pglj_sel_check_btn">全选主材</button>
+                      <button type="button" class="btn btn-outline-primary pglj_sel_check_btn">全选设备</button>
+                  </div>
+                  <!--前面3个按钮 有选中状态,出现 取消 按钮-->
+                  <button type="button" class="btn btn-outline-danger btn-sm mr-2 pglj_sel_check_btn">取消</button>
+                  <div class="input-group input-group-sm mr-2" style="width:200px">
+                      <input type="text" class="form-control form-control-sm"  placeholder="查找" id="pglj_sel_input" value="">
+                      <div class="input-group-append">
+                          <button class="btn btn-outline-primary btn-sm" id="pglj_sel_btn_find" type="button"><i class="fa fa-search" aria-hidden="true"></i></button>
+                      </div>
+                  </div>
+                  <div class="input-group input-group-sm">
+                      <div class="form-check form-check-inline">
+                          <input class="form-check-input pglj_sel_input" type="checkbox" id="pglj_sel_all" value="0">
+                          <label class="form-check-label" for="pglj_sel_all">所有</label>
+                      </div>
+                      <div class="form-check form-check-inline">
+                          <input class="form-check-input pglj_sel_input pglj_sel_input_other" type="checkbox" id="pglj_sel_material" checked value="2">
+                          <label class="form-check-label" for="pglj_sel_material">材</label>
+                      </div>
+                      <div class="form-check form-check-inline">
+                          <input class="form-check-input pglj_sel_input pglj_sel_input_other" type="checkbox" id="pglj_sel_main" checked value="4">
+                          <label class="form-check-label" for="pglj_sel_main">主材</label>
+                      </div>
+                      <div class="form-check form-check-inline">
+                          <input class="form-check-input pglj_sel_input pglj_sel_input_other" type="checkbox" id="pglj_sel_eqp" checked value="5">
+                          <label class="form-check-label" for="pglj_sel_eqp">设备</label>
+                      </div>
+                  </div>
+              </div>
+              <div class="modal-auto-height" style="margin-top:10px; border: 1px solid #ccc">
+                  <div  id="pglj_from_sheet" style="overflow: hidden;height: 100%"></div>
+              </div>
+          </div>
+          <div class="modal-footer">
+              <button type="button" class="btn btn-primary" id="pglj_sel_confirm" data-dismiss="modal">确定</button>
+              <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+          </div>
+      </div>
+  </div>
 </div>

+ 4 - 1
web/building_saas/main/js/models/main_consts.js

@@ -20,6 +20,7 @@ const ModuleNames = {
     projectInfo: 'project_info',
     divide_setting:'divide_setting',
     evaluate_list:'evaluate_list',
+    bid_evaluation_list:'bid_evaluation_list'
 };
 
 let gljType = gljUtil.gljType;
@@ -315,7 +316,9 @@ const filterType = {
     JGCL:'8',
     ZGCL:'9',
     SCHZ:'10',
-    ZYCL:'11'
+    ZYCL:'11',
+    AMAE:'12',
+    PBCL:'13'
 };
 const filterTypeArray = ['1','2','3','4','5'];
 

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

@@ -104,6 +104,7 @@ var PROJECT = {
             this.calcBase = calcBase;
             this.divide_setting = new DivideSetting(this);
             this.evaluate_list = new EvaluateList(this);
+            this.bid_evaluation_list = new BidEvaluationList(this);
             // this.masterField = {ration: 'billsItemID', volumePrice: 'billsItemID'};
             this.masterField = {ration: 'billsItemID'};
         };

+ 11 - 0
web/building_saas/main/js/models/project_glj.js

@@ -1805,3 +1805,14 @@ class EvaluateList {
       this.datas = datas;
   };
 }
+
+class BidEvaluationList {
+  constructor (project) {
+      this.project = project;
+      this.datas = [];
+      project.registerModule(ModuleNames.bid_evaluation_list, this);
+  };
+  loadData (datas) {
+      this.datas = datas;
+  };
+}

+ 23 - 3
web/building_saas/main/js/views/config_material_view.js

@@ -743,7 +743,7 @@ let configMaterialObj = {
                             materialAdjustObj.checkedDefualtOption("glj_sel_input");
                             $("#selectFromGLJ").modal('show');
                         }else {
-                            materialAdjustObj.checkedDefualtOption("pglj_sel_input");
+                           // materialAdjustObj.checkedDefualtOption("pglj_sel_input"); 暂时没有这个
                             $("#selectPGLJ").modal('show');
                         }
                     }
@@ -864,9 +864,9 @@ let pgljSelObj={
     getSheetDatas(glj){
         let projectGLJ = projectObj.project.projectGLJ;
         let materialIdList = projectGLJ.datas.constData.materialIdList;
-        let data = materialAdjustObj.getCommonObject(glj);
-        console.log(projectGljObject.displayType);
+        let data = this.getCommonObject(glj);
         data.select = projectGljObject.displayType == filterType.ZGCL?glj.is_evaluate:glj.is_eval_material;
+        if(!gljUtil.isDef(data.select)) data.select = 0; 
         data.from = glj;
         data.short_name = projectGLJ.getShortNameByID(glj.type);
         // 只有材料才显示是否暂估
@@ -875,6 +875,25 @@ let pgljSelObj={
         data.is_evaluate = glj.is_evaluate;
         return data;
     },
+    getCommonObject:function (glj) {
+      let data ={
+          select:0,
+          id:glj.id,
+          code:glj.code,
+          name:glj.name,
+          specs:glj.specs,
+          unit:glj.unit,
+          type:glj.type,
+          quantity:glj.quantity,
+          supply:glj.supply,
+          originPlace:glj.originPlace,
+          vender:glj.vender,
+          brand:glj.brand,
+          remark:glj.remark
+      };
+      gljOprObj.setGLJPrice(data,glj);
+      return data;
+  },
     checkByType:function (type) {
         for(let d of this.datas){
             d.select = 0;
@@ -890,6 +909,7 @@ let pgljSelObj={
                     break;
                 case "取消":
                     d.select = projectGljObject.displayType == filterType.ZGCL?d.is_evaluate:d.is_eval_material;
+                    if(!gljUtil.isDef(d.select)) d.select = 0;
                     break;
             }
         }

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

@@ -42,6 +42,8 @@ let gljCol = {
             {headerName: "定额价", headerWidth: 70, dataCode: "basePrice", hAlign: "right", dataType: "Number",validator:"number", spanRows: [2]},
             {headerName: "预算价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number",spanRows: [2]},
             {headerName: "规格", headerWidth: 120, dataCode: "specs", hAlign: "left", dataType: "String",cellType:'tipsCell',spanRows: [2]},
+            {headerName: "暂估", headerWidth: 45, dataCode: "is_evaluate", hAlign: "center", dataType: "String",cellType:'checkBox',spanRows: [2]},
+            {headerName: "评标材料", headerWidth: 35, dataCode: "is_eval_material", dataType: "String",cellType: "checkBox",spanRows: [2]},
             {headerName: "主要\n材料", headerWidth: 45, dataCode: "is_main_material", hAlign: "center", dataType: "String",cellType:'checkBox',spanRows: [2]},
             {headerName: "新工料机", headerWidth: 50, dataCode: "is_add", hAlign: "center", dataType: "String",cellType:'checkBox',spanRows: [2]},
             {headerName: "不调价", headerWidth: 55, dataCode: "is_adjust_price", dataType: "String",cellType: "checkBox",spanRows: [2]},

+ 10 - 3
web/building_saas/main/js/views/project_glj_view.js

@@ -374,7 +374,7 @@ projectGljObject={
             return false;
         }
 
-        if(isPaste == false &&(dataCode=='is_adjust_price'||dataCode=='is_evaluate'||dataCode=='is_main_material')){//除了粘贴,拖动填充等操作,其它的都不能编辑
+        if(isPaste == false &&(dataCode=='is_adjust_price'||dataCode=='is_evaluate'||dataCode=='is_main_material'||dataCode == 'is_eval_material')){//除了粘贴,拖动填充等操作,其它的都不能编辑
             return false;
         }
         if(dataCode=='basePrice'||dataCode=='marketPrice'||dataCode=='supply'){//有组成物时,市场单价、定额价、供货方式不能修改
@@ -713,7 +713,7 @@ projectGljObject={
     },
     refreshViewsData:function(){
       let me = projectGljObject;
-      if(me.displayType == filterType.ZGCL) return configMaterialObj.refreshSheetDatas();
+      if(me.displayType == filterType.ZGCL|| me.displayType == filterType.PBCL) return configMaterialObj.refreshSheetDatas();
       me.refreshDataSheet();
     },
     refreshDataSheet:function (refresh) {//refresh = true 的时候不用更新表头信息
@@ -901,6 +901,9 @@ projectGljObject={
         if (materialIdList.indexOf(glj.type) >= 0) {
             data.is_evaluate = glj.is_evaluate;
         }
+         //是“材料”、“主材”、“设备”时显示评标材料
+        if (materialIdList.indexOf(glj.type) >= 0||glj.type == gljType.MAIN_MATERIAL || glj.type == gljType.EQUIPMENT) data.is_eval_material = glj.is_eval_material ? glj.is_eval_material : 0;
+
         if(glj.materialCoe !== null && glj.materialCoe !==undefined){
             data.materialCoe =  scMathUtil.roundForObj(glj.materialCoe,getDecimal("material"));
         }
@@ -1070,8 +1073,12 @@ projectGljObject={
             if(dataCode === 'supply_quantity'){//修改数量需做4舍5入
                 value=  scMathUtil.roundForObj(value,getDecimal('glj.quantity'));
             }
-            if(dataCode === 'is_evaluate'||dataCode === 'is_adjust_price'||dataCode === 'is_main_material'){
+            if(dataCode === 'is_evaluate'||dataCode === 'is_adjust_price'||dataCode === 'is_main_material'||dataCode == 'is_eval_material'){
                 value = value == true?1:0;
+                if(dataCode === 'is_evaluate'|| dataCode == 'is_eval_material'){
+                  configMaterialObj.updateConfigMaterial(dataCode,value,recode);//暂估材料,主要材料等新需求
+                  return
+              }
             }
             if(dataCode === 'materialType' && (value == null || value=="")){//删除三材类别时,清空三材系数
                 value = null;