فهرست منبع

工程特征库增加费用定额筛选、新增

zhongzewei 6 سال پیش
والد
کامیت
a72d35f8bc

+ 2 - 0
modules/all_models/project_feature_lib.js

@@ -12,6 +12,8 @@ const project_feature_lib = new Schema({
         createDate: Number,
         recentOpr: [oprSchema],
         name: String,
+        compilationId: String,
+        compilationName: String,
         feature:{
             type: [Schema.Types.Mixed],
             default: []

+ 13 - 1
modules/project_feature_lib/controllers/project_feature_controller.js

@@ -4,15 +4,27 @@
 import BaseController from "../../common/base/base_controller";
 import featureFacade from "../facade/project_feature_facade";
 let config = require("../../../config/config.js");
+import CompilationModel from '../../users/models/compilation_model';
 
 class FeatureController extends BaseController{
     async main(request, response) {
-        let featureLibs = await featureFacade.findByCondition({},{feature:0},false);
+        let compilationModel = new CompilationModel();
+        let compilationList = await compilationModel.getCompilationList({_id: 1, name: 1});
+        compilationList.unshift({_id: 'all', name: '所有'});
+        let activeCompilation = compilationList.find(compilation => compilation._id.toString() === request.query.filter);
+        if (activeCompilation) {
+            activeCompilation.active = 'active';
+        } else {
+            compilationList[0].active = 'active'
+        }
+        let filter = request.query.filter ? {compilationId: request.query.filter} : {};
+        let featureLibs = await featureFacade.findByCondition(filter,{feature:0},false);
         let randerData = {
             title:'工程特征库',
             userAccount: request.session.managerData.username,
             userID: request.session.managerData.userID,
             featureLibs:featureLibs,
+            compilationList: compilationList,
             layout: 'maintain/common/html/layout'
         };
         response.render("maintain/project_feature_lib/html/main", randerData);

+ 17 - 9
modules/project_feature_lib/facade/project_feature_facade.js

@@ -5,7 +5,7 @@ import mongoose from "mongoose";
 const uuidV1 = require('uuid/v1');
 let moment = require("moment");
 let projectFeatureModel = mongoose.model('std_project_feature_lib');
-
+let compilationModel = mongoose.model('compilation');
 
 let projectFeatureLib = {
     findByCondition:async function(conditions,options,single=true){
@@ -18,14 +18,22 @@ let projectFeatureLib = {
     addLib : async function (data){
         let now = new Date().getTime();
         let dateStr = moment(now).format('YYYY-MM-DD HH:mm:ss');
-        let newLib = {
-            creator: data.userAccount,
-            createDate: now,
-            recentOpr: [{operator: data.userAccount, operateDate: dateStr}],
-            name: data.name,
-        };
-        newLib.ID = uuidV1();
-        return await projectFeatureModel.create(newLib);
+        //取编办信息
+        let compilation = await compilationModel.findOne({_id:data.compilationId});
+        if(compilation){
+            let newLib = {
+                creator: data.userAccount,
+                createDate: now,
+                recentOpr: [{operator: data.userAccount, operateDate: dateStr}],
+                name: data.name,
+                compilationId: data.compilationId,
+                compilationName: compilation.name,
+            };
+            newLib.ID = uuidV1();
+            return await projectFeatureModel.create(newLib);
+        }else {
+            throw  new Error("没有找到该编办!");
+        }
     },
     saveLib:async function(param) {
         return await projectFeatureModel.findOneAndUpdate(param.query,param.data,{new:true});

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

@@ -246,7 +246,7 @@ class CompilationController extends BaseController {
             billsGuidanceList = await billsGuidanceFc.getBillsGuideLibs({compilationId: selectedCompilation._id, $or: [{deleted: null}, {deleted: false}]});
 
             //获取工程特征库
-            featureList = await projectFeatureFacade.findByCondition({},null,false);
+            featureList = await projectFeatureFacade.findByCondition({compilationId: selectedCompilation._id},null,false);
 
             //获取累进区间库
             progressiveList = await progressiveFacade.findByCondition({},null,false);

+ 26 - 2
web/maintain/project_feature_lib/html/main.html

@@ -2,14 +2,29 @@
     <div class="content">
         <div class="container-fluid">
             <div class="row">
-                <div class="col-md-5">
+                <div class="col-md-2">
+                    <div class="list-group mt-3">
+                        <% for (let compilation of compilationList) { %>
+                        <% if (compilation._id === 'all') { %>
+                        <a href="/projectFeature/main" class="list-group-item list-group-item-action <%= compilation.active %>">
+                            所有
+                        </a>
+                        <% } else { %>
+                        <a id="<%= compilation._id %>" href="/projectFeature/main?filter=<%= compilation._id %>" class="list-group-item list-group-item-action <%= compilation.active %>">
+                            <%= compilation.name %>
+                        </a>
+                        <% }} %>
+                    </div>
+                </div>
+                <div class="col-md-8">
                     <div class="warp-p2 mt-3">
                         <table class="table table-hover table-bordered">
-                            <thead><tr><th >库名称</th><th width="160">添加时间</th><th width="120">操作</th></tr></thead>
+                            <thead><tr><th >库名称</th><th>费用定额</th><th width="160">添加时间</th><th width="120">操作</th></tr></thead>
                             <tbody id="showArea">
                             <% for(let lib of featureLibs){ %>
                             <tr class="libTr">
                                 <td id="<%= lib.ID%>"><a href="/projectFeature/edit/<%= lib.ID%>"><%= lib.name%></a></td>
+                                <td><%= lib.compilationName%></td>
                                 <td><%= moment(lib.createDate).format('YYYY-MM-DD')%></td>
                                 <td>
                                     <a style="color: #0275d8" onclick='getFeatureLib("<%= lib.ID%>")' title="编辑"><i class="fa fa-pencil-square-o"></i></a>
@@ -43,6 +58,15 @@
                         <input id="name" name="name" class="form-control" placeholder="请输入特征库名称" type="text">
                         <small class="form-text text-danger" id="nameError" style="display: none">请输入特征库名称。</small>
                     </div>
+                    <div class="form-group">
+                        <label>编办名称</label>
+                        <select class="form-control" name="compilationId">
+                            <% for (let compilation of compilationList) { %>
+                            <% if (compilation.name !== '所有') { %>
+                            <option value="<%= compilation._id %>"><%= compilation.name %></option>
+                            <% }} %>
+                        </select>
+                    </div>
                     <input type="hidden" name = "userAccount" value="<%= userAccount%>">
                 </form>
             </div>