浏览代码

提交台账分解页面

olym 7 年之前
父节点
当前提交
f5420fab08
共有 6 个文件被更改,包括 383 次插入49 次删除
  1. 10 39
      app/controller/ledger_controller.js
  2. 45 0
      app/controller/tender_controller.js
  3. 4 2
      app/router.js
  4. 4 8
      app/service/tender.js
  5. 180 0
      app/view/ledger/explode.ejs
  6. 140 0
      app/view/tender/index.ejs

+ 10 - 39
app/controller/ledger_controller.js

@@ -13,56 +13,27 @@ module.exports = app => {
     class LedgerController extends app.BaseController {
 
         /**
-         * 台账列表
+         * 构造函数
          *
          * @param {Object} ctx - egg全局变量
          * @return {void}
          */
-        async index(ctx) {
-            const rule = ctx.service.tender.rule('add');
-            const frontRule = ctx.helper.validateConvert(rule);
-            let tender = ctx.request.query.tender;
-            tender = parseInt(tender);
-            tender = isNaN(tender) ? 0 : tender;
-
-            // 获取标段数据
-            const tenderList = await ctx.service.tender.getList();
-            // 如果没有指定标段则默认载入第一个
-            if (tenderList.length > 0 && tender <= 0) {
-                tender = tenderList[0].id;
-            }
-
-            // 获取标段台账
-            const ledgerData = await ctx.service.ledger.getDataByTenderId(tender);
-
-            const renderData = {
-                tenderList,
-                rule: JSON.stringify(frontRule),
-                currentTender: tender,
-            };
-            await this.layout('ledger/index.ejs', renderData);
+        constructor(ctx) {
+            super(ctx);
+            ctx.showProject = true;
+            ctx.showTitle = true;
+            ctx.showTender = true;
         }
 
         /**
-         * 添加标段操作
+         * 台账分解页面
          *
          * @param {Object} ctx - egg全局变量
          * @return {void}
          */
-        async addTender(ctx) {
-            try {
-                const rule = ctx.service.tender.rule('add');
-                ctx.validate(rule);
-
-                const result = ctx.service.tender.add(ctx.request.body);
-                if (!result) {
-                    throw '新增标段失败';
-                }
-            } catch (error) {
-                this.setMessage(error.toString(), this.messageType.ERROR);
-            }
-
-            ctx.redirect(ctx.request.headers.referer);
+        async explode(ctx) {
+            const renderData = {};
+            await this.layout('ledger/explode.ejs', renderData);
         }
     }
 

+ 45 - 0
app/controller/tender_controller.js

@@ -0,0 +1,45 @@
+'use strict';
+
+/**
+ * 标段管理控制器
+ *
+ * @author CaiAoLin
+ * @date 2018/2/5
+ * @version
+ */
+
+module.exports = app => {
+
+    class TenderController extends app.BaseController {
+
+        /**
+         * 构造函数
+         *
+         * @param {Object} ctx - egg全局变量
+         * @return {void}
+         */
+        constructor(ctx) {
+            super(ctx);
+            ctx.showProject = true;
+            ctx.showTitle = true;
+        }
+
+        /**
+         * 标段列表页
+         *
+         * @param {object} ctx - egg全局变量
+         * @return {void}
+         */
+        async index(ctx) {
+
+            // 根据项目id获取标段数据
+            const tenderList = await ctx.service.tender.getList();
+            const renderData = {
+                tenderList,
+            };
+            await this.layout('tender/index.ejs', renderData);
+        }
+    }
+
+    return TenderController;
+};

+ 4 - 2
app/router.js

@@ -31,8 +31,7 @@ module.exports = app => {
     app.post('/project/info', sessionAuth, 'projectController.saveInfo');
 
     // 台账管理相关
-    app.get('/ledger', sessionAuth, 'ledgerController.index');
-    app.post('/ledger/tender/add', sessionAuth, datetimeFill, 'ledgerController.addTender');
+    app.get('/ledger/explode', sessionAuth, 'ledgerController.explode');
 
     // 个人账号相关
     app.get('/profile/info', sessionAuth, 'profileController.info');
@@ -40,4 +39,7 @@ module.exports = app => {
     app.post('/profile/password', sessionAuth, 'profileController.modifyPassword');
     app.post('/profile/code', sessionAuth, 'profileController.getCode');
     app.post('/profile/bind', sessionAuth, 'profileController.bindMobile');
+
+    // 标段管理相关
+    app.get('/tender', sessionAuth, 'tenderController.index');
 };

+ 4 - 8
app/service/tender.js

@@ -53,19 +53,15 @@ module.exports = app => {
          * @return {Array} - 返回标段数据
          */
         async getList() {
-            // 获取当前用户信息
-            const sessionUser = this.ctx.session.sessionUser;
+            // 获取当前项目信息
+            const sessionProject = this.ctx.session.sessionProject;
             this.initSqlBuilder();
             this.sqlBuilder.setAndWhere('project_id', {
-                value: sessionUser.projectId,
-                operate: '=',
-            });
-            this.sqlBuilder.setAndWhere('user_id', {
-                value: sessionUser.accountId,
+                value: sessionProject.id,
                 operate: '=',
             });
             this.sqlBuilder.limit = 10;
-            this.sqlBuilder.columns = ['id', 'name', 'status'];
+            this.sqlBuilder.columns = ['id', 'name', 'status', 'type'];
             const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
 
             return await this.db.query(sql, sqlParam);

+ 180 - 0
app/view/ledger/explode.ejs

@@ -0,0 +1,180 @@
+<div class="panel-content">
+    <div class="panel-title fluid">
+        <div class="title-main  d-flex justify-content-between"><!--工具-->
+            <div>
+                <div class="btn-group">
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                       data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                       data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                       data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                       data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title=""
+                       data-original-title="升级"><i class="fa fa-arrow-left" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title=""
+                       data-original-title="降级"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                       data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                       data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </div>
+                <div class="btn-group">
+                    <div class="form-check-inline">
+                        <label class="form-check-label">
+                            <input type="checkbox" class="form-check-input">
+                            审批过程
+                        </label>
+                    </div>
+                    <div class="form-check-inline">
+                        <label class="form-check-label">
+                            <input type="checkbox" class="form-check-input">
+                            台帐变更
+                        </label>
+                    </div>
+                    <div class="form-check-inline">
+                        <label class="form-check-label">
+                            <input type="checkbox" class="form-check-input">
+                            变更令
+                        </label>
+                    </div>
+                </div>
+            </div>
+            <div>
+                <a href="#" class="btn btn-primary btn-sm pull-right">上报审批</a>
+                <a href="#" class="btn btn-outline-secondary btn-sm pull-right disabled">报审完成</a>
+            </div>
+        </div>
+    </div>
+    <div class="content-wrap row">
+        <div class="c-header p-0 col-12 d-flex flex-row-reverse">
+
+            <!--标准清单-->
+            <ul class="nav nav-tabs">
+                <li class="nav-item">
+                    <a class="nav-link active" data-toggle="tab" href="#xiangmujie" role="tab">项目节</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" data-toggle="tab" href="#qingdan" role="tab">工程量清单</a>
+                </li>
+            </ul>
+        </div>
+        <div class="c-body col-8">
+            <table class="table table-bordered">
+                <tr>
+                    <th></th>
+                    <th>项目节编号</th>
+                    <th>清单编号</th>
+                    <th>名称</th>
+                    <th>单位</th>
+                    <th>单价</th>
+                    <th>数量</th>
+                    <th>金额</th>
+                    <th>施工图原设计</th>
+                    <th>图(册)号</th>
+                    <th>备注</th>
+                </tr>
+            </table>
+            <!--查看审批过程-->
+            <table class="table table-bordered">
+                <thead>
+                <tr>
+                    <th rowspan="2">1</th>
+                    <th rowspan="2">项目节编号</th>
+                    <th rowspan="2">清单编号</th>
+                    <th rowspan="2">名称</th>
+                    <th rowspan="2">单位</th>
+                    <th rowspan="2">单价</th>
+                    <th colspan="2">上报</th>
+                    <th colspan="3">一审王五</th>
+                    <th colspan="3">二审张三</th>
+                    <th rowspan="2">图(册)号</th>
+                    <th rowspan="2">备注</th>
+                    <th rowspan="2">审批新增</th>
+                </tr>
+                <tr>
+                    <th>数量</th>
+                    <th>金额</th>
+                    <th>数量</th>
+                    <th>金额</th>
+                    <th>审批意见</th>
+                    <th>数量</th>
+                    <th>金额</th>
+                    <th>审批意见</th>
+                </tr>
+                </thead>
+                <tbody>
+                <tr>
+                    <td>2</td>
+                    <td></td>
+                    <td>203-1-1</td>
+                    <td>挖土方</td>
+                    <td>m3</td>
+                    <td>7.54</td>
+                    <td>92954.75</td>
+                    <td>699949</td>
+                    <td>92954.75</td>
+                    <td>699949</td>
+                    <td>审批意见</td>
+                    <td>92954.75</td>
+                    <td>699949</td>
+                    <td>审批意见</td>
+                    <td></td>
+                    <td></td>
+                    <td></td>
+                </tr>
+                <tr class="table-success">
+                    <td>2</td>
+                    <td></td>
+                    <td>203-1-1</td>
+                    <td>挖土方</td>
+                    <td>m3</td>
+                    <td>7.54</td>
+                    <td>92954.75</td>
+                    <td>699949</td>
+                    <td>92954.75</td>
+                    <td>699949</td>
+                    <td>审批意见</td>
+                    <td>92954.75</td>
+                    <td>699949</td>
+                    <td>审批意见</td>
+                    <td></td>
+                    <td></td>
+                    <td>一审王五</td>
+                </tr>
+                </tbody>
+            </table>
+        </div>
+        <div class="c-body col-4">
+            <div class="tab-content">
+                <div id="xiangmujie" class="tab-pane active">
+                    <select class="form-control form-control-sm">
+                        <option>0号计量台帐部位参考(项目节)</option>
+                    </select>
+                    <table class="table table-bordered">
+                        <tr>
+                            <th></th>
+                            <th>项目节编号</th>
+                            <th>名称</th>
+                            <th>单位</th>
+                        </tr>
+                    </table>
+                </div>
+                <div id="qingdan" class="tab-pane">
+                    <select class="form-control form-control-sm">
+                        <option>0号计量台帐部位参考(项目节)</option>
+                    </select>
+                    <table class="table table-bordered">
+                        <tr>
+                            <th></th>
+                            <th>清单编号</th>
+                            <th>名称</th>
+                            <th>单位</th>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 140 - 0
app/view/tender/index.ejs

@@ -0,0 +1,140 @@
+<div class="panel-content">
+    <div class="panel-title fluid">
+        <div class="title-main  d-flex justify-content-between">
+            <div>
+                <div class="btn-group">
+                    <div class="form-check-inline">
+                        <label class="form-check-label">
+                            <input class="form-check-input" type="checkbox">
+                            查看计量进度
+                        </label>
+                    </div>
+                </div>
+                <div class="btn-group">
+                    <select class="form-control form-control-sm m-0">
+                        <option>标段类型筛选</option>
+                        <option>土建标</option>
+                    </select>
+                </div>
+            </div>
+            <div>
+                <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-sm btn-primary pull-right">新建标段</a>
+            </div>
+        </div>
+    </div>
+    <div class="content-wrap">
+        <div class="c-body">
+            <!--默认-->
+            <table class="table table-bordered table-sm">
+                <thead>
+                <th>名称</th>
+                <th>标段类型</th>
+                <th>计量期数</th>
+                <th>审批状态</th>
+                <th>0号台帐合同</th>
+                <th>本期完成</th>
+                <th>截止本期合同</th>
+                <th>截止本期变更</th>
+                <th>接着本期完成</th>
+                <th>截止上期完成</th>
+                <th>本期应付</th>
+                </thead>
+                <% if(tenderList.length > 0) { %>
+                <% tenderList.forEach(function(tender) { %>
+                <tr>
+                    <td><a href="biaoduan-detail.html"><%= tender.name %></a></td>
+                    <td><%= tender.type %></td>
+                    <td>15</td>
+                    <td><%= tender.status %></td>
+                    <td>0</td>
+                    <td>0</td>
+                    <td>0</td>
+                    <td>0</td>
+                    <td>0</td>
+                    <td>0</td>
+                    <td>0</td>
+                </tr>
+                <% }) %>
+                <% } %>
+            </table>
+            <!--查看计量进度-->
+            <table class="table table-bordered table-sm">
+                <thead>
+                <th>名称</th>
+                <th width="120">标段类型</th>
+                <th width="120">完成期数</th>
+                <th>累计合同计量</th>
+                <th>截止本期累计完成/本期完成/未完成</th>
+                </thead>
+                <tr>
+                    <td><a href="biaoduan-detail.html">WWUJ-1</a></td>
+                    <td>土建标</td>
+                    <td>15</td>
+                    <td>¥5,000,000.00</td>
+                    <td>
+                        <div class="progress">
+                            <div class="progress-bar bg-success" style="width: 45%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="截止本期累计完成:¥731,121,121.00">45%
+                            </div>
+                            <div class="progress-bar bg-info" style="width:25%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="本期完成:¥31,121,121.00">25%
+                            </div>
+                            <div class="progress-bar bg-gray" style="width:30%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="未完成:¥71,121,121.00">30%
+                            </div>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td><a href="biaoduan-detail.html">WWUJ-2</a></td>
+                    <td>土建标</td>
+                    <td>15</td>
+                    <td>¥5,000,000.00</td>
+                    <td>
+                        <div class="progress">
+                            <div class="progress-bar bg-success" style="width: 45%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="截止本期累计完成:¥731,121,121.00">45%
+                            </div>
+                            <div class="progress-bar bg-info" style="width:25%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="本期完成:¥31,121,121.00">25%
+                            </div>
+                            <div class="progress-bar bg-gray" style="width:30%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="未完成:¥71,121,121.00">30%
+                            </div>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td><a href="biaoduan-detail.html">WWUJ-3</a></td>
+                    <td>土建标</td>
+                    <td>15</td>
+                    <td>¥5,000,000.00</td>
+                    <td>
+                        <div class="progress">
+                            <div class="progress-bar bg-success" style="width: 45%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="截止本期累计完成:¥731,121,121.00">45%
+                            </div>
+                            <div class="progress-bar bg-info" style="width:25%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="本期完成:¥31,121,121.00">25%
+                            </div>
+                            <div class="progress-bar bg-gray" style="width:30%;" data-placement="bottom"
+                                 data-toggle="tooltip" data-original-title="未完成:¥71,121,121.00">30%
+                            </div>
+                        </div>
+                    </td>
+                </tr>
+            </table>
+            <!--按标段类型筛选后,增加显示图表-->
+            <div class="row mt-5">
+                <div class="col-4">
+                    <!--图表1-->
+                    <div id="chartContainer1" style="width:100%;height:400px"></div>
+                </div>
+                <div class="col-8">
+                    <!--图表2-->
+                    <div id="chartContainer2" style="width:100%;height:400px"></div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>