Browse Source

engineering, bills_template

MaiXinRong 8 years ago
parent
commit
a87121ba2d

+ 5 - 3
modules/users/controllers/compilation_controller.js

@@ -429,7 +429,7 @@ class CompilationController extends BaseController {
      * @param {object} response
      * @return {void}
      */
-    async template(request, response) {
+    async billsTemplate(request, response) {
         let billList = {};
         let valuationList = {};
         let valuationData = {};
@@ -437,6 +437,7 @@ class CompilationController extends BaseController {
         let billsTemplateData = [];
 
         let selectedCompilation = request.session.selectedCompilation;
+        let engineering = request.params.engineering;
         let valuationId = request.params.id;
         let section = request.params.section;
 
@@ -458,6 +459,7 @@ class CompilationController extends BaseController {
         }
 
         let renderData = {
+            engineering: engineering,
             billList: JSON.stringify(billList),
             billsTemplateData: JSON.stringify(billsTemplateData),
             billsFixedFlagList: JSON.stringify(BillsFixedFlagList),
@@ -479,19 +481,19 @@ class CompilationController extends BaseController {
      * @param response
      */
     async updateBillsTemplate(request, response) {
+        let engineering = request.params.engineering;
         let valuationId = request.params.id;
         let section = request.params.section;
         let data = JSON.parse(request.body.data);
 
         let billsTemplateModel = new BillsTemplateModel();
-        let result = await billsTemplateModel.updateTemplate(valuationId, data);
+        let result = await billsTemplateModel.updateTemplate(valuationId, engineering, data);
 
         if (result) {
             response.json({error: 0, message: '', data: data});
         } else {
             response.json({error: 1, message: '更新数据错误', data: null});
         }
-
     }
 
 }

+ 9 - 6
modules/users/models/bills_template_model.js

@@ -20,12 +20,13 @@ class BillsTemplateModel extends BaseModel {
     /**
      * 获取计价类别对应的清单模板
      * @param valuationId
+     * @param engineering
      * @returns {*}
      */
-    async getTemplateData (valuationId) {
+    async getTemplateData (valuationId, engineering) {
         // 筛选字段
         let field = {_id: 1, valuationId: 1, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1};
-        let data = await this.findDataByCondition({valuationId: valuationId}, field, false);
+        let data = await this.findDataByCondition({valuationId: valuationId, engineering: engineering}, field, false);
 
         return data === null ? [] : data;
     }
@@ -33,20 +34,22 @@ class BillsTemplateModel extends BaseModel {
     /**
      * 新建项目时,获取计价类别对应的清单模板
      * @param valuationId
+     * @param engineering
      * @returns {*}
      */
-    async getTemplateDataForNewProj (valuationId) {
+    async getTemplateDataForNewProj (valuationId, engineering) {
         // 筛选字段
-        let field = {ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1};
-        let data = await this.findDataByCondition({valuationId: valuationId}, field, false);
+        let field = {_id: 0, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1};
+        let data = await this.findDataByCondition({valuationId: valuationId, engineering: engineering}, field, false);
 
         return data === null ? [] : data;
     }
 
-    async updateTemplate (valuationId, datas) {
+    async updateTemplate (valuationId, engineering, datas) {
         try {
             for (let data of datas) {
                 data.data.valuationId = valuationId;
+                data.data.engineering = engineering;
                 let condition = {valuationId: valuationId, ID: data.data.ID}, result;
                 if (data.type === 'update') {
                     result = await this.db.update(condition, data.data);

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

@@ -96,6 +96,7 @@ class CompilationModel extends BaseModel {
             throw '计价规则名称为空';
         }
         if (this.sectionList.indexOf(section) < 0) {
+            console.log('2');
             throw '数据有误';
         }
 
@@ -156,6 +157,7 @@ class CompilationModel extends BaseModel {
      */
     _filterValuationData(data) {
         if (Object.keys(data).length <= 0) {
+            console.log('3');
             throw '数据有误';
         }
 
@@ -181,6 +183,7 @@ 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});

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

@@ -56,6 +56,10 @@ class EngineeringLibModel extends BaseModel {
      * @return {Promise}
      */
     async addLib(valuationId, data) {
+        if (data.main_tree_col) {
+            data.main_tree_col = JSON.parse(data.main_tree_col);
+        }
+
         let result = false;
         data = this.filterLibData(data);
         try {
@@ -106,6 +110,7 @@ class EngineeringLibModel extends BaseModel {
      */
     filterLibData(data) {
         if (Object.keys(data).length <= 0 || data.section === undefined) {
+            console.log('1');
             throw '数据有误';
         }
         // 检测专业工程是否合法

+ 3 - 1
modules/users/models/schemas/bills_template.js

@@ -28,7 +28,9 @@ let BillsTemplateSchema = {
         default: []
     },
     // 所属计价ID
-    valuationId: String
+    valuationId: String,
+    // 工程专业
+    engineering: Number
 };
 
 let model = mongoose.model(collectionName, new Schema(BillsTemplateSchema, {versionKey: false, collection: collectionName}));

+ 2 - 2
modules/users/routes/compilation_route.js

@@ -17,7 +17,7 @@ module.exports = function (app) {
     router.get('/valuation/:section/:id', compilationController.auth, compilationController.init, compilationController.editValuation);
     router.get('/:section/:id/:engineering', compilationController.auth, compilationController.init, compilationController.editEngineering);
     router.get('/valuation/:section/delete/:id', compilationController.auth, compilationController.init, compilationController.deleteValuation);
-    router.get('/template/:section/:id', compilationController.auth, compilationController.init, compilationController.template);
+    router.get('/template/:section/:id/:engineering', compilationController.auth, compilationController.init, compilationController.billsTemplate);
 
     router.post('/release', compilationController.auth, compilationController.init, compilationController.release);
     router.post('/add', compilationController.auth, compilationController.init, compilationController.addCompilation);
@@ -25,7 +25,7 @@ module.exports = function (app) {
     router.post('/save-valuation', compilationController.auth, compilationController.init, compilationController.saveValuation);
     router.post('/save-lib', compilationController.auth, compilationController.init, compilationController.saveEngineering);
     router.post('/valuation/:section/enable', compilationController.auth, compilationController.init, compilationController.enableSwitch);
-    router.post('/template/:section/:id/update', compilationController.auth, compilationController.init, compilationController.updateBillsTemplate)
+    router.post('/template/:section/:id/:engineering/update', compilationController.auth, compilationController.init, compilationController.updateBillsTemplate);
 
     app.use("/compilation", router);
 };

+ 1 - 1
web/users/views/compilation/engineering.html

@@ -91,7 +91,7 @@
                         <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 %>" data-toggle="modal" data-target="" class="btn btn-primary btn-sm pull-right" style="margin-right:5px">模板设置</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>

+ 1 - 1
web/users/views/compilation/template.html

@@ -53,7 +53,7 @@
 <script>
     let billsTemplateData = '<%- billsTemplateData %>';
     let billsFixedFlagList = '<%- billsFixedFlagList %>';
-    let updateUrl = '/compilation/template/<%= section %>/<%= valuationId %>/update';
+    let updateUrl = '/compilation/template/<%= section %>/<%= valuationId %>/<%= engineering %>/update';
 </script>
 <script type="text/javascript" src="/public/web/id_tree.js"></script>
 <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_helper.js"></script>