瀏覽代碼

变更增加3个输出报表入口

ellisran 1 年之前
父節點
當前提交
0da426861e

+ 45 - 3
app/controller/change_controller.js

@@ -2352,7 +2352,21 @@ module.exports = app => {
                 await this.layout('change/project_information.ejs', renderData, 'change/project_information_modal.ejs');
             } catch (err) {
                 this.log(err);
-                ctx.redirect('/tender/' + ctx.params.id + '/change');
+                ctx.redirect('/tender/' + ctx.params.id + '/change/project');
+            }
+        }
+
+        async projectReport(ctx) {
+            try {
+                const renderData = {
+                    change: ctx.change,
+                    tender: ctx.tender,
+                    jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.change.report),
+                };
+                await this.layout('change/project_report.ejs', renderData);
+            } catch (err) {
+                this.log(err);
+                ctx.redirect('/tender/' + ctx.params.id + '/change/project');
             }
         }
 
@@ -3112,7 +3126,21 @@ module.exports = app => {
                 await this.layout('change/apply_information.ejs', renderData, 'change/apply_information_modal.ejs');
             } catch (err) {
                 this.log(err);
-                ctx.redirect('/tender/' + ctx.params.id + '/change');
+                ctx.redirect('/tender/' + ctx.params.id + '/change/apply');
+            }
+        }
+
+        async applyReport(ctx) {
+            try {
+                const renderData = {
+                    change: ctx.change,
+                    tender: ctx.tender,
+                    jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.change.report),
+                };
+                await this.layout('change/apply_report.ejs', renderData);
+            } catch (err) {
+                this.log(err);
+                ctx.redirect('/tender/' + ctx.params.id + '/change/apply');
             }
         }
 
@@ -3896,7 +3924,21 @@ module.exports = app => {
                 await this.layout('change/plan_information.ejs', renderData, 'change/plan_information_modal.ejs');
             } catch (err) {
                 this.log(err);
-                ctx.redirect('/tender/' + ctx.params.id + '/change');
+                ctx.redirect('/tender/' + ctx.params.id + '/change/plan');
+            }
+        }
+
+        async planReport(ctx) {
+            try {
+                const renderData = {
+                    change: ctx.change,
+                    tender: ctx.tender,
+                    jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.change.report),
+                };
+                await this.layout('change/plan_report.ejs', renderData);
+            } catch (err) {
+                this.log(err);
+                ctx.redirect('/tender/' + ctx.params.id + '/change/plan');
             }
         }
 

+ 3 - 0
app/router.js

@@ -565,6 +565,7 @@ module.exports = app => {
     app.post('/tender/:id/change/project/check/revise', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changeProjectCheck, 'changeController.checkProjectRevise');
     app.post('/tender/:id/change/project/cancel/revise', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changeProjectCheck, 'changeController.cancelProjectRevise');
     app.post('/tender/:id/change/project/check/again', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changeProjectCheck, 'changeController.checkProjectAgain');
+    app.get('/tender/:id/change/project/:cpid/information/report', sessionAuth, tenderCheck, uncheckTenderCheck, changeProjectCheck, 'changeController.projectReport');
     // 变更申请
     app.get('/tender/:id/change/apply', sessionAuth, tenderCheck, uncheckTenderCheck, 'changeController.apply');
     app.get('/tender/:id/change/apply/status/:status', sessionAuth, tenderCheck, uncheckTenderCheck, 'changeController.applyStatus');
@@ -585,6 +586,7 @@ module.exports = app => {
     app.post('/tender/:id/change/apply/check/revise', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changeApplyCheck, 'changeController.checkApplyRevise');
     app.post('/tender/:id/change/apply/cancel/revise', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changeApplyCheck, 'changeController.cancelApplyRevise');
     app.post('/tender/:id/change/apply/check/again', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changeApplyCheck, 'changeController.checkApplyAgain');
+    app.get('/tender/:id/change/apply/:caid/information/report', sessionAuth, tenderCheck, uncheckTenderCheck, changeApplyCheck, 'changeController.applyReport');
     // 变更方案
     app.get('/tender/:id/change/plan', sessionAuth, tenderCheck, uncheckTenderCheck, 'changeController.plan');
     app.get('/tender/:id/change/plan/status/:status', sessionAuth, tenderCheck, uncheckTenderCheck, 'changeController.planStatus');
@@ -605,6 +607,7 @@ module.exports = app => {
     app.post('/tender/:id/change/plan/check/revise', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changePlanCheck, 'changeController.checkPlanRevise');
     app.post('/tender/:id/change/plan/cancel/revise', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changePlanCheck, 'changeController.cancelPlanRevise');
     app.post('/tender/:id/change/plan/check/again', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, changePlanCheck, 'changeController.checkPlanAgain');
+    app.get('/tender/:id/change/plan/:cpid/information/report', sessionAuth, tenderCheck, uncheckTenderCheck, changePlanCheck, 'changeController.planReport');
     // 材料调差
     app.get('/tender/:id/measure/material', sessionAuth, tenderCheck, uncheckTenderCheck, 'materialController.index');
     app.post('/tender/:id/measure/material/add', sessionAuth, tenderCheck, uncheckTenderCheck, tenderBuildCheck, 'materialController.add');

+ 10 - 4
app/view/change/apply_information.ejs

@@ -5,11 +5,17 @@
             <% include ../tender/tender_sub_mini_menu.ejs %>
             <div>
                 <div class="d-inline-block">
-                    <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_apply_sort_link" href="/tender/<%- tender.id %>/change/apply"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>
-                </div>
-                <div class="d-inline-block" id="change-apply-code">
-                    <%- change.code %>
+                    <div class="btn-group btn-group-toggle group-tab">
+                        <a class="btn btn-sm btn-light active" href="javascript:void(0);">申请详情</a>
+                        <a class="btn btn-sm btn-light" href="/tender/<%- ctx.tender.id %>/change/apply/<%- ctx.change.id %>/information/report">输出报表</a>
+                    </div>
                 </div>
+<!--                <div class="d-inline-block">-->
+<!--                    <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_apply_sort_link" href="/tender/<%- tender.id %>/change/apply"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>-->
+<!--                </div>-->
+<!--                <div class="d-inline-block" id="change-apply-code">-->
+<!--                    <%- change.code %>-->
+<!--                </div>-->
                 <% if (!change.readOnly) { %>
                     <div class="d-inline-block">
                         <a href="#shuliangguize" data-toggle="modal" data-target="#shuliangguize" class="btn btn-outline-primary btn-sm"><i class="fa fa-cog"></i></a>

+ 10 - 4
app/view/change/apply_information_notice.ejs

@@ -5,11 +5,17 @@
             <% include ../tender/tender_sub_mini_menu.ejs %>
             <div>
                 <div class="d-inline-block">
-                    <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_apply_sort_link" href="/tender/<%- tender.id %>/change/apply"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>
-                </div>
-                <div class="d-inline-block" id="change-apply-code">
-                    <%- change.code %>
+                    <div class="btn-group btn-group-toggle group-tab">
+                        <a class="btn btn-sm btn-light active" href="javascript:void(0);">申请详情</a>
+                        <a class="btn btn-sm btn-light" href="/tender/<%- ctx.tender.id %>/change/apply/<%- ctx.change.id %>/information/report">输出报表</a>
+                    </div>
                 </div>
+<!--                <div class="d-inline-block">-->
+<!--                    <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_apply_sort_link" href="/tender/<%- tender.id %>/change/apply"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>-->
+<!--                </div>-->
+<!--                <div class="d-inline-block" id="change-apply-code">-->
+<!--                    <%- change.code %>-->
+<!--                </div>-->
             </div>
             <div class="ml-auto" id="sp-btn">
                 <% if (ctx.change.status === auditConst.status.checked) { %>

+ 202 - 0
app/view/change/apply_report.ejs

@@ -0,0 +1,202 @@
+<% include ../tender/tender_sub_menu.ejs %>
+<div class="panel-content">
+    <div class="panel-title" style="padding-right: 0px"><!--收起详解目录添加类名 fluid -->
+        <div class="title-main d-flex"><!--工具-->
+            <% include ../tender/tender_sub_mini_menu.ejs %>
+            <div style="width: 100%">
+                <div id="left-header" class="d-inline-block" style="min-width: 203px;">
+                    <div class="d-inline-block">
+                        <div class="btn-group btn-group-toggle group-tab">
+                            <a class="btn btn-sm btn-light" href="/tender/<%- ctx.tender.id %>/change/apply/<%- ctx.change.id %>/information">申请详情</a>
+                            <a class="btn btn-sm btn-light active" href="javascript:void(0);">输出报表</a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="content-wrap">
+        <div class="c-header p-0"></div>
+        <div class="w-100 sub-content row">
+            <div class="c-body col-3">
+                <div class="d-inline-block">
+                    <ul class="nav nav-pills m-0">
+                        <li class="nav-item mr-1"><a href="#man-c" data-toggle="modal" data-target="#man-c" class=" btn btn-light btn-sm text-primary"><i class="fa fa-cog"></i> 通用报表</a></li>
+                        <li class="nav-item"><a href="#add-c" data-toggle="modal" data-target="#add-c" class=" btn btn-light btn-sm  text-primary"><i class="fa fa-plus"></i> 定制报表</a></li>
+                    </ul>
+                </div>
+                <div class="sjs-height-1">
+                    <div class="text-center"></div>
+                    <ul id="treeDemo2" class="ztree"></ul>
+                </div>
+            </div>
+            <div class="c-body col-9">
+                <!--调整侧栏宽度-->
+                <div class="resize-x" title="调整大小"></div>
+
+                <!--打印工具栏-->
+                <div class="toolsbar-f d-flex justify-content-between">
+                    <div class="print-toolsbar">
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button">
+                                        <i class="fa fa-print"></i><br>
+                                        打印 <span class="badge badge-primary">5</span>
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#export" disabled=""><i class="fa fa-file-excel-o"></i> Excel <span class="badge badge-primary">5</span></button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm"><i class="fa fa-file-pdf-o"></i> PDF <span class="badge badge-primary">5</span></button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                导出报表
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#guidang"><i class="fa fa-archive"></i> 归档报表</button>
+
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-success btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            已归档
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">#1 2021-03-01</a>
+                                            <a class="dropdown-item" href="#">#2 2021-02-28</a>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                报表归档
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-outline-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            纵向
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">横向</a>
+                                        </div>
+                                    </div>
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-outline-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            A4
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">A3</a>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                预览设置
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="缩小">-</button>
+                                    <button class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="重置默认大小">1000%</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="放大">+</button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                缩放
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#paper"><i class="fa fa-file-o"></i> 页边距</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#format"><i class="fa fa-bold"></i> 格式</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#setting"><i class="fa fa-cog"></i> 设置</button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                报表设置
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button" data-toggle="modal" data-target="#sign">
+                                        <i class="fa fa-pencil"></i><br>
+                                        签字
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="input-group input-group-sm">
+                                    <div class="input-group-prepend">
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="第一页"><i class="fa fa-angle-double-left "></i></button>
+                                        <button type="button" class="btn btn-outline-primary btn-sm" disabled data-toggle="tooltip" data-placement="bottom" title="上一页"><i class="fa fa-angle-left "></i></button>
+                                    </div>
+                                    <input class="form-control" value="1/10" style="width:60px"  data-toggle="tooltip" data-placement="bottom" title="输入页码按回车键,快速跳转">
+                                    <div class="input-group-append">
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="下一页"><i class="fa fa-angle-right"></i></button>
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="尾页"><i class="fa fa-angle-double-right "></i></button>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                翻页
+                            </div>
+                        </div>
+                        <!--用于报表带工具栏全屏显示 -->
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button" data-toggle="modal" data-target="#fullscreen">
+                                        <i class="fa fa-window-maximize"></i><br>
+                                        全屏显示
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="sjs-height-4">
+                    <div class="print-view form-view">
+                        <div class="pageContainer">
+                            <div class="page">
+                                <img src="img/2 中期支付证书(佛山禅城).png">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script>
+    autoFlashHeight();
+    $.subMenu({
+        menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
+        toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',
+        key: 'menu.1.0.0',
+        miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',
+        callback: function (info) {
+            if (info.mini) {
+                $('.panel-title').addClass('fluid');
+                $('#sub-menu').removeClass('panel-sidebar');
+            } else {
+                $('.panel-title').removeClass('fluid');
+                $('#sub-menu').addClass('panel-sidebar');
+            }
+            autoFlashHeight();
+        }
+    });
+</script>

+ 10 - 4
app/view/change/plan_information.ejs

@@ -5,11 +5,17 @@
             <% include ../tender/tender_sub_mini_menu.ejs %>
             <div>
                 <div class="d-inline-block">
-                    <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_plan_sort_link" href="/tender/<%- tender.id %>/change/plan"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>
-                </div>
-                <div class="d-inline-block" id="change-plan-code">
-                    <%- change.code %>
+                    <div class="btn-group btn-group-toggle group-tab">
+                        <a class="btn btn-sm btn-light active" href="javascript:void(0);">方案详情</a>
+                        <a class="btn btn-sm btn-light" href="/tender/<%- ctx.tender.id %>/change/plan/<%- ctx.change.id %>/information/report">输出报表</a>
+                    </div>
                 </div>
+<!--                <div class="d-inline-block">-->
+<!--                    <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_plan_sort_link" href="/tender/<%- tender.id %>/change/plan"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>-->
+<!--                </div>-->
+<!--                <div class="d-inline-block" id="change-plan-code">-->
+<!--                    <%- change.code %>-->
+<!--                </div>-->
                 <% if (!change.readOnly) { %>
                 <div class="d-inline-block">
                     <a href="#shuliangguize" data-toggle="modal" data-target="#shuliangguize" class="btn btn-outline-primary btn-sm"><i class="fa fa-cog"></i></a>

+ 202 - 0
app/view/change/plan_report.ejs

@@ -0,0 +1,202 @@
+<% include ../tender/tender_sub_menu.ejs %>
+<div class="panel-content">
+    <div class="panel-title" style="padding-right: 0px"><!--收起详解目录添加类名 fluid -->
+        <div class="title-main d-flex"><!--工具-->
+            <% include ../tender/tender_sub_mini_menu.ejs %>
+            <div style="width: 100%">
+                <div id="left-header" class="d-inline-block" style="min-width: 203px;">
+                    <div class="d-inline-block">
+                        <div class="btn-group btn-group-toggle group-tab">
+                            <a class="btn btn-sm btn-light" href="/tender/<%- ctx.tender.id %>/change/plan/<%- ctx.change.id %>/information">方案详情</a>
+                            <a class="btn btn-sm btn-light active" href="javascript:void(0);">输出报表</a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="content-wrap">
+        <div class="c-header p-0"></div>
+        <div class="w-100 sub-content row">
+            <div class="c-body col-3">
+                <div class="d-inline-block">
+                    <ul class="nav nav-pills m-0">
+                        <li class="nav-item mr-1"><a href="#man-c" data-toggle="modal" data-target="#man-c" class=" btn btn-light btn-sm text-primary"><i class="fa fa-cog"></i> 通用报表</a></li>
+                        <li class="nav-item"><a href="#add-c" data-toggle="modal" data-target="#add-c" class=" btn btn-light btn-sm  text-primary"><i class="fa fa-plus"></i> 定制报表</a></li>
+                    </ul>
+                </div>
+                <div class="sjs-height-1">
+                    <div class="text-center"></div>
+                    <ul id="treeDemo2" class="ztree"></ul>
+                </div>
+            </div>
+            <div class="c-body col-9">
+                <!--调整侧栏宽度-->
+                <div class="resize-x" title="调整大小"></div>
+
+                <!--打印工具栏-->
+                <div class="toolsbar-f d-flex justify-content-between">
+                    <div class="print-toolsbar">
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button">
+                                        <i class="fa fa-print"></i><br>
+                                        打印 <span class="badge badge-primary">5</span>
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#export" disabled=""><i class="fa fa-file-excel-o"></i> Excel <span class="badge badge-primary">5</span></button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm"><i class="fa fa-file-pdf-o"></i> PDF <span class="badge badge-primary">5</span></button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                导出报表
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#guidang"><i class="fa fa-archive"></i> 归档报表</button>
+
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-success btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            已归档
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">#1 2021-03-01</a>
+                                            <a class="dropdown-item" href="#">#2 2021-02-28</a>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                报表归档
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-outline-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            纵向
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">横向</a>
+                                        </div>
+                                    </div>
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-outline-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            A4
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">A3</a>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                预览设置
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="缩小">-</button>
+                                    <button class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="重置默认大小">1000%</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="放大">+</button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                缩放
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#paper"><i class="fa fa-file-o"></i> 页边距</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#format"><i class="fa fa-bold"></i> 格式</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#setting"><i class="fa fa-cog"></i> 设置</button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                报表设置
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button" data-toggle="modal" data-target="#sign">
+                                        <i class="fa fa-pencil"></i><br>
+                                        签字
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="input-group input-group-sm">
+                                    <div class="input-group-prepend">
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="第一页"><i class="fa fa-angle-double-left "></i></button>
+                                        <button type="button" class="btn btn-outline-primary btn-sm" disabled data-toggle="tooltip" data-placement="bottom" title="上一页"><i class="fa fa-angle-left "></i></button>
+                                    </div>
+                                    <input class="form-control" value="1/10" style="width:60px"  data-toggle="tooltip" data-placement="bottom" title="输入页码按回车键,快速跳转">
+                                    <div class="input-group-append">
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="下一页"><i class="fa fa-angle-right"></i></button>
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="尾页"><i class="fa fa-angle-double-right "></i></button>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                翻页
+                            </div>
+                        </div>
+                        <!--用于报表带工具栏全屏显示 -->
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button" data-toggle="modal" data-target="#fullscreen">
+                                        <i class="fa fa-window-maximize"></i><br>
+                                        全屏显示
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="sjs-height-4">
+                    <div class="print-view form-view">
+                        <div class="pageContainer">
+                            <div class="page">
+                                <img src="img/2 中期支付证书(佛山禅城).png">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script>
+    autoFlashHeight();
+    $.subMenu({
+        menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
+        toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',
+        key: 'menu.1.0.0',
+        miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',
+        callback: function (info) {
+            if (info.mini) {
+                $('.panel-title').addClass('fluid');
+                $('#sub-menu').removeClass('panel-sidebar');
+            } else {
+                $('.panel-title').removeClass('fluid');
+                $('#sub-menu').addClass('panel-sidebar');
+            }
+            autoFlashHeight();
+        }
+    });
+</script>

+ 10 - 4
app/view/change/project_information.ejs

@@ -5,11 +5,17 @@
             <% include ../tender/tender_sub_mini_menu.ejs %>
             <div>
                 <div class="d-inline-block">
-                    <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_project_sort_link" href="/tender/<%- tender.id %>/change/project"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>
-                </div>
-                <div class="d-inline-block" id="change-project-code">
-                    <%- change.code %>
+                    <div class="btn-group btn-group-toggle group-tab">
+                        <a class="btn btn-sm btn-light active" href="javascript:void(0);">立项详情</a>
+                        <a class="btn btn-sm btn-light" href="/tender/<%- ctx.tender.id %>/change/project/<%- ctx.change.id %>/information/report">输出报表</a>
+                    </div>
                 </div>
+<!--                <div class="d-inline-block">-->
+<!--                    <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_project_sort_link" href="/tender/<%- tender.id %>/change/project"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>-->
+<!--                </div>-->
+<!--                <div class="d-inline-block" id="change-project-code">-->
+<!--                    <%- change.code %>-->
+<!--                </div>-->
             </div>
             <div class="ml-auto" id="sp-btn">
                 <a href="#xieshen" data-toggle="modal" data-target="#xieshen" class="btn btn-sm btn-primary mr-2">添加协审</a>

+ 202 - 0
app/view/change/project_report.ejs

@@ -0,0 +1,202 @@
+<% include ../tender/tender_sub_menu.ejs %>
+<div class="panel-content">
+    <div class="panel-title" style="padding-right: 0px"><!--收起详解目录添加类名 fluid -->
+        <div class="title-main d-flex"><!--工具-->
+            <% include ../tender/tender_sub_mini_menu.ejs %>
+            <div style="width: 100%">
+                <div id="left-header" class="d-inline-block" style="min-width: 203px;">
+                    <div class="d-inline-block">
+                        <div class="btn-group btn-group-toggle group-tab">
+                            <a class="btn btn-sm btn-light" href="/tender/<%- ctx.tender.id %>/change/project/<%- ctx.change.id %>/information">立项详情</a>
+                            <a class="btn btn-sm btn-light active" href="javascript:void(0);">输出报表</a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="content-wrap">
+        <div class="c-header p-0"></div>
+        <div class="w-100 sub-content row">
+            <div class="c-body col-3">
+                <div class="d-inline-block">
+                    <ul class="nav nav-pills m-0">
+                        <li class="nav-item mr-1"><a href="#man-c" data-toggle="modal" data-target="#man-c" class=" btn btn-light btn-sm text-primary"><i class="fa fa-cog"></i> 通用报表</a></li>
+                        <li class="nav-item"><a href="#add-c" data-toggle="modal" data-target="#add-c" class=" btn btn-light btn-sm  text-primary"><i class="fa fa-plus"></i> 定制报表</a></li>
+                    </ul>
+                </div>
+                <div class="sjs-height-1">
+                    <div class="text-center"></div>
+                    <ul id="treeDemo2" class="ztree"></ul>
+                </div>
+            </div>
+            <div class="c-body col-9">
+                <!--调整侧栏宽度-->
+                <div class="resize-x" title="调整大小"></div>
+
+                <!--打印工具栏-->
+                <div class="toolsbar-f d-flex justify-content-between">
+                    <div class="print-toolsbar">
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button">
+                                        <i class="fa fa-print"></i><br>
+                                        打印 <span class="badge badge-primary">5</span>
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#export" disabled=""><i class="fa fa-file-excel-o"></i> Excel <span class="badge badge-primary">5</span></button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm"><i class="fa fa-file-pdf-o"></i> PDF <span class="badge badge-primary">5</span></button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                导出报表
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#guidang"><i class="fa fa-archive"></i> 归档报表</button>
+
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-success btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            已归档
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">#1 2021-03-01</a>
+                                            <a class="dropdown-item" href="#">#2 2021-02-28</a>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                报表归档
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-outline-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            纵向
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">横向</a>
+                                        </div>
+                                    </div>
+                                    <div class="btn-group" role="group">
+                                        <button id="btnGroupDrop1" type="button" class="btn btn-outline-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                            A4
+                                        </button>
+                                        <div class="dropdown-menu" aria-labelledby="btnGroupDrop1" style="min-width:112px">
+                                            <a class="dropdown-item" href="#">A3</a>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                预览设置
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="缩小">-</button>
+                                    <button class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="重置默认大小">1000%</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="放大">+</button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                缩放
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#paper"><i class="fa fa-file-o"></i> 页边距</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#format"><i class="fa fa-bold"></i> 格式</button>
+                                    <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="modal" data-target="#setting"><i class="fa fa-cog"></i> 设置</button>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                报表设置
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button" data-toggle="modal" data-target="#sign">
+                                        <i class="fa fa-pencil"></i><br>
+                                        签字
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="input-group input-group-sm">
+                                    <div class="input-group-prepend">
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="第一页"><i class="fa fa-angle-double-left "></i></button>
+                                        <button type="button" class="btn btn-outline-primary btn-sm" disabled data-toggle="tooltip" data-placement="bottom" title="上一页"><i class="fa fa-angle-left "></i></button>
+                                    </div>
+                                    <input class="form-control" value="1/10" style="width:60px"  data-toggle="tooltip" data-placement="bottom" title="输入页码按回车键,快速跳转">
+                                    <div class="input-group-append">
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="下一页"><i class="fa fa-angle-right"></i></button>
+                                        <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="尾页"><i class="fa fa-angle-double-right "></i></button>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="panel-foot text-muted">
+                                翻页
+                            </div>
+                        </div>
+                        <!--用于报表带工具栏全屏显示 -->
+                        <div class="panel">
+                            <div class="panel-body">
+                                <div class="btn-group" role="group">
+                                    <button class="btn btn-outline-primary btn-sm" type="button" data-toggle="modal" data-target="#fullscreen">
+                                        <i class="fa fa-window-maximize"></i><br>
+                                        全屏显示
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="sjs-height-4">
+                    <div class="print-view form-view">
+                        <div class="pageContainer">
+                            <div class="page">
+                                <img src="img/2 中期支付证书(佛山禅城).png">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script>
+    autoFlashHeight();
+    $.subMenu({
+        menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
+        toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',
+        key: 'menu.1.0.0',
+        miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',
+        callback: function (info) {
+            if (info.mini) {
+                $('.panel-title').addClass('fluid');
+                $('#sub-menu').removeClass('panel-sidebar');
+            } else {
+                $('.panel-title').removeClass('fluid');
+                $('#sub-menu').addClass('panel-sidebar');
+            }
+            autoFlashHeight();
+        }
+    });
+</script>

+ 30 - 0
config/web.js

@@ -982,6 +982,16 @@ const JsFiles = {
                 ],
                 mergeFile: 'change_project_information',
             },
+            project_report: {
+                files: [
+                    '/public/js/decimal.min.js',
+                    '/public/js/moment/moment.min.js',
+                ],
+                mergeFiles: [
+                    '/public/js/sub_menu.js',
+                ],
+                mergeFile: 'change_project_report',
+            },
             apply: {
                 files: ['/public/js/moment/moment.min.js'],
                 mergeFiles: [
@@ -1014,6 +1024,16 @@ const JsFiles = {
                 ],
                 mergeFile: 'change_apply_information_notice',
             },
+            apply_report: {
+                files: [
+                    '/public/js/decimal.min.js',
+                    '/public/js/moment/moment.min.js',
+                ],
+                mergeFiles: [
+                    '/public/js/sub_menu.js',
+                ],
+                mergeFile: 'change_apply_report',
+            },
             plan: {
                 files: ['/public/js/moment/moment.min.js'],
                 mergeFiles: [
@@ -1037,6 +1057,16 @@ const JsFiles = {
                 ],
                 mergeFile: 'change_plan_information',
             },
+            plan_report: {
+                files: [
+                    '/public/js/decimal.min.js',
+                    '/public/js/moment/moment.min.js',
+                ],
+                mergeFiles: [
+                    '/public/js/sub_menu.js',
+                ],
+                mergeFile: 'change_plan_report',
+            },
         },
         datacollect: {
             index: {