Sfoglia il codice sorgente

1.编办信息添加序号。2.编办列表按照序号进行排序

lishihao 1 anno fa
parent
commit
fc9eb76b68

+ 4 - 2
modules/all_models/compilation.js

@@ -58,6 +58,8 @@ let modelSchema = {
     example: Array,
     // 版本号
     edition: String,
+    // 序号(用于排序)
+    serialNumber: Number,
     // 发布时间
     release_time: {
         type: Number,
@@ -78,7 +80,7 @@ let modelSchema = {
         type: Number,
         default: 12 // 总部id
     },
-    defaultLocation:String,//默认工程所在地
-    freeUse:Boolean
+    defaultLocation: String,//默认工程所在地
+    freeUse: Boolean
 };
 mongoose.model(collectionName, new Schema(modelSchema, { versionKey: false, collection: collectionName }));

+ 121 - 109
modules/users/controllers/compilation_controller.js

@@ -11,10 +11,10 @@ import STDRationLibMapModel from "../../common/std/std_ration_lib_map_model";
 import STDBillLibListsModel from "../../common/std/std_bills_lib_lists_model";
 import STDGLJLibMapModel from "../../common/std/std_glj_lib_map_model";
 import STDFeeRateLibsModel from "../../common/std/std_fee_rate_libs_model";
-import {default as EngineeringConst, List as EngineeringList} from "../../common/const/engineering";
+import { default as EngineeringConst, List as EngineeringList } from "../../common/const/engineering";
 import BillsTemplateModel from "../models/bills_template_model";
-import {default as BillsFixedFlagConst, List as BillsFixedFlagList} from "../../common/const/bills_fixed.js";
-import {default as BillsTypeFlagConst, List as BillsTypeFlagList} from "../../common/const/bills_type.js";
+import { default as BillsFixedFlagConst, List as BillsFixedFlagList } from "../../common/const/bills_fixed.js";
+import { default as BillsTypeFlagConst, List as BillsTypeFlagList } from "../../common/const/bills_type.js";
 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";
@@ -30,8 +30,8 @@ import quantityFacade from "../../main_quantity_lib/facade/quantity_facade";
 import economicFacade from "../../economic_lib/facade/economic_facade";
 import overHeightFacade from "../../over_height_lib/facade/over_height_facade";
 import progressiveFacade from "../../progressive_interval_lib/facade/progressive_facade";
-import {default as category, List as categoryList} from "../../common/const/category_const.js";
-import locationList from  "../../common/const/locationList";
+import { default as category, List as categoryList } from "../../common/const/category_const.js";
+import locationList from "../../common/const/locationList";
 
 let config = require("../../../config/config.js");
 const fs = require('fs');
@@ -78,10 +78,10 @@ class CompilationController extends BaseController {
             id: id,
             compilationList: compilationList,
             categoryList: categoryList,
-            locationList:locationList,
+            locationList: locationList,
             selectedCompilation: selectedCompilation,
             layout: 'users/views/layout/layout',
-            LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
+            LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
         };
 
         response.render('users/views/compilation/index', renderData);
@@ -159,7 +159,7 @@ class CompilationController extends BaseController {
             // 获取计价规则中对应的标准库数据
             let engineeringLibModel = new EngineeringLibModel();
             engineeringList = await engineeringLibModel.getLibsByValuationID(valuationId);
-            engineeringList = _.sortBy(engineeringList,['seq'])
+            engineeringList = _.sortBy(engineeringList, ['seq'])
         } catch (error) {
             console.log(error);
         }
@@ -173,7 +173,7 @@ class CompilationController extends BaseController {
             valuationId: valuationId,
             section: section,
             layout: 'users/views/layout/layout',
-            LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
+            LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
         };
         response.render('users/views/compilation/add', renderData);
     }
@@ -200,13 +200,13 @@ class CompilationController extends BaseController {
             billsTemplateData = [],
             featureList = [],
             infoList = [],
-            engineerInfoList=[],
+            engineerInfoList = [],
             progressiveList = [],
-            engineerFeatureList=[],
-            materialList=[],
-            mainQuantityList=[],
-            economicList=[],
-            overHeightList=[];
+            engineerFeatureList = [],
+            materialList = [],
+            mainQuantityList = [],
+            economicList = [],
+            overHeightList = [];
         let valuationData = {}, valuationList = {}, artificialCoefficientList = [], calculationList = [], billsGuidanceList = [], mainTreeColList = [];
         let billTemplateList = [];
         try {
@@ -241,7 +241,7 @@ class CompilationController extends BaseController {
             //获取列设置库
             mainTreeColList = await mainColFacade.getColLibsByCompilationID(selectedCompilation._id);
 
-             //获取清单模板库
+            //获取清单模板库
             billTemplateList = await billTemplateFacade.getTemplateLibByCompilationID(selectedCompilation._id);
 
             // 获取对应的计价规则数据
@@ -252,40 +252,40 @@ class CompilationController extends BaseController {
 
             // 获取对应专业工程下的标准库数据
             let engineeringLibModel = new EngineeringLibModel();
-            libData = await engineeringLibModel.findDataByCondition({_id:engineerID});
+            libData = await engineeringLibModel.findDataByCondition({ _id: engineerID });
 
             // 获取清单模板数据
             let billsTemplateModel = new BillsTemplateModel();
             billsTemplateData = await billsTemplateModel.getTemplateData(valuationId, libData.engineering);
 
             //获取清单指引数据
-            billsGuidanceList = await billsGuidanceFc.getBillsGuideLibs({compilationId: selectedCompilation._id, $or: [{deleted: null}, {deleted: false}]});
+            billsGuidanceList = await billsGuidanceFc.getBillsGuideLibs({ compilationId: selectedCompilation._id, $or: [{ deleted: null }, { deleted: false }] });
 
             //获取工程特征库
-            featureList = await projectFeatureFacade.findByCondition({compilationId: selectedCompilation._id},null,false);
+            featureList = await projectFeatureFacade.findByCondition({ compilationId: selectedCompilation._id }, null, false);
 
             //获取基本信息库
-            infoList = await basicInfoFacade.findByCondition({},null,false);
+            infoList = await basicInfoFacade.findByCondition({}, null, false);
 
-            engineerInfoList = await engineerInfoFacade.findByCondition({},null,false);
+            engineerInfoList = await engineerInfoFacade.findByCondition({}, null, false);
 
             //获取累进区间库
-            progressiveList = await progressiveFacade.findByCondition({},null,false);
+            progressiveList = await progressiveFacade.findByCondition({}, null, false);
 
             //工程特征指标库
-            engineerFeatureList = await engineerFeatureFacade.findByCondition({},null,false);
+            engineerFeatureList = await engineerFeatureFacade.findByCondition({}, null, false);
 
             //主要工料指标
-            materialList = await materialFacade.findByCondition({},null,false);
+            materialList = await materialFacade.findByCondition({}, null, false);
 
             //主要工程量指标
-            mainQuantityList = await quantityFacade.findByCondition({},null,false);
+            mainQuantityList = await quantityFacade.findByCondition({}, null, false);
 
             //主要工程量指标
-            economicList = await economicFacade.findByCondition({},null,false);
+            economicList = await economicFacade.findByCondition({}, null, false);
 
             //超高降效
-            overHeightList = await overHeightFacade.findByCondition({},null,false);
+            overHeightList = await overHeightFacade.findByCondition({}, null, false);
 
         } catch (error) {
             console.log(error);
@@ -306,22 +306,22 @@ class CompilationController extends BaseController {
             artificialCoefficientList: JSON.stringify(artificialCoefficientList),
             feeRateList: JSON.stringify(feeRateList),
             billsTemplateData: JSON.stringify(billsTemplateData),
-            billTemplateList:JSON.stringify(billTemplateList),
+            billTemplateList: JSON.stringify(billTemplateList),
             mainTreeColList: JSON.stringify(mainTreeColList),
-            gljCol:JSON.stringify(libData.glj_col),
+            gljCol: JSON.stringify(libData.glj_col),
             calculationList: JSON.stringify(calculationList),
             billsGuidanceList: JSON.stringify(billsGuidanceList),
-            featureList:JSON.stringify(featureList),
+            featureList: JSON.stringify(featureList),
             infoList: JSON.stringify(infoList),
-            engineerInfoList:JSON.stringify(engineerInfoList),
-            progressiveList:JSON.stringify(progressiveList),
-            engineerFeatureList:JSON.stringify(engineerFeatureList),
-            materialList:JSON.stringify(materialList),
-            mainQuantityList:JSON.stringify(mainQuantityList),
-            economicList:JSON.stringify(economicList),
-            overHeightList:JSON.stringify(overHeightList),
+            engineerInfoList: JSON.stringify(engineerInfoList),
+            progressiveList: JSON.stringify(progressiveList),
+            engineerFeatureList: JSON.stringify(engineerFeatureList),
+            materialList: JSON.stringify(materialList),
+            mainQuantityList: JSON.stringify(mainQuantityList),
+            economicList: JSON.stringify(economicList),
+            overHeightList: JSON.stringify(overHeightList),
             layout: 'users/views/layout/layout',
-            LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
+            LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
         };
         response.render('users/views/compilation/engineering', renderData);
     }
@@ -362,22 +362,22 @@ class CompilationController extends BaseController {
      * @param response
      * @returns {Promise.<void>}
      */
-    async deleteEngineer(request,response){
-        let result={
-            error:0
+    async deleteEngineer(request, response) {
+        let result = {
+            error: 0
         };
         try {
             let data = request.body.data;
             data = JSON.parse(data);
-            if(data.id ){
+            if (data.id) {
                 let engineeringLibModel = new EngineeringLibModel();
-                result.data = await engineeringLibModel.deleteById(data.id,true);
-            }else {
+                result.data = await engineeringLibModel.deleteById(data.id, true);
+            } else {
                 throw new Error("提交数据有误");
             }
-        }catch (err){
+        } catch (err) {
             console.log(err);
-            result.error=1;
+            result.error = 1;
             result.message = err.message;
         }
         response.json(result);
@@ -389,23 +389,23 @@ class CompilationController extends BaseController {
      * @param response
      * @returns {Promise.<void>}
      */
-    async updateEngineer(request,response){
-        let result={
-            error:0
+    async updateEngineer(request, response) {
+        let result = {
+            error: 0
         };
         try {
             let data = request.body.data;
             data = JSON.parse(data);
-            if(data.id && data.updateData){
+            if (data.id && data.updateData) {
                 let engineeringLibModel = new EngineeringLibModel();
-                result.data = await engineeringLibModel.updateById(data.id,data.updateData);
-            }else {
+                result.data = await engineeringLibModel.updateById(data.id, data.updateData);
+            } else {
                 throw new Error("提交数据有误");
             }
 
-        }catch (err){
+        } catch (err) {
             console.log(err);
-            result.error=1;
+            result.error = 1;
             result.message = err.message;
         }
         response.json(result);
@@ -513,7 +513,7 @@ class CompilationController extends BaseController {
      * @param {object} response
      * @return {void}
      */
-     async setFileTypes(request, response) {
+    async setFileTypes(request, response) {
         let id = request.body.id;
         let section = request.params.section;
         let fileTypes = request.body.fileTypes;
@@ -605,34 +605,46 @@ class CompilationController extends BaseController {
         response.json(responseData);
     }
 
-    async setDescription(request, response){
+    async setDescription(request, response) {
         let compilationId = request.body.id;
         let description = request.body.description;
-        try{
+        try {
             let compilationModel = new CompilationModel();
             await compilationModel.setDescription(compilationId, description);
-            response.json({err: 0, msg: '', data: null});
+            response.json({ err: 0, msg: '', data: null });
         }
-        catch (err){
-            response.json({err: 1, msg: err, data: null});
+        catch (err) {
+            response.json({ err: 1, msg: err, data: null });
         }
     }
-    async setEdition(request, response){
+    async setEdition(request, response) {
         let compilationId = request.body.id;
         let edition = request.body.edition;
-        try{
+        try {
             let compilationModel = new CompilationModel();
             await compilationModel.setEdition(compilationId, edition);
-            response.json({err: 0, msg: '', data: null});
+            response.json({ err: 0, msg: '', data: null });
         }
-        catch (err){
-            response.json({err: 1, msg: err, data: null});
+        catch (err) {
+            response.json({ err: 1, msg: err, data: null });
         }
     }
-    async setOverWriteUrl(request, response){
+    async setSerialNumber(request, response) {
+        let compilationId = request.body.id;
+        let serialNumber = request.body.serialNumber;
+        try {
+            let compilationModel = new CompilationModel();
+            await compilationModel.setSerialNumber(compilationId, serialNumber);
+            response.json({ err: 0, msg: '', data: null });
+        }
+        catch (err) {
+            response.json({ err: 1, msg: err, data: null });
+        }
+    }
+    async setOverWriteUrl(request, response) {
         let compilationId = request.body.id;
         let overWriteUrl = request.body.overWriteUrl;
-        try{
+        try {
             let compilationModel = new CompilationModel();
             //绝对路径
             let absoluteUrl = request.app.locals.rootDir + overWriteUrl;
@@ -640,33 +652,33 @@ class CompilationController extends BaseController {
             let fileExists = fs.existsSync(absoluteUrl);
             let pricePropertiesTemplate = [],
                 consumeAmtPropertiesTemplate = [];
-            if(fileExists && fs.statSync(absoluteUrl).isFile()){
+            if (fileExists && fs.statSync(absoluteUrl).isFile()) {
                 //读取配置文件并赋值
                 let overWriteExports = require(absoluteUrl);
-                if(overWriteExports){
+                if (overWriteExports) {
                     pricePropertiesTemplate = overWriteExports.pricePropertiesTemplate ? overWriteExports.pricePropertiesTemplate : [];
                     consumeAmtPropertiesTemplate = overWriteExports.consumeAmtPropertiesTemplate ? overWriteExports.consumeAmtPropertiesTemplate : [];
                 }
             }
             await compilationModel.setOverWriteUrl(compilationId, overWriteUrl, pricePropertiesTemplate, consumeAmtPropertiesTemplate);
-            response.json({err: 0, msg: '', data: null});
+            response.json({ err: 0, msg: '', data: null });
         }
-        catch (err){
+        catch (err) {
             console.log(err);
-            response.json({err: 1, msg: err, data: null});
+            response.json({ err: 1, msg: err, data: null });
         }
     }
-    async setExample(request, response){
+    async setExample(request, response) {
         let compilationId = request.body.id,
             example = request.body.example;
         try {
             let compilationModel = new CompilationModel();
             await compilationModel.setExample(compilationId, example);
-            response.json({err: 0, msg: 'success', data: null});
+            response.json({ err: 0, msg: 'success', data: null });
         }
-        catch (err){
+        catch (err) {
             console.log(err);
-            response.json({err: 1, msg: err, data: null});
+            response.json({ err: 1, msg: err, data: null });
         }
     }
 
@@ -719,7 +731,7 @@ class CompilationController extends BaseController {
             valuationId: valuationId,
             section: section,
             layout: 'users/views/layout/layout',
-            LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
+            LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
         };
         response.render('users/views/compilation/template', renderData);
     }
@@ -740,9 +752,9 @@ class CompilationController extends BaseController {
         let result = await billsTemplateModel.updateTemplate(valuationId, engineering, data);
 
         if (result) {
-            response.json({error: 0, message: '', data: data});
+            response.json({ error: 0, message: '', data: data });
         } else {
-            response.json({error: 1, message: '更新数据错误', data: null});
+            response.json({ error: 1, message: '更新数据错误', data: null });
         }
     }
 
@@ -770,11 +782,11 @@ class CompilationController extends BaseController {
 
     }
 
-    async addEngineer(request,response){
+    async addEngineer(request, response) {
         let engineeringLibModel = new EngineeringLibModel();
         try {
             await engineeringLibModel.addEngineer(request.body);
-        }catch (error) {
+        } catch (error) {
             console.log(error);
         }
         response.redirect(request.headers.referer);
@@ -795,60 +807,60 @@ class CompilationController extends BaseController {
             let compilationModel = new CompilationModel();
             let result = await compilationModel.updateCategory(valuationId, category);
             if (result) {
-                response.json({error: 0, message: '', data: null});
+                response.json({ error: 0, message: '', data: null });
             } else {
-                response.json({error: 1, message: '更新数据错误', data: null});
+                response.json({ error: 1, message: '更新数据错误', data: null });
             }
-        } catch(error) {
-            response.json({error: 1, message: '更新数据错误', data: null});
+        } catch (error) {
+            response.json({ error: 1, message: '更新数据错误', data: null });
         }
     }
 
 
-     /**
-     * 更改编办默认工程所在工
-     *
-     * @param request
-     * @param response
-     * @return {Promise.<void>}
-     */
-      async changeLocation(request, response) {
+    /**
+    * 更改编办默认工程所在工
+    *
+    * @param request
+    * @param response
+    * @return {Promise.<void>}
+    */
+    async changeLocation(request, response) {
         let compilationId = request.body.id;
         let location = request.body.location;
         try {
             let compilationModel = new CompilationModel();
             let result = await compilationModel.updateLocation(compilationId, location);
             if (result) {
-                response.json({error: 0, message: '', data: null});
+                response.json({ error: 0, message: '', data: null });
             } else {
-                response.json({error: 1, message: '更新数据错误', data: null});
+                response.json({ error: 1, message: '更新数据错误', data: null });
             }
-        } catch(error) {
-            response.json({error: 1, message: '更新数据错误', data: null});
+        } catch (error) {
+            response.json({ error: 1, message: '更新数据错误', data: null });
         }
     }
 
 
-     /**
-     * 更改编办默认工程所在工
-     *
-     * @param request
-     * @param response
-     * @return {Promise.<void>}
-     */
-      async changeFreeUse(request, response) {
+    /**
+    * 更改编办默认工程所在工
+    *
+    * @param request
+    * @param response
+    * @return {Promise.<void>}
+    */
+    async changeFreeUse(request, response) {
         let compilationId = request.body.id;
         let freeUse = request.body.freeUse;
         try {
             let compilationModel = new CompilationModel();
             let result = await compilationModel.updateFreeUse(compilationId, freeUse);
             if (result) {
-                response.json({error: 0, message: '', data: null});
+                response.json({ error: 0, message: '', data: null });
             } else {
-                response.json({error: 1, message: '更新数据错误', data: null});
+                response.json({ error: 1, message: '更新数据错误', data: null });
             }
-        } catch(error) {
-            response.json({error: 1, message: '更新数据错误', data: null});
+        } catch (error) {
+            response.json({ error: 1, message: '更新数据错误', data: null });
         }
     }
 

+ 54 - 35
modules/users/models/compilation_model.js

@@ -7,7 +7,7 @@
  */
 import mongoose from "mongoose";
 import BaseModel from "../../common/base/base_model";
-import  uuidV1  from 'uuid/v1';
+import uuidV1 from 'uuid/v1';
 const engineeringModel = mongoose.model('engineering_lib');
 const compilationModel = mongoose.model('compilation');
 
@@ -38,11 +38,20 @@ class CompilationModel extends BaseModel {
      */
     async getCompilationList(fields = null) {
         // 筛选字段
-        let field = fields == null ?{_id: 1, name: 1, is_release: 1, release_time:1,categoryID: 1, defaultLocation:1,description: 1,overWriteUrl: 1,example: 1,edition: 1,freeUse:1, "ration_valuation.id": 1, "ration_valuation.name": 1, "ration_valuation.enable": 1,
-            "bill_valuation.id": 1, "bill_valuation.name": 1, "bill_valuation.enable": 1, "bill_valuation.fileTypes": 1}:fields;
-        let compilationData = await this.findDataByCondition({name: {$ne: ''}}, field, false);
-
-        return compilationData === null ? [] : compilationData;
+        let field = fields == null ? {
+            _id: 1, name: 1, is_release: 1, release_time: 1, categoryID: 1, defaultLocation: 1, description: 1, overWriteUrl: 1, example: 1, edition: 1, serialNumber: 1, freeUse: 1, "ration_valuation.id": 1, "ration_valuation.name": 1, "ration_valuation.enable": 1,
+            "bill_valuation.id": 1, "bill_valuation.name": 1, "bill_valuation.enable": 1, "bill_valuation.fileTypes": 1
+        } : fields;
+        // 一定要查询序号,然后排序输出
+        field.serialNumber = 1;
+        let compilationData = await this.findDataByCondition({ name: { $ne: '' } }, field, false);
+        if (compilationData) {
+            compilationData.sort((aa, bb) => {
+                return (aa.serialNumber || 99999) - (bb.serialNumber || 99999);
+            });
+            return compilationData;
+        }
+        return [];
     }
 
     /**
@@ -52,8 +61,8 @@ class CompilationModel extends BaseModel {
      */
     async getList() {
         // 筛选字段
-        let field = {_id: 1, name: 1, is_release: 1, description: 1, categoryID: 1};
-        let compilationData = await this.findDataByCondition({name: {$ne: ''}, is_release: true}, field, false);
+        let field = { _id: 1, name: 1, is_release: 1, description: 1, categoryID: 1 };
+        let compilationData = await this.findDataByCondition({ name: { $ne: '' }, is_release: true }, field, false);
 
         return compilationData === null ? [] : compilationData;
     }
@@ -65,9 +74,9 @@ class CompilationModel extends BaseModel {
      * @return {Promise}
      */
     async getCompilationById(id) {
-        let condition = {_id: id, is_release: true};
+        let condition = { _id: id, is_release: true };
         let compilationData = await this.findDataByCondition(condition);
-        if (!compilationData  || compilationData.bill_valuation === undefined) {
+        if (!compilationData || compilationData.bill_valuation === undefined) {
             return compilationData;
         }
 
@@ -136,8 +145,8 @@ class CompilationModel extends BaseModel {
     * @param {String} description
     * @return {Promise}
     * */
-    async setDescription(compilationId, description){
-        return await this.updateById(compilationId, {description: description});
+    async setDescription(compilationId, description) {
+        return await this.updateById(compilationId, { description: description });
     }
 
     /*
@@ -147,14 +156,24 @@ class CompilationModel extends BaseModel {
     * @param {String} edition
     * @return {Promise}
     * */
-   async setEdition(compilationId, edition){
-    return await this.updateById(compilationId, {edition: edition});
-   }
+    async setEdition(compilationId, edition) {
+        return await this.updateById(compilationId, { edition: edition });
+    }
+    /*
+    * 设置序号号
+    *
+    * @param {String} compilationId
+    * @param {String} serialNumber
+    * @return {Promise}
+    * */
+    async setSerialNumber(compilationId, serialNumber) {
+        return await this.updateById(compilationId, { serialNumber: serialNumber });
+    }
     /*
         设置代码覆盖路径
      */
-    async setOverWriteUrl(compilationId, overWriteUrl, priceProp, consumeAmtProp){
-        return await this.updateById(compilationId, {overWriteUrl: overWriteUrl, priceProperties: priceProp, consumeAmtProperties: consumeAmtProp});
+    async setOverWriteUrl(compilationId, overWriteUrl, priceProp, consumeAmtProp) {
+        return await this.updateById(compilationId, { overWriteUrl: overWriteUrl, priceProperties: priceProp, consumeAmtProperties: consumeAmtProp });
     }
 
     /*
@@ -174,7 +193,7 @@ class CompilationModel extends BaseModel {
                 }
             }
         }
-        return await this.updateById(compilationId, {example: data});
+        return await this.updateById(compilationId, { example: data });
     }
 
     /**
@@ -186,7 +205,7 @@ class CompilationModel extends BaseModel {
      * @return {Promise}
      */
     async addValuation(id, section, data) {
-        let condition = {_id: id};
+        let condition = { _id: id };
         let compilationData = await this.findDataByCondition(condition);
         if (compilationData === null || compilationData.name === undefined) {
             throw '没有找到对应的数据';
@@ -249,7 +268,7 @@ class CompilationModel extends BaseModel {
         return result !== null && result.ok === 1;
     }
 
-    
+
     /**
      * 设置计价规则适用类型
      *
@@ -258,7 +277,7 @@ class CompilationModel extends BaseModel {
      * @param {String} setFileTypes
      * @return {Promise}
      */
-     async setFileTypes(valuationId, section, fileTypes) {
+    async setFileTypes(valuationId, section, fileTypes) {
         let sectionString = section + "_valuation";
         let condition = {};
         condition[sectionString + ".id"] = valuationId;
@@ -307,14 +326,14 @@ class CompilationModel extends BaseModel {
         if (this.sectionList.indexOf(section) < 0) {
             throw '数据有误';
         }
-        let compilationData = await this.findDataByCondition({_id: compilationId});
+        let compilationData = await this.findDataByCondition({ _id: compilationId });
         if (Object.keys(compilationData).length <= 0) {
             throw '编办数据有误';
         }
         let result = {};
         let sectionString = section + '_valuation';
 
-        for(let valuation of compilationData[sectionString]) {
+        for (let valuation of compilationData[sectionString]) {
             if (valuation.id.toString() === id) {
                 result = valuation;
                 break;
@@ -342,10 +361,10 @@ class CompilationModel extends BaseModel {
      * @return {Promise}
      */
     async deleteValuation(compilationId, valuationId, section) {
-        let condition = {_id: compilationId};
+        let condition = { _id: compilationId };
         let sectionString = section + '_valuation';
         let deleteData = {};
-        deleteData[sectionString] = {id: valuationId};
+        deleteData[sectionString] = { id: valuationId };
 
         // 利用pull删除嵌套数据
         let result = await this.db.deleteSet(condition, deleteData);
@@ -363,7 +382,7 @@ class CompilationModel extends BaseModel {
     async release(id, status) {
         // 如果是发布编办则需要判断配置的内容是否满足发布条件
         if (status) {
-            let compilationData = await this.findDataByCondition({_id: id});
+            let compilationData = await this.findDataByCondition({ _id: id });
             // 最少需要有一个计价规则存在
             if (compilationData.bill_valuation.length <= 0 && compilationData.ration_valuation.length <= 0) {
                 throw '至少需要一个计价规则';
@@ -409,8 +428,8 @@ class CompilationModel extends BaseModel {
             throw '不存在对应编办';
         }
         let valuationData = null;
-        for(let valuation of compilationData[sectionString]) {
-            if(valuation.id === valuationId) {
+        for (let valuation of compilationData[sectionString]) {
+            if (valuation.id === valuationId) {
                 valuationData = valuation;
             }
         }
@@ -422,7 +441,7 @@ class CompilationModel extends BaseModel {
         // 判断是否已有对应数据
         let engineeringList = valuationData.engineering_list;
         let engineeringLib = null;
-        for(let tmpEngineering of engineeringList) {
+        for (let tmpEngineering of engineeringList) {
             if (tmpEngineering.engineering === engineering) {
                 engineeringLib = tmpEngineering;
                 break;
@@ -460,7 +479,7 @@ class CompilationModel extends BaseModel {
      * @return {Promise}
      * */
     async updateCategory(compilationId, category) {
-        return await this.updateById(compilationId, {categoryID: category});
+        return await this.updateById(compilationId, { categoryID: category });
     }
 
     /*
@@ -471,7 +490,7 @@ class CompilationModel extends BaseModel {
         * @return {Promise}
         * */
     async updateLocation(compilationId, location) {
-        return await this.updateById(compilationId, {defaultLocation: location});
+        return await this.updateById(compilationId, { defaultLocation: location });
     }
 
     /*
@@ -482,14 +501,14 @@ class CompilationModel extends BaseModel {
     * @return {Promise}
     * */
     async updateFreeUse(compilationId, freeUse) {
-        return await this.updateById(compilationId, {freeUse: freeUse});
+        return await this.updateById(compilationId, { freeUse: freeUse });
     }
 
 
     // 拷贝计价规则
     async copyValuation(compilationID, valuationType, orgValuationID, newName) {
         const objectId = mongoose.Types.ObjectId(compilationID);
-        const compilationData = await compilationModel.findOne({_id: objectId }).lean();
+        const compilationData = await compilationModel.findOne({ _id: objectId }).lean();
         const orgValuation = compilationData[valuationType].find(item => item.id === orgValuationID);
         if (!orgValuation) {
             throw '不存在对应计价规则';
@@ -500,10 +519,10 @@ class CompilationModel extends BaseModel {
             enable: false,
             name: newName
         };
-        await compilationModel.update({ _id:  objectId }, { $push: { [valuationType]: newValuation } });
+        await compilationModel.update({ _id: objectId }, { $push: { [valuationType]: newValuation } });
         await this.copyEngineeringList(orgValuationID, newValuation.id);
     }
-    
+
 
     // 拷贝工程专业
     async copyEngineeringList(orgValuationID, newValuationID) {

+ 1 - 0
modules/users/routes/compilation_route.js

@@ -22,6 +22,7 @@ module.exports = function (app) {
     router.post('/add', compilationController.auth, compilationController.init, compilationController.addCompilation);
     router.post('/setDescription', compilationController.auth, compilationController.init, compilationController.setDescription);
     router.post('/setEdition', compilationController.auth, compilationController.init, compilationController.setEdition);
+    router.post('/setSerialNumber', compilationController.auth, compilationController.init, compilationController.setSerialNumber);
     router.post('/setOverWriteUrl', compilationController.auth, compilationController.init, compilationController.setOverWriteUrl);
     router.post('/setExample', compilationController.auth, compilationController.init, compilationController.setExample);
     router.post('/add-valuation', compilationController.auth, compilationController.init, compilationController.addValuation);

+ 23 - 7
web/users/js/compilation.js

@@ -471,6 +471,22 @@ $(document).ready(function () {
         });
     });
 
+    //更改序号
+    $('#serialNumber').change(function () {
+        let serialNumber = Number($(this).val());
+        $.ajax({
+            url: '/compilation/setSerialNumber',
+            type: 'post',
+            dataType: "json",
+            data: { id: id, serialNumber: serialNumber },
+            success: function (response) {
+                if (response.err !== 0) {
+                    alert('更改失败');
+                }
+            }
+        });
+    });
+
     //更改代码覆盖路径
     $('#overWriteUrl').change(function () {
         let overWriteUrl = $(this).val();
@@ -560,7 +576,7 @@ $(document).ready(function () {
         if ($('#' + id + '_estimate').attr("checked")) fileTypes.push(5);
         if ($('#' + id + '_submission').attr("checked")) fileTypes.push(1);
         if ($('#' + id + '_changeBudget').attr("checked")) fileTypes.push(4);
-        if($('#'+id+'_settlement').attr("checked")) fileTypes.push(10);
+        if ($('#' + id + '_settlement').attr("checked")) fileTypes.push(10);
         let current = $(this);
 
         console.log(id, this);
@@ -667,14 +683,14 @@ $(document).ready(function () {
     })
 
 
-     // 选择默认所在地
-     $('#location-select').change(function () {
+    // 选择默认所在地
+    $('#location-select').change(function () {
         $.ajax({
             url: '/compilation/changeLocation',
             type: 'post',
-            data: {id: id, location: $(this).val()},
+            data: { id: id, location: $(this).val() },
             dataType: "json",
-            success: function(response) {
+            success: function (response) {
                 if (response.error !== 0) {
                     alert('更改失败');
                 }
@@ -687,9 +703,9 @@ $(document).ready(function () {
         $.ajax({
             url: '/compilation/changeFreeUse',
             type: 'post',
-            data: {id: id, freeUse: $(this).val()},
+            data: { id: id, freeUse: $(this).val() },
             dataType: "json",
-            success: function(response) {
+            success: function (response) {
                 if (response.error !== 0) {
                     alert('更改失败');
                 }

+ 5 - 1
web/users/views/compilation/index.html

@@ -1,4 +1,4 @@
-<%include ./common.html %>
+<%include ./common.html %>
 <div class="panel-content">
     <% if(Object.keys(selectedCompilation).length > 0) {%>
     <div class="panel-title">
@@ -138,6 +138,10 @@
                     </td>
                 </tr>
                 <tr><td><span>版本号:</span><input class="form-control" type="text" id="edition" value="<%= selectedCompilation.edition%>"></td></tr>  
+                <tr>
+                    <td><span>序号:</span><input class="form-control" type="number" id="serialNumber" value="<%= selectedCompilation.serialNumber%>">
+                    </td>
+                </tr>
             </table>
         </div>
         <input type="hidden" name="id" value="<%= selectedCompilation._id %>" id="compilation-id">