Explorar el Código

Merge branch '1.0.0_online' of http://192.168.1.41:3000/SmartCost/ConstructionCost into 1.0.0_online

zhangweicheng hace 6 años
padre
commit
9a80ad8d0b

+ 2 - 1
.gitignore

@@ -2,10 +2,11 @@ node_modules/
 .git/
 dist/
 .idea/
+.vscode/
 tmp/*.xlsx
 tmp/*.pdf
 tmp/*.jsp
 test/unit/logs
 *.log
-modules/reports/util/pdf_base_files/*.ttf
+modules/reports/util/pdf_base_files/.ttf
 modules/reports/util/pdf_base_files/*.ttc

+ 3 - 2
modules/all_models/bills.js

@@ -77,8 +77,9 @@ let billsSchema = new Schema({
     quantityIndexUnit:String,//工程量指标单位
     quantityIndexCoe:Number,//单位转换系数
     bookmarkBackground:String,//书签背景色
-    bookmarkAnnotation:String//批注
+    bookmarkAnnotation:String,//批注
+    overHeight: String // 超高降效
 
 });
 
-mongoose.model("bills", billsSchema);
+mongoose.model("bills", billsSchema);

+ 3 - 2
modules/all_models/ration.js

@@ -87,7 +87,8 @@ let rationSchema = new Schema({
     adjCoe:Number,
     remark:String,
     bookmarkBackground:String,//书签背景色
-    bookmarkAnnotation:String//批注
+    bookmarkAnnotation:String,//批注
+    overHeight: String // 超高降效
 });
 
-let ration = mongoose.model("ration", rationSchema, "ration");
+let ration = mongoose.model("ration", rationSchema, "ration");

+ 2 - 2
public/web/PerfectLoad.js

@@ -27,7 +27,7 @@ jQuery.bootstrapLoading = {
             //提示颜色
             delayTime: 500,
             //页面加载完成后,加载页面渐出速度
-            zindex: 999,
+            zindex: 2000,
             //loading页面层次
             sleep: 0
             //设置挂起,等于0时则无需挂起
@@ -163,4 +163,4 @@ const SCComponent = (() => {
     })();
 
     return {InitProgressBar}
-})();
+})();

+ 8 - 0
web/building_saas/css/custom.css

@@ -431,3 +431,11 @@ input.text-right{
 .border-radius {
     border-radius: .2rem !important;
 }
+.pm-i {
+    width: 18px;
+}
+.calcbase-btn {
+    width: 24px;
+    padding-left: 0;
+    padding-right: 0;
+}

+ 247 - 247
web/building_saas/css/main.css

@@ -6,89 +6,89 @@ body {
     font-family: "Helvetica Neue","Hiragino Sans GB",stheiti,"Microsoft Yahei","微软雅黑",tahoma,sans-serif
 }
 a{
-  outline: none
+    outline: none
 }
 .dropdown-menu {
     font-size: 0.9rem
 }
 .btn.disabled, .btn:disabled {
-  color:#999
+    color:#999
 }
 .btn-link:focus, .btn-link:hover{
-  text-decoration: none
+    text-decoration: none
 }
 .dropdown-menu {
-  padding:.2rem 0;
+    padding:.2rem 0;
 }
 .dropdown-item:focus, .dropdown-item:hover{
-  background-color: #f7f7f9
+    background-color: #f7f7f9
 }
 .text-indent {
-  text-indent:26px;
+    text-indent:26px;
 }
 .modal-header{
-  background:#f2f2f2;
-  border-bottom:1px solid #ccc;
-  padding:.8rem 1rem;
+    background:#f2f2f2;
+    border-bottom:1px solid #ccc;
+    padding:.8rem 1rem;
 }
 .modal-title{
-  font-size:1rem;
+    font-size:1rem;
 }
 .modal-footer{
-  padding:.8rem 1rem;
+    padding:.8rem 1rem;
 }
-.form-check .form-check-label,.form-radio .form-check-label{
-  cursor: pointer;
+.form-check .form-check-label,.form-radio .form-radio-label{
+    cursor: pointer
 }
 .custom-file-sm,.custom-file-sm .custom-file-label{
-  height: calc(1.5em + .5rem + 2px);
-  padding-top: .25rem;
-  padding-bottom: .25rem;
-  padding-left: .5rem;
+    height: calc(1.5em + .5rem + 2px);
+    padding-top: .25rem;
+    padding-bottom: .25rem;
+    padding-left: .5rem;
 }
 .custom-file-sm .custom-file-label:after{
-  height: calc(1.4em + .5rem + 2px);
-padding-top: .25rem;
-padding-bottom: .25rem;
-font-size: .875rem;
+    height: calc(1.4em + .5rem + 2px);
+    padding-top: .25rem;
+    padding-bottom: .25rem;
+    font-size: .875rem;
 }
 .custom-file-sm input{
-  height: calc(1.5em + .5rem + 2px);
-font-size: .875rem;
+    height: calc(1.5em + .5rem + 2px);
+    font-size: .875rem;
 }
 /*自定义css*/
 .login-body,.login-html{
-  height:100%;
+    height:100%;
 }
 .login-bg{
-  width: 100%;
-  height: 100%;
-  background: #f2f6f5 url("login-bg.jpg") bottom center no-repeat;
-  background-size: 100% auto;
-  display: inline-block;
-  position: absolute;
+    width: 100%;
+    height: 100%;
+    background: #f2f6f5 url("login-bg.jpg") bottom center no-repeat;
+    background-size: 100% auto;
+    display: inline-block;
+    position: absolute;
 }
 .login-panel {
-  width: 500px;
-  margin: 0 auto;
-  position: absolute;
-  left: 0;
-  right: 0;
-  top: 20%;
-  padding:30px;
-  background:#fff;
-  box-shadow:#333 1px 1px 5px
+    width: 500px;
+    margin: 0 auto;
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 20%;
+    padding:30px;
+    background:#fff;
+    box-shadow:#333 1px 1px 5px
 }
 .login-img-cr{
-  right:0;
-  font-size:9px;
+    right:0;
+    font-size:9px;
 }
 .ver-panel {
-  width:100%;
-  top:10%;
+    width:100%;
+    top:10%;
 }
 .header {
-  border-bottom: 1px solid #ccc
+    border-bottom: 1px solid #ccc
 }
 .header .header-logo {
     background: #ff6501;
@@ -100,26 +100,26 @@ font-size: .875rem;
     padding-left:50px;
 }
 .header-logo div.v-title{
-  font-size:11px;
-  color:#aeaeae;
-  line-height: 12px;
-  margin-top:3px;
+    font-size:11px;
+    color:#aeaeae;
+    line-height: 12px;
+    margin-top:3px;
 }
 .header-logo div.p-title{
-  font-size:16px;
-  color:#ff6501;
+    font-size:16px;
+    color:#ff6501;
 }
 .header-logo div.b-title{
-  font-size:24px;
-  color:#ff6501;
+    font-size:24px;
+    color:#ff6501;
 }
 .top-msg{
-  position: fixed;
-  top:10px;
-  width:900px;
-  z-index: 9999;
-  left:50%;
-  margin-left:-450px;
+    position: fixed;
+    top:10px;
+    width:900px;
+    z-index: 9999;
+    left:50%;
+    margin-left:-450px;
 }
 .main {
     position: relative;
@@ -151,55 +151,55 @@ font-size: .875rem;
     color: #333
 }
 .main-nav .nav-tabs{
-  border-bottom: none
+    border-bottom: none
 }
 .poj-manage .col-auto{
-  background:#f7f7f9
+    background:#f7f7f9
 }
 .poj-cate {
-  width:58px;
-  margin-right:-1px;
-  margin-top:2px;
+    width:58px;
+    margin-right:-1px;
+    margin-top:2px;
 }
 .poj-cate .nav-pills .nav-link{
-  border-radius: 0;
-  font-size: 24px;
-  color: #007bff
+    border-radius: 0;
+    font-size: 24px;
+    color: #007bff
 }
 .poj-cate .nav-item{
-  position: relative;
+    position: relative;
 }
 .poj-cate .nav-pills .badge{
-  position: absolute;
-  right:5px;
-  top:5px;
+    position: absolute;
+    right:5px;
+    top:5px;
 }
 .poj-cate .nav-pills .nav-link:hover{
-  color:#0056b3
+    color:#0056b3
 }
 .poj-cate .nav-pills .nav-link.active, .nav-pills .show > .nav-link{
-  background-color: #6c757d;
-  color:#fff
+    background-color: #6c757d;
+    color:#fff
 }
 .gl-side.gl-side-lg{
-  width:200px;
+    width:200px;
 }
 .nav-side .nav-link{
-  padding:.5rem;
+    padding:.5rem;
 }
 .nav-side .nav-link.active{
-  background:#ddd;
-  color:#333;
+    background:#ddd;
+    color:#333;
 }
 .pm-side{
-  position: fixed;
-  left:0;
-  height:100%;
-  border-right:1px solid #ccc;
-  background: #f7f7f9
+    position: fixed;
+    left:0;
+    height:100%;
+    border-right:1px solid #ccc;
+    background: #f7f7f9
 }
 .pm-content{
-  padding-left:58px
+    padding-left:58px
 }
 .content {
     border-left: 1px solid #ccc;
@@ -207,8 +207,8 @@ font-size: .875rem;
     background: #fff
 }
 .toolsbar,.toolsbar-f {
-  background: #f7f7f9;
-  border-bottom: 1px solid #ccc
+    background: #f7f7f9;
+    border-bottom: 1px solid #ccc
 }
 .tools-btn {
     height: 30px;
@@ -218,40 +218,40 @@ font-size: .875rem;
     background: #f7f7f9;
 }
 .toolsbar .btn-light {
-  color:#007bff;
-  min-width: 34px;
+    color:#007bff;
+    min-width: 34px;
 }
 .toolsbar .btn-light.disabled {
-  color:#999;
+    color:#999;
 }
 .main-side {
     border-left: 1px solid #ccc;
     overflow-y: hidden;
 }
 .main-data-top,.main-data-full{
-  overflow: hidden;
-  width:100%
+    overflow: hidden;
+    width:100%
 }
 .main-data-top-side{
-  overflow: hidden
+    overflow: hidden
 }
 .main-content.col-lg-8{
-  width:66.666667%
+    width:66.666667%
 }
 .main-content.col-lg-12{
-  width:100%
+    width:100%
 }
 .main-side.col-lg-4{
-  width: 33.333333%;
+    width: 33.333333%;
 }
 .main-side.col-lg-0{
-  width:0%;
+    width:0%;
 }
 .sidebar-middle{
-  height:80px;
+    height:80px;
 }
 .sidebar-bottom,.sidebar-bottom .col-lg-6,.sidebar-bottom .col-lg-12 {
-  height:300px
+    height:300px
 }
 .top-content, .fluid-content {
     overflow: auto;
@@ -275,7 +275,7 @@ font-size: .875rem;
     z-index: 999
 }
 .side-tabs .nav-tabs .nav-item {
-  z-index: 999
+    z-index: 999
 }
 .side-tabs .nav-tabs {
     border-bottom: none;
@@ -351,11 +351,11 @@ font-size: .875rem;
     }
 }
 .has-danger {
-    -webkit-animation: shake 1s .2s ease both;
-    -moz-animation: shake 1s .2s ease both;
-    animation: shake 1s .2s ease both;
+    -webkit-animation: shake_a 1s .2s ease both;
+    -moz-animation: shake_a 1s .2s ease both;
+    animation: shake_a 1s .2s ease both;
 }
-@-webkit-keyframes shake {
+@-webkit-keyframes shake_a {
     0%, 100% {
         -webkit-transform: translateX(0);
     }
@@ -366,7 +366,7 @@ font-size: .875rem;
         -webkit-transform: translateX(10px);
     }
 }
-@-moz-keyframes shake {
+@-moz-keyframes shake_a {
     0%, 100% {
         -moz-transform: translateX(0);
     }
@@ -377,7 +377,7 @@ font-size: .875rem;
         -moz-transform: translateX(10px);
     }
 }
-@keyframes shake {
+@keyframes shake_a {
     0%, 100% {
         transform: translateX(0);
     }
@@ -389,8 +389,8 @@ font-size: .875rem;
     }
 }
 .gl-side{
-  border-right:1px solid #ccc;
-  width:120px
+    border-right:1px solid #ccc;
+    width:120px
 }
 .bottom-content .tab-content .main-data-bottom{
     height: 300px;
@@ -404,141 +404,141 @@ font-size: .875rem;
     overflow: hidden;
 }
 .tn-nav,.rn-nav{
-  width:30px;
-  height: 100%;
-  border-left:1px solid #dee2e6 ;
+    width:30px;
+    height: 100%;
+    border-left:1px solid #dee2e6 ;
 }
 .tn-nav,.cn-nav{
-  border-right:1px solid #dee2e6 ;
-  border-left:none;
+    border-right:1px solid #dee2e6 ;
+    border-left:none;
 }
 .tn-nav > span{
-  width:20px;
+    width:20px;
 }
 .tn-nav:hover{
-  background:#f7f7f9;
-  cursor: pointer;
+    background:#f7f7f9;
+    cursor: pointer;
 }
 .rn-nav {
-  background: #f7f7f9
+    background: #f7f7f9
 }
 .rn-nav .nav{
-  padding: 0
+    padding: 0
 }
 .rn-nav .nav-tabs {
-  border:none;
-  margin-top:2px;
+    border:none;
+    margin-top:2px;
 }
 .rn-nav .nav-tabs .nav-link{
-  padding:0.4em 0.4em;
-  line-height: 16px
+    padding:0.4em 0.4em;
+    line-height: 16px
 }
 .rn-nav .nav-tabs .nav-link.active {
-  border:none;
-  background-color: #fff;
-  border-left:1px solid #fff;
-  margin-left:-1px;
-  border-top:1px solid #ccc;
-  border-right:1px solid #ccc;
-  border-bottom:1px solid #ccc;
+    border:none;
+    background-color: #fff;
+    border-left:1px solid #fff;
+    margin-left:-1px;
+    border-top:1px solid #ccc;
+    border-right:1px solid #ccc;
+    border-bottom:1px solid #ccc;
 }
 .cn-nav .nav-tabs .nav-link.active {
-  border:none;
-  background-color: #fff;
-  border-right:1px solid #fff;
-  margin-right:-1px;
-  border-top:1px solid #ccc;
-  border-left:1px solid #ccc;
-  border-bottom:1px solid #ccc;
+    border:none;
+    background-color: #fff;
+    border-right:1px solid #fff;
+    margin-right:-1px;
+    border-top:1px solid #ccc;
+    border-left:1px solid #ccc;
+    border-bottom:1px solid #ccc;
 }
 .rn-nav .nav-tabs .nav-link span{
-  display:none;
+    display:none;
 }
 .rn-nav .nav-tabs .nav-link.active span{
-  display: inline-block;
+    display: inline-block;
 }
 .poj-list, .side-content ,.form-view{
     overflow: auto;
 }
 .print-toolsbar{
-  padding:5px
+    padding:5px
 }
 .print-toolsbar .panel {
-  display:inline-block;
-  vertical-align:top
+    display:inline-block;
+    vertical-align:top
 }
 .print-toolsbar .panel .panel-foot{
-  text-align: center;
-  font-size: 12px;
-  padding-bottom:3px;
-  background:#F2F2F2
+    text-align: center;
+    font-size: 12px;
+    padding-bottom:3px;
+    background:#F2F2F2
 }
 .print-list {
-  border-right:1px solid #ccc
+    border-right:1px solid #ccc
 }
 .print-list .form-list {
-  overflow: auto
+    overflow: auto
 }
 .print-list .list-tools{
-  height:50px;
-  padding:10px 0;
-  border-bottom:1px solid #f2f2f2
+    height:50px;
+    padding:10px 0;
+    border-bottom:1px solid #f2f2f2
 }
 .pageContainer {
-  text-align: center
+    text-align: center
 }
 .pageContainer .page{
-  border:9px solid transparent;
-  display: inline-block;
+    border:9px solid transparent;
+    display: inline-block;
 }
 .pageContainer .page img{
-  width:inherit;
-  height: inherit;
+    width:inherit;
+    height: inherit;
 }
 .modal-auto-height {
-  height: 400px;
-  overflow-y: auto;
+    height: 400px;
+    overflow-y: auto;
 }
 .modal-toolbar + .modal-auto-height{
-  height:369px
+    height:369px
 }
 .modal-fixed-height {
-  height: 400px;
-  overflow-y: hidden;
+    height: 400px;
+    overflow-y: hidden;
 }
 .sidebar-tools-bar {
-  background:#fff
+    background:#fff
 }
 .side-search-box{
-  background:#fff;
-  border-bottom:1px solid #ddd
+    background:#fff;
+    border-bottom:1px solid #ddd
 }
 .navbar-crumb span{
-  float:left;
+    float:left;
 }
 .navbar-crumb span.text-truncate{
-  max-width: 200px;
+    max-width: 200px;
 }
 .dropdown-item{
-  color:#007bff
+    color:#007bff
 }
 .dropdown-item:hover{
-  color:#0056b3
+    color:#0056b3
 }
 .dropdown-item.disabled, .dropdown-item:disabled{
-  pointer-events:none
+    pointer-events:none
 }
 .tools-symbol{
-  width:450px
+    width:450px
 }
 .tools-symbol p{
-  margin: 0
+    margin: 0
 }
 .tools-symbol a.btn{
-  font-size: .95rem;
-  width:26px;
-  padding: 0;
-  height:26px;
+    font-size: .95rem;
+    width:26px;
+    padding: 0;
+    height:26px;
 }
 .custom-file-input:lang(zh) ~ .custom-file-label::after {
     content: "浏览";
@@ -571,149 +571,149 @@ font-size: .875rem;
     border-color:#000 transparent transparent transparent;
 }
 .box-text-style {
-  font-size: 12px;
-  font-family:"Microsoft YaHei"
+    font-size: 12px;
+    font-family:"Microsoft YaHei"
 }
 .box-text-style p{
-  margin:0 0 2px 0;
+    margin:0 0 2px 0;
 }
 .box-text-style table{
-  width: 100%;
-  text-align: center;
+    width: 100%;
+    text-align: center;
 }
 .box-text-style table th,.box-text-style table td{
-  border:1px solid #fff;
+    border:1px solid #fff;
 }
 
 .box-text-style table p{
-  text-align: left;
+    text-align: left;
 }
 .sys-setting-nav .nav-link{
-  padding:.3rem 1rem;
+    padding:.3rem 1rem;
 }
 /*快捷切换单位工程*/
 .navbar-crumb{
-  position: relative;
+    position: relative;
 }
 .navbar-crumb .f-nav,.navbar-crumb .s-nav{
-  position: absolute;
-  z-index: 999;
-  width: 200px;
-  background:#fff;
-  border: 1px solid rgba(0,0,0,.15);
-  padding: .5rem 0;
+    position: absolute;
+    z-index: 999;
+    width: 200px;
+    background:#fff;
+    border: 1px solid rgba(0,0,0,.15);
+    padding: .5rem 0;
 }
 .navbar-crumb .f-nav{
-  right:50px;
-  top:35px;
+    right:50px;
+    top:35px;
 }
 .navbar-crumb .s-nav{
-  left:200px
+    left:200px
 }
 .navbar-crumb .f-nav li{
-  padding: .25rem 1rem;
-  cursor: default;
+    padding: .25rem 1rem;
+    cursor: default;
 }
 .navbar-crumb .f-nav li.focus{
-color: #16181b;
-background-color: #f7f7f9;
+    color: #16181b;
+    background-color: #f7f7f9;
 }
 .navbar-crumb .f-nav li .s-nav{
-  display: none
+    display: none
 }
 .navbar-crumb .f-nav li.focus .s-nav{
-  display: block
+    display: block
 }
 /*书签颜色*/
 .annotate-color-1{
-  background: #E2F2C5;
-  color: #E2F2C5;
+    background: #E2F2C5;
+    color: #E2F2C5;
 }
 .annotate-color-1::before{
-  color: #E2F2C5;
-  -webkit-text-stroke:.5px #ced4da;
+    color: #E2F2C5;
+    -webkit-text-stroke:.5px #ced4da;
 }
 .annotate-color-2{
-  background: #F9E2CF;
-  color:#F9E2CF
+    background: #F9E2CF;
+    color:#F9E2CF
 }
 .annotate-color-2::before{
-  color: #F9E2CF;
-  -webkit-text-stroke:.5px #ced4da;
+    color: #F9E2CF;
+    -webkit-text-stroke:.5px #ced4da;
 }
 .annotate-color-3{
-  background: #F2EFD9;
-  color:#F2EFD9
+    background: #F2EFD9;
+    color:#F2EFD9
 }
 .annotate-color-3::before{
-  color:#F2EFD9;
-  -webkit-text-stroke:.5px #ced4da;
+    color:#F2EFD9;
+    -webkit-text-stroke:.5px #ced4da;
 }
 .annotate-color-4{
-  background: #F5D1DA;
-  color:#F5D1DA
+    background: #F5D1DA;
+    color:#F5D1DA
 }
 .annotate-color-4::before{
-  color:#F5D1DA;
-  -webkit-text-stroke:.5px #ced4da;
+    color:#F5D1DA;
+    -webkit-text-stroke:.5px #ced4da;
 }
 .annotate-color-5{
-  background: #E3E3E3;
-  color:#E3E3E3
+    background: #E3E3E3;
+    color:#E3E3E3
 }
 .annotate-color-5::before{
-  color:#E3E3E3;
-  -webkit-text-stroke:.5px #ced4da;
+    color:#E3E3E3;
+    -webkit-text-stroke:.5px #ced4da;
 }
 .annotate-color-6{
-  background: #B6F3F2;
-  color:#B6F3F2
+    background: #B6F3F2;
+    color:#B6F3F2
 }
 .annotate-color-6::before{
-  color:#B6F3F2;
-  -webkit-text-stroke:.5px #ced4da;
+    color:#B6F3F2;
+    -webkit-text-stroke:.5px #ced4da;
 }
 .annotate-color-7{
-  background: #ECE0F5;
-  color:#ECE0F5
+    background: #ECE0F5;
+    color:#ECE0F5
 }
 .annotate-color-7::before{
-  color:#ECE0F5;
-  -webkit-text-stroke:.5px #ced4da;
+    color:#ECE0F5;
+    -webkit-text-stroke:.5px #ced4da;
 }
 .input-group-text.active{
-  color:#666;
+    color:#666;
 }
 /*宽屏菜单*/
 @media screen and (min-width: 900px) {
-#fluid-menu{
-}
-#min-menu{
-  display: none
-}
+    #fluid-menu{
+    }
+    #min-menu{
+        display: none
+    }
 }
 @media screen and (min-width: 912px) {
-#share-info{
-  overflow: auto;
-text-overflow: ellipsis;
-white-space: nowrap;
-max-width:inherit;
-}
+    #share-info{
+        overflow: auto;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        max-width:inherit;
+    }
 }
 /*窄屏菜单*/
 @media screen and (max-width: 900px) {
-#fluid-menu{
-  display: none
-}
-#min-menu{
+    #fluid-menu{
+        display: none
+    }
+    #min-menu{
 
-}
+    }
 }
 @media screen and (max-width: 1018px) {
-#share-info{
-  overflow: hidden;
-text-overflow: ellipsis;
-white-space: nowrap;
-max-width:80px;
+    #share-info{
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        max-width:80px;
+    }
 }
-}

+ 7 - 7
web/building_saas/main/html/main.html

@@ -1389,13 +1389,13 @@
                             <div class="form-group" id="expArea">
                                 <input class="form-control" id="calcBaseExp" value="">
                                 <p class="form-text">
-                                    <button class="btn btn-secondary btn-sm" id="addOpr">+</button>
-                                    <button class="btn btn-secondary btn-sm" id="subOpr">-</button>
-                                    <button class="btn btn-secondary btn-sm" id="mulOpr">*</button>
-                                    <button class="btn btn-secondary btn-sm" id="divOpr">/</button>
-                                    <button class="btn btn-secondary btn-sm" id="percentOpr">%</button>
-                                    <button class="btn btn-secondary btn-sm" id="leftOpr">(</button>
-                                    <button class="btn btn-secondary btn-sm" id="rightOpr">)</button>
+                                    <button class="calcbase-btn btn btn-secondary btn-sm" id="addOpr">+</button>
+                                    <button class="calcbase-btn btn btn-secondary btn-sm" id="subOpr">-</button>
+                                    <button class="calcbase-btn btn btn-secondary btn-sm" id="mulOpr">*</button>
+                                    <button class="calcbase-btn btn btn-secondary btn-sm" id="divOpr">/</button>
+                                    <button class="calcbase-btn btn btn-secondary btn-sm" id="percentOpr">%</button>
+                                    <button class="calcbase-btn btn btn-secondary btn-sm" id="leftOpr">(</button>
+                                    <button class="calcbase-btn btn btn-secondary btn-sm" id="rightOpr">)</button>
                                     <span id="errorInfo" style="margin-left:15px;"></span>
                                 </p>
                             </div>

+ 3 - 2
web/building_saas/main/js/models/main_consts.js

@@ -137,7 +137,8 @@ const rationType = {
     ration: 1,
     volumePrice: 2,
     gljRation: 3,
-    install:4
+    install:4,
+    overHeight: 5 // 超高子目
 };
 const rationPrefix = { //定额前缀,补/借
     none: '',
@@ -460,4 +461,4 @@ const rationBaseShort = {
     '[中小机械维护费]': 'ZXJXWHF',
     '[安拆费及场外运输费]': 'ACCWYSF',
     '[定额仪器仪表费]': 'YQYBF',
-};
+};

+ 16 - 1
web/building_saas/main/js/views/main_tree_col.js

@@ -309,6 +309,13 @@ let MainTreeCol = {
                 return true;
             }
             return node.data.outPutMaxPrice !== true;
+        },
+        // 超高降效
+        forOverHeight: function (node) {
+            const isOverHeight = node
+                && node.sourceType === projectObj.project.Ration.getSourceType()
+                && node.data.type === rationType.overHeight;
+            return isOverHeight;
         }
     },
     cellType: {
@@ -420,6 +427,14 @@ let MainTreeCol = {
                     : sheetCommonObj.getCheckBox(true);
                 return checkBox;
             }
+        },
+        overHeight: function (node) {
+            const isOverHeight = node
+                && node.sourceType === projectObj.project.Ration.getSourceType()
+                && node.data.type === rationType.overHeight;
+            if (isOverHeight) {
+
+            }
         }
     },
     mainBillsEnable:function (node) {
@@ -713,7 +728,7 @@ $('#poj-set').on('shown.bs.modal', function (e) {
                 sheet.setValue(row, 0, orgData);
             }
         });
-    }  
+    }
 });
 
 $('#poj-set').on('hidden.bs.modal', function (e) {

+ 7 - 7
web/building_saas/pm/html/project-management.html

@@ -103,13 +103,13 @@
                         <div class="toolsbar">
                             <legend class="m-0 px-4">项目管理
                                 <div class="tools-btn btn-group align-top btn-group-sm my-1 ml-3">
-                                    <a id="addMenuBtn" href="javascript:;" data-toggle="dropdown" class="btn btn-primary px-5 border-radius"><i class="fa fa-plus"></i> 新建</a>
-                                    <div class="dropdown-menu dropright" id="addMenu">
-                                        <a href="javascript:;" id="addFolderSub" class="dropdown-item" data-toggle="modal" data-target="#add-folder-dialog"><i class="fa fa-folder-open-o" aria-hidden="true"></i> 新建文件夹</a>
-                                        <a href="javascript:;" id="addProjectSub" class="dropdown-item" data-toggle="modal" data-target="#add-project-dialog"><i class="fa fa-cubes" aria-hidden="true"></i> 新建建设项目</a>
-                                        <a href="javascript:;" id="addEngSub" class="dropdown-item" data-toggle="modal" data-target="#add-engineering-dialog"><i class="fa fa-cube" aria-hidden="true"></i> 新建单项工程</a>
-                                        <a href="javascript:;" id="addTenderSub" class="dropdown-item" data-toggle="modal" data-target="#add-tender-dialog"><i class="fa fa-sticky-note-o" aria-hidden="true"></i> 新建单位工程</a>
-                                    </div>
+                                    <a id="addMenuBtn" href="javascript:;" data-toggle="modal" data-target="#add-tender-dialog" class="btn btn-primary px-5 border-radius"><i class="fa fa-plus"></i> 新建</a>
+                                    <!--<div class="dropdown-menu dropright" id="addMenu">
+                                        <a href="javascript:;" id="addFolderSub" class="dropdown-item" data-toggle="modal" data-target="#add-folder-dialog"><i class="pm-i fa fa-folder-open-o" aria-hidden="true"></i> 新建文件夹</a>
+                                        <a href="javascript:;" id="addProjectSub" class="dropdown-item" data-toggle="modal" data-target="#add-project-dialog"><i class="pm-i fa fa-cubes" aria-hidden="true"></i> 新建建设项目</a>
+                                        <a href="javascript:;" id="addEngSub" class="dropdown-item" data-toggle="modal" data-target="#add-engineering-dialog"><i class="pm-i fa fa-cube" aria-hidden="true"></i> 新建单项工程</a>
+                                        <a href="javascript:;" id="addTenderSub" class="dropdown-item" data-toggle="modal" data-target="#add-tender-dialog"><i class="pm-i fa fa-sticky-note-o" aria-hidden="true"></i> 新建单位工程</a>
+                                    </div>-->
                                 </div>
                                 <div class="tools-btn btn-group align-top px-3 my-1">
                                     <a id="upLevel" href="javascript:void(0);" class="btn btn-light btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="升级"><i class="fa fa-arrow-left" aria-hidden="true"></i></a>

+ 15 - 3
web/building_saas/pm/js/pm_gc.js

@@ -584,7 +584,6 @@ function gc_init(){
         gcTreeObj.initSelection(initSel);
         autoFlashHeight();
         gcTreeObj.workBook.refresh();
-        $.bootstrapLoading.end();
     });
 }
 
@@ -960,6 +959,7 @@ function m_project(node){
 //点击单价文件、费率文件下的恢复操作(确认)
 function e_recFiles(btn){
     btn.bind('click', function () {
+        $.bootstrapLoading.start();
         decDate = '(' + new Date().Format('MM-dd hh:mm:ss') + '恢复)';
         let recObjs = m_getFilesObjs($('[name = "fileItems"]:checked'));
         let recIds = [];
@@ -1001,6 +1001,7 @@ function e_recFiles(btn){
 //点击单价、费率文件的清除操作(确认)
 function e_delFiles(btn){
     btn.bind('click', function () {
+        $.bootstrapLoading.start();
         let selected = gcTreeObj.tree.selected;//project
         let delObjs = m_getFilesObjs($('[name = "fileItems"]:checked'));
         let type = $('[name = "fileItems"]:checked').attr('fileType');
@@ -1034,6 +1035,7 @@ function e_delFiles(btn){
 //点击项目下的恢复操作(确认)
 function e_recProj(btn){
     btn.bind('click', function () {
+        $.bootstrapLoading.start();
         let selected = gcTreeObj.tree.selected;
         //backend
         let updateObj = m_getRecDatas(selected);
@@ -1059,6 +1061,7 @@ function e_recProj(btn){
 
 function e_delProj(btn){
     btn.bind('click', function () {
+        $.bootstrapLoading.start();
         let selected  = gcTreeObj.tree.selected;
         //backend
         let delDatas = m_getDelDatas(selected);
@@ -1078,6 +1081,9 @@ function a_getGC(callback){
         if(callback){
             callback(rstData);
         }
+        $.bootstrapLoading.end();
+    }, function () {
+        $.bootstrapLoading.end();
     });
 }
 
@@ -1086,6 +1092,9 @@ function a_rec(nodes, callback){
         if(callback){
             callback();
         }
+        $.bootstrapLoading.end();
+    }, function () {
+        $.bootstrapLoading.end();
     });
 }
 
@@ -1094,7 +1103,10 @@ function a_delGC(delDatas, callback){
         if(callback){
             callback();
         }
-    })
+        $.bootstrapLoading.end();
+    }, function () {
+        $.bootstrapLoading.end();
+    });
 }
 
 //去除重名,回收站不处理重名,只保证恢复到项目管理中不出现重名
@@ -1276,4 +1288,4 @@ function getUpdateFiles(tenders, project){
     rst = rst.concat(deWeightName(rstUF));
     rst = rst.concat(deWeightName(rstFF));
     return rst;
-}
+}

+ 26 - 2
web/building_saas/pm/js/pm_newMain.js

@@ -2452,6 +2452,7 @@ $(document).ready(function() {
         let updateData = null;
         let dialog = $('#del');
         if (projTreeObj.tree && projTreeObj.tree.selected) {
+            $.bootstrapLoading.start();
             updateData = GetDeleteUpdateData(projTreeObj.tree.selected);
             UpdateProjectData(updateData, function () {
                 dialog.modal('hide');
@@ -2468,11 +2469,13 @@ $(document).ready(function() {
                 if(selected.data.projType == projectType.tender||selected.data.projType == projectType.engineering){
                     projTreeObj.refreshNodeData(refreshNodes);//刷新工程造价信息
                 }
+                $.bootstrapLoading.end();
                 //快速点击时,第一个项目删除成功了,可能会删除多项目
                 setTimeout(function () {
                     STATE.deleting = false;
                 }, 500);
             }, function () {
+                $.bootstrapLoading.end();
                 setTimeout(function () {
                     STATE.deleting = false;
                 }, 500);
@@ -2913,20 +2916,24 @@ function AddProject() {
         setDangerInfo($('#taxType-info'));
         return false;
     }
+    $.bootstrapLoading.start();
     let existCallback = function () {
         setDangerInfo($('#project-name-info'), `已存在“${$("#project-name").val()}”`);
         STATE.addingProject = false;
+        $.bootstrapLoading.end();
     };
     let sucCallback = function () {
         $('#addProjOk').removeClass('disabled');
         $('#add-project-dialog').modal('hide');
         $('#project-name').val('');
         setDangerInfo($('#project-name-info'), '', false);
+        $.bootstrapLoading.end();
         setTimeout(function () {
             STATE.addingProject = false;
         }, 500);
     };
     let errCB = function () {
+        $.bootstrapLoading.end();
         setTimeout(function () {
             STATE.addingProject = false;
         }, 500);
@@ -3570,19 +3577,23 @@ function AddEngineering() {
         return false;
     }
     name = whiteSpaceCollapse(name);
+    $.bootstrapLoading.start();
     let existCallback = function () {
         setDangerInfo($('#engineering-name-info'), `已存在“${$("#engineering-name").val()}”`);
         STATE.addingEng = false;
+        $.bootstrapLoading.end();
     };
     let sucCallback = function () {
         $('#add-engineering-dialog').modal('hide');
         $('#engineering-name').val('');
         setDangerInfo($('#engineering-name-info'), '', false);
+        $.bootstrapLoading.end();
         setTimeout(function () {
             STATE.addingEng = false;
         }, 500);
     };
     let errCB = function () {
+        $.bootstrapLoading.end();
         setTimeout(function () {
             STATE.addingEng = false;
         }, 500);
@@ -3695,7 +3706,7 @@ function AddTender() {
 
 
         let calcProgramName = $('#tender-calcProgram').children("option:selected").text();
-
+        $.bootstrapLoading.start();
         let callback = function() {
                 $("#add-tender-dialog").modal("hide");
                 $('#tender-name').val('');
@@ -3706,11 +3717,13 @@ function AddTender() {
                 $("#poj-name-info").hide();
                 $("#eng-name").val('');
                 $("#eng-name-info").hide();
+                $.bootstrapLoading.end();
                 setTimeout(function () {
                     STATE.addingTender = false;
                 }, 500);
             },
             errCB = function () {
+                $.bootstrapLoading.end();
                 setTimeout(function () {
                     STATE.addingTender = false;
                 }, 500);
@@ -3750,7 +3763,7 @@ function AddTender() {
         AddTenderItems(selectedItem, projName, engName, tenderName, tenderInfo, callback, errCB);
 
     } catch (error) {
-        ('#add-tender-confirm').removeClass('disabled');
+        $('#add-tender-confirm').removeClass('disabled');
         alert(error);
     }
 }
@@ -3803,16 +3816,20 @@ function AddFolder() {
     let existCallback = function () {
         setDangerInfo($('#folder-name-info'), `已存在“${$("#folder-name").val()}”`);
         STATE.addingFolder = false;
+        $.bootstrapLoading.end();
     };
+    $.bootstrapLoading.start();
     let sucCallback = function () {
         $('#add-folder-dialog').modal('hide');
         $('#folder-name').val('');
         setDangerInfo($('#folder-name-info'), '', false);
+        $.bootstrapLoading.end();
         setTimeout(function () {
             STATE.addingFolder = false;
         }, 500);
     };
     let errCB = function () {
+        $.bootstrapLoading.end();
         setTimeout(function () {
             STATE.addingFolder = false;
         }, 500);
@@ -4652,6 +4669,10 @@ $('#shareToConfirm').click(function () {
 
 $("#confirm-import").click(function() {
     //$.bootstrapLoading.start();
+    if (STATE.importing) {
+        return;
+    }
+    STATE.importing = true;
     const self = $(this);
     try {
         let formData = new FormData();
@@ -4676,6 +4697,7 @@ $("#confirm-import").click(function() {
                 self.text('上传中...');
             },
             success: function(response){
+                STATE.importing = false;
                 self.text('确定导入');
                 $.bootstrapLoading.progressEnd();
                 if(response.error == 1){
@@ -4689,6 +4711,7 @@ $("#confirm-import").click(function() {
 
             },
             error:  function(response){
+                STATE.importing = false;
                 setTimeout(function () {
                     self.text('确定导入');
                     $.bootstrapLoading.progressEnd();
@@ -4697,6 +4720,7 @@ $("#confirm-import").click(function() {
             }
         });
     } catch(error) {
+        STATE.importing = false;
         alert(error);
         $.bootstrapLoading.end();
     }