Authored by 王涛

【873】大屏机房机柜展示完善

Showing 24 changed files with 148 additions and 57 deletions
@@ -43,7 +43,8 @@ layui.define(['laytpl', 'layer', 'element', 'util'], function(exports){ @@ -43,7 +43,8 @@ layui.define(['laytpl', 'layer', 'element', 'util'], function(exports){
43 //独立页面路由,可随意添加(无需写参数) 43 //独立页面路由,可随意添加(无需写参数)
44 ,indPage: [ 44 ,indPage: [
45 '/user/login', //登入页 45 '/user/login', //登入页
46 - '/page/forward' // 听云访问系统页面 46 + '/page/forward', // 听云访问系统页面
  47 + '/bigscreen/daping' // 浙江大屏页面
47 ] 48 ]
48 49
49 //扩展的第三方模块 50 //扩展的第三方模块
@@ -2288,7 +2288,7 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele @@ -2288,7 +2288,7 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele
2288 * @param resId 2288 * @param resId
2289 */ 2289 */
2290 renderActiveAlarms: function (tableId, resId) { 2290 renderActiveAlarms: function (tableId, resId) {
2291 - $('#'+tableId).prev().text('实时告警Top5') 2291 + //$('#'+tableId).prev().text('实时告警Top5')
2292 var alarmlist = table.render({ 2292 var alarmlist = table.render({
2293 elem: '#' + tableId 2293 elem: '#' + tableId
2294 , url: common.domainName + '/api-web/home/alarm/alarmListPage' 2294 , url: common.domainName + '/api-web/home/alarm/alarmListPage'
@@ -197,11 +197,12 @@ layui.extend({ @@ -197,11 +197,12 @@ layui.extend({
197 197
198 //入口页面 198 //入口页面
199 ,entryPage = function(fn){ 199 ,entryPage = function(fn){
  200 +
  201 +
200 var router = layui.router() 202 var router = layui.router()
201 ,container = view(setter.container) 203 ,container = view(setter.container)
202 ,pathURL = admin.correctRouter(router.path.join('/')) 204 ,pathURL = admin.correctRouter(router.path.join('/'))
203 ,isIndPage; 205 ,isIndPage;
204 -  
205 //检查是否属于独立页面 206 //检查是否属于独立页面
206 layui.each(setter.indPage, function(index, item){ 207 layui.each(setter.indPage, function(index, item){
207 if(pathURL === item){ 208 if(pathURL === item){
@@ -232,9 +233,14 @@ layui.extend({ @@ -232,9 +233,14 @@ layui.extend({
232 return location.hash = "/alarm/historywarning/bizId="+bizId; 233 return location.hash = "/alarm/historywarning/bizId="+bizId;
233 } 234 }
234 235
  236 + // http://localhost:8088/?bigscreen=1&type=daping/#/
  237 + if(href.indexOf('bigscreen=1&type=daping') != -1 && pathURL !== '/bigscreen/daping'){
  238 + return location.hash = "/bigscreen/daping";
  239 + }
  240 +
235 //独立页面 241 //独立页面
236 - if(isIndPage || pathURL === '/user/login'|| pathURL === '/page/forward'){ //此处单独判断登入页,是为了兼容旧版(即未在 sessions.js 配置 indPage 的情况)  
237 - container.render(router.path.join('/')).done(function(){ 242 + if(isIndPage || pathURL === '/user/login' || pathURL === '/page/forward' || pathURL === '/bigscreen/daping'){ //此处单独判断登入页,是为了兼容旧版(即未在 sessions.js 配置 indPage 的情况)
  243 + container.render(router.path.join('/')).done(function(){
238 admin.pageType = 'alone'; 244 admin.pageType = 'alone';
239 }); 245 });
240 } else { //后台框架页面 246 } else { //后台框架页面
@@ -575,7 +581,8 @@ layui.extend({ @@ -575,7 +581,8 @@ layui.extend({
575 },function(e){ 581 },function(e){
576 console.log(`(${tryIndex})链接失败,重试中....`) 582 console.log(`(${tryIndex})链接失败,重试中....`)
577 connectFlg = false; 583 connectFlg = false;
578 - if(location.hash.indexOf('#/user/login') == -1){ 584 + // 登录页面,展示大屏不进行token过期验证
  585 + if(location.hash.indexOf('#/user/login') == -1 && location.hash.indexOf('#/bigscreen/daping') == -1){
579 // 调用测试接口,出现过期则会跳转到登录页面 586 // 调用测试接口,出现过期则会跳转到登录页面
580 admin.req({ 587 admin.req({
581 url: domainName + "/api-web/common/test" 588 url: domainName + "/api-web/common/test"
@@ -135,3 +135,27 @@ custom-class="config-dialog" @@ -135,3 +135,27 @@ custom-class="config-dialog"
135 .margin-top-bottom-10{ 135 .margin-top-bottom-10{
136 margin:10px 0; 136 margin:10px 0;
137 } 137 }
  138 +
  139 +/* 边框闪烁 */
  140 +.arrowBox{
  141 + animation: glow 300ms ease-out infinite alternate;
  142 +}
  143 +/*@keyframes glow {
  144 + 0% {
  145 + box-shadow: 0 0 5px rgba(245,166,35,.2), inset 0 0 5px rgba(245,166,35,.1), 0 0px 2px #f5a623;
  146 + }
  147 + 100% {
  148 + border-color: #6f6;
  149 + box-shadow: 0 0 20px rgba(245,166,35,.6), inset 0 0 10px rgba(245,166,35,.4), 0 0px 2px #f5a623;
  150 + }
  151 +}*/
  152 +@keyframes glow {
  153 + 0% {
  154 + box-shadow: 0 0 5px red, inset 0 0 5px red, 0 0px 5px red;
  155 + }
  156 + 100% {
  157 + border-color: #6f6;
  158 + box-shadow: 0 0 20px red, inset 0 0 10px red, 0 0px 5px red;
  159 + }
  160 +}
  161 +
@@ -235,7 +235,6 @@ export default { @@ -235,7 +235,6 @@ export default {
235 */ 235 */
236 let deleteItem = (row,index) =>{ 236 let deleteItem = (row,index) =>{
237 proxy.$global.confirm("将永久删除该配置选项,请确认!", function () { 237 proxy.$global.confirm("将永久删除该配置选项,请确认!", function () {
238 - debugger  
239 proxy.$http.get(`/api-web/alarmsubscribe/exclude/delete/${row.id}`, {}, function (res) { 238 proxy.$http.get(`/api-web/alarmsubscribe/exclude/delete/${row.id}`, {}, function (res) {
240 if (res && res.success) { 239 if (res && res.success) {
241 proxy.$global.showMsg('保存成功!'); 240 proxy.$global.showMsg('保存成功!');
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 body{ 2 body{
3 background-image: url(../img/img-bg-1.png); 3 background-image: url(../img/img-bg-1.png);
4 background-size: 100%; 4 background-size: 100%;
5 - 5 +
6 } 6 }
7 li{ 7 li{
8 list-style: none 8 list-style: none
@@ -42,7 +42,7 @@ li{ @@ -42,7 +42,7 @@ li{
42 flex-direction:column; 42 flex-direction:column;
43 align-items: center; 43 align-items: center;
44 /* background-color: red; */ 44 /* background-color: red; */
45 - 45 +
46 } 46 }
47 47
48 48
@@ -53,7 +53,7 @@ li{ @@ -53,7 +53,7 @@ li{
53 background-image: url(../img/img-4Uservice.png); 53 background-image: url(../img/img-4Uservice.png);
54 background-size: 100% 100%; 54 background-size: 100% 100%;
55 background-repeat: no-repeat; 55 background-repeat: no-repeat;
56 - 56 +
57 57
58 } 58 }
59 .img-serve-8{ 59 .img-serve-8{
@@ -127,7 +127,7 @@ li{ @@ -127,7 +127,7 @@ li{
127 display: flex; 127 display: flex;
128 flex-flow: column; 128 flex-flow: column;
129 justify-content: center; 129 justify-content: center;
130 - 130 +
131 } 131 }
132 132
133 133
@@ -154,7 +154,7 @@ li{ @@ -154,7 +154,7 @@ li{
154 height:250px; 154 height:250px;
155 margin-top:60px; 155 margin-top:60px;
156 margin-left: 60px; 156 margin-left: 60px;
157 - 157 +
158 } 158 }
159 159
160 160
@@ -195,4 +195,4 @@ body::-webkit-scrollbar-track{ @@ -195,4 +195,4 @@ body::-webkit-scrollbar-track{
195 -webkit-borderd-radius:2em; 195 -webkit-borderd-radius:2em;
196 -moz-borderd-radius:2em; 196 -moz-borderd-radius:2em;
197 borderd-radius:2em; 197 borderd-radius:2em;
198 -}  
  198 +}
@@ -664,8 +664,8 @@ layui.define(['view'], function(exports){ @@ -664,8 +664,8 @@ layui.define(['view'], function(exports){
664 } 664 }
665 //xwx add 首页增加业务健康度入口 2021-10-25 --end 665 //xwx add 首页增加业务健康度入口 2021-10-25 --end
666 , toBigScreen: function () { 666 , toBigScreen: function () {
667 - //window.open(sessionStorage.getItem("bigScreen") + '?access_token=' + localStorage.getItem("access_token"));  
668 - window.open(window.location.origin + '/vue3/index.html#/zjdaping'); 667 + // window.open(window.location.origin + '/vue3/index.html#/zjdaping');
  668 + window.open(window.location.origin + '?bigscreen=1&type=daping/#/');
669 } 669 }
670 , toYTHViewScreen: function () { 670 , toYTHViewScreen: function () {
671 window.open(sessionStorage.getItem("ythView") + '?access_token=' + localStorage.getItem("access_token")); 671 window.open(sessionStorage.getItem("ythView") + '?access_token=' + localStorage.getItem("access_token"));
  1 +<title>浙江大屏</title>
  2 +<iframe src="/vue3/index.html#/zjdaping" class="layadmin-iframe" style="height: 100%!important;border: none;"/>
@@ -223,14 +223,14 @@ li{ @@ -223,14 +223,14 @@ li{
223 223
224 224
225 .info-top{ 225 .info-top{
226 - height:340px; 226 + height:280px;
227 /*margin-top:-10px;*/ 227 /*margin-top:-10px;*/
228 background-image: url(/vue3/src/assets/images/machineRoom/img-machineInfo-bg.png); 228 background-image: url(/vue3/src/assets/images/machineRoom/img-machineInfo-bg.png);
229 229
230 } 230 }
231 231
232 .info-bottom{ 232 .info-bottom{
233 - height:340px; 233 + height:370px;
234 margin-top:20px; 234 margin-top:20px;
235 background-image: url(/vue3/src/assets/images/machineRoom/img-deviceInfo-bg.png); 235 background-image: url(/vue3/src/assets/images/machineRoom/img-deviceInfo-bg.png);
236 } 236 }
@@ -292,4 +292,4 @@ body::-webkit-scrollbar-track{ @@ -292,4 +292,4 @@ body::-webkit-scrollbar-track{
292 -webkit-borderd-radius:2em; 292 -webkit-borderd-radius:2em;
293 -moz-borderd-radius:2em; 293 -moz-borderd-radius:2em;
294 borderd-radius:2em; 294 borderd-radius:2em;
295 -}  
  295 +}
@@ -137,7 +137,6 @@ export default { @@ -137,7 +137,6 @@ export default {
137 msg = res.msg; 137 msg = res.msg;
138 cacheVisible.value=false; 138 cacheVisible.value=false;
139 proxy.$global.showMsg(msg); 139 proxy.$global.showMsg(msg);
140 - debugger  
141 if (params.type==0){ 140 if (params.type==0){
142 window.history.go(0); 141 window.history.go(0);
143 } 142 }
@@ -298,4 +297,4 @@ export default { @@ -298,4 +297,4 @@ export default {
298 } 297 }
299 } 298 }
300 299
301 -}  
  300 +}
@@ -70,7 +70,49 @@ export default { @@ -70,7 +70,49 @@ export default {
70 //根据htmlName确定引入的机房 70 //根据htmlName确定引入的机房
71 proxy.src=proxy.commandVal 71 proxy.src=proxy.commandVal
72 72
  73 + getDetail();
73 } 74 }
  75 +
  76 + /**
  77 + * 展示机房告警信息,以及设置告警状态,机柜状态
  78 + */
  79 + const getDetail = () => {
  80 + setTimeout(function (){
  81 +
  82 + try {
  83 + const ele = proxy.$refs[`machineRoom`];
  84 + var info = $(ele.$refs['roomDetail'].$refs['roomTable']);
  85 + var params = {
  86 + theirRoomId : proxy.commandNameDataItem.machineRoomId
  87 + }
  88 + proxy.$http.get(`/api-web/bigScreen/cabinetRoom`, params, function (res) {
  89 + if (res && res.success == true) {
  90 + res.data.filter(function(v){
  91 + if(v.alarm == '0'){
  92 + // 有告警信息展示方式
  93 + info.find(`td[name="${v.theirCabinet}"] span`).addClass('arrowBox');//.css('color','blue')
  94 + info.find(`td[name="${v.theirCabinet}"] span`).css({
  95 + 'top': '1px',
  96 + 'left': '0.5px',
  97 + 'height': '33px',
  98 + 'width': '36px',
  99 + 'padding': '1px',
  100 + 'padding-top': '19px',
  101 + });
  102 + //info.find(`td[name="${v.theirCabinet}"] img`).attr('src','/vue3/src/assets/images/machineRoom/cabinet.alarm.gif');
  103 + }else if(v.resNum > 0){
  104 + // 有资源信息时展示图片替换
  105 + info.find(`td[name="${v.theirCabinet}"] img`).attr('src','/vue3/src/assets/images/machineRoom/cabinet.png');
  106 + }
  107 + })
  108 + }
  109 + })
  110 + } catch (e) {
  111 + console.log(e);
  112 + }
  113 + },500)
  114 + }
  115 +
74 const handleCommand=(command,event)=>{ 116 const handleCommand=(command,event)=>{
75 proxy.changeIndex++; 117 proxy.changeIndex++;
76 proxy.commandVal=command.props.name; 118 proxy.commandVal=command.props.name;
1 -<div v-if="!isDetailShow" class="outlinediv machine-room-parent" > 1 +<div v-if="!isDetailShow" class="outlinediv machine-room-parent" ref="roomTable">
2 <!-- <span>湖州灾备一机房平面图</span>--> 2 <!-- <span>湖州灾备一机房平面图</span>-->
3 <div class="huzhouone-topcabinet"> 3 <div class="huzhouone-topcabinet">
4 <table> 4 <table>
5 <tr v-for="(items,indexs) in tableData" :class="{'zaibeione':items.length==0}"> 5 <tr v-for="(items,indexs) in tableData" :class="{'zaibeione':items.length==0}">
6 - <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :width="item.width" @click="goDetail(item)">  
7 - <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/cabinet.png" class="cabinet" alt=""> 6 + <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :name="item.name" :width="item.width" @click="goDetail(item)">
  7 + <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/emptycabinet.png" class="cabinet" alt="">
8 <span v-if="item.isShow" class="zaibei cabinetId">{{item.name}}</span> 8 <span v-if="item.isShow" class="zaibei cabinetId">{{item.name}}</span>
9 </td> 9 </td>
10 </tr> 10 </tr>
1 -<div v-if="!isDetailShow" class="outlinediv machine-room-parent" > 1 +<div v-if="!isDetailShow" class="outlinediv machine-room-parent" ref="roomTable">
2 <!-- <span>湖州灾备三机房平面图</span>--> 2 <!-- <span>湖州灾备三机房平面图</span>-->
3 <div class="huzhouone-topcabinet" style="margin-left: 25%;padding-top: 30px"> 3 <div class="huzhouone-topcabinet" style="margin-left: 25%;padding-top: 30px">
4 <table> 4 <table>
5 <tr v-for="(items,indexs) in tableData" :class="{'zaibeione':items.length==0}"> 5 <tr v-for="(items,indexs) in tableData" :class="{'zaibeione':items.length==0}">
6 - <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :width="item.width" @click="goDetail(item)">  
7 - <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/cabinet.png" class="cabinet" alt=""> 6 + <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :name="item.name" :width="item.width" @click="goDetail(item)">
  7 + <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/emptycabinet.png" class="cabinet" alt="">
8 <span v-if="item.isShow" class="zaibei cabinetId">{{item.name}}</span> 8 <span v-if="item.isShow" class="zaibei cabinetId">{{item.name}}</span>
9 </td> 9 </td>
10 </tr> 10 </tr>
1 -<div v-if="!isDetailShow" class="outlinediv machine-room-parent" > 1 +<div v-if="!isDetailShow" class="outlinediv machine-room-parent" ref="roomTable">
2 <!-- <span>湖州灾备二机房平面图</span>--> 2 <!-- <span>湖州灾备二机房平面图</span>-->
3 <div class="huzhouone-topcabinet" style="margin-left: 20%"> 3 <div class="huzhouone-topcabinet" style="margin-left: 20%">
4 <table> 4 <table>
5 5
6 <tr v-for="(items,indexs) in tableData" :class="{'zaibeione':items.length==0}"> 6 <tr v-for="(items,indexs) in tableData" :class="{'zaibeione':items.length==0}">
7 - <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :width="item.width" @click="goDetail(item)">  
8 - <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/cabinet.png" class="cabinet" alt=""> 7 + <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :width="item.width" :name="item.name" @click="goDetail(item)">
  8 + <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/emptycabinet.png" class="cabinet" alt="">
9 <span v-if="item.isShow" class="zaibei cabinetId">{{item.name}}</span> 9 <span v-if="item.isShow" class="zaibei cabinetId">{{item.name}}</span>
10 </td> 10 </td>
11 </tr> 11 </tr>
1 -<component :is="srcName" :src="machineData" />  
  1 +<component :is="srcName" :src="machineData" ref="roomDetail" />
1 <div :class="['all']" class=" machine-room-parent"> 1 <div :class="['all']" class=" machine-room-parent">
2 <!-- 左侧机柜效果图 --> 2 <!-- 左侧机柜效果图 -->
3 <div class='contain'> 3 <div class='contain'>
4 -  
5 <!-- 机柜内部服务器 --> 4 <!-- 机柜内部服务器 -->
6 <div class='contain-server'> 5 <div class='contain-server'>
7 -  
8 -  
9 <!-- 第一个物理服务器 --> 6 <!-- 第一个物理服务器 -->
10 <!-- <div :class="['serve',{'img-serve-8':item.uPosition=='1-8U'}]"@click="showDevice(item)" v-for="(item,index) in serviceData">--> 7 <!-- <div :class="['serve',{'img-serve-8':item.uPosition=='1-8U'}]"@click="showDevice(item)" v-for="(item,index) in serviceData">-->
11 <div :class="'serve '+item.serviceClass " :style="item.uClass" @click="showDevice(item)" v-for="(item,index) in serviceData"> 8 <div :class="'serve '+item.serviceClass " :style="item.uClass" @click="showDevice(item)" v-for="(item,index) in serviceData">
12 <div class='img-serve' > 9 <div class='img-serve' >
13 10
14 <img src="/vue3/src/assets/images/machineRoom/icon-state.png" alt="" class='state'> 11 <img src="/vue3/src/assets/images/machineRoom/icon-state.png" alt="" class='state'>
15 - <div class='img-serve-text'>{{item.resName}}</div> 12 + <div class='img-serve-text' style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden;width: 100px;" :title="item.resName">{{item.resName}}-{{item.health}}</div>
16 <div class='lamp'> 13 <div class='lamp'>
17 <img src="/vue3/src/assets/images/machineRoom/icon-weblogical.png" alt="" class='img-weblog'> 14 <img src="/vue3/src/assets/images/machineRoom/icon-weblogical.png" alt="" class='img-weblog'>
18 - <div class='img-lamp'>  
19 - <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="">  
20 - <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="">  
21 - <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="">  
22 - <img src="/vue3/src/assets/images/machineRoom/greenColor.png" alt=""> 15 + <div class='img-lamp' v-if="item.health == 1">
  16 + <!--中-->
  17 + <img src="/vue3/src/assets/images/machineRoom/1Color.png" alt="资源状态:中">
  18 + <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="资源状态:良">
  19 + <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="资源状态:优">
  20 + </div>
  21 + <div class='img-lamp' v-else-if="item.health == 2" >
  22 + <!-- 良 -->
  23 + <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="资源状态:中">
  24 + <img src="/vue3/src/assets/images/machineRoom/2Color.png" alt="资源状态:良">
  25 + <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="资源状态:优">
  26 + </div>
  27 + <div class='img-lamp' v-else>
  28 + <!-- 优 -->
  29 + <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="资源状态:中">
  30 + <img src="/vue3/src/assets/images/machineRoom/nocolor.png" alt="资源状态:良">
  31 + <img src="/vue3/src/assets/images/machineRoom/greenColor.png" alt="资源状态:优">
23 </div> 32 </div>
24 </div> 33 </div>
25 34
@@ -29,7 +38,6 @@ @@ -29,7 +38,6 @@
29 </div> 38 </div>
30 <!-- 右侧机柜详细信息 --> 39 <!-- 右侧机柜详细信息 -->
31 <div class='info' > 40 <div class='info' >
32 -  
33 <!-- 机柜信息 --> 41 <!-- 机柜信息 -->
34 <div class='info-top'> 42 <div class='info-top'>
35 <div class='info-contain'> 43 <div class='info-contain'>
@@ -40,11 +48,10 @@ @@ -40,11 +48,10 @@
40 <p>机柜容量:{{infoData.cabinetCapacity}}</p> 48 <p>机柜容量:{{infoData.cabinetCapacity}}</p>
41 <p>设备数量:{{infoData.deviceNum}}台</p> 49 <p>设备数量:{{infoData.deviceNum}}台</p>
42 <p v-if="infoData.alarmNum">告警量:{{infoData.AlarmNum}}无告警</p> 50 <p v-if="infoData.alarmNum">告警量:{{infoData.AlarmNum}}无告警</p>
43 - <p v-if="!infoData.alarmNum">告警量:无告警</p> 51 + <!--<p v-if="!infoData.alarmNum">告警量:无告警</p>-->
44 </div> 52 </div>
45 </div> 53 </div>
46 </div> 54 </div>
47 -  
48 <!-- 设备信息 --> 55 <!-- 设备信息 -->
49 <div class='info-bottom' id="info-bottom" v-if="isShowDevice"> 56 <div class='info-bottom' id="info-bottom" v-if="isShowDevice">
50 <div class='info-contain'> 57 <div class='info-contain'>
@@ -56,13 +63,10 @@ @@ -56,13 +63,10 @@
56 <p>序 列 号:{{deviceDataInfo.serialnumber}}</p> 63 <p>序 列 号:{{deviceDataInfo.serialnumber}}</p>
57 <p>业 务 IP:{{deviceDataInfo.ip}}</p> 64 <p>业 务 IP:{{deviceDataInfo.ip}}</p>
58 <p>用 途:{{deviceDataInfo.purpose}}</p> 65 <p>用 途:{{deviceDataInfo.purpose}}</p>
  66 + <p >告警量111:{{deviceDataInfo.alarmNum == 1 }}</p>
59 </div> 67 </div>
60 </div> 68 </div>
61 </div> 69 </div>
62 -  
63 -  
64 </div> 70 </div>
65 -  
66 -  
67 </div> 71 </div>
68 72
@@ -192,7 +192,8 @@ export default { @@ -192,7 +192,8 @@ export default {
192 name:CabinetNum,//机柜名称 192 name:CabinetNum,//机柜名称
193 cabinetCapacity :'42U',//机柜总U位数-目前都是42U 193 cabinetCapacity :'42U',//机柜总U位数-目前都是42U
194 deviceNum:resData.length,//设备数量 194 deviceNum:resData.length,//设备数量
195 - alarmNum:'0',//警告量 195 + alarmNum:resData.alarmNum,//警告量
  196 + health:resData.health,//状态
196 deviceData:resData 197 deviceData:resData
197 }) 198 })
198 proxy.deviceDatas=deviceDatas; 199 proxy.deviceDatas=deviceDatas;
@@ -245,4 +246,4 @@ export default { @@ -245,4 +246,4 @@ export default {
245 theirRoom 246 theirRoom
246 } 247 }
247 } 248 }
248 -}  
  249 +}
1 -<div v-if="!isDetailShow" class="outlinediv machine-room-parent" > 1 +<div v-if="!isDetailShow" class="outlinediv machine-room-parent" ref="roomTable">
2 <!-- <span>2号机房平面图</span>--> 2 <!-- <span>2号机房平面图</span>-->
3 <div v-for="(items,indexs) in tableData" :class="[{'xiaoshansecond-topcabinet':indexs==0,'xiaoshansecond-middlecabinet':indexs==1,'xiaoshansecond-bottomcabinet':indexs==2}]" class="xiaoshansecond-topcabinet" > 3 <div v-for="(items,indexs) in tableData" :class="[{'xiaoshansecond-topcabinet':indexs==0,'xiaoshansecond-middlecabinet':indexs==1,'xiaoshansecond-bottomcabinet':indexs==2}]" class="xiaoshansecond-topcabinet" >
4 - <table> 4 + <table >
5 5
6 <tr > 6 <tr >
7 - <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :width="item.width" @click="goDetail(item)"> 7 + <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :name="item.name" :width="item.width" @click="goDetail(item)">
  8 +<!--
8 <img v-if="item.isShow" :src="item.imgEmpty?'/vue3/src/assets/images/machineRoom/emptycabinet.png':'/vue3/src/assets/images/machineRoom/cabinet.png'" class="cabinet" alt=""> 9 <img v-if="item.isShow" :src="item.imgEmpty?'/vue3/src/assets/images/machineRoom/emptycabinet.png':'/vue3/src/assets/images/machineRoom/cabinet.png'" class="cabinet" alt="">
  10 +-->
  11 + <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/emptycabinet.png" class="cabinet" alt="">
  12 +
9 <span v-if="item.isShow" class="cabinetId">{{item.name}}</span> 13 <span v-if="item.isShow" class="cabinetId">{{item.name}}</span>
10 </td> 14 </td>
11 </tr> 15 </tr>
1 -<div v-if="!isDetailShow" class="outlinediv machine-room-parent" > 1 +<div v-if="!isDetailShow" class="outlinediv machine-room-parent" ref="roomTable">
2 <!-- <span>7号机房平面图</span>--> 2 <!-- <span>7号机房平面图</span>-->
3 <div style="width: 100%;height: 100%;display: inline-flex"> 3 <div style="width: 100%;height: 100%;display: inline-flex">
4 <div class="xiaoshanseven-leftcabinet"> 4 <div class="xiaoshanseven-leftcabinet">
5 <table> 5 <table>
6 <tr v-for="(items,indexs) in tableData" :class="{'sevenempty':items.length==0}"> 6 <tr v-for="(items,indexs) in tableData" :class="{'sevenempty':items.length==0}">
7 - <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :width="item.width" @click="goDetail(item)"> 7 + <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :name="item.name" :width="item.width" @click="goDetail(item)">
  8 +<!--
8 <img v-if="item.isShow" :src="item.imgEmpty?'/vue3/src/assets/images/machineRoom/emptycabinet.png':'/vue3/src/assets/images/machineRoom/cabinet.png'" class="cabinet" alt=""> 9 <img v-if="item.isShow" :src="item.imgEmpty?'/vue3/src/assets/images/machineRoom/emptycabinet.png':'/vue3/src/assets/images/machineRoom/cabinet.png'" class="cabinet" alt="">
  10 +-->
  11 + <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/emptycabinet.png" class="cabinet" alt="">
9 <span v-if="item.isShow" class="cabinetId">{{item.name}}</span> 12 <span v-if="item.isShow" class="cabinetId">{{item.name}}</span>
10 </td> 13 </td>
11 </tr> 14 </tr>
@@ -15,8 +18,11 @@ @@ -15,8 +18,11 @@
15 <div class="xiaoshanseven-rightcabinet"> 18 <div class="xiaoshanseven-rightcabinet">
16 <table> 19 <table>
17 <tr v-for="(items,indexs) in tableData2" :class="{'sevenempty':items.length==0}"> 20 <tr v-for="(items,indexs) in tableData2" :class="{'sevenempty':items.length==0}">
18 - <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :width="item.width" @click="goDetail(item)"> 21 + <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :name="item.name" :width="item.width" @click="goDetail(item)">
  22 +<!--
19 <img v-if="item.isShow" :src="item.imgEmpty?'/vue3/src/assets/images/machineRoom/emptycabinet.png':'/vue3/src/assets/images/machineRoom/cabinet.png'" class="cabinet" alt=""> 23 <img v-if="item.isShow" :src="item.imgEmpty?'/vue3/src/assets/images/machineRoom/emptycabinet.png':'/vue3/src/assets/images/machineRoom/cabinet.png'" class="cabinet" alt="">
  24 +-->
  25 + <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/emptycabinet.png" class="cabinet" alt="">
20 <span v-if="item.isShow" class="cabinetId">{{item.name}}</span> 26 <span v-if="item.isShow" class="cabinetId">{{item.name}}</span>
21 </td> 27 </td>
22 </tr> 28 </tr>
1 -<div v-if="!isDetailShow" class="outlinediv machine-room-parent" > 1 +<div v-if="!isDetailShow" class="outlinediv machine-room-parent" ref="roomTable">
2 <!-- <span>3号机房平面图</span>--> 2 <!-- <span>3号机房平面图</span>-->
3 <div class="xiaoshanthird-topcabinet"> 3 <div class="xiaoshanthird-topcabinet">
4 <table> 4 <table>
5 5
6 <tr v-for="(items,indexs) in tableData"> 6 <tr v-for="(items,indexs) in tableData">
7 - <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :width="item.width" @click="goDetail(item)"> 7 + <td v-if="items.length" v-for="(item,index) in items" :class="{'cursorClass':item.isShow}" :name="item.name" :width="item.width" @click="goDetail(item)">
  8 +<!--
8 <img v-if="item.isShow" :src="item.imgEmpty?'/vue3/src/assets/images/machineRoom/emptycabinet.png':'/vue3/src/assets/images/machineRoom/cabinet.png'" class="cabinet" alt=""> 9 <img v-if="item.isShow" :src="item.imgEmpty?'/vue3/src/assets/images/machineRoom/emptycabinet.png':'/vue3/src/assets/images/machineRoom/cabinet.png'" class="cabinet" alt="">
  10 +-->
  11 + <img v-if="item.isShow" src="/vue3/src/assets/images/machineRoom/emptycabinet.png" class="cabinet" alt="">
9 <span v-if="item.isShow" class="cabinetId">{{item.name}}</span> 12 <span v-if="item.isShow" class="cabinetId">{{item.name}}</span>
10 </td> 13 </td>
11 </tr> 14 </tr>
@@ -415,7 +415,6 @@ export default { @@ -415,7 +415,6 @@ export default {
415 let getPageInfo = ({page, limit}) => { 415 let getPageInfo = ({page, limit}) => {
416 searchForm.value.page = page; 416 searchForm.value.page = page;
417 searchForm.value.pageSize = limit; 417 searchForm.value.pageSize = limit;
418 -debugger  
419 // 下一页搜索 418 // 下一页搜索
420 getPage(); 419 getPage();
421 } 420 }