| {% extends "layout.html" %} |
|
|
| {% block content %} |
| <style> |
| .module_details_item:last-child .module_details_head{ |
| border-bottom:none; |
| } |
| .warning_scan_body .module_num{ |
| display: inline-block; |
| margin-left: 20px; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| margin-right: 20px; |
| } |
| .warning_scan_body li:first-child .module_head{ |
| border-top: none; |
| } |
| .warning_scan_body .module_num span { |
| color: red; |
| } |
| .btn_num{ |
| font-weight: bold; |
| margin-left: 5px; |
| padding: 1px 5px; |
| text-align: center; |
| border-radius: 3px; |
| color:#fff; |
| background: red; |
| } |
| .module_details_block .line_content { |
| width: 245px; |
| } |
| .cmsList ol{ |
| padding: 20px; |
| } |
| .cmsList ol li{ |
| width: 140px; |
| display: inline-block; |
| text-align: center; |
| } |
| .cms { |
| font-size:15px; |
| padding: 60px 100px 0 100px; |
| line-height: 30px; |
| } |
| .cms ol li { |
| width: 255px; |
| float: left; |
| } |
| .warning_scan_head .warning_scan_ps1{ |
| line-height:30px; |
| display:inline-block; |
| text-align: left; |
| vertical-align: middle; |
| margin-left: 16px; |
| } |
| .warning_scan_head .buy{ |
| position: absolute; |
| top: 45px; |
| width:101px; |
| font-size: 13px; |
| } |
| .warning_scan_head .buy .wechatEnterpriseService{ |
| vertical-align: middle; |
| width:21px; |
| float:left; |
| margin-top: 3px; |
| } |
| .warning_scan_head .buy .service_buy2{ |
| width:80px; |
| font-size: 15px; |
| } |
| .scanNone .buy{ |
| position: absolute; |
| top: 160px; |
| width:101px; |
| font-size: 13px; |
| right: 85px; |
| } |
| .warning_scan_body .safe_state{ |
| border: 1px solid #e8e8e8; |
| height: 490px; |
| display: flex; |
| flex-direction: column; |
| justify-content: center; |
| align-items: center; |
| font-size: 20px; |
| position: relative; |
| } |
| .warning_scan_head .warning_cancel_scan{ |
| position: relative; |
| float: right; |
| top: 10px; |
| width: 100px; |
| height: 38px; |
| font-size: 14px; |
| line-height: 24px; |
| border-radius: 4px; |
| color: #20a53a; |
| background: #fff; |
| border: 1px solid #20a53a; |
| } |
| .warning_scan_head .warning_cancel_scan:hover,.warning_scan_head .warn_close_scan:hover{ |
| color: #fff; |
| background: #20a53a; |
| } |
| .warning_scan_head .warn_close_scan{ |
| display: none; |
| position: relative; |
| float: right; |
| top: 10px; |
| right: 60px; |
| width: 100px; |
| height: 38px; |
| line-height: 24px; |
| border-radius: 4px; |
| color: #20a53a; |
| background: #fff; |
| border: 1px solid #20a53a; |
| font-size: 14px; |
| text-align: center; |
| } |
| .warning_scan_head .safaty_load{ |
| display: none; |
| position: absolute; |
| width: 60px; |
| height: 60px; |
| border-radius: 50%; |
| border-top: 3px solid transparent; |
| border-right: 3px solid rgba(32, 165, 58, 100); |
| border-bottom: 3px solid rgba(32, 165, 58, 100); |
| border-left: 3px solid rgba(32, 165, 58, 100); |
| -webkit-animation: load8 1.1s infinite linear; |
| animation: load8 1.1s infinite linear; |
| } |
| @-webkit-keyframes load8 { |
| 0% { |
| -webkit-transform: rotate(0deg); |
| transform: rotate(0deg); |
| } |
| 100% { |
| -webkit-transform: rotate(360deg); |
| transform: rotate(360deg); |
| } |
| } |
| @keyframes load8 { |
| 0% { |
| -webkit-transform: rotate(0deg); |
| transform: rotate(0deg); |
| } |
| 100% { |
| -webkit-transform: rotate(360deg); |
| transform: rotate(360deg); |
| } |
| } |
| .module_details_body .line_title{ |
| display: inline-block; |
| } |
| .module_title{ |
| width: 200px; |
| display: inline-block; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
| .module_num{ |
| width: 120px; |
| display: inline-block; |
| } |
| .module_type{ |
| display: inline-block; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| max-width: 220px; |
| } |
| .warning_scan_head .halving_line { |
| margin: 0 auto; |
| width: 685px; |
| border-bottom: 1px solid rgba(241, 241, 241, 100); |
| } |
| .warning_scan_body .module_head { |
| height: 45px; |
| line-height: 45px; |
| overflow: hidden; |
| } |
| .module_details_list.active{ |
| overflow:hidden; |
| height: auto; |
| margin: 13px 5px 20px 10px; |
| transition: margin 500ms; |
| } |
| .module_details_title>span { |
| color: #a9a9a9; |
| max-width: 360px; |
| } |
| .warning_scan_view{ |
| padding: 0; |
| } |
| .warning_scan_head{ |
| padding: 0; |
| } |
| .warning_scan_head .scanNone{ |
| padding: 50px 16px 20px 38px; |
| } |
| .warning_scan_head .scanNone.active{ |
| padding: 25px 16px 13px 38px; |
| transition: padding 500ms; |
| } |
| .warning_scan_head img{ |
| width: 85px; |
| height: 85px; |
| } |
| .warning_scan_head .warning_scan_describe{ |
| display: inline-block; |
| color: rgba(68, 68, 68, 100); |
| line-height: 26px; |
| text-align: left; |
| vertical-align: middle; |
| margin-left: 16px; |
| } |
| .warning_scan_describe .warning_scan_title{ |
| font-size: 18px; |
| } |
| .warning_scan_describe .warning_scan_title i{ |
| font-style: inherit; |
| color: #f0ad4e; |
| } |
| .warning_scan_describe .warn_scan_subtitle{ |
| font-size: 13px; |
| margin-top: 7px; |
| } |
| .scanNone .warn_look, |
| .scanNone .warn_again_scan{ |
| position: relative; |
| float: right; |
| top: 10px; |
| width: 80px; |
| height: 35px; |
| line-height: 24px; |
| border-radius: 4px; |
| background-color: rgba(32, 165, 58, 100); |
| color: rgba(255, 255, 255, 100); |
| font-size: 13px; |
| text-align: center; |
| border: none; |
| } |
| .scanNone .warn_look{ |
| border: 1px solid #20a53a; |
| color: #20a53a; |
| background-color: #fff; |
| } |
| .scanNone .warn_look:hover{ |
| color: #20a53a; |
| background: #20a53a1f; |
| } |
| .warning_scan_head .warn_repair_scan{ |
| position: relative; |
| float: right; |
| top: 10px; |
| width: 80px; |
| height: 35px; |
| line-height: 24px; |
| border-radius: 4px; |
| background-color: rgba(32, 165, 58, 100); |
| color: rgba(255, 255, 255, 100); |
| font-size: 13px; |
| text-align: center; |
| border: none; |
| } |
| .warning_scan_head .warn_look_scan{ |
| position: relative; |
| float: right; |
| top: 10px; |
| width: 80px; |
| height: 35px; |
| line-height: 24px; |
| border-radius: 4px; |
| background-color: rgba(32, 165, 58, 100); |
| color: rgba(255, 255, 255, 100); |
| font-size: 13px; |
| text-align: center; |
| border: none; |
| } |
| .warning_scan_head .topBtn{ |
| background-color: rgba(32, 165, 58, 100); |
| color: rgba(255, 255, 255, 100); |
| } |
| .warning_scan_head .topBtn:hover{ |
| background-color: #1d9534; |
| color: rgba(255, 255, 255, 100); |
| } |
| #wechat-customer span{ |
| width: auto; |
| } |
| .alarmTip{ |
| width: 40px; |
| height: 26px; |
| padding: 5px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| margin-right: 10px; |
| border-radius: 4px; |
| margin-left: 10px; |
| } |
| .module_details_head:before{ |
| display: none; |
| } |
| .module_item .module_head{ |
| background: #fff; |
| } |
| .module_item .module_head:hover{ |
| background: #f5f7fa; |
| } |
| .warning_scan_view .module_details_item:hover .module_details_head { |
| background: #f5f7fa; |
| } |
| |
| .warning_scan_view .module_details_item:hover .module_details_body { |
| background: #f5f7fa; |
| } |
| .warning_scan_head .scanNone { |
| padding: 25px 16px 20px 38px; |
| } |
| .warning_scan_body .safe_state .safe_title{ |
| position: absolute; |
| top: 289px; |
| left: 179px; |
| } |
| .warning_scan_body { |
| position: relative; |
| overflow: auto; |
| max-height: 490px; |
| margin: 18px 35px 0 35px |
| } |
| .warning_scan_body .webedit-con{ |
| height: 350px; |
| margin-top: 40px; |
| overflow: hidden; |
| } |
| .webedit-con .thumbnail-box{ |
| border-radius: 5px; |
| border: 1px solid rgba(241, 241, 241, 100); |
| text-align: center; |
| cursor: pointer; |
| position: relative; |
| display: inline-block; |
| background: none; |
| } |
| .webedit-con .thumbnail-introduce{ |
| display: inline-block; |
| margin-left: 36px; |
| margin-top: 30px; |
| text-align: left; |
| font-size: 16px; |
| color: rgba(85, 85, 85, 100); |
| } |
| .webedit-con .thumbnail-introduce ul{ |
| font-size: 13px; |
| margin-top: 11px; |
| } |
| .webedit-con .thumbnail-introduce ul span{ |
| color: rgba(102, 102, 102, 100); |
| font-size: 12px; |
| } |
| .help_info_text{ |
| margin-left: 36px; |
| position: absolute; |
| bottom: 20px; |
| color: rgba(85, 85, 85, 100); |
| list-style: none; |
| font-size: 12px; |
| } |
| |
| .webedit-con .warning_scan_head .scanNone { |
| padding: 50px 16px 20px 16px; |
| } |
| .webedit-con .warning_scan_head .scanNone.active{ |
| padding: 0 16px 20px 16px; |
| transition: padding 500ms; |
| } |
| .webedit-con .warning_scan_head .halving_line1{ |
| margin: 0 20px; |
| border-bottom: 1px solid rgba(241, 241, 241, 100); |
| } |
| .webedit-con .warning_scan_body{ |
| margin: 33px 20px 0 20px; |
| } |
| .webedit-con .warning_scan_body .warning_scan_body_title{ |
| color: rgba(85, 85, 85, 100); |
| font-size: 18px; |
| } |
| .webedit-con .warning_scan_body .warning_scan_body_con{ |
| margin-top: 30px; |
| font-size: 14px; |
| } |
| .webedit-con .warning_scan_body .warning_scan_body_con div{ |
| display: inline-block; |
| width: 130px; |
| height: 100px; |
| text-align: center; |
| } |
| .webedit-con .warning_scan_body .warning_scan_body_con span{ |
| display: block; |
| } |
| .webedit-con .warning_scan_body .warning_scan_body_con img{ |
| width: 60px; |
| opacity: 0.5; |
| } |
| .webedit-con .warning_scan_body .module_title img{ |
| width: 25px; |
| opacity: 0.7; |
| } |
| .webedit-con .warning_scan_body .module_item{ |
| height: 55px; |
| font-size: 13px; |
| margin-top: 7px; |
| background-color: rgba(252, 252, 252, 100); |
| } |
| .webedit-con .warning_scan_body .module_head{ |
| height: 55px; |
| line-height: 55px; |
| } |
| .webedit-con .warning_scan_body .module_head .module_title{ |
| font-size: 13px; |
| } |
| .webedit-con .warning_scan_body .module_head .module_cut_show{ |
| height: 55px; |
| line-height: 55px; |
| } |
| .webedit-con .warning_scan_head .safaty_load{ |
| display: none; |
| position: absolute; |
| width: 65px; |
| height: 65px; |
| border-radius: 50%; |
| border-top: 3px solid transparent; |
| border-right: 3px solid rgba(32, 165, 58, 100); |
| border-bottom: 3px solid rgba(32, 165, 58, 100); |
| border-left: 3px solid rgba(32, 165, 58, 100); |
| -webkit-animation: load8 1.1s infinite linear; |
| animation: load8 1.1s infinite linear; |
| } |
| .webedit-con .module_num .scan_load{ |
| display: none; |
| width: 14px; |
| height: 14px; |
| border-radius: 50%; |
| border-top: 1px solid transparent; |
| border-right: 1px solid rgba(32, 165, 58, 100); |
| border-bottom: 1px solid rgba(32, 165, 58, 100); |
| border-left: 1px solid rgba(32, 165, 58, 100); |
| -webkit-animation: load8 1.3s infinite linear; |
| animation: load8 1.3s infinite linear; |
| } |
| |
| .site_class_type.bt_select_updown { |
| width: 130px; |
| } |
| |
| .site_traffic--typeBox{ |
| position: absolute; |
| background: #fff; |
| z-index: 99; |
| box-shadow: 0 1px 5px rgba(0, 0, 0, .5) |
| } |
| .site_traffic--typeBox li { |
| line-height: 28px; |
| height: 28px; |
| padding: 0 8px; |
| } |
| .site_traffic--typeBox li:hover{ |
| background: #20a53a; |
| color: #fff; |
| } |
| .site_traffic--typeBox li.active { |
| background: #20a53a; |
| color: #fff; |
| } |
| .site_traffic--typeBox::before{ |
| content: ''; |
| position: absolute; |
| top: -8px; |
| right: 22px; |
| border-top: 4px transparent dashed; |
| border-left: 4px transparent dashed; |
| border-right: 4px transparent dashed; |
| border-bottom: 4px #fff solid; |
| } |
| |
| |
| |
| .btn-default.active, .btn-default:active, .open>.dropdown-toggle.btn-default{ |
| outline: none; |
| box-shadow: none; |
| color: #1D9534; |
| background-color: #F1F9F3; |
| border-color: #BCE4C4; |
| } |
| .open>.dropdown-toggle.btn-default:hover{ |
| color: #1D9534; |
| background-color: #F1F9F3; |
| border-color: #BCE4C4; |
| } |
| .dropdown-menu>li>a:hover{ |
| color: #1D9534; |
| background: #F5F7FA; |
| } |
| .open>.base-btn:hover{ |
| border-color: #1D9534; |
| } |
| #confirm{ |
| box-shadow: 0 0 0 0; |
| } |
| .open>.dropdown-menu{ |
| padding: 5px 0 5px 0; |
| } |
| .open>.dropdown-menu li{ |
| cursor: pointer; |
| } |
| .demo_hr_div { |
| border-top: #ccc 1px dashed; |
| padding-top: 10px; |
| margin-top: 10px; |
| display: flex; |
| width: 100%; |
| justify-content: center; |
| } |
| .form-check-lable{ |
| cursor: pointer; |
| } |
| .other_disposition{ |
| display: inline-flex !important; |
| align-items:center; |
| text-align: center; |
| margin-bottom: 10px; |
| } |
| .select-icon{ |
| display: inline-block; |
| height: 12px; |
| width: 12px; |
| cursor: pointer; |
| margin-left: 4px; |
| background-repeat: no-repeat; |
| background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIuMDAwMDAwIiBoZWlnaHQ9IjEyLjAwMDAwMCIgdmlld0JveD0iMCAwIDEyIDEyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KCTxkZXNjPgoJCQlDcmVhdGVkIHdpdGggUGl4c28uCgk8L2Rlc2M+Cgk8ZGVmcy8+Cgk8cGF0aCBpZD0icGF0aCIgZD0iTTEuMTIzMjggMy44MDkzOUw1LjcxNTU4IDguODQzODdDNS44Nzg2MiA5LjAyMzAxIDYuMTY4NDcgOS4wNDQzMSA2LjMzMDM4IDguODYzODlMMTAuODc5MyAzLjc4MzA4QzExLjA0MTIgMy42MDI2NiAxMS4wNCAzLjMxMjAxIDEwLjg3NyAzLjEzMjgxQzEwLjc5NjIgMy4wNDQ2OCAxMC42ODk0IDMgMTAuNTgzOCAzQzEwLjQ3NyAzIDEwLjM2OTQgMy4wNDU5NiAxMC4yODgzIDMuMTM2Nkw2LjAyODgzIDcuODkyODJMMS43MDg2NCAzLjE1NjYyQzEuNjI3ODcgMy4wNjg0OCAxLjUyMjIgMy4wMjM4IDEuNDE1MzkgMy4wMjM4QzEuMzA3NDYgMy4wMjM4IDEuMjAxMDMgMy4wNjk3NiAxLjExOTg4IDMuMTYwNEMwLjk1ODM1MyAzLjMzODMyIDAuOTYwNjE4IDMuNjMwMjUgMS4xMjMyOCAzLjgwOTM5WiIgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSIjMjBBNTNBIi8+Cjwvc3ZnPgo=); |
| } |
| .select-icon-roate{ |
| display: inline-block; |
| height: 12px; |
| cursor: pointer; |
| width: 12px; |
| margin-left: 4px; |
| background-repeat: no-repeat; |
| transform: rotate(180deg); |
| background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIuMDAwMDAwIiBoZWlnaHQ9IjEyLjAwMDAwMCIgdmlld0JveD0iMCAwIDEyIDEyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KCTxkZXNjPgoJCQlDcmVhdGVkIHdpdGggUGl4c28uCgk8L2Rlc2M+Cgk8ZGVmcy8+Cgk8cGF0aCBpZD0icGF0aCIgZD0iTTEuMTIzMjggMy44MDkzOUw1LjcxNTU4IDguODQzODdDNS44Nzg2MiA5LjAyMzAxIDYuMTY4NDcgOS4wNDQzMSA2LjMzMDM4IDguODYzODlMMTAuODc5MyAzLjc4MzA4QzExLjA0MTIgMy42MDI2NiAxMS4wNCAzLjMxMjAxIDEwLjg3NyAzLjEzMjgxQzEwLjc5NjIgMy4wNDQ2OCAxMC42ODk0IDMgMTAuNTgzOCAzQzEwLjQ3NyAzIDEwLjM2OTQgMy4wNDU5NiAxMC4yODgzIDMuMTM2Nkw2LjAyODgzIDcuODkyODJMMS43MDg2NCAzLjE1NjYyQzEuNjI3ODcgMy4wNjg0OCAxLjUyMjIgMy4wMjM4IDEuNDE1MzkgMy4wMjM4QzEuMzA3NDYgMy4wMjM4IDEuMjAxMDMgMy4wNjk3NiAxLjExOTg4IDMuMTYwNEMwLjk1ODM1MyAzLjMzODMyIDAuOTYwNjE4IDMuNjMwMjUgMS4xMjMyOCAzLjgwOTM5WiIgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSIjMjBBNTNBIi8+Cjwvc3ZnPgo=); |
| } |
| .box_title{ |
| cursor: pointer; |
| } |
| .dropdown-menu>li>a{ |
| font-size: 12px; |
| height: 28px; |
| display: flex; |
| flex-direction: row; |
| align-items: center; |
| color: #666666; |
| } |
| |
| |
| .advance_manu{ |
| width:130px; |
| flex-direction: column; |
| align-items:center; |
| position:absolute; |
| top:30px; |
| left:-71px; |
| z-index:9999; |
| background-color:white; |
| border:1px solid #DCDFD6; |
| border-radius: 4px; |
| padding: 5px 0; |
| box-sizing:content-box; |
| color: #666; |
| display: none; |
| box-shadow: 0px 3px 16px rgba(153, 153, 153, 0.42); |
| } |
| .advance_manu .adv-option:hover{ |
| color: #20A53A; |
| background-color: #F5F7FA; |
| } |
| .adv-tips{ |
| position:absolute; |
| bottom:38px; |
| left:-71px; |
| padding: 10px; |
| background-color:white; |
| border:1px solid #DCDFD6; |
| border-radius: 2px; |
| color: #F0AD4E; |
| background-color: #FDF6EC; |
| } |
| .adv-tips:hover{ |
| color: #666; |
| } |
| |
| #bt_site_table .site_path { |
| max-width: 240px; |
| text-overflow: ellipsis; |
| white-space: nowrap; |
| overflow: hidden; |
| display: block; |
| } |
| </style> |
| |
| <div class="main-content pb55"> |
| <div class="container-fluid"> |
| <div class="pos-box bgw mtb15 flex justify-between"> |
| <div class="tab-list flex" id="cutMode"> |
| <div class="tabs-item" data-type="php">PHP项目</div> |
| <div class="tabs-item" data-type="java">Java项目</div> |
| <div class="tabs-item" data-type="nodejs">Node项目</div> |
| <div class="tabs-item" data-type="go">Go项目</div> |
| <div class="tabs-item" data-type="python">Python项目</div> |
| <div class="tabs-item" data-type="other">其他项目</div> |
| </div> |
| </div> |
| <div class="site_table_view bgw mtb15 pd15 tab-view-box"> |
| <div class="tab-con" style="padding: 0;overflow: inherit;"> |
| <div class="tab-con-block"> |
| <div id="bt_site_table"></div> |
| </div> |
| <div class="tab-con-block"> |
| <div id="bt_java_table" class="bt_table" v-cloak> |
| <div class="tootls_group tootls_top"> |
| <div class="pull-left" style="display: flex"> |
| <bt-button type="success" class="mr5" title="添加Java项目" @click="add_java_project"></bt-button> |
| <bt-button-select title="JAVA环境管理" @click="jdk_manage_view" @jdk_manage_view="jdk_manage_view" @tomcat_manage_view="tomcat_manage_view"> |
| </bt-button-select> |
| <bt-link class="mlr15" title="Java项目教程" href="https://www.bt.cn/bbs/thread-76217-1-1.html" target="_blank"></bt-link> |
| <span class="bt-desired ml10" style="background-size: 16px 16px;background-position-y: center;"><a href="javascript:;" class="btlink ml5 npsFeedback" onclick="bt_tools.nps({name:'网站',type:14})">需求反馈</a></span> |
| </div> |
| <div class="pull-right"> |
| <div class="bt_search"> |
| <input type="text" class="search_input" v-model="serachValue" placeholder="请输入项目名称或备注" |
| @keyup.enter="search_project_info"/> |
| <span class="glyphicon glyphicon-search" @click="search_project_info"></span> |
| </div> |
| </div> |
| </div> |
|
|
| <bt-table :data="projectList" |
| data-key="id" |
| min-width="1000px" |
| class="mt10" |
| ref="java_table" |
| :batch="true" |
| :batch-list="[{title:'开启项目',value:'multi_open_project'},{title:'停用项目',value:'multi_close_project'},{title:'绑定外网',value:'multi_check_bind_extranet'},{title:'部署证书',value:'multi_setup_ssl'},{title:'删除项目',value:'multi_remove_project'}]" |
| :page="pageInfo.page" |
| :page-limit="pageInfo.limit" |
| :page-total="pageInfo.tools" |
| @cut-pages="get_project_list" |
| > |
| <bt-table-column type="checkbox" width="20px"></bt-table-column> |
| <bt-table-column title="项目名称" width="120px" v-slot="scope"> |
| <template v-if="scope.$row.is_file_ok || typeof scope.$row.is_file_ok === 'undefined'"> |
| <bt-link :title="scope.$row.name" :tips="scope.$row.name" @click="project_settings_view(scope.$row)"/> |
| </template> |
| <template v-else>${ scope.$row.name }</template> |
| </bt-table-column> |
| <bt-table-column title="服务状态" width="90px" v-slot="scope"> |
| <template v-if="scope.$row.is_file_ok || typeof scope.$row.is_file_ok === 'undefined'"> |
| <bt-link :title="scope.$row.run ? '运行中' : '未启动'" |
| :status="scope.$row.run" |
| :id="scope.$row.id" |
| :name="scope.$row.name" |
| :icon="scope.$row.run?'play':'pause'" |
| @click="switch_operation_state(scope.$row)"></bt-link> |
| </template> |
| <template v-else>已停止</template> |
| </bt-table-column> |
| <bt-table-column title="项目类型" width="150px"> |
| <template v-slot="scope"> |
| ${ get_project_type(scope.$row) } |
| </template> |
| </bt-table-column> |
| <bt-table-column title="端口" width="100px" v-slot="scope"> |
| <template v-if="scope.$row.is_file_ok || typeof scope.$row.is_file_ok === 'undefined'"> |
| ${ get_listen_info(scope.$row) } |
| </template> |
| <template v-else>--</template> |
| </bt-table-column> |
| <bt-table-column title="CPU" width="80px" v-slot="scope"> |
| <template v-if="scope.$row.is_file_ok || typeof scope.$row.is_file_ok === 'undefined'"> |
| ${ get_cpu_info(scope.$row) } |
| </template> |
| <template v-else>--</template> |
| </bt-table-column> |
| <bt-table-column title="内存" width="100px" v-slot="scope"> |
| <template v-if="scope.$row.is_file_ok || typeof scope.$row.is_file_ok === 'undefined'"> |
| ${ get_memory_info(scope.$row) } |
| </template> |
| <template v-else>${ get_memory_info(scope.$row) }</template> |
| </bt-table-column> |
| <bt-table-column title="根目录" min-width="80px" v-slot="scope"> |
| <bt-link :title="scope.$row.path" @click="open_file_path(scope.$row.path)" :tips="scope.$row.path" :is-info="true" /> |
| </bt-table-column> |
| <bt-table-column title="目录详情" min-width="40px" v-slot="scope"> |
| <bt-link :title="scope.$row.path" @click="open_file_path(scope.$row.path)" :tips="scope.$row.path" :is-info="false" /> |
| </bt-table-column> |
| <bt-table-column title="备注" min-width="80px" v-slot="scope"> |
| <template v-if="scope.$row.is_file_ok || typeof scope.$row.is_file_ok === 'undefined'"> |
| <bt-text cust-class="table-input" :block="true" :value="scope.$row.ps" width="100%" placeholder="点击编辑内容,按回车或失去焦点自动保存" @blur="editor_project_ps($event, scope.$row)" @keyup="enter_editor_project_ps($event)" /> |
| </template> |
| <template v-else>当前项目域名不在配置文件中,请尝试修复项目</template> |
| </bt-table-column> |
| <bt-table-column title="SSL证书" width="80px" v-slot="scope"> |
| <template v-if="scope.$row.is_file_ok || typeof scope.$row.is_file_ok === 'undefined'"> |
| <bt-link v-if="scope.$row.ssl == null || scope.$row.ssl === -1" :status="2" title="未部署" tips="点击部署证书" @click="cut_project_tabs('ssl',scope.$row)"></bt-link> |
| <bt-link v-else-if="scope.$row.ssl.endtime" :status="(scope.$row.ssl.endtime<7?0:1)" :title="(scope.$row.ssl.endtime>0?('剩余'+ scope.$row.ssl.endtime +'天'):'已过期')" :tips="get_ssl_info(scope.$row)" @click="cut_project_tabs('ssl',scope.$row)"></bt-link> |
| </template> |
| <template v-else>--</template> |
| </bt-table-column> |
| <bt-table-column title="操作" width="120px" align="right" v-slot="scope"> |
| <template v-if="scope.$row.is_file_ok || typeof scope.$row.is_file_ok === 'undefined'"> |
| <bt-link title="设置" @click="project_settings_view(scope.$row)"></bt-link> | |
| <bt-link title="删除" @click="delete_project_find(scope.$row)"></bt-link> |
| </template> |
| <template v-else> |
| <bt-link title="修复" @click="repair_project_find(scope.$row)"></bt-link> | |
| <bt-link title="删除" @click="delete_project_find(scope.$row)"></bt-link> |
| </template> |
| </bt-table-column> |
| </bt-table> |
|
|
| |
| <bt-layer title="添加JAVA项目" v-model="addJavaView" :area="['620px', '640px']" @close="close_add_java_project"> |
| <div style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding-bottom: 49px;"> |
| <div style="height: 100%; padding: 20px 20px 20px; overflow: auto;"> |
| <bt-java-form :config="{form:projectFormInfo,jdkList:jdkList,tomcatList:tomcatList}"></bt-java-form> |
| </div> |
| </div> |
| <div class="bt-form-submit-btn"> |
| <bt-button type="danger" title="关闭" @click.native="addJavaView = false"></bt-button> |
| <bt-button type="success" title="提交" @click.native="submit_form_info"></bt-button> |
| </div> |
| </bt-layer> |
|
|
| |
| <bt-layer class-name="pd0" title="JAVA环境管理" v-model="javaEnvShow" :area="['680px','500px']" @close="close_java_evn"> |
| <bt-tabs v-model="javaEnvName" :data="projectInfo" @change="cut_project_settings_model" :tab-refresh="true"> |
| <bt-tabs-pane label="JDK管理" name="JDKConfig" component="bt-java-jdk" :refresh="true" :config="{jdkInfo:jdkInfo}"></bt-tabs-pane> |
| <bt-tabs-pane label="Tomcat管理" name="tomcatconfig" component="bt-java-tomcat" :refresh="true"></bt-tabs-pane> |
| </bt-tabs> |
| </bt-layer> |
| |
| <bt-layer :title="'修改Tomcat'+ tomcatVersion + '-端口'" v-model="modifyTomcatPort" area="400px" > |
| <div class="bt-form"> |
| <bt-line label="端口" label-width="80px"> |
| <bt-text width="250px" v-model="tomcatPort" placeholder="请输入需要修改端口号,不可为空"/> |
| </bt-line> |
| </div> |
| <div class="bt-form-submit-btn"> |
| <bt-button type="danger" title="关闭" @click.native="modifyTomcatPort = false"></bt-button> |
| <bt-button type="success" title="提交" @click.native="modify_tomcat_port"></bt-button> |
| </div> |
| </bt-layer> |
|
|
| |
| <bt-layer :title="'修改Tomcat' + tomcatVersion + '-JDK版本'" v-model="modifyTomcatJdk" area="400px"> |
| <div class="bt-form"> |
| <bt-line label="JDK地址" label-width="80px"> |
| <bt-text width="230px" v-model="tomcatJdk" placeholder="请输入需要修改JDK路径,不可为空" icon="folder-open" |
| @icon-event="select_path('tomcat_jsk_path')"/> |
| </bt-line> |
| </div> |
| <div class="bt-form-submit-btn"> |
| <bt-button type="danger" title="关闭" @click.native="modifyTomcatJdk = false"></bt-button> |
| <bt-button type="success" title="提交" @click.native="modify_tomcat_jdk"></bt-button> |
| </div> |
| </bt-layer> |
|
|
| |
| <bt-layer :title="'JAVA项目管理-[ '+ projectInfo.name +' ],添加时间['+ projectInfo.addtime +']'" |
| v-model="projectSettings" |
| :area="['780px','780px']" |
| class-name="pd0" |
| @close="close_project_settings" > |
| <bt-tabs v-model="project_settings_model" :data="projectInfo" @change="cut_project_settings_model" :tab-refresh="true"> |
| <bt-tabs-pane label="项目信息" name="projectInformation" component="bt-java-form" :refresh="true" :config="{form:projectFormInfo,jdkList:jdkList,tomcatList:tomcatAllList, getProjectList: get_project_list}"></bt-tabs-pane> |
| <bt-tabs-pane label="域名管理" name="domainManagement" component="bt-site-domain" :refresh="true"></bt-tabs-pane> |
| <bt-tabs-pane label="外网映射" name="networkMapping" component="bt-site-network-mapping" :refresh="true"></bt-tabs-pane> |
| <bt-tabs-pane label="伪静态" name="pseudoStatic"></bt-tabs-pane> |
| <bt-tabs-pane label="配置文件" name="configurationFile"></bt-tabs-pane> |
| <bt-tabs-pane label="Tomcat配置" name="tomcatConfig" v-if="projectInfo.project_config.java_type === 'neizhi' || projectInfo.project_config.java_type === 'duli'"> |
| <p style="color: #666; margin-bottom: 7px">提示:Ctrl+F 搜索关键字,Ctrl+S 保存,Ctrl+H 查找替换</p> |
| <div class="bt-input-text ace_config_editor_scroll " id="tomcatConfig" style="height: 450px;line-height: 18px;font-size: 12px;"></div> |
| <bt-button type="success" title="保存配置" @click="save_tomcat_config" class="mt10"></bt-button> |
| <bt-help :list="[['此处为Tomcat配置文件,若您不了解配置规则,请勿随意修改']]" style="padding: 0"></bt-help> |
| </bt-tabs-pane> |
| <bt-tabs-pane label="SSL" name="ssl"></bt-tabs-pane> |
| <bt-tabs-pane label="服务状态" name="serviceStatus" component="bt-site-service-status" :refresh="true"></bt-tabs-pane> |
| <bt-tabs-pane label="负载状态" name="loadState"></bt-tabs-pane> |
| <bt-tabs-pane label="性能监控" name="performanceMonitor" v-if="projectInfo.project_config.java_type == 'springboot'"></bt-tabs-pane> |
| <bt-tabs-pane label="项目日志" name="projectLog" component="bt-site-logs" :refresh="true"></bt-tabs-pane> |
| <bt-tabs-pane label="网站日志" name="siteLog"></bt-tabs-pane> |
| <bt-tabs-pane class="mask_module" :public="defalutTabView"> |
| <div class="node_mask_module_text" v-if="project_settings_model !== 'loadState'">请开启<a href="javascript:;" class="btlink mapExtranet" @click="cut_project_tabs('networkMapping')"> 外网映射 </a>后查看</div> |
| <div class="node_mask_module_text" v-else>请<a href="javascript:;" class="btlink mapExtranet" @click="cut_project_tabs('serviceStatus')">启动项目服务</a>后查看</div> |
| </bt-tabs-pane> |
| </bt-tabs> |
| </bt-layer> |
| <div :class="{mask_layer:true,hide:!initialization}"> |
| <div class="prompt_description java-model"> <span>当前为未<a href="javascript:;" class="btlink" @click="jdk_manage_view">添加JDK</a>和<a href="javascript:;" class="btlink" @click="tomcat_manage_view">安装Tomcat</a></span></div> |
| </div> |
| </div> |
| </div> |
| <div class="tab-con-block "> |
| <div id="bt_node_table"></div> |
| <div class="mask_layer hide"> |
| <div class="prompt_description node-model"></div> |
| </div> |
| </div> |
| <div class="tab-con-block"> |
| <div id="bt_go_table"></div> |
| </div> |
| <div class="tab-con-block"> |
| <div id="bt_python_table"></div> |
| </div> |
| <div class="tab-con-block"> |
| <div id="bt_other_table"></div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| {% endblock %} |
| {% block scripts %} |
| {{ super() }} |
| <script type="text/javascript"> |
| var serverType = "{{session['webserver']}}"; |
| bt.set_cookie('sites_path', "{{session['config']['sites_path']}}"); |
| bt.set_cookie('serverType', serverType); |
| var isSetup = "{{data['isSetup']}}" === 'True' ? true : false |
| </script> |
| <script type="text/javascript" src="{{g.cdn_url}}/laydate/laydate.js?version={{g['version']}}"></script> |
| <script type="text/javascript" src="{{g.cdn_url}}/js/site.js?version={{g['version']}}&repair={{data['js_random']}}"></script> |
| <script type="text/javascript" src="{{g.cdn_url}}/js/soft.js?version={{g['version']}}&repair={{data['js_random']}}"></script> |
| <script type="text/javascript" src="{{g.cdn_url}}/editor/ace.js?version={{g['version']}}&repair={{data['js_random']}}"></script> |
| <script type="text/javascript"> |
| {% if not data['isSetup'] %} |
| layer.msg('未安装Web服务器,<a href="javascript:;" class="btlink" onclick="bt.soft.install(\'nginx\')">安装Nginx</a> | <a href="javascript:;" class="btlink" onclick="bt.soft.install(\'apache\')">安装Apache</a>', { icon: 7, shade: [0.3, '#000'], time: 0,area:'380px' }); |
| $(".layui-layer-shade").css("margin-left", "180px"); |
| {% else %} |
| site.plugin_firewall(); |
| {% endif %} |
| </script> |
| {% endblock %} |
|
|