瀏覽代碼

设置工程专业清单指引

zhongzewei 7 年之前
父節點
當前提交
66f16b4c2e

+ 5 - 0
modules/all_models/engineering_lib.js

@@ -25,6 +25,11 @@ let modelSchema = {
         type: Schema.Types.Mixed,
         default: []
     },
+    //清单指引库
+    billsGuidance_lib: {
+        type: Schema.Types.Mixed,
+        default: []
+    },
     // 列设置
     main_tree_col: {
         type: Schema.Types.Mixed,

+ 8 - 0
modules/users/controllers/compilation_controller.js

@@ -18,6 +18,7 @@ import {default as BillsTypeFlagConst, List as BillsTypeFlagList} from "../../co
 import EngineeringLibModel from "../models/engineering_lib_model";
 import STDLabourCoesModel from "../../common/std/std_labour_coes_model";
 import STDCalcProgramModel from "../../common/std/std_calc_program_model";
+const billsGuidanceFc = require('../../std_billsGuidance_lib/facade/facades');
 
 class CompilationController extends BaseController {
 
@@ -188,6 +189,7 @@ class CompilationController extends BaseController {
         let valuationList = {};
         let artificialCoefficientList = [];
         let calculationList = [];
+        let billsGuidanceList = [];
         try {
             let compilationModel = new CompilationModel();
             compilationList = await compilationModel.getCompilationList();
@@ -225,11 +227,16 @@ class CompilationController extends BaseController {
             // 获取对应专业工程下的标准库数据
             let engineeringLibModel = new EngineeringLibModel();
             libData = await engineeringLibModel.getLib(valuationData.engineering_list, engineering);
+            console.log(`libData`);
+            console.log(libData);
 
             // 获取清单模板数据
             let billsTemplateModel = new BillsTemplateModel();
             billsTemplateData = await billsTemplateModel.getTemplateData(valuationId, engineering);
 
+            //获取清单指引数据
+            billsGuidanceList = await billsGuidanceFc.getBillsGuideLibs({compilationId: selectedCompilation._id, $or: [{deleted: null}, {deleted: false}]});
+
         } catch (error) {
             console.log(error);
         }
@@ -249,6 +256,7 @@ class CompilationController extends BaseController {
             billsTemplateData: JSON.stringify(billsTemplateData),
             mainTreeCol: JSON.stringify(libData.main_tree_col),
             calculationList: JSON.stringify(calculationList),
+            billsGuidanceList: JSON.stringify(billsGuidanceList),
             layout: 'users/views/layout/layout'
         };
         response.render('users/views/compilation/engineering', renderData);

+ 5 - 0
modules/users/models/engineering_lib_model.js

@@ -82,6 +82,8 @@ class EngineeringLibModel extends BaseModel {
                 delete data.id;
                 delete data.section;
                 delete data.engineering;
+                console.log(`data==============================================`);
+                console.log(data);
                 // 存在则直接更新
                 let condition = {_id: engineeringLib.engineering_id};
                 result = await this.db.update(condition, data);
@@ -145,6 +147,9 @@ class EngineeringLibModel extends BaseModel {
         // 判断工料机库
         data.glj_lib = this._validLib(data.glj_lib);
 
+        // 判断清单指引库
+        data.billsGuidance_lib = this._validLib(data.billsGuidance_lib);
+
         // 判断费率标准
         data.fee_lib = this._validLib(data.fee_lib);
 

+ 29 - 3
web/users/js/compilation.js

@@ -25,7 +25,7 @@ $(document).ready(function() {
     $("#add-compilation").click(function() {
         try {
             let data = getAndValidData(model);
-            let url = '/compilation/add';
+            let url = '/compilation/add'
             if (model === 'all') {
                 // 新增编办操作
                 $.ajax({
@@ -131,6 +131,10 @@ $(document).ready(function() {
                 $("#glj-area").show();
                 $("#add-compilation-title").text('添加定额库');
                 break;
+            case 'billsGuidance':
+                $("#billsGuidance-area").show();
+                $("#add-compilation-title").text('添加清单指引库');
+                break;
             case 'fee':
                 $("#fee-area").show();
                 $("#add-compilation-title").text('添加费率标准');
@@ -160,7 +164,7 @@ $(document).ready(function() {
     });
 
     // 移除操作
-    $(".bill-list, .ration-list, .glj-list, .fee-list, .artificial-list, .program-list").on("click", ".remove-lib", function() {
+    $(".bill-list, .ration-list, .glj-list, .fee-list, .artificial-list, .program-list, .billsGuidance-list").on("click", ".remove-lib", function() {
         $(this).parent().remove();
     });
 
@@ -196,7 +200,6 @@ $(document).ready(function() {
     //计价规则删除
     $('#delete-confirm').click(function () {
         let id = $('#del').attr('selectedId');
-        console.log(id);
         if (id === undefined || id === '') {
             return false;
         }
@@ -250,6 +253,7 @@ function initCompilation() {
     let feeLibData = feeRateList === undefined ? [] : JSON.parse(feeRateList);
     let artificialCoefficientData = artificialCoefficientList === undefined ? [] : JSON.parse(artificialCoefficientList);
     let programData = programList === undefined ? [] : JSON.parse(programList);
+    let billsGuidanceData = billsGuidanceList === undefined ? [] : JSON.parse(billsGuidanceList);
 
     mainTreeCol = mainTreeCol !== '' ? mainTreeCol.replace(/\n/g, '\\n') : mainTreeCol;
     billsTemplateData = billsTemplateData.replace(/\n/g, '\\n');
@@ -294,6 +298,14 @@ function initCompilation() {
     }
     $("select[name='glj_lib']").children("option").first().after(html);
 
+    // 清单指引库
+    html = '';
+    for(let tmp of billsGuidanceData) {
+        let tmpHtml = '<option value="' + tmp.ID + '">' + tmp.name + '</option>';
+        html += tmpHtml;
+    }
+    $("select[name='billsGuidance_lib']").children("option").first().after(html);
+
     // 费率标准库
     html = '';
     for(let tmp of feeLibData) {
@@ -334,6 +346,7 @@ function getAndValidData(model) {
     let feeLib = $("select[name='fee_lib']").children("option:selected").val();
     let artificialLib = $("select[name='artificial_lib']").children("option:selected").val();
     let programLib = $("select[name='program_lib']").children("option:selected").val();
+    let billsGuidanceLib = $("select[name='billsGuidance_lib']").children("option:selected").val();
 
     if (name === '' && model === 'all') {
         throw '编办名字不能为空';
@@ -363,12 +376,17 @@ function getAndValidData(model) {
         throw '请选择计算程序';
     }
 
+    if (model === 'billsGuidance' && (billsGuidanceLib === '' || billsGuidanceLib === undefined)) {
+        throw '请选择清单指引库';
+    }
+
     let standardBillString = $("select[name='standard_bill']").children("option:selected").text();
     let rationLibString = $("select[name='ration_lib']").children("option:selected").text();
     let gljLibString = $("select[name='glj_lib']").children("option:selected").text();
     let feeLibString = $("select[name='fee_lib']").children("option:selected").text();
     let artificialString = $("select[name='artificial_lib']").children("option:selected").text();
     let programString = $("select[name='program_lib']").children("option:selected").text();
+    let billsGuidanceString = $("select[name='billsGuidance_lib']").children("option:selected").text();
 
     let result = {
         name: name,
@@ -395,6 +413,10 @@ function getAndValidData(model) {
         program: {
             id: programLib,
             name: programString
+        },
+        billsGuidance: {
+            id: billsGuidanceLib,
+            name: billsGuidanceString
         }
     };
     return result;
@@ -442,6 +464,10 @@ function validLib() {
             throw '请添加计算程序';
         }
 
+        if ($("input:hidden[name='billsGuidance_lib']").length <= 0) {
+            throw '请添加清单指引库';
+        }
+
         result = true;
     } catch (error) {
         alert(error);

+ 21 - 3
web/users/views/compilation/engineering.html

@@ -19,7 +19,7 @@
                 <div class="row">
                     <div class="col-md-12">
                         <div class="row">
-                            <div class="form-group col-md-4">
+                            <div class="form-group col-md-3">
                                 <label>标准清单</label>
                                 <div class="bill-list">
                                     <% if (Object.keys(libData).length > 0 && libData.bill_lib.length > 0) { %>
@@ -36,7 +36,7 @@
                                 </div>
                                 <a class="btn btn-link btn-sm add-compilation" href="javascript:void(0)" data-model="bill">添加</a>
                             </div>
-                            <div class="form-group col-md-4">
+                            <div class="form-group col-md-3">
                                 <label>定额库</label>
                                 <div class="ration-list">
                                     <% if (Object.keys(libData).length > 0 && libData.ration_lib.length > 0) { %>
@@ -53,7 +53,7 @@
                                 </div>
                                 <a href="#" class="btn btn-link btn-sm add-compilation" data-model="ration">添加</a>
                             </div>
-                            <div class="form-group col-md-4">
+                            <div class="form-group col-md-3">
                                 <label>人材机库</label>
                                 <div class="glj-list">
                                     <% if (Object.keys(libData).length > 0 && libData.glj_lib.length > 0) { %>
@@ -70,6 +70,23 @@
                                 </div>
                                 <a href="#" class="btn btn-link btn-sm add-compilation" data-model="glj">添加</a>
                             </div>
+                            <div class="form-group col-md-3">
+                                <label>清单指引库</label>
+                                <div class="billsGuidance-list">
+                                    <% if (Object.keys(libData).length > 0 && libData.billsGuidance_lib.length > 0) { %>
+                                    <% libData.billsGuidance_lib.forEach(function (billsGuidance, index){ %>
+                                    <p class="form-control-static">
+                                        <a class="pull-right text-danger remove-lib" data-model="billsGuidance" title="移除" data-id="<%= billsGuidance.id %>">
+                                            <span class="glyphicon glyphicon-remove"></span>
+                                        </a>
+                                        <input type="hidden" name="billsGuidance_lib" data-id="<%= billsGuidance.id %>" value="<%= JSON.stringify({id: billsGuidance.id, name: billsGuidance.name}) %>">
+                                        <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= billsGuidance.name %>
+                                    </p>
+                                    <% }) %>
+                                    <% } %>
+                                </div>
+                                <a href="#" class="btn btn-link btn-sm add-compilation" data-model="billsGuidance">添加</a>
+                            </div>
                         </div>
                         <div class="row">
                             <div class="form-group col-md-4">
@@ -151,6 +168,7 @@
     let programList = '<%- calculationList %>';
     let mainTreeCol = '<%- mainTreeCol %>';
     let billsTemplateData = '<%- billsTemplateData %>';
+    let billsGuidanceList = '<%- billsGuidanceList %>';
     let colSpread = null;
     let colEditSpread = null;
 </script>

+ 10 - 0
web/users/views/compilation/modal.html

@@ -41,6 +41,16 @@
                         </div>
                     </div>
                 </div>
+                <div class="form-group" id="billsGuidance-area">
+                    <label>清单指引库</label>
+                    <div class="row">
+                        <div class="col-xs-12">
+                            <select class="form-control" name="billsGuidance_lib">
+                                <option value="">请选择清单指引库</option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
                 <div class="form-group" id="fee-area">
                     <label>费率标准</label>
                     <div class="row">