MaiXinRong пре 5 година
родитељ
комит
b1eadfb83c

+ 51 - 21
app/const/spread.js

@@ -39,8 +39,10 @@ const withCl = {
         ],
         emptyRows: 3,
         headRows: 2,
-        headRowHeight: [35, 35],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     },
     pos: {
         cols: [
@@ -53,8 +55,10 @@ const withCl = {
         ],
         emptyRows: 3,
         headRows: 2,
-        headRowHeight: [35, 35],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     }
 };
 const withoutCl = {
@@ -77,8 +81,10 @@ const withoutCl = {
         ],
         emptyRows: 3,
         headRows: 2,
-        headRowHeight: [35, 35],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     },
     pos: {
         cols: [
@@ -88,8 +94,10 @@ const withoutCl = {
         ],
         emptyRows: 3,
         headRows: 1,
-        headRowHeight: [40],
+        headRowHeight: [32],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     }
 };
 // 期 -- 本期计量台账
@@ -128,8 +136,10 @@ const stageTz = {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     },
     pos: {
         cols: [
@@ -146,8 +156,10 @@ const stageTz = {
         ],
         emptyRows: 3,
         headRows: 2,
-        headRowHeight: [32, 32],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     }
 };
 const stageCl = {
@@ -187,8 +199,10 @@ const stageCl = {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     },
     pos: {
         cols: [
@@ -209,8 +223,10 @@ const stageCl = {
         ],
         emptyRows: 20,
         headRows: 2,
-        headRowHeight: [32, 32],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     }
 };
 const stageNoCl = {
@@ -249,8 +265,10 @@ const stageNoCl = {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     },
     pos: {
         cols: [
@@ -268,8 +286,10 @@ const stageNoCl = {
         ],
         emptyRows: 20,
         headRows: 2,
-        headRowHeight: [32, 32],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     }
 };
 // 期 -- 清单汇总
@@ -306,11 +326,11 @@ const stageGather = {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
-        headerFont: '10pt 微软雅黑',
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: true,
-        font: '10pt 微软雅黑',
     },
     leafXmj: {
         cols: [
@@ -332,11 +352,11 @@ const stageGather = {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
-        headerFont: '10pt 微软雅黑',
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: true,
-        font: '10pt 微软雅黑',
     }
 };
 // 期 -- 审核比较
@@ -355,8 +375,10 @@ const stageCompare = {
         ],
         emptyRows: 3,
         headRows: 2,
-        headRowHeight: [40, 40],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: true,
     },
     pos: {
@@ -368,8 +390,10 @@ const stageCompare = {
         ],
         emptyRows: 3,
         headRows: 1,
-        headRowHeight: [40],
+        headRowHeight: [32],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: true,
     }
 };
@@ -389,8 +413,10 @@ measure.gather.billsSpread = {
     ],
     emptyRows: 0,
     headRows: 1,
-    headRowHeight: [40],
+    headRowHeight: [32],
     defaultRowHeight: 21,
+    headerFont: '12px 微软雅黑',
+    font: '12px 微软雅黑',
 };
 measure.compare.ledger = {
     cols: [
@@ -402,8 +428,10 @@ measure.compare.ledger = {
     ],
     emptyRows: 3,
     headRows: 2,
-    headRowHeight: [40, 40],
+    headRowHeight: [25, 25],
     defaultRowHeight: 21,
+    headerFont: '12px 微软雅黑',
+    font: '12px 微软雅黑',
 };
 measure.compare.pos = {
     cols: [
@@ -411,8 +439,10 @@ measure.compare.pos = {
     ],
     emptyRows: 3,
     headRows: 1,
-    headRowHeight: [40],
+    headRowHeight: [32],
     defaultRowHeight: 21,
+    headerFont: '12px 微软雅黑',
+    font: '12px 微软雅黑',
 };
 
 

+ 130 - 0
app/public/css/main.css

@@ -693,4 +693,134 @@ font-size: .875rem;
 }
 .add-sign-list-item:hover .btn-link {
   display: block
+}
+/*界面紧凑相关代码*/
+body{
+  font-size:12px;
+}
+.btn-group-sm > .btn, .btn-sm{
+  font-size: 12px;
+  padding:1px 0.6rem;
+}
+.panel-title, .panel-title > .title-bar{
+  height:34px;
+  line-height: 30px;
+}
+.panel-title > .title-main .btn.pull-right {
+    margin: 5px 0 0 0 
+}
+.panel-content{
+  padding-top:35px;
+  overflow-x: hidden
+}
+.panel-content .content-wrap{
+ margin:0;
+}
+.table td, .table th {
+  padding:.3rem;
+}
+.form-control-sm {
+  font-size:12px;
+}
+label{
+  margin-bottom:.3rem;
+}
+.invalid-feedback{
+  font-size:100%;
+}
+.modal-header{
+  padding:.5rem 1rem
+}
+.modal-title{
+  font-size:16px;
+}
+.modal-footer {
+  padding:.5rem 1rem
+}
+.modal-body h6,.modal-body h5{
+  font-size:12px;
+}
+.panel-title > .title-bar{
+  padding-left:10px;
+}
+.panel-sidebar .panel-title{
+  width:120px;
+}
+.panel-title > .title-bar > h2, .panel-title > .title-main > h2{
+  height:34px;
+  line-height: 34px;
+  font-size: 12px
+}
+.panel-title > .title-main .form-control {
+    margin: 4px 0 0 0;
+}
+.panel-sidebar {
+  width:120px;
+}
+.panel-sidebar .scrollbar-auto{
+  padding-top:0;
+}
+.nav-list li a{
+  padding-right:0px;
+  height:30px;
+  line-height: 30px
+}
+.nav-box h3{
+  margin-left:12px;
+}
+.nav-box > .sub-list > li > a{
+  padding-left:32px;
+}
+.panel-sidebar + .panel-content{
+  padding:35px 0 0 120px;
+}
+.contarl-box{
+  padding:1rem 1rem;
+}
+.min-side .side-menu {
+  top:34px;
+}
+.panel-content .panel-title{
+  padding-left:175px;
+}
+.nav-link{
+  padding:.3rem .5rem;
+}
+.side-menu .nav-link{
+  font-size:12px;
+}
+legend {
+  font-size:16px;
+}
+.input-group-sm > .custom-select, .input-group-sm > .form-control:not(textarea) {
+    height: calc(1.4125rem + 2px);
+}
+.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);
+}
+.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;
+  }
+  .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);
+}
+.form-group {
+  margin-bottom:.5rem;
+}
+.badge{
+  font-size:100%;
+}
+.sjs-height-0{
+  overflow: auto;
 }

+ 9 - 9
app/public/js/global.js

@@ -18,21 +18,21 @@ function autoFlashHeight(){
     var pBarz = getObjHeight($(".toolsbar-f"));
     var bdtopc = getObjHeight($(".body-height-top"));
     var bcontent = getObjHeight($(".bcontent-wrap"));
-    $(".sjs-height-0").height($(window).height()-cHeader-90);
-    $(".sjs-height-1").height($(window).height()-cHeader-bcontent-90);
+    $(".sjs-height-0").height($(window).height()-cHeader-90+45);
+    $(".sjs-height-1").height($(window).height()-cHeader-bcontent-90+45);
     $(".sjs-height-2").height($(window).height()-cHeader-sBarz-110);
-    $(".sjs-height-3").height($(window).height()-cHeader-sBar-492);
-    $(".sjs-height-4").height($(window).height()-cHeader-pBarz-110);
+    $(".sjs-height-3").height($(window).height()-cHeader-sBar-492+15);
+    $(".sjs-height-4").height($(window).height()-cHeader-pBarz-110+65);
     $(".sjs-height-5").height($(window).height()-cHeader-sBart-555);
     $(".sjs-height-6").height($(window).height()-cHeader-bdtopc-156);
     $(".sjs-height-7").height($(window).height()-cHeader-sBar-110);
     $(".sp-wrap").height(bcontent-40);
     /*侧栏高度*/
-    $(".sjs-sh-1").height($(window).height()-cHeader-sBar1-92);
-    $(".sjs-sh-2").height($(window).height()-cHeader-sBar2-92);
-    $(".sjs-sh-3").height($(window).height()-cHeader-sBar3-92);
-    $(".sjs-sh-4").height($(window).height()-cHeader-sBar4-92);
-    $(".sjs-sh-5").height($(window).height()-cHeader-sBar5-92);
+    $(".sjs-sh-1").height($(window).height()-cHeader-sBar1-92+45);
+    $(".sjs-sh-2").height($(window).height()-cHeader-sBar2-92+45);
+    $(".sjs-sh-3").height($(window).height()-cHeader-sBar3-92+45);
+    $(".sjs-sh-4").height($(window).height()-cHeader-sBar4-92+45);
+    $(".sjs-sh-5").height($(window).height()-cHeader-sBar5-92+45);
 };
 $(window).resize(autoFlashHeight);
 /*全局自适应高度结束*/

+ 21 - 7
app/public/js/ledger.js

@@ -1474,8 +1474,10 @@ $(document).ready(function() {
                         treeCol: 0,
                         emptyRows: 0,
                         headRows: 1,
-                        headRowHeight: [40],
+                        headRowHeight: [32],
                         defaultRowHeight: 21,
+                        headerFont: '12px 微软雅黑',
+                        font: '12px 微软雅黑',
                     });
                     stdXmj.loadLib($('select', '#std-xmj').val());
                 }
@@ -1498,8 +1500,10 @@ $(document).ready(function() {
                         treeCol: 0,
                         emptyRows: 0,
                         headRows: 1,
-                        headRowHeight: [40],
+                        headRowHeight: [32],
                         defaultRowHeight: 21,
+                        headerFont: '12px 微软雅黑',
+                        font: '12px 微软雅黑',
                     });
                     stdGcl.loadLib($('select', '#std-gcl').val());
                 }
@@ -1517,8 +1521,10 @@ $(document).ready(function() {
                         ],
                         emptyRows: 0,
                         headRows: 1,
-                        headRowHeight: [40],
+                        headRowHeight: [32],
                         defaultRowHeight: 21,
+                        headerFont: '12px 微软雅黑',
+                        font: '12px 微软雅黑',
                     });
                     dealBills.loadData();
                 }
@@ -1539,8 +1545,10 @@ $(document).ready(function() {
                             ],
                             emptyRows: 0,
                             headRows: 1,
-                            headRowHeight: [40],
+                            headRowHeight: [32],
                             defaultRowHeight: 21,
+                            headerFont: '12px 微软雅黑',
+                            font: '12px 微软雅黑',
                         },
                         afterLocated: function () {
                             posOperationObj.loadCurPosData();
@@ -1715,7 +1723,9 @@ $(document).ready(function() {
                 ],
                 emptyRows: this.billsCount,
                 headRows: 1,
-                headRowHeight: [40],
+                headRowHeight: [32],
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
             };
             this.qdSpread = SpreadJsObj.createNewSpread($('.batch-l-t', this.obj)[0]);
             // 初始化 部位数量复核表 参数
@@ -1726,7 +1736,9 @@ $(document).ready(function() {
                 ],
                 emptyRows: this.posCount,
                 headRows: 1,
-                headRowHeight: [40],
+                headRowHeight: [32],
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
             };
             for (let iNum = 1; iNum <= this.billsCount; iNum++) {
                 this.posSpreadSetting.cols.push(
@@ -1744,7 +1756,9 @@ $(document).ready(function() {
                 ],
                 emptyRows: 0,
                 headRows: 1,
-                headRowHeight: [40],
+                headRowHeight: [32],
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
             };
             this.dealSpread = SpreadJsObj.createNewSpread($('.batch-r', this.obj)[0]);
             // 初始化 清单编号、部位数量复核表 表格

+ 6 - 2
app/public/js/ledger_audit.js

@@ -162,8 +162,10 @@ $(document).ready(() => {
                     ],
                     emptyRows: 0,
                     headRows: 1,
-                    headRowHeight: [40],
+                    headRowHeight: [32],
                     defaultRowHeight: 21,
+                    headerFont: '12px 微软雅黑',
+                    font: '12px 微软雅黑',
                 });
                 dealBills.loadData();
             } else if (tab.attr('content') === '#search' && !searchLedger) {
@@ -182,8 +184,10 @@ $(document).ready(() => {
                             ],
                             emptyRows: 0,
                             headRows: 1,
-                            headRowHeight: [40],
+                            headRowHeight: [32],
                             defaultRowHeight: 21,
+                            headerFont: '12px 微软雅黑',
+                            font: '12px 微软雅黑',
                         },
                         afterLocated: function () {
                             loadCurPosData();

+ 1 - 1
app/public/js/ledger_search.js

@@ -14,7 +14,7 @@
     $.posSearch = function (setting) {
         if (!setting.selector || !setting.searchSpread) return;
         const searchHtml =
-            '                                <div class="mt-1 ml-2">\n' +
+            '                                <div class="ml-2">\n' +
             '                                    <div class="input-group input-group-sm">\n' +
             '                                        <input type="text" class="form-control" placeholder="输入名称查找" id="pos-keyword">\n' +
             '                                        <div class="input-group-append">\n' +

+ 4 - 4
app/public/js/material.js

@@ -45,11 +45,11 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
-        defaultRowHeight: 30,
-        headerFont: '10pt 微软雅黑',
+        headRowHeight: [25, 25],
+        defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: readOnly,
-        font: '10pt 微软雅黑',
     };
 
     const materialBase = {

+ 12 - 12
app/public/js/material_list.js

@@ -64,11 +64,11 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
-        defaultRowHeight: 30,
-        headerFont: '10pt 微软雅黑',
+        headRowHeight: [25, 25],
+        defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: true,
-        font: '10pt 微软雅黑',
     };
     // 解析清单汇总数据
     gclGatherModel.loadLedgerData(ledger, curLedgerData);
@@ -112,11 +112,11 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
-        defaultRowHeight: 30,
-        headerFont: '10pt 微软雅黑',
+        headRowHeight: [25, 25],
+        defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: true,
-        font: '10pt 微软雅黑',
     };
     // const leafXmjCol = {
     //     getValue: {
@@ -150,10 +150,10 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [32, 32],
-        defaultRowHeight: 30,
-        headerFont: '10pt 微软雅黑',
-        font: '10pt 微软雅黑',
+        headRowHeight: [25, 25],
+        defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     };
 
     const materialBase = {

+ 6 - 2
app/public/js/measure_compare.js

@@ -24,7 +24,9 @@ const billsSpreadSetting = {
     ],
     emptyRows: 3,
     headRows: 2,
-    headRowHeight: [40, 40],
+    headRowHeight: [25, 25],
+    headerFont: '12px 微软雅黑',
+    font: '12px 微软雅黑',
     defaultRowHeight: 21,
     readOnly: true,
 };
@@ -38,8 +40,10 @@ const posSpreadSetting = {
     ],
     emptyRows: 3,
     headRows: 1,
-    headRowHeight: [40],
+    headRowHeight: [32],
     defaultRowHeight: 21,
+    headerFont: '12px 微软雅黑',
+    font: '12px 微软雅黑',
     readOnly: true,
 };
 function initSpreadSettingWithRoles(compareRoles) {

+ 21 - 7
app/public/js/revise.js

@@ -1166,7 +1166,9 @@ $(document).ready(() => {
                 ],
                 emptyRows: this.billsCount,
                 headRows: 1,
-                headRowHeight: [40],
+                headRowHeight: [32],
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
             };
             this.qdSpread = SpreadJsObj.createNewSpread($('.batch-l-t', this.obj)[0]);
             // 初始化 部位数量复核表 参数
@@ -1177,7 +1179,9 @@ $(document).ready(() => {
                 ],
                 emptyRows: this.posCount,
                 headRows: 1,
-                headRowHeight: [40],
+                headRowHeight: [32],
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
             };
             for (let iNum = 1; iNum <= this.billsCount; iNum++) {
                 this.posSpreadSetting.cols.push(
@@ -1195,7 +1199,9 @@ $(document).ready(() => {
                 ],
                 emptyRows: 0,
                 headRows: 1,
-                headRowHeight: [40],
+                headRowHeight: [32],
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
             };
             this.dealSpread = SpreadJsObj.createNewSpread($('.batch-r', this.obj)[0]);
             // 初始化 清单编号、部位数量复核表 表格
@@ -1322,8 +1328,10 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 1,
-        headRowHeight: [40],
+        headRowHeight: [32],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     });
     $.divResizer({
         select: '#revise-right-spr',
@@ -1393,8 +1401,10 @@ $(document).ready(() => {
                         treeCol: 0,
                         emptyRows: 0,
                         headRows: 1,
-                        headRowHeight: [40],
+                        headRowHeight: [32],
                         defaultRowHeight: 21,
+                        headerFont: '12px 微软雅黑',
+                        font: '12px 微软雅黑',
                     });
                     stdXmj.loadLib($('select', '#std-xmj').val());
                 }
@@ -1417,8 +1427,10 @@ $(document).ready(() => {
                         treeCol: 0,
                         emptyRows: 0,
                         headRows: 1,
-                        headRowHeight: [40],
+                        headRowHeight: [32],
                         defaultRowHeight: 21,
+                        headerFont: '12px 微软雅黑',
+                        font: '12px 微软雅黑',
                     });
                     stdGcl.loadLib($('select', '#std-gcl').val());
                 }
@@ -1442,8 +1454,10 @@ $(document).ready(() => {
                             ],
                             emptyRows: 0,
                             headRows: 1,
-                            headRowHeight: [40],
+                            headRowHeight: [32],
                             defaultRowHeight: 21,
+                            headerFont: '12px 微软雅黑',
+                            font: '12px 微软雅黑',
                         },
                         afterLocated: function () {
                             posSpreadObj.loadCurPosData();

+ 3 - 1
app/public/js/revise_history.js

@@ -227,8 +227,10 @@ $(document).ready(() => {
                             ],
                             emptyRows: 0,
                             headRows: 1,
-                            headRowHeight: [40],
+                            headRowHeight: [32],
                             defaultRowHeight: 21,
+                            headerFont: '12px 微软雅黑',
+                            font: '12px 微软雅黑',
                         },
                         afterLocated: function () {
                             posSpreadObj.loadCurPosData();

+ 6 - 2
app/public/js/stage.js

@@ -200,7 +200,9 @@ $(document).ready(() => {
                 ],
                 emptyRows: 0,
                 headRows: 1,
-                headRowHeight: [40],
+                headRowHeight: [32],
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
                 getColor: function (sheet, data, col, defaultColor) {
                     if (col.field === 'uamount') {
                         if (!data.vamount) {
@@ -1460,8 +1462,10 @@ $(document).ready(() => {
                 ],
                 emptyRows: 0,
                 headRows: 1,
-                headRowHeight: [40],
+                headRowHeight: [32],
                 defaultRowHeight: 21,
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
                 readOnly: true
             };
             this.spread = SpreadJsObj.createNewSpread($('#search-result', this.obj)[0]);

+ 9 - 3
app/public/js/stage_change.js

@@ -77,8 +77,10 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 1,
-        headRowHeight: [40],
+        headRowHeight: [32],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     };
     const changeSpread = SpreadJsObj.createNewSpread($('#bgl-spread')[0]);
     SpreadJsObj.initSheet(changeSpread.getActiveSheet(), changeSpreadSetting);
@@ -103,8 +105,10 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 1,
-        headRowHeight: [40],
+        headRowHeight: [32],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     };
     const billsSpread = SpreadJsObj.createNewSpread($('#bills-spread')[0]);
     SpreadJsObj.initSheet(billsSpread.getActiveSheet(), billsSpreadSetting);
@@ -119,8 +123,10 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 2,
-        headRowHeight: [25, 40],
+        headRowHeight: [25, 25],
         defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
     };
     const posSpread = SpreadJsObj.createNewSpread($('#pos-spread')[0]);
     SpreadJsObj.initSheet(posSpread.getActiveSheet(), posSpreadSetting);

+ 6 - 2
app/public/js/stage_detail.js

@@ -39,7 +39,9 @@ $(document).ready(() => {
         headRows: 1,
         emptyRows: 0,
         headRowHeight: [32],
-        defaultRowHeight: 32,
+        defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: readOnly,
     };
     const detailSpread = SpreadJsObj.createNewSpread($('#detail-spread')[0]);
@@ -405,8 +407,10 @@ $(document).ready(() => {
                 ],
                 headRows: 1,
                 emptyRows: 0,
-                headRowHeight: [40],
+                headRowHeight: [32],
                 defaultRowHeight: 21,
+                headerFont: '12px 微软雅黑',
+                font: '12px 微软雅黑',
             });
             gsSpread.bind(spreadNS.Events.ButtonClicked, function (e, info) {
                 function checkParent(node) {

+ 5 - 3
app/public/js/stage_pay.js

@@ -108,7 +108,7 @@ $(document).ready(() => {
         cols: [
             {title: '名称', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 150, formatter: '@', readOnly: 'readOnly.name'},
             {title: '扣款', colSpan: '1', rowSpan: '1', field: 'minus', hAlign: 1, width: 50, cellType: 'checkbox', readOnly: 'readOnly.minus'},
-            {title: '本期金额(表达式)', colSpan: '1', rowSpan: '1', field: 'tp', hAlign: 2, width: 100, readOnly: 'readOnly.tp', /*cellType: 'tip', getTip: function (data) {return data ? data.expr : '';}*/},
+            {title: '本期金额(表达式)', colSpan: '1', rowSpan: '1', field: 'tp', hAlign: 2, width: 120, readOnly: 'readOnly.tp', /*cellType: 'tip', getTip: function (data) {return data ? data.expr : '';}*/},
             {title: '截止上期金额',  colSpan: '1', rowSpan: '1', field: 'pre_tp', hAlign: 2, width: 100, readOnly: true},
             {title: '截止本期金额',  colSpan: '1', rowSpan: '1', field: 'end_tp', hAlign: 2, width: 100, readOnly: true},
             {title: '起扣金额',  colSpan: '1', rowSpan: '1', field: 'sprice', hAlign: 2, width: 100, readOnly: 'readOnly.sprice', /*cellType: 'tip', getTip: function (data) {return data ? data.sexpr : '';}*/},
@@ -142,8 +142,10 @@ $(document).ready(() => {
         ],
         emptyRows: 0,
         headRows: 1,
-        headRowHeight: [50],
-        defaultRowHeight: 30,
+        headRowHeight: [32],
+        defaultRowHeight: 21,
+        headerFont: '12px 微软雅黑',
+        font: '12px 微软雅黑',
         readOnly: readOnly,
         pos: SpreadJsObj.getObjPos($('#pay-spread')[0]),
     };

+ 3 - 1
app/public/js/tender.js

@@ -382,8 +382,10 @@ $(document).ready(function() {
             ],
             emptyRows: 0,
             headRows: 1,
-            headRowHeight: [40],
+            headRowHeight: [32],
             defaultRowHeight: 21,
+            headerFont: '12px 微软雅黑',
+            font: '12px 微软雅黑',
         };
         const spread = SpreadJsObj.createNewSpread($('#chapter-spread')[0]);
         spread.options.showVerticalScrollbar = false;

+ 46 - 44
app/view/change/index.ejs

@@ -26,54 +26,56 @@
         <div class="c-body">
             <input id="tenderName" value="<%= tender.name %>" type="hidden">
             <input id="tenderId" value="<%= tender.id %>" type="hidden">
-            <table class="table">
-                <thead>
-                <tr>
-                    <th width="32%">申请编号/变更令号</th><th width="30%">工程名称</th>
-                    <th width="90">变更类别</th><th width="90">变更金额</th>
-                    <th width="100">审批状态</th><th>审批进度</th><th width="80"></th>
-                </tr>
-                </thead>
-                <tbody id="changeList">
-                <% const classArray = []; %>
-                <% for (const t in changeConst.class) { %>
+            <div class="sjs-height-0">
+                <table class="table">
+                    <thead>
+                    <tr>
+                        <th width="32%">申请编号/变更令号</th><th width="30%">工程名称</th>
+                        <th width="90">变更类别</th><th width="90">变更金额</th>
+                        <th width="100">审批状态</th><th>审批进度</th><th width="80"></th>
+                    </tr>
+                    </thead>
+                    <tbody id="changeList">
+                    <% const classArray = []; %>
+                    <% for (const t in changeConst.class) { %>
                     <% const cClass = changeConst.class[t] %>
                     <% classArray[cClass.value] = cClass.name %>
-                <% } %>
-                <% for (const c of changes) { %>
-                <tr>
-                    <td><a href="/tender/<%- tender.id %>/change/<%- c.cid %>/info"><% if (c.status !== auditConst.status.checked) { %><%- c.code %><% } else { %><%- c.p_code %><% } %></a></td>
-                    <td><%- c.name %></td>
-                    <td><%- classArray[c.class] %><% c.class %></td>
-                    <td><%- c.total_price %></td>
-                    <% if (c.auditStatus) { %>
-                    <td>
-                        <a href="/tender/<%- tender.id %>/change/<%- c.cid %>/info" class="btn <%- auditConst.statusButtonClass[c.status] %> btn-sm">
-                            <%- auditConst.statusButton[c.status] %>
-                        </a>
-                    </td>
-                    <% } else {  %>
-                    <td>
-                        <span class="<%- auditConst.statusClass[c.status] %>"><%- auditConst.statusString[c.status] %></span>
-                    </td>
                     <% } %>
-                    <% if (c.status === auditConst.status.uncheck) { %>
-                    <td>
-                        待上报
-                    </td>
-                    <% } else { %>
-                    <td>
-                        <%- c.changeAudit.name %>-<%- c.changeAudit.jobs %>
-                        <span class="<%- auditConst.auditStatusClass[c.changeAudit.status] %>"><%- auditConst.auditStatusString[c.changeAudit.status] %></span>
-                    </td>
+                    <% for (const c of changes) { %>
+                    <tr>
+                        <td><a href="/tender/<%- tender.id %>/change/<%- c.cid %>/info"><% if (c.status !== auditConst.status.checked) { %><%- c.code %><% } else { %><%- c.p_code %><% } %></a></td>
+                        <td><%- c.name %></td>
+                        <td><%- classArray[c.class] %><% c.class %></td>
+                        <td><%- c.total_price %></td>
+                        <% if (c.auditStatus) { %>
+                        <td>
+                            <a href="/tender/<%- tender.id %>/change/<%- c.cid %>/info" class="btn <%- auditConst.statusButtonClass[c.status] %> btn-sm">
+                                <%- auditConst.statusButton[c.status] %>
+                            </a>
+                        </td>
+                        <% } else {  %>
+                        <td>
+                            <span class="<%- auditConst.statusClass[c.status] %>"><%- auditConst.statusString[c.status] %></span>
+                        </td>
+                        <% } %>
+                        <% if (c.status === auditConst.status.uncheck) { %>
+                        <td>
+                            待上报
+                        </td>
+                        <% } else { %>
+                        <td>
+                            <%- c.changeAudit.name %>-<%- c.changeAudit.jobs %>
+                            <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.uid === uid)) { %><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>
                     <% } %>
-                    <td><% if (c.status === auditConst.status.uncheck || (c.status === auditConst.status.back && c.uid === uid)) { %><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>
-            </table>
-            <!--翻页-->
-            <% include ../layout/page.ejs %>
+                    </tbody>
+                </table>
+                <!--翻页-->
+                <% include ../layout/page.ejs %>
+            </div>
         </div>
     </div>
 </div>

+ 7 - 7
app/view/login/login.ejs

@@ -29,13 +29,13 @@
             <!--</div>-->
             <div class="tab-pane active" id="paid" role="tabpanel">
                 <div class="form-group <% if (errorMessage !== undefined && errorMessage !== null) { %>has-danger<% } %>">
-                    <input id="project" class="form-control form-control-sm" name="project" placeholder="项目编号" autofocus="" />
+                    <input id="project" class="form-control" name="project" placeholder="项目编号" autofocus="" />
                 </div>
                 <div class="form-group <% if (errorMessage !== undefined && errorMessage !== null) { %>has-danger<% } %>">
-                    <input id="account" class="form-control form-control-sm" name="account" placeholder="输入账号" autofocus="" />
+                    <input id="account" class="form-control" name="account" placeholder="输入账号" autofocus="" />
                 </div>
                 <div class="form-group <% if (errorMessage !== undefined && errorMessage !== null) { %>has-danger<% } %>">
-                    <input id="project-password" name="project_password" class="form-control form-control-sm" placeholder="输入密码" type="password" />
+                    <input id="project-password" name="project_password" class="form-control" placeholder="输入密码" type="password" />
                 </div>
             </div>
             <div class="form-group">
@@ -49,10 +49,10 @@
             <input type="hidden" name="_csrf" value="<%= ctx.csrf %>" />
             <input type="hidden" name="type" value="2" />
         </div>
-        <div class="pt-1 d-flex justify-content-center">
-            <a href="http://sso.smartcost.com.cn/getpasswd" target="_blank" class="mr-3">忘记密码</a>
-            <a href="http://sso.smartcost.com.cn/reg" target="_blank">免费注册</a>
-        </div>
+        <!--<div class="pt-1 d-flex justify-content-center">-->
+            <!--<a href="http://sso.smartcost.com.cn/getpasswd" target="_blank" class="mr-3">忘记密码</a>-->
+            <!--<a href="http://sso.smartcost.com.cn/reg" target="_blank">免费注册</a>-->
+        <!--</div>-->
     </form>
     <!--项目版-->
 </div>

+ 55 - 53
app/view/measure/stage.ejs

@@ -16,61 +16,63 @@
     </div>
     <div class="content-wrap">
         <div class="c-body">
-            <table class="table table-bordered">
-                <thead>
-                <tr>
-                    <th>期数</th>
-                    <th class="text-center">计量月份</th>
-                    <th class="text-center">本期合同计量</th>
-                    <th class="text-center">本期数量变更计量</th>
-                    <th class="text-center">本期完成计量</th>
-                    <th class="text-center">截止上期完成计量</th>
-                    <th class="text-center">截止本期完成计量</th>
-                    <th class="text-center">审批进度</th>
-                    <th class="text-center">操作</th>
-                </tr>
-                </thead>
-                <tbody>
-                <% for (const s of stages) { %>
-                <tr>
-                    <td>
-                        <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>">第 <%- s.order %> 期</a>
-                        <% if (s.status === auditConst.status.uncheck && s.user_id === ctx.session.sessionUser.accountId) { %>
-                        <a href="#edit" data-toggle="modal" data-target="#edit"><i class="fa fa-pencil-square-o "></i></a>
-                        <% } %>
-                    </td>
-                    <td class="text-center"><%- s.s_time %></td>
-                    <td class="text-right"><%- (s.contract_tp ? s.contract_tp : '')%></td>
-                    <td class="text-right"><%- (s.qc_tp ? s.qc_tp : '')%></td>
-                    <td class="text-right"><%- (s.tp ? s.tp : '')%></td>
-                    <td class="text-right"><%- (s.pre_tp ? s.pre_tp : '')%></td>
-                    <td class="text-right"><%- (s.end_tp ? s.end_tp : '')%></td>
-                    <td class="<%- auditConst.auditProgressClass[s.status] %>">
-                        <% if (s.curAuditor) { %>
+            <div class="sjs-height-0">
+                <table class="table table-bordered">
+                    <thead>
+                    <tr>
+                        <th>期数</th>
+                        <th class="text-center">计量月份</th>
+                        <th class="text-center">本期合同计量</th>
+                        <th class="text-center">本期数量变更计量</th>
+                        <th class="text-center">本期完成计量</th>
+                        <th class="text-center">截止上期完成计量</th>
+                        <th class="text-center">截止本期完成计量</th>
+                        <th class="text-center">审批进度</th>
+                        <th class="text-center">操作</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    <% for (const s of stages) { %>
+                    <tr>
+                        <td>
+                            <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>">第 <%- s.order %> 期</a>
+                            <% if (s.status === auditConst.status.uncheck && s.user_id === ctx.session.sessionUser.accountId) { %>
+                            <a href="#edit" data-toggle="modal" data-target="#edit"><i class="fa fa-pencil-square-o "></i></a>
+                            <% } %>
+                        </td>
+                        <td class="text-center"><%- s.s_time %></td>
+                        <td class="text-right"><%- (s.contract_tp ? s.contract_tp : '')%></td>
+                        <td class="text-right"><%- (s.qc_tp ? s.qc_tp : '')%></td>
+                        <td class="text-right"><%- (s.tp ? s.tp : '')%></td>
+                        <td class="text-right"><%- (s.pre_tp ? s.pre_tp : '')%></td>
+                        <td class="text-right"><%- (s.end_tp ? s.end_tp : '')%></td>
+                        <td class="<%- auditConst.auditProgressClass[s.status] %>">
+                            <% if (s.curAuditor) { %>
                             <a href="#sp-list" data-toggle="modal" data-target="#sp-list" s-order="<%- s.order %>"><%- s.curAuditor.name %><%if (s.curAuditor.role !== '' && s.curAuditor.role !== null) { %>-<%- s.curAuditor.role %><% } %></a>
-                        <% } %>
-                        <%- auditConst.auditProgress[s.status] %>
-                    </td>
-                    <td class="text-center">
-                    <% if (s.status === auditConst.status.uncheck && s.user_id === ctx.session.sessionUser.accountId) { %>
-                        <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>" class="btn <%- auditConst.statusButtonClass[s.status] %> btn-sm"><%- auditConst.statusButton[s.status] %></a>
-                    <% } else if (s.status === auditConst.status.checkNo && s.curAuditor && s.user_id === ctx.session.sessionUser.accountId) { %>
-                        <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>" class="btn <%- auditConst.statusButtonClass[s.status] %> btn-sm"><%- auditConst.statusButton[s.status] %></a>
-                    <% } else if (s.status === auditConst.status.checking && s.curAuditor && s.curAuditor.aid === ctx.session.sessionUser.accountId) { %>
-                        <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>" class="btn <%- auditConst.statusButtonClass[s.status] %> btn-sm"><%- auditConst.statusButton[s.status] %></a>
-                    <% } else if (s.status === auditConst.status.checkNoPre && s.curAuditor && s.curAuditor2.aid === ctx.session.sessionUser.accountId) { %>
-                        <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>" class="btn <%- auditConst.statusButtonClass[s.status] %> btn-sm"><%- auditConst.statusButton[s.status] %></a>
-                    <% } else { %>
-                        <span class="<%- auditConst.auditStringClass[s.status] %>"><%- auditConst.auditString[s.status] %></span>
+                            <% } %>
+                            <%- auditConst.auditProgress[s.status] %>
+                        </td>
+                        <td class="text-center">
+                            <% if (s.status === auditConst.status.uncheck && s.user_id === ctx.session.sessionUser.accountId) { %>
+                            <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>" class="btn <%- auditConst.statusButtonClass[s.status] %> btn-sm"><%- auditConst.statusButton[s.status] %></a>
+                            <% } else if (s.status === auditConst.status.checkNo && s.curAuditor && s.user_id === ctx.session.sessionUser.accountId) { %>
+                            <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>" class="btn <%- auditConst.statusButtonClass[s.status] %> btn-sm"><%- auditConst.statusButton[s.status] %></a>
+                            <% } else if (s.status === auditConst.status.checking && s.curAuditor && s.curAuditor.aid === ctx.session.sessionUser.accountId) { %>
+                            <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>" class="btn <%- auditConst.statusButtonClass[s.status] %> btn-sm"><%- auditConst.statusButton[s.status] %></a>
+                            <% } else if (s.status === auditConst.status.checkNoPre && s.curAuditor && s.curAuditor2.aid === ctx.session.sessionUser.accountId) { %>
+                            <a href="<%- '/tender/' + ctx.tender.id + '/measure/stage/' + s.order %>" class="btn <%- auditConst.statusButtonClass[s.status] %> btn-sm"><%- auditConst.statusButton[s.status] %></a>
+                            <% } else { %>
+                            <span class="<%- auditConst.auditStringClass[s.status] %>"><%- auditConst.auditString[s.status] %></span>
+                            <% } %>
+                            <% if (s.user_id === ctx.session.sessionUser.accountId && s.order === stages.length) { %>
+                            <a href="#del-qi" class="btn btn-outline-danger btn-sm ml-1" data-toggle="modal" data-target="#del-qi">删除</a>
+                            <% } %>
+                        </td>
+                    </tr>
                     <% } %>
-                    <% if (s.user_id === ctx.session.sessionUser.accountId && s.order === stages.length) { %>
-                        <a href="#del-qi" class="btn btn-outline-danger btn-sm ml-1" data-toggle="modal" data-target="#del-qi">删除</a>
-                    <% } %>
-                    </td>
-                </tr>
-                <% } %>
-                </tbody>
-            </table>
+                    </tbody>
+                </table>
+            </div>
         </div>
     </div>
 </div>

+ 48 - 46
app/view/revise/index.ejs

@@ -24,52 +24,54 @@
     </div>
     <div class="content-wrap">
         <div class="c-body">
-            <!--修订中-->
-            <table class="table table-bordered">
-                <thead>
-                <tr>
-                    <th></th>
-                    <th>创建时间</th>
-                    <th>提交人</th>
-                    <th>状态</th>
-                    <th>完成时间</th>
-                    <th>操作</th>
-                </tr>
-                </thead>
-                <% for (const lr of ledgerRevise) { %>
-                <tr>
-                    <td><%- lr.corder %></td>
-                    <td><%- lr.in_time ? lr.in_time.toLocaleDateString() : '' %></td>
-                    <td><%- lr.user_name %></td>
-                    <td <% if (!lr.valid) {%>class="text-danger"<% } %>>
-                        <% if (lr.valid) { %>
-                        <%- auditConst.statusString[lr.status] %>
-                        <% } else { %>
-                        作废
-                        <% } %>
-                    </td>
-                    <td><%- lr.end_time ? lr.end_time.toLocaleDateString() : '' %></td>
-                    <td>
-                        <% if (lr.valid) { %>
-                        <% if (lr.status === auditConst.status.uncheck && lr.uid === ctx.session.sessionUser.accountId) { %>
-                        <a href="<%- preUrl + '/revise/info' %>" class="btn btn-primary btn-sm">修订</a>
-                        <a href="#remove" data-toggle="modal" data-target="#remove" class="btn btn-secondary btn-sm">作废</a>
-                        <% } else if (lr.status === auditConst.status.checking && lr.curAuditor.audit_id === ctx.session.sessionUser.accountId) { %>
-                        <a href="<%- preUrl + '/revise/info' %>" class="btn btn-success btn-sm">审批</a>
-                        <% } else if (lr.status === auditConst.status.checkNo && lr.uid === ctx.session.sessionUser.accountId) { %>
-                        <a href="<%- preUrl + '/revise/info' %>" class="btn btn-primary btn-sm">重新上报</a>
-                        <a href="#remove" data-toggle="modal" data-target="#remove" class="btn btn-secondary btn-sm">作废</a>
-                        <% } %>
-                        <% } %>
-                        <% if (lr.lastest) { %>
-                        <a href="<%- preUrl + '/revise/history' %>">查看修订内容</a>
-                        <% } %>
-                    </td>
-                </tr>
-                <% } %>
-            </table>
-            <!--翻页-->
-            <% include ../layout/page.ejs %>
+            <div class="sjs-height-0">
+                <!--修订中-->
+                <table class="table table-bordered">
+                    <thead>
+                    <tr>
+                        <th></th>
+                        <th>创建时间</th>
+                        <th>提交人</th>
+                        <th>状态</th>
+                        <th>完成时间</th>
+                        <th>操作</th>
+                    </tr>
+                    </thead>
+                    <% for (const lr of ledgerRevise) { %>
+                    <tr>
+                        <td><%- lr.corder %></td>
+                        <td><%- lr.in_time ? lr.in_time.toLocaleDateString() : '' %></td>
+                        <td><%- lr.user_name %></td>
+                        <td <% if (!lr.valid) {%>class="text-danger"<% } %>>
+                            <% if (lr.valid) { %>
+                            <%- auditConst.statusString[lr.status] %>
+                            <% } else { %>
+                            作废
+                            <% } %>
+                        </td>
+                        <td><%- lr.end_time ? lr.end_time.toLocaleDateString() : '' %></td>
+                        <td>
+                            <% if (lr.valid) { %>
+                            <% if (lr.status === auditConst.status.uncheck && lr.uid === ctx.session.sessionUser.accountId) { %>
+                            <a href="<%- preUrl + '/revise/info' %>" class="btn btn-primary btn-sm">修订</a>
+                            <a href="#remove" data-toggle="modal" data-target="#remove" class="btn btn-secondary btn-sm">作废</a>
+                            <% } else if (lr.status === auditConst.status.checking && lr.curAuditor.audit_id === ctx.session.sessionUser.accountId) { %>
+                            <a href="<%- preUrl + '/revise/info' %>" class="btn btn-success btn-sm">审批</a>
+                            <% } else if (lr.status === auditConst.status.checkNo && lr.uid === ctx.session.sessionUser.accountId) { %>
+                            <a href="<%- preUrl + '/revise/info' %>" class="btn btn-primary btn-sm">重新上报</a>
+                            <a href="#remove" data-toggle="modal" data-target="#remove" class="btn btn-secondary btn-sm">作废</a>
+                            <% } %>
+                            <% } %>
+                            <% if (lr.lastest) { %>
+                            <a href="<%- preUrl + '/revise/history' %>">查看修订内容</a>
+                            <% } %>
+                        </td>
+                    </tr>
+                    <% } %>
+                </table>
+                <!--翻页-->
+                <% include ../layout/page.ejs %>
+            </div>
         </div>
     </div>
 </div>

+ 1 - 1
app/view/stage/index.ejs

@@ -55,7 +55,7 @@
                             </li>
                             <!--工程量清单模式操作-->
                             <li class="nav-item">
-                                <div class="mt-1 ml-2">
+                                <div class="ml-2">
                                     <div class="input-group input-group-sm">
                                         <div class="input-group-prepend">
                                             <div class="input-group-text">

+ 6 - 6
app/view/tender/detail.ejs

@@ -23,7 +23,7 @@
         <div class="c-body">
             <!--金额概况-->
             <div class="row mx-1 mb-3">
-                <div class="col-auto p-0">
+                <div class="col-auto pr-0">
                     <div class="card text-center">
                         <div class="card-body">
                             <h5 class="card-title"><%- ctx.helper.formatMoney(tender.total_price) %></h5>
@@ -31,7 +31,7 @@
                         </div>
                     </div>
                 </div>
-                <div class="col-auto p-0">
+                <div class="col-auto pr-0">
                     <div class="card text-center">
                         <div class="card-body">
                             <h5 class="card-title"><%- ctx.helper.formatMoney(tender.gather_tp) %></h5>
@@ -39,7 +39,7 @@
                         </div>
                     </div>
                 </div>
-                <div class="col-auto p-0">
+                <div class="col-auto pr-0">
                     <div class="card text-center">
                         <div class="card-body">
                             <h5 class="card-title"><%- ctx.helper.formatMoney(tender.end_qc_tp) %><small class="text-danger"  data-toggle="tooltip" data-placement="bottom" title="" data-original-title="占合同比例"><%- tender.qc_ratio %>%</small></h5>
@@ -47,7 +47,7 @@
                         </div>
                     </div>
                 </div>
-                <div class="col-auto p-0">
+                <div class="col-auto pr-0">
                     <div class="card text-center">
                         <div class="card-body">
                             <h5 class="card-title"><%- ctx.helper.formatMoney(tender.end_gather_tp) %></h5>
@@ -55,7 +55,7 @@
                         </div>
                     </div>
                 </div>
-                <div class="col-auto p-0">
+                <div class="col-auto pr-0">
                     <div class="card text-center">
                         <div class="card-body">
                             <h5 class="card-title"><%- ctx.helper.formatMoney(tender.pre_gather_tp) %></h5>
@@ -63,7 +63,7 @@
                         </div>
                     </div>
                 </div>
-                <div class="col-auto p-0">
+                <div class="col-auto pr-0">
                     <div class="card text-center">
                         <div class="card-body">
                             <h5 class="card-title"><%- ctx.helper.formatMoney(tender.yf_tp) %></h5>