Selaa lähdekoodia

新增编办页面的人工系数

olym 8 vuotta sitten
vanhempi
commit
c80e5303e6

+ 6 - 1
modules/users/controllers/compilation_controller.js

@@ -178,6 +178,7 @@ class CompilationController extends BaseController {
         let billsTemplateData = [];
         let valuationData = {};
         let valuationList = {};
+        let artificialCoefficientList = [];
         try {
             let compilationModel = new CompilationModel();
             compilationList = await compilationModel.getCompilationList();
@@ -194,10 +195,13 @@ class CompilationController extends BaseController {
             let stdGLJLibMapModel = new STDGLJLibMapModel();
             gljList = await stdGLJLibMapModel.getGLJLibList(selectedCompilation._id);
 
-            // 获取费率库
+            // 获取费率标准
             let stdFeeRateLibsModel = new STDFeeRateLibsModel();
             feeRateList = await stdFeeRateLibsModel.getFeeRateList();
 
+            // 获取人工系数标准库 @todo 更改为数据库获取
+            artificialCoefficientList = [{name: '2006标准', id: 1}];
+
             // 获取对应的计价规则数据
             [valuationData, valuationList] = await compilationModel.getValuation(selectedCompilation._id, valuationId, section);
             if (Object.keys(valuationData).length <= 0) {
@@ -226,6 +230,7 @@ class CompilationController extends BaseController {
             billList: JSON.stringify(billList),
             rationList: JSON.stringify(rationList),
             gljList: JSON.stringify(gljList),
+            artificialCoefficientList: JSON.stringify(artificialCoefficientList),
             feeRateList: JSON.stringify(feeRateList),
             billsTemplateData: JSON.stringify(billsTemplateData),
             mainTreeCol: JSON.stringify(valuationData.main_tree_col),

+ 0 - 1
modules/users/models/compilation_model.js

@@ -183,7 +183,6 @@ class CompilationModel extends BaseModel {
      */
     async getValuation(compilationId, id, section) {
         if (this.sectionList.indexOf(section) < 0) {
-            console.log('4');
             throw '数据有误';
         }
         let compilationData = await this.findDataByCondition({_id: compilationId});

+ 6 - 3
modules/users/models/engineering_lib_model.js

@@ -135,9 +135,12 @@ class EngineeringLibModel extends BaseModel {
         // 判断工料机库
         data.glj_lib = this._validLib(data.glj_lib);
 
-        // 判断费率
+        // 判断费率标准
         data.fee_lib = this._validLib(data.fee_lib);
 
+        // 判断人工系数
+        data.artificial_lib = this._validLib(data.artificial_lib);
+
         return data;
     }
 
@@ -149,9 +152,9 @@ class EngineeringLibModel extends BaseModel {
      */
     _validLib(libData) {
         let result = [];
-        // 判断费率
+        // 判断标准
         if (libData === undefined || libData === '') {
-            throw '判断费率库不能为空';
+            throw '标准库不能为空';
         }
         libData = libData instanceof Array ? libData : [libData];
         for(let tmp in libData) {

+ 5 - 0
modules/users/models/schemas/engineering_lib.js

@@ -40,6 +40,11 @@ let modelSchema = {
     fee_lib: {
         type: Schema.Types.Mixed,
         default: []
+    },
+    // 人工系数标准库
+    artificial_lib: {
+        type: Schema.Types.Mixed,
+        default: []
     }
 };
 let model = mongoose.model(collectionName, new Schema(modelSchema, {versionKey: false, collection: collectionName}));

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

@@ -133,7 +133,12 @@ $(document).ready(function() {
                 break;
             case 'fee':
                 $("#fee-area").show();
-                $("#add-compilation-title").text('添加费率库');
+                $("#add-compilation-title").text('添加费率标准');
+                break;
+            case 'artificial':
+                $("#artificial-area").show();
+                $("#add-compilation-title").text('添加人工系数');
+                break;
         }
 
         $("#addcompilation").modal('show');
@@ -229,6 +234,7 @@ function initCompilation() {
     let rationLibData = rationList === undefined ? [] : JSON.parse(rationList);
     let gljLibData = gljList === undefined ? [] : JSON.parse(gljList);
     let feeLibData = feeRateList === undefined ? [] : JSON.parse(feeRateList);
+    let artificialCoefficientData = artificialCoefficientList === undefined ? [] : JSON.parse(artificialCoefficientList);
 
     // 初始化 造价书列设置
     colSpread = TREE_SHEET_HELPER.createNewSpread($('#main-tree-col')[0]);
@@ -265,7 +271,7 @@ function initCompilation() {
     }
     $("select[name='glj_lib']").children("option").first().after(html);
 
-    // 费率库
+    // 费率标准
     html = '';
     for(let tmp of feeLibData) {
         let tmpHtml = '<option value="' + tmp.id + '">' + tmp.name + '</option>';
@@ -273,6 +279,14 @@ function initCompilation() {
     }
     $("select[name='fee_lib']").children("option").first().after(html);
 
+    // 人工系数标准库
+    html = '';
+    for(let tmp of artificialCoefficientData) {
+        let tmpHtml = '<option value="' + tmp.id + '">' + tmp.name + '</option>';
+        html += tmpHtml;
+    }
+    $("select[name='artificial_lib']").children("option").first().after(html);
+
 }
 
 /**
@@ -287,6 +301,7 @@ function getAndValidData(model) {
     let rationLib = $("select[name='ration_lib']").children("option:selected").val();
     let gljLib = $("select[name='glj_lib']").children("option:selected").val();
     let feeLib = $("select[name='fee_lib']").children("option:selected").val();
+    let artificialLib = $("select[name='artificial_lib']").children("option:selected").val();
 
     if (name === '' && model === 'all') {
         throw '编办名字不能为空';
@@ -305,6 +320,10 @@ function getAndValidData(model) {
     }
 
     if (model === 'fee' && (feeLib === '' || feeLib === undefined)) {
+        throw '请选择费率标准';
+    }
+
+    if (model === 'artificial' && (artificialLib === '' || artificialLib === undefined)) {
         throw '请选择费率库';
     }
 
@@ -312,6 +331,7 @@ function getAndValidData(model) {
     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 result = {
         name: name,
@@ -330,6 +350,10 @@ function getAndValidData(model) {
         fee: {
             id: feeLib,
             name: feeLibString
+        },
+        artificial: {
+            id: artificialLib,
+            name: artificialString
         }
     };
     return result;
@@ -362,7 +386,11 @@ function validLib() {
         }
 
         if ($("input:hidden[name='fee_lib']").length <= 0) {
-            throw '请添加费率库';
+            throw '请添加费率标准';
+        }
+
+        if ($("input:hidden[name='artificial_lib']").length <= 0) {
+            throw '请添加人工系数';
         }
 
         result = true;

+ 92 - 72
web/users/views/compilation/engineering.html

@@ -17,84 +17,103 @@
         <div class="c-body">
             <form method="post" action="/compilation/save-lib" enctype="application/x-www-form-urlencoded21">
                 <div class="row">
-                    <div class="col-md-4">
-                        <div class="form-group">
-                            <label>标准清单</label>
-                            <div class="bill-list">
-                                <% if (Object.keys(libData).length > 0 && libData.bill_lib.length > 0) { %>
-                                <% libData.bill_lib.forEach(function (bill, index){ %>
-                                <p class="form-control-static">
-                                    <a class="pull-right text-danger remove-lib" data-model="bill" title="移除">
-                                        <span class="glyphicon glyphicon-remove"></span>
-                                    </a>
-                                    <input type="hidden" name="bill_lib" data-id="<%= bill.id %>" value="<%= JSON.stringify({id: bill.id, name: bill.name}) %>">
-                                    <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= bill.name %>
-                                </p>
-                                <% }) %>
-                                <% } %>
+                    <div class="col-md-12">
+                        <div class="row">
+                            <div class="form-group col-md-4">
+                                <label>标准清单</label>
+                                <div class="bill-list">
+                                    <% if (Object.keys(libData).length > 0 && libData.bill_lib.length > 0) { %>
+                                    <% libData.bill_lib.forEach(function (bill, index){ %>
+                                    <p class="form-control-static">
+                                        <a class="pull-right text-danger remove-lib" data-model="bill" title="移除">
+                                            <span class="glyphicon glyphicon-remove"></span>
+                                        </a>
+                                        <input type="hidden" name="bill_lib" data-id="<%= bill.id %>" value="<%= JSON.stringify({id: bill.id, name: bill.name}) %>">
+                                        <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= bill.name %>
+                                    </p>
+                                    <% }) %>
+                                    <% } %>
+                                </div>
+                                <a class="btn btn-link btn-sm add-compilation" href="javascript:void(0)" data-model="bill">添加</a>
                             </div>
-                            <a class="btn btn-link btn-sm add-compilation" href="javascript:void(0)" data-model="bill">添加</a>
-                        </div>
-                        <div class="form-group">
-                            <label>定额库</label>
-                            <div class="ration-list">
-                                <% if (Object.keys(libData).length > 0 && libData.ration_lib.length > 0) { %>
-                                <% libData.ration_lib.forEach(function (ration, index){ %>
-                                <p class="form-control-static">
-                                    <a class="pull-right text-danger remove-lib" data-model="ration" title="移除" data-id="<%= ration.id %>">
-                                        <span class="glyphicon glyphicon-remove"></span>
-                                    </a>
-                                    <input type="hidden" name="ration_lib" data-id="<%= ration.id %>" value="<%= JSON.stringify({id: ration.id, name: ration.name}) %>">
-                                    <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= ration.name %>
-                                </p>
-                                <% }) %>
-                                <% } %>
+                            <div class="form-group col-md-4">
+                                <label>定额库</label>
+                                <div class="ration-list">
+                                    <% if (Object.keys(libData).length > 0 && libData.ration_lib.length > 0) { %>
+                                    <% libData.ration_lib.forEach(function (ration, index){ %>
+                                    <p class="form-control-static">
+                                        <a class="pull-right text-danger remove-lib" data-model="ration" title="移除" data-id="<%= ration.id %>">
+                                            <span class="glyphicon glyphicon-remove"></span>
+                                        </a>
+                                        <input type="hidden" name="ration_lib" data-id="<%= ration.id %>" value="<%= JSON.stringify({id: ration.id, name: ration.name}) %>">
+                                        <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= ration.name %>
+                                    </p>
+                                    <% }) %>
+                                    <% } %>
+                                </div>
+                                <a href="#" class="btn btn-link btn-sm add-compilation" data-model="ration">添加</a>
                             </div>
-                            <a href="#" class="btn btn-link btn-sm add-compilation" data-model="ration">添加</a>
-                        </div>
-                        <div class="form-group">
-                            <label>工料机库</label>
-                            <div class="glj-list">
-                                <% if (Object.keys(libData).length > 0 && libData.glj_lib.length > 0) { %>
-                                <% libData.glj_lib.forEach(function (glj, index){ %>
-                                <p class="form-control-static">
-                                    <a class="pull-right text-danger remove-lib" data-model="glj" title="移除" data-id="<%= glj.id %>">
-                                        <span class="glyphicon glyphicon-remove"></span>
-                                    </a>
-                                    <input type="hidden" name="glj_lib" data-id="<%= glj.id %>" value="<%= JSON.stringify({id: glj.id, name: glj.name}) %>">
-                                    <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= glj.name %>
-                                </p>
-                                <% }) %>
-                                <% } %>
+                            <div class="form-group col-md-4">
+                                <label>工料机库</label>
+                                <div class="glj-list">
+                                    <% if (Object.keys(libData).length > 0 && libData.glj_lib.length > 0) { %>
+                                    <% libData.glj_lib.forEach(function (glj, index){ %>
+                                    <p class="form-control-static">
+                                        <a class="pull-right text-danger remove-lib" data-model="glj" title="移除" data-id="<%= glj.id %>">
+                                            <span class="glyphicon glyphicon-remove"></span>
+                                        </a>
+                                        <input type="hidden" name="glj_lib" data-id="<%= glj.id %>" value="<%= JSON.stringify({id: glj.id, name: glj.name}) %>">
+                                        <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= glj.name %>
+                                    </p>
+                                    <% }) %>
+                                    <% } %>
+                                </div>
+                                <a href="#" class="btn btn-link btn-sm add-compilation" data-model="glj">添加</a>
                             </div>
-                            <a href="#" class="btn btn-link btn-sm add-compilation" data-model="glj">添加</a>
-                        </div>
-                        <div class="form-group">
-                            <label>费率标准</label>
-                            <div class="fee-list">
-                                <% if (Object.keys(libData).length > 0 && libData.fee_lib.length > 0) { %>
-                                <% libData.fee_lib.forEach(function (fee, index){ %>
-                                <p class="form-control-static">
-                                    <a class="pull-right text-danger remove-lib" data-model="fee" title="移除" data-id="<%= fee.id %>">
-                                        <span class="glyphicon glyphicon-remove"></span>
-                                    </a>
-                                    <input type="hidden" name="fee_lib" data-id="<%= fee.id %>" value="<%= JSON.stringify({id: fee.id, name: fee.name}) %>">
-                                    <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= fee.name %>
-                                </p>
-                                <% }) %>
-                                <% } %>
+                            <div class="form-group col-md-4">
+                                <label>费率标准</label>
+                                <div class="fee-list">
+                                    <% if (Object.keys(libData).length > 0 && libData.fee_lib.length > 0) { %>
+                                    <% libData.fee_lib.forEach(function (fee, index){ %>
+                                    <p class="form-control-static">
+                                        <a class="pull-right text-danger remove-lib" data-model="fee" title="移除" data-id="<%= fee.id %>">
+                                            <span class="glyphicon glyphicon-remove"></span>
+                                        </a>
+                                        <input type="hidden" name="fee_lib" data-id="<%= fee.id %>" value="<%= JSON.stringify({id: fee.id, name: fee.name}) %>">
+                                        <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= fee.name %>
+                                    </p>
+                                    <% }) %>
+                                    <% } %>
+                                    <a href="#" class="btn btn-link btn-sm add-compilation" data-model="fee">添加</a>
+                                </div>
+                            </div>
+                            <div class="form-group col-md-4">
+                                <label>人工系数</label>
+                                <div class="artificial-list">
+                                    <% if (Object.keys(libData).length > 0 && libData.artificial_lib.length > 0) { %>
+                                    <% libData.artificial_lib.forEach(function (artificial, index){ %>
+                                    <p class="form-control-static">
+                                        <a class="pull-right text-danger remove-lib" data-model="artificial" title="移除" data-id="<%= artificial.id %>">
+                                            <span class="glyphicon glyphicon-remove"></span>
+                                        </a>
+                                        <input type="hidden" name="artificial_lib" data-id="<%= artificial.id %>" value="<%= JSON.stringify({id: artificial.id, name: artificial.name}) %>">
+                                        <% if (index === 0) {%><i class="glyphicon glyphicon-flag"></i>&nbsp;<% } %><%= artificial.name %>
+                                    </p>
+                                    <% }) %>
+                                    <% } %>
+                                    <a href="#" class="btn btn-link btn-sm add-compilation" data-model="artificial">添加</a>
+                                </div>
                             </div>
-                            <a href="#" class="btn btn-link btn-sm add-compilation" data-model="fee">添加</a>
                         </div>
                     </div>
-                    <div class="col-md-8">
-                        <legend>
-                            清单模板 / 造价书列
-                            <a href="javascript:void(0)" data-toggle="modal" data-target="#set-column" class="btn btn-primary btn-sm pull-right">设置</a>
-                            <a href="/compilation/template/<%= section %>/<%= valuationId %>/<%= engineeringInfo.id%>" data-toggle="modal" data-target="" class="btn btn-primary btn-sm pull-right" style="margin-right:5px">模板设置</a>
-                            <input type="hidden" name="main_tree_col" value="<%= mainTreeCol %>">
-                            <div id="main-tree-col">
-                            </div>
+                    <div class="col-md-12">
+                        <legend>清单模板 / 造价书列
+                        <a href="javascript:void(0)" data-toggle="modal" data-target="#set-column" class="btn btn-primary btn-sm pull-right">设置</a>
+                        <a href="/compilation/template/<%= section %>/<%= valuationId %>/<%= engineeringInfo.id%>"
+                               data-toggle="modal" data-target="" class="btn btn-primary btn-sm pull-right"
+                               style="margin-right:5px">模板设置</a>
+                        <input type="hidden" name="main_tree_col" value="<%= mainTreeCol %>">
+                        <div id="main-tree-col"></div>
                     </div>
                 </div>
                 <input type="hidden" name="engineering" value="<%= engineeringInfo.id %>" id="engineering">
@@ -109,6 +128,7 @@
     let rationList = '<%- rationList %>';
     let gljList = '<%- gljList %>';
     let feeRateList = '<%- feeRateList %>';
+    let artificialCoefficientList = '<%- artificialCoefficientList %>';
     let mainTreeCol = '<%- mainTreeCol %>';
     let billsTemplateData = '<%- billsTemplateData %>';
     let colSpread = null;

+ 11 - 1
web/users/views/compilation/modal.html

@@ -42,7 +42,7 @@
                     </div>
                 </div>
                 <div class="form-group" id="fee-area">
-                    <label>费率</label>
+                    <label>费率标准</label>
                     <div class="row">
                         <div class="col-xs-12">
                             <select class="form-control" name="fee_lib">
@@ -51,6 +51,16 @@
                         </div>
                     </div>
                 </div>
+                <div class="form-group" id="artificial-area">
+                    <label>人工系数</label>
+                    <div class="row">
+                        <div class="col-xs-12">
+                            <select class="form-control" name="artificial_lib">
+                                <option value="">请选择人工系数</option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>