| | |
| | | .indicator.status_error { |
| | | background: #ff3801; |
| | | } |
| | | .cell-indicator.status_off, |
| | | .nowrap_indicator.status_off, |
| | | .cell_indicator div.status_off, |
| | | .indicator_grp .wrap_indicator.status_off div, |
| | |
| | | can.drawBoldLine({ |
| | | startX: 110 |
| | | ,startY: 110 |
| | | ,endX: 220 + 48 |
| | | ,endX: 268 |
| | | ,endY: 110 |
| | | }); |
| | | can.drawBoldLine({ |
| | | startX: 260 + 48 |
| | | startX: 308 |
| | | ,startY: 110 |
| | | ,endX: 300 + 48 |
| | | ,endX: 348 |
| | | ,endY: 110 |
| | | }); |
| | | // 3号电源B机组 前 横线 |
| | | can.drawBoldLine({ |
| | | startX: 148 |
| | | ,startY: 276 |
| | | ,endX: 220 + 48 |
| | | ,endX: 268 |
| | | ,endY: 276 |
| | | }); |
| | | can.drawBoldLine({ |
| | | startX: 260 + 48 |
| | | startX: 308 |
| | | ,startY: 276 |
| | | ,endX: 300 + 48 |
| | | ,endX: 348 |
| | | ,endY: 276 |
| | | }); |
| | | // 2号电源 前 横线 |
| | | can.drawBoldLine({ |
| | | startX: 148 |
| | | ,startY: 414 + 14 |
| | | ,endX: 220 + 48 |
| | | ,endY: 414 + 14 |
| | | ,startY: 428 |
| | | ,endX: 268 |
| | | ,endY: 428 |
| | | }); |
| | | can.drawBoldLine({ |
| | | startX: 260 + 48 |
| | | ,startY: 414 + 14 |
| | | ,endX: 300 + 50 |
| | | ,endY: 414 + 14 |
| | | startX: 308 |
| | | ,startY: 428 |
| | | ,endX: 350 |
| | | ,endY: 428 |
| | | }); |
| | | can.drawBoldLine({ |
| | | startX: 148 |
| | | ,startY: 475 |
| | | ,endX: 220 + 48 |
| | | ,endX: 268 |
| | | ,endY: 475 |
| | | }); |
| | | can.drawBoldLine({ |
| | | startX: 260 + 48 |
| | | startX: 308 |
| | | ,startY: 475 |
| | | ,endX: 300 + 48 |
| | | ,endX: 348 |
| | | ,endY: 475 |
| | | }); |
| | | // 1号电源 前 横线 |
| | | can.drawBoldLine({ |
| | | startX: 148 |
| | | ,startY: 568 + 14 |
| | | ,endX: 220 + 48 |
| | | ,endY: 568 + 14 |
| | | ,startY: 582 |
| | | ,endX: 268 |
| | | ,endY: 582 |
| | | }); |
| | | can.drawBoldLine({ |
| | | startX: 260 + 48 |
| | | ,startY: 568 + 14 |
| | | ,endX: 300 + 50 |
| | | ,endY: 568 + 14 |
| | | startX: 308 |
| | | ,startY: 582 |
| | | ,endX: 350 |
| | | ,endY: 582 |
| | | }); |
| | | can.drawBoldLine({ |
| | | startX: 148 |
| | | ,startY: 628 |
| | | ,endX: 220 + 48 |
| | | ,endX: 268 |
| | | ,endY: 628 |
| | | }); |
| | | can.drawBoldLine({ |
| | | startX: 260 + 48 |
| | | startX: 308 |
| | | ,startY: 628 |
| | | ,endX: 300 + 48 |
| | | ,endX: 348 |
| | | ,endY: 628 |
| | | }); |
| | | // 电机 前 横线 |
| | |
| | | }); |
| | | // 画水管 |
| | | can.drawWaterLine({ |
| | | startX: 402 - 6 |
| | | ,startY: 746 - 2 |
| | | ,endX: 502 + 2 |
| | | ,endY: 746 - 2 |
| | | startX: 396 |
| | | ,startY: 744 |
| | | ,endX: 504 |
| | | ,endY: 744 |
| | | }); |
| | | can.drawWaterLine({ |
| | | startX: 910 |
| | | ,startY: 172 |
| | | ,endX: 990 + 2 |
| | | ,endX: 992 |
| | | ,endY: 172 |
| | | }); |
| | | can.drawWaterLine({ |
| | |
| | | ,endY: 540 |
| | | }); |
| | | can.drawWaterLine({ |
| | | startX: 1030 - 25 |
| | | startX: 1005 |
| | | ,startY: 540 |
| | | ,endX: 1196 - 2 |
| | | ,endX: 1194 |
| | | ,endY: 540 |
| | | }); |
| | | |
| | |
| | | |
| | | // 画电池组 |
| | | can.drawBatt({ |
| | | startX: 760 - 2 |
| | | ,startY: 250 - 6 |
| | | startX: 758 |
| | | ,startY: 244 |
| | | ,label: '1#蓄电池组' |
| | | ,noDraw: true |
| | | ,cbfn_click: function () { |
| | |
| | | } |
| | | }, true); |
| | | can.drawBatt({ |
| | | startX: 760 - 2 |
| | | ,startY: 380 - 6 |
| | | startX: 758 |
| | | ,startY: 374 |
| | | ,label: '2#蓄电池组' |
| | | ,noDraw: true |
| | | ,cbfn_click: function () { |
| | |
| | | } |
| | | }, true); |
| | | can.drawBatt({ |
| | | startX: 760 - 2 |
| | | ,startY: 510 - 6 |
| | | startX: 758 |
| | | ,startY: 504 |
| | | ,label: '3#蓄电池组' |
| | | ,noDraw: true |
| | | ,cbfn_click: function () { |
| | |
| | | } |
| | | }, true); |
| | | can.drawBatt({ |
| | | startX: 760 - 2 |
| | | ,startY: 640 - 6 |
| | | startX: 758 |
| | | ,startY: 634 |
| | | ,label: '4#蓄电池组' |
| | | ,noDraw: true |
| | | ,cbfn_click: function () { |
| | |
| | | |
| | | // 画开关 |
| | | can.drawSwitch({ |
| | | startX: 220 + 48 |
| | | startX: 268 |
| | | ,startY: 110 |
| | | ,fromStart: true |
| | | ,labelBottom: '-8G' |
| | | }, true); |
| | | can.drawSwitch({ |
| | | startX: 220 + 48 |
| | | startX: 268 |
| | | ,startY: 275 |
| | | ,fromStart: true |
| | | ,labelBottom: '-9G' |
| | | }, true); |
| | | can.drawSwitch({ |
| | | startX: 220 + 48 |
| | | ,startY: 414 + 14 |
| | | startX: 268 |
| | | ,startY: 428 |
| | | ,fromStart: true |
| | | ,labelBottom: '-13G' |
| | | }, true); |
| | | can.drawSwitch({ |
| | | startX: 220 + 48 |
| | | startX: 268 |
| | | ,startY: 475 |
| | | ,fromStart: true |
| | | ,labelBottom: '-14G' |
| | | }, true); |
| | | can.drawSwitch({ |
| | | startX: 220 + 48 |
| | | ,startY: 568 + 14 |
| | | startX: 268 |
| | | ,startY: 582 |
| | | ,fromStart: true |
| | | ,labelBottom: '-11G' |
| | | }, true); |
| | | can.drawSwitch({ |
| | | startX: 220 + 48 |
| | | startX: 268 |
| | | ,startY: 628 |
| | | ,fromStart: true |
| | | ,labelBottom: '-15G' |
| | |
| | | // 电源3 |
| | | can.drawRect({ |
| | | startX: 152 |
| | | ,startY: 45 + 16 |
| | | ,startY: 61 |
| | | ,width: 80 |
| | | ,height: 40 |
| | | ,subName: 'statuspower' |
| | |
| | | }, true); |
| | | can.drawRect({ |
| | | startX: 152 |
| | | ,startY: 210 + 16 |
| | | ,startY: 226 |
| | | ,width: 80 |
| | | ,height: 40 |
| | | ,subName: 'statuspower' |
| | |
| | | // 电源2 |
| | | can.drawRect({ |
| | | startX: 152 |
| | | ,startY: 352 + 24 |
| | | ,startY: 376 |
| | | ,width: 80 |
| | | ,height: 40 |
| | | ,subName: 'statuspower' |
| | |
| | | // 电源1 |
| | | can.drawRect({ |
| | | startX: 152 |
| | | ,startY: 506 + 24 |
| | | ,startY: 530 |
| | | ,width: 80 |
| | | ,height: 40 |
| | | ,subName: 'statuspower' |
| | |
| | | |
| | | // 画电池组 |
| | | can.drawBatt({ |
| | | startX: 760 - 2 |
| | | ,startY: 250 - 6 |
| | | startX: 758 |
| | | ,startY: 244 |
| | | ,label: '1#蓄电池组' |
| | | ,noDraw: status.batt1 && flag |
| | | }); |
| | |
| | | ,noDraw: status.batt2 && flag |
| | | }); |
| | | can.drawBatt({ |
| | | startX: 760 - 2 |
| | | ,startY: 510 - 6 |
| | | startX: 758 |
| | | ,startY: 504 |
| | | ,label: '3#蓄电池组' |
| | | ,noDraw: status.batt3 && flag |
| | | }); |
| | | can.drawBatt({ |
| | | startX: 760 - 2 |
| | | ,startY: 640 - 6 |
| | | startX: 758 |
| | | ,startY: 634 |
| | | ,label: '4#蓄电池组' |
| | | ,noDraw: status.batt4 && flag |
| | | }); |
| | |
| | | <!-- <div class="btn">{{item}}套输出合闸</div> --> |
| | | <div class="label">{{item}}机组高压开关状态</div> |
| | | <div class="center_con"> |
| | | <div class="indicator" :class="{'status_normal': !controlData[item].switchFlag, 'status_error': controlData[item].switchFlag}"></div> |
| | | <div class="indicator" :class="{'status_off': !controlData[item].switchFlag, 'status_normal': controlData[item].switchFlag}"></div> |
| | | </div> |
| | | <div class="label"></div> |
| | | <!-- <div class="btn">{{item}}套输出分闸</div> --> |
| | |
| | | :title-left=true> |
| | | <div class="whyc-breadcrumb" slot="title"><span class="icon">»</span>当前位置:<span class="txt-bold">{{$store.getters.getCrumb}}</span></div> |
| | | <div class="banner_right" slot="titleBarRight"> |
| | | <div v-if="showStatus()" class="status flexR_center">通信状态: <div :class="['indicator', {'status_normal': item, 'status_error': !item}]" v-for="(item, index) in status" :key="index"></div></div> |
| | | <div v-if="showStatus()" class="status flexR_center">通信状态: <div :class="['indicator', {'status_normal': item, 'status_off': !item}]" v-for="(item, index) in status" :key="index"></div></div> |
| | | </div> |
| | | <router-view :key="$route.fullPath"></router-view> |
| | | </content-box> |
| | |
| | | <div class="flex_2btn_grp vertical_middle"> |
| | | <div class="btn" v-btn-confirm="handleConfirm" data-fn="setPos" data-confirmTxt="合闸确认" :param="JSON.stringify(['CONTEXT.list[' + index + ']', 15])">{{item.idx}}套输出合闸</div> |
| | | <div class="center_con"> |
| | | <div class="indicator" :class="{'status_normal': !item.state.qs1_state, 'status_error': item.state.qs1_state}"><span>{{item.k_name1}}</span></div> |
| | | <div class="indicator" :class="{'status_normal': !item.state.qs2_state, 'status_error': item.state.qs2_state}"><span>{{item.k_name2}}</span></div> |
| | | <div class="indicator" :class="{'status_off': !item.state.qs1_state, 'status_normal': item.state.qs1_state}"><span>{{item.k_name1}}</span></div> |
| | | <div class="indicator" :class="{'status_off': !item.state.qs2_state, 'status_normal': item.state.qs2_state}"><span>{{item.k_name2}}</span></div> |
| | | </div> |
| | | <div class="btn" v-btn-confirm="handleConfirm" data-fn="setPos" data-confirmTxt="分闸确认" :param="JSON.stringify(['CONTEXT.list[' + index + ']', 16])">{{item.idx}}套输出分闸</div> |
| | | </div> |
| | |
| | | <div class="flex_2btn_grp vertical_middle"> |
| | | <div class="btn" v-btn-confirm="handleConfirm" data-fn="setPos" data-confirmTxt="启动确认" :param="JSON.stringify(['CONTEXT.list[' + index + ']', 7])">{{item.idx}}启动</div> |
| | | <div class="center_con"> |
| | | <div class="indicator" :class="{'status_normal': !item.data.powerstartflag, 'status_error': item.data.powerstartflag}"></div> |
| | | <div class="indicator" :class="{'status_off': !item.data.powerstartflag, 'status_normal': item.data.powerstartflag}"></div> |
| | | </div> |
| | | <div class="btn" v-btn-confirm="handleConfirm" data-fn="setPos" data-confirmTxt="停止确认" :param="JSON.stringify(['CONTEXT.list[' + index + ']', 8])">{{item.idx}}停止</div> |
| | | </div> |
| | |
| | | <tbody> |
| | | <tr v-for="item in list" :key="item.idx"> |
| | | <th>{{item.idx}}</th> |
| | | <td><div class="cell-indicator" :class="{'status_normal': !item.state.high_vol_switch_status, 'status_error': item.state.high_vol_switch_status}"></div></td> |
| | | <td><div class="cell-indicator" :class="{'status_normal': !item.state.main_cabinet_fan_status, 'status_error': item.state.main_cabinet_fan_status}"></div></td> |
| | | <td><div class="cell-indicator" :class="{'status_off': !item.state.high_vol_switch_status, 'status_normal': item.state.high_vol_switch_status}"></div></td> |
| | | <td><div class="cell-indicator" :class="{'status_off': !item.state.main_cabinet_fan_status, 'status_normal': item.state.main_cabinet_fan_status}"></div></td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | |
| | | ,loop () { |
| | | // 一次所有数据请求完成 才进入下一次轮询 |
| | | this.timer.start(() => { |
| | | /*this.$axios.all([this.getDate(), this.getInfo(), this.getStatus(), this.getAlarm()]) |
| | | this.$axios.all([this.getDate(), this.getInfo(), this.getStatus(), this.getAlarm()]) |
| | | .then(()=> { |
| | | // this.tlist = [...list[0], ...list[1], ...list[2], ...list[3]]; |
| | | // list = [[], [], [], []]; |
| | |
| | | }).catch((err)=>{ |
| | | console.error(err); |
| | | this.timer.open(); |
| | | });*/ |
| | | draw.update1(can1, this.G_status, can2); |
| | | this.timer.open(); |
| | | }); |
| | | }, 1000); |
| | | } |
| | | // 数据导出 |
| | |
| | | <canvas id="can" width="1800" height="700" ref="can"></canvas> |
| | | <canvas class="can1" id="can1" width="1800" height="700" ref="can1"></canvas> |
| | | <canvas class="can1" id="can2" width="1800" height="700" ref="can2"></canvas> |
| | | <science-box v-for="(item, index) in inputList" :key="index" |
| | | <science-box v-for="(item, index) in inputList" :key="'input_' + index" |
| | | class="panel_input" |
| | | :class="{'normal': index == 2 || index == 3}" |
| | | no-header |
| | |
| | | <div class="inner flexR_center"><span class="indicator" :class="{'status_off': !G_status.H01, 'status_normal': G_status.H01}"></span> H01</div> |
| | | </div> |
| | | |
| | | <div class="panel_label" v-for="(item, idx) in panelList.slice(1)" :key="idx" :style="getStyle(item.position)"><div class="inner">{{item.txt}}</div></div> |
| | | <div class="panel_label" v-for="(item, idx) in panelList.slice(1)" :key="'label_' + idx" :style="getStyle(item.position)"><div class="inner">{{item.txt}}</div></div> |
| | | <!-- 运行状态 --> |
| | | <div class="run_info flexR_center" :style="getStyle(run_info)">运行状态: <div :class="['indicator_css', {'status_normal': G_status.Water_system_function, 'status_off': !G_status.Water_system_function}]"></div></div> |
| | | <div class="rotate_motor" :style="getStyle(rotate_motor)"> |