Browse Source

一些修订bug修复和修改

laiguoran 4 years ago
parent
commit
343480b7a7

+ 4 - 2
app/controller/change_controller.js

@@ -68,6 +68,8 @@ module.exports = app => {
                         case 5:
                             changeAudit = await ctx.service.changeAudit.getLastUser(c.cid, c.times - 1, status);
                             auditStatus = c.uid === ctx.session.sessionUser.accountId ? 1 : 0;
+                            const back_changeUsedData = await ctx.service.stageChange.getFinalUsedData(ctx.tender.id, c.cid);
+                            c.stageChangeNum = this.ctx.helper.sum(back_changeUsedData.map(x => { return Math.abs(x.used_qty); }));
                             break;
                         case 6:
                             changeAudit = await ctx.service.changeAudit.getLastBackUser(c.cid, c.times);
@@ -820,12 +822,12 @@ module.exports = app => {
                     const lastUidList = ctx.helper._.map(lastUserList, 'uid');
                     // 判断上一次审批是否为非原报为审批人
                     const nowUidList = ctx.helper._.map(ctx.change.auditors, 'uid');
-                    if (!ctx.helper._.isEqual(lastUidList, nowUidList) && nowUidList.length === 2 && nowUidList[0] === nowUidList[1]) {
+                    // 上一次审批人列表包含原报且不止只有原报并且新的审批人只有原报审批时
+                    if (!ctx.helper._.isEqual(lastUidList, nowUidList) && ctx.helper._.includes(ctx.helper._.tail(lastUidList), lastUidList[0]) && nowUidList.length === 2 && nowUidList[0] === nowUidList[1]) {
                         throw '该变更令不能指定原报人为单独审批人';
                     }
                 }
                 await ctx.service.changeAudit.start(ctx.change.cid, ctx.change.times);
-
                 ctx.redirect(ctx.request.header.referer);
             } catch (err) {
                 this.log(err);

+ 46 - 5
app/public/css/main.css

@@ -44,6 +44,11 @@ font-size: .875rem;
   font-weight: normal;
   color:#000;
 }
+.table.table-dark th {
+  background:none;
+  font-weight: normal;
+  color:#fff;
+}
 .form-check,.form-check-label{
   cursor: pointer;
   line-height: 22px;
@@ -61,7 +66,8 @@ font-size: .875rem;
   top:.25rem;
 }
 .custom-control {
-  min-height: 1.2rem
+  min-height: 1.2rem;
+  line-height: 1.2rem
 }
 .custom-control-label {
   cursor: pointer;
@@ -464,6 +470,11 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
 .modal-xl {
   max-width: 1200px
 }
+.modal-full{
+  max-width: 99%;
+  margin:10px auto;
+  max-height:97%;
+}
 .border-right-1 {
   border-right:1px solid #dee2e6;
 }
@@ -479,6 +490,25 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
 .save-confirm {
   position:absolute;
 }
+.nav-tabs.panel-card-tabs .nav-link{
+  color:#ccc;
+  font-size:1rem;
+  padding-top:0;
+}
+.nav-tabs.panel-card-tabs .nav-link.active{
+  color:#fff;
+  background:none ;
+  border:none ;
+  border-bottom:2px solid #fff;
+}
+.nav-tabs.panel-card-tabs .nav-link:hover{
+  background:none ;
+  border:none ;
+  border-bottom:2px solid #fff;
+}
+.panel-card-header {
+  background-image: linear-gradient(to top, #586579, #2c3237 );
+}
 /*滚动*/
 .scrollbar-auto {
     overflow-y: auto;
@@ -768,6 +798,13 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
   height:300px;
   overflow:auto
 }
+.modal-height-250{
+  height:250px;
+  overflow:auto
+}
+.modal-fullscreen{
+  overflow: auto;
+}
 .scroll-y {
   overflow-y: auto;
 }
@@ -843,6 +880,9 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
   vertical-align:top;
   background:#f7f7f9
 }
+.print-toolsbar .panel .panel-body{
+  height:22px;
+}
 .print-toolsbar .panel .panel-foot{
   text-align: center;
   font-size: 12px
@@ -1034,21 +1074,22 @@ legend {
   font-size:16px;
 }
 .input-group-sm > .custom-select, .input-group-sm > .form-control:not(textarea) {
-    height: calc(1.4125rem + 2px);
+    height: calc(1.4125rem - 1px);
 }
 .input-group-sm>.form-control, .input-group-sm>.input-group-append>.btn, .input-group-sm>.input-group-append>.input-group-text, .input-group-sm>.input-group-prepend>.btn, .input-group-sm>.input-group-prepend>.input-group-text{
-  height: calc(1.4125rem + 2px);
+  height: calc(1.4125rem - 1px);
 }
 .input-group-sm > .custom-select, .input-group-sm > .form-control, .input-group-sm > .input-group-append > .btn, .input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, .input-group-sm > .input-group-prepend > .input-group-text {
   font-size:12px;
-  padding:.1rem .5rem;
+  padding:0rem .5rem;
   }
 .side-menu{
     right:0;
     top:35px;
   }
+
 .form-control-sm{
-  height:calc(1.4125rem + 2px);
+  height:calc(1.4125rem - 1px);
 }
 .form-group {
   margin-bottom:.5rem;

+ 52 - 14
app/public/css/main_s.css

@@ -44,6 +44,11 @@ font-size: .875rem;
   font-weight: normal;
   color:#000;
 }
+.table.table-dark th {
+  background:none;
+  font-weight: normal;
+  color:#fff;
+}
 .form-check,.form-check-label{
   cursor: pointer;
   line-height: 22px;
@@ -61,7 +66,8 @@ font-size: .875rem;
   top:.25rem;
 }
 .custom-control {
-  min-height: 1.2rem
+  min-height: 1.2rem;
+  line-height: 1.2rem
 }
 .custom-control-label {
   cursor: pointer;
@@ -77,7 +83,7 @@ font-size: .875rem;
 }
 .custom-control-warning-input:checked ~ .custom-control-warning-label::before{
   border-color:#da9500 ;
-  background-color:#da9500
+  background-color:#da9500 
 }
 .custom-control-warning-label{
   color:#da9500;
@@ -221,7 +227,7 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
 .sjs-height-4,.sjs-height-5,.sjs-height-6,.sjs-option-height{
   overflow: auto;
 }
-.sjs-bar-1,.sjs-bar-2,.sjs-bar-3,.sjs-bar-4{
+.sjs-bar-1,.sjs-bar-2,.sjs-bar-3,.sjs-bar-4,.sjs-bar-5{
   height:30px;
   padding-top:3px;
 }
@@ -464,6 +470,11 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
 .modal-xl {
   max-width: 1200px
 }
+.modal-full{
+  max-width: 99%;
+  margin:10px auto;
+  max-height:97%;
+}
 .border-right-1 {
   border-right:1px solid #dee2e6;
 }
@@ -476,6 +487,28 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
 .border-bottom-1 {
   border-bottom:1px solid #dee2e6;
 }
+.save-confirm {
+  position:absolute;
+}
+.nav-tabs.panel-card-tabs .nav-link{
+  color:#ccc;
+  font-size:1rem;
+  padding-top:0;
+}
+.nav-tabs.panel-card-tabs .nav-link.active{
+  color:#fff;
+  background:none ;
+  border:none ;
+  border-bottom:2px solid #fff;
+}
+.nav-tabs.panel-card-tabs .nav-link:hover{
+  background:none ;
+  border:none ;
+  border-bottom:2px solid #fff;
+}
+.panel-card-header {
+  background-image: linear-gradient(to top, #586579, #2c3237 );
+}
 /*滚动*/
 .scrollbar-auto {
     overflow-y: auto;
@@ -624,7 +657,7 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
   width: 55px
 }
 .bg-nav a{
-  color:#fff;
+  color:#7786ab;
   width:55px;
   text-align: center;
   display: inline-block;
@@ -765,6 +798,13 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
   height:300px;
   overflow:auto
 }
+.modal-height-250{
+  height:250px;
+  overflow:auto
+}
+.modal-fullscreen{
+  overflow: auto;
+}
 .scroll-y {
   overflow-y: auto;
 }
@@ -840,6 +880,9 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
   vertical-align:top;
   background:#f7f7f9
 }
+.print-toolsbar .panel .panel-body{
+  height:22px;
+}
 .print-toolsbar .panel .panel-foot{
   text-align: center;
   font-size: 12px
@@ -1031,27 +1074,22 @@ legend {
   font-size:16px;
 }
 .input-group-sm > .custom-select, .input-group-sm > .form-control:not(textarea) {
-    height: calc(1.4125rem + 2px);
+    height: calc(1.4125rem - 1px);
 }
 .input-group-sm>.form-control, .input-group-sm>.input-group-append>.btn, .input-group-sm>.input-group-append>.input-group-text, .input-group-sm>.input-group-prepend>.btn, .input-group-sm>.input-group-prepend>.input-group-text{
-  height: calc(1.4125rem + 2px);
+  height: calc(1.4125rem - 1px);
 }
 .input-group-sm > .custom-select, .input-group-sm > .form-control, .input-group-sm > .input-group-append > .btn, .input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, .input-group-sm > .input-group-prepend > .input-group-text {
   font-size:12px;
-  padding:.1rem .5rem;
+  padding:0rem .5rem;
   }
 .side-menu{
     right:0;
     top:35px;
   }
-.custom-control-label::before{
-  top:.1rem;
-}
-.custom-control-label::after{
-  top:.1rem;
-}
+
 .form-control-sm{
-  height:calc(1.4125rem + 2px);
+  height:calc(1.4125rem - 1px);
 }
 .form-group {
   margin-bottom:.5rem;

+ 2 - 2
app/public/js/change.js

@@ -268,8 +268,8 @@ $(document).ready(() => {
     });
 
     //状态切换
-    $('#status_select').change(function () {
-       const status = $(this).val();
+    $('#status_select a').on('click', function () {
+       const status = $(this).data('val');
        let url = '/tender/'+ $('#tenderId').val() +'/change';
        if (status !== 0) {
            url += '/status/'+ status;

+ 11 - 8
app/view/change/index.ejs

@@ -40,13 +40,16 @@
                     </div>
                 </div>
                 <div class="d-inline-block">
-                    <select class="form-control form-control-sm" id="status_select">
-                        <option value="0">全部</option>
-                        <% for (const fs in filter.status) { %>
-                        <% const f = filter.status[fs]; %>
-                        <option value="<%- f %>" <% if (f === status) { %>selected="selected"<% } %>><%- filter.statusString[f] %>(<%- filter.count[f] %>)</option>
-                        <% } %>
-                    </select>
+                    <div class="btn-group">
+                        <button type="button" class="btn btn-sm btn-light text-primary dropdown-toggle" data-toggle="dropdown" id="zhankai"><% if (status !== 0) { %><%- filter.statusString[status] %>(<%- filter.count[status] %>)<% } else { %>全部<% } %></button>
+                        <div class="dropdown-menu" aria-labelledby="zhankai" id="status_select">
+                            <% if (status !== 0) { %><a class="dropdown-item" data-val="0" href="javascript:void(0);">全部</a><% } %>
+                            <% for (const fs in filter.status) { %>
+                                <% const f = filter.status[fs]; %>
+                                <% if (f !== status) { %><a class="dropdown-item" data-val="<%- f %>" href="javascript:void(0);"><%- filter.statusString[f] %>(<%- filter.count[f] %>)</a><% } %>
+                            <% } %>
+                        </div>
+                    </div>
                 </div>
             </div>
             <% if (tender.user_id === uid) { %>
@@ -112,7 +115,7 @@
                             <span class="<%- auditConst.auditStatusClass[c.changeAudit.status] %>"><%- auditConst.auditStatusString[c.changeAudit.status] %></span>
                         </td>
                         <% } %>
-                        <td><% if ((c.status === auditConst.status.uncheck || ((c.status === auditConst.status.back || (c.status === auditConst.status.revise && c.stageChangeNum === 0)) && c.uid === uid)) && !ctx.tender.isTourist) { %><a href="#del-bg" cid="<%= c.cid %>" data-toggle="modal" data-target="#del-bg" class="btn btn-outline-danger btn-sm delete-cid-modal">删除</a><% } %></td>
+                        <td><% if ((c.status === auditConst.status.uncheck || (((c.status === auditConst.status.back || c.status === auditConst.status.revise) && c.stageChangeNum === 0) && c.uid === uid)) && !ctx.tender.isTourist) { %><a href="#del-bg" cid="<%= c.cid %>" data-toggle="modal" data-target="#del-bg" class="btn btn-outline-danger btn-sm delete-cid-modal">删除</a><% } %></td>
                     </tr>
                     <% } %>
                     </tbody>

+ 7 - 7
app/view/stage/stage_sub_menu.ejs

@@ -66,13 +66,13 @@
                 </li>
             </ul>
         </div>
-        <div class="nav-box">
-            <ul class="nav-list list-unstyled">
-                <li class="<% if (ctx.url === '/tender/' + ctx.tender.id + '/measure/stage/' + ctx.stage.order + '/archiveReport') { %>active<% } %>">
-                    <a href="/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/archiveReport"><span class="ml-3">归档报表</span></a>
-                </li>
-            </ul>
-        </div>
+        <!--<div class="nav-box">-->
+            <!--<ul class="nav-list list-unstyled">-->
+                <!--<li class="<% if (ctx.url === '/tender/' + ctx.tender.id + '/measure/stage/' + ctx.stage.order + '/archiveReport') { %>active<% } %>">-->
+                    <!--<a href="/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/archiveReport"><span class="ml-3">归档报表</span></a>-->
+                <!--</li>-->
+            <!--</ul>-->
+        <!--</div>-->
         <% if (ctx.session.sessionUser.is_admin) { %>
         <div class="nav-box">
             <ul class="nav-list list-unstyled">

+ 7 - 0
app/view/stage/stage_sub_mini_menu.ejs

@@ -68,6 +68,13 @@
                 </li>
             </ul>
         </div>
+        <!--<div class="nav-box">-->
+            <!--<ul class="nav-list list-unstyled">-->
+                <!--<li class="<% if (ctx.url === '/tender/' + ctx.tender.id + '/measure/stage/' + ctx.stage.order + '/archiveReport') { %>active<% } %>">-->
+                    <!--<a href="/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/archiveReport"><span class="ml-3">归档报表</span></a>-->
+                <!--</li>-->
+            <!--</ul>-->
+        <!--</div>-->
         <% if (ctx.session.sessionUser.is_admin) { %>
             <div class="nav-box">
                 <ul class="nav-list list-unstyled">