| | |
| | | endX: opts.lineOnEndX, |
| | | endY: opts.lineOnEndY, |
| | | lineWidth: opts.lineWidth, |
| | | strokeStyle: 'green' |
| | | strokeStyle: 'red' |
| | | }, this.context); |
| | | } else { |
| | | // 画开关线段 |
| | |
| | | endX: opts.lineEndX, |
| | | endY: opts.lineEndY, |
| | | lineWidth: opts.lineWidth, |
| | | strokeStyle: 'red' |
| | | strokeStyle: 'green' |
| | | }, this.context); |
| | | } |
| | | this.context.restore(); |
| | |
| | | <div class="posA_full flexC_center"> |
| | | <div class="status flexR_center"> |
| | | <label>通讯状态:</label> |
| | | <div :class="['indicator', {'status_off': !1, 'status_normal': !0}]"></div> |
| | | <div :class="['indicator', {'status_off': !connectFlag, 'status_normal': connectFlag}]"></div> |
| | | </div> |
| | | <div class="info flexR_center" :class="{'upper_pulse_block': upper_pulse_block}">{{upper_pulse_block ? '脉冲封锁' : ''}}</div> |
| | | </div> |
| | |
| | | <div class="sub-title">{{group}}机组{{modelStr}}运行电流电压设置</div> |
| | | <div class="content"> |
| | | <div class="part_left"> |
| | | <div class="_row">本机给定电流<span>{{local_set_cur}}</span>A</div> |
| | | <div class="_row">本机给定电流<el-input class="input transparent" size="mini" type="number" v-model="local_set_cur"></el-input>A</div> |
| | | <div class="_row">实际给定电流<span>{{real_set_cur}}</span>A</div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="curAdd(10)">+10</div> |
| | |
| | | </div> |
| | | |
| | | <div class="part_right"> |
| | | <div class="_row">本机给定电压<span>{{local_set_vol}}</span>V</div> |
| | | <div class="_row">本机给定电压<el-input class="input transparent" size="mini" type="number" v-model="local_set_vol"></el-input>V</div> |
| | | <div class="_row">实际给定电压<span>{{real_set_vol}}</span>V</div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="volAdd(10)">+10</div> |
| | |
| | | |
| | | let can, can1; |
| | | let resizeHandler; |
| | | const DEV = { |
| | | A: 6001 |
| | | ,B: 6002 |
| | | }; |
| | | export default { |
| | | name: 'chargePower_alone', |
| | | components: { |
| | |
| | | cbParam: null, |
| | | cur_vol_setVisible: false, |
| | | switchFlag: false, |
| | | connectFlag: false, |
| | | local_set_cur: 0, |
| | | real_set_cur: 0, |
| | | local_set_vol: 0, |
| | |
| | | |
| | | }); |
| | | } |
| | | ,getConnect () { |
| | | this.$api.common.getConnect().then((res) => { |
| | | res = JSON.parse(res.data.result); |
| | | if (res.code) { |
| | | let data = res.data; |
| | | data.forEach((v) => { |
| | | if (DEV[this.group] == v.dev_id) { |
| | | this.connectFlag = !!v.connect_en; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | // 轮询 |
| | | ,loop () { |
| | | this.timer.start(() => { |
| | |
| | | this.getAlarm(); |
| | | draw.update(can1, this.switchFlag, this.model); |
| | | this.updateGraph(); |
| | | this.getConnect(); |
| | | this.timer.open(); |
| | | }, 1000); |
| | | } |
| | | ,curAdd (val) { |
| | | if (this.local_set_cur > 500) { |
| | | if (this.local_set_cur + val > 500) { |
| | | return false; |
| | | } |
| | | this.local_set_cur += val; |
| | |
| | | this.local_set_cur -= val; |
| | | } |
| | | ,setCur () { |
| | | if (this.local_set_cur > 500) { |
| | | this.local_set_cur = 500; |
| | | } |
| | | if (this.local_set_cur < 0 || parseInt(this.local_set_cur) < 0 || parseInt(this.local_set_cur)) { |
| | | this.local_set_cur = 0; |
| | | } |
| | | let param = { |
| | | num: 20, |
| | | currset: this.local_set_cur, |
| | |
| | | }); |
| | | } |
| | | ,volAdd (val) { |
| | | if (this.local_set_vol > 500) { |
| | | if (this.local_set_vol + val > 500) { |
| | | return false; |
| | | } |
| | | this.local_set_vol *= 1; |
| | | this.local_set_vol += val; |
| | | } |
| | | ,volSub (val) { |
| | |
| | | this.local_set_vol -= val; |
| | | } |
| | | ,setVol () { |
| | | if (this.local_set_vol > 500) { |
| | | this.local_set_vol = 500; |
| | | } |
| | | if (this.local_set_vol < 0 || parseInt(this.local_set_vol) < 0 || parseInt(this.local_set_vol)) { |
| | | this.local_set_vol = 0; |
| | | } |
| | | let param = { |
| | | num: 21, |
| | | volset: this.local_set_vol, |
| | |
| | | padding: 10px; |
| | | line-height: 20px; |
| | | text-align: right; |
| | | align-items: center; |
| | | } |
| | | .cur_vol_set ._row label { |
| | | width: 8.4em; |
| | |
| | | align-items: center; |
| | | margin: 0 20px; |
| | | } |
| | | .input { |
| | | font-size: 14px; |
| | | width: 6em; |
| | | padding-right: .4em; |
| | | padding-left: .4em; |
| | | } |
| | | .input >>> input { |
| | | padding: 0 6px; |
| | | } |
| | | .upper_pulse_block { |
| | | -webkit-animation: flicker 0.6s infinite; |
| | | animation: flicker 0.6s infinite; |
| | |
| | | <div class="center_con">{{local_remote_control[item] ? '上位机控制' : '触摸屏控制'}}</div> |
| | | <div class="btn_3d" v-btn-confirm="handleConfirm" data-fn="setLocalControl" data-confirmTxt="控制切换确认" :param="JSON.stringify([item])">{{item}}机组切换到就地控制</div> |
| | | </div> |
| | | <div class="text_row vertical_middle"> |
| | | <div class="inner"> |
| | | <span>{{item}}实际给定电压</span><em class="edit-val">{{controlData[item].real_set_vol}}</em>V |
| | | <div class="group_set"> |
| | | <div class="part_left"> |
| | | <div class="text_row vertical_middle"> |
| | | <div class="inner"> |
| | | <span>{{item}}机组实际给定电压</span><em class="edit-val">{{controlData[item].real_set_vol}}</em>V |
| | | </div> |
| | | </div> |
| | | <div class="text_row vertical_middle"> |
| | | <div class="inner"> |
| | | <span>{{item}}机组实际给定电流</span><em class="edit-val">{{controlData[item].real_set_cur}}</em>A |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="text_row vertical_middle"> |
| | | <div class="inner"> |
| | | <span>{{item}}实际给定电流</span><em class="edit-val">{{controlData[item].real_set_cur}}</em>A |
| | | <div class="vertical_middle"> |
| | | <div class="btn_3d" @click="showCurVolSettings(item)">{{item}}机组电流电压设定</div> |
| | | </div> |
| | | </div> |
| | | <!-- 套输出合分闸 --> |
| | | <div class="flex_2btn_grp vertical_middle"> |
| | | <!-- <div class="btn_3d">{{item}}套输出合闸</div> --> |
| | | <div class="label">{{item}}高压开关</div> |
| | | <div class="label">{{item}}机组高压开关状态</div> |
| | | <div class="center_con"> |
| | | <div class="indicator" :class="{'status_normal': !0, 'status_error': !1}"></div> |
| | | <div class="indicator" :class="{'status_normal': !controlData[item].switchFlag, 'status_error': controlData[item].switchFlag}"></div> |
| | | </div> |
| | | <div class="label"></div> |
| | | <!-- <div class="btn_3d">{{item}}套输出分闸</div> --> |
| | | </div> |
| | | <!-- 启动停止 --> |
| | | <div class="flex_2btn_grp vertical_middle"> |
| | | <div class="btn_3d" v-btn-confirm="handleConfirm" data-fn="remoteStart" data-confirmTxt="启动确认" :param="JSON.stringify([item])">{{item}}启动</div> |
| | | <div class="btn_3d" v-btn-confirm="handleConfirm" data-fn="remoteStart" data-confirmTxt="启动确认" :param="JSON.stringify([item])">{{item}}机组启动</div> |
| | | <div class="center_con"> |
| | | <div class="indicator" :class="{'status_normal': !0, 'status_error': !1}"></div> |
| | | <!-- <div class="indicator" :class="{'status_normal': !0, 'status_error': !1}"></div> --> |
| | | </div> |
| | | <div class="btn_3d" v-btn-confirm="handleConfirm" data-fn="remoteStop" data-confirmTxt="停止确认" :param="JSON.stringify([item])">{{item}}停止</div> |
| | | <div class="btn_3d" v-btn-confirm="handleConfirm" data-fn="remoteStop" data-confirmTxt="停止确认" :param="JSON.stringify([item])">{{item}}机组停止</div> |
| | | </div> |
| | | </div> |
| | | <!-- 右侧按钮 --> |
| | |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 电流电压给定 --> |
| | | <el-dialog |
| | | title="电流电压设置" |
| | | :visible.sync="cur_vol_setVisible" |
| | | :modal="false" |
| | | v-dialogDrag |
| | | class="dialog-bg dialog-drag"> |
| | | <div class="D-content cur_vol_set"> |
| | | <div class="tab_content"> |
| | | <div class="sub-title">{{current_grp}}机组运行电流电压设置</div> |
| | | <div class="content"> |
| | | <div class="part_left"> |
| | | <div class="_row">本机给定电流<el-input class="input transparent" size="mini" type="number" v-model="local_set_cur"></el-input>A</div> |
| | | <div class="_row">实际给定电流<span>{{real_set_cur}}</span>A</div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="curAdd(10)">+10</div> |
| | | <div class="btn_3d" @click="curSub(10)">-10</div> |
| | | </div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="curAdd(100)">+100</div> |
| | | <div class="btn_3d" @click="curSub(100)">-100</div> |
| | | </div> |
| | | <div class="btn_3d" @click="setCur()">确定</div> |
| | | </div> |
| | | |
| | | <div class="part_right"> |
| | | <div class="_row">本机给定电压<el-input class="input transparent" size="mini" type="number" v-model="local_set_vol"></el-input>V</div> |
| | | <div class="_row">实际给定电压<span>{{real_set_vol}}</span>V</div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="volAdd(10)">+10</div> |
| | | <div class="btn_3d" @click="volSub(10)">-10</div> |
| | | </div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="volAdd(100)">+100</div> |
| | | <div class="btn_3d" @click="volSub(100)">-100</div> |
| | | </div> |
| | | <div class="btn_3d" @click="setVol()">确定</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer h-center"> |
| | | <el-button type="primary" @click="cur_vol_setVisible = false">关闭</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 按钮二次确认 --> |
| | | <el-dialog |
| | | :title="confirmTxt" |
| | |
| | | value: 0, |
| | | text: '', |
| | | }, |
| | | current_grp: 'A', |
| | | cur_vol_setVisible: false, |
| | | local_set_cur: 0, |
| | | real_set_cur: 0, |
| | | local_set_vol: 0, |
| | | real_set_vol: 0, |
| | | confirmTxt: '', |
| | | confirmVisible: false, |
| | | cbFn: null, |
| | |
| | | brachdcvol: 0, |
| | | real_set_cur: 0, |
| | | real_set_vol: 0, |
| | | local_set_cur: 0, |
| | | local_set_vol: 0, |
| | | switchFlag: false, |
| | | controlangle: 0 |
| | | }, |
| | | B: { |
| | |
| | | brachdcvol: 0, |
| | | real_set_cur: 0, |
| | | real_set_vol: 0, |
| | | local_set_cur: 0, |
| | | local_set_vol: 0, |
| | | switchFlag: false, |
| | | controlangle: 0 |
| | | } |
| | | }, |
| | |
| | | } |
| | | }); |
| | | } |
| | | // 显示电流电压设置框 |
| | | ,showCurVolSettings (grp) { |
| | | // console.log(grp); |
| | | // 确定当前机组 |
| | | this.current_grp = grp; |
| | | // 切换数据 |
| | | this.local_set_cur = this.controlData[grp].local_set_cur; |
| | | this.local_set_vol = this.controlData[grp].local_set_vol; |
| | | this.real_set_cur = this.controlData[grp].real_set_cur; |
| | | this.real_set_vol = this.controlData[grp].real_set_vol; |
| | | |
| | | this.cur_vol_setVisible = true; |
| | | } |
| | | ,curAdd (val) { |
| | | if (this.local_set_cur + val > 500) { |
| | | return false; |
| | | } |
| | | this.local_set_cur *= 1; |
| | | this.local_set_cur += val; |
| | | } |
| | | ,curSub (val) { |
| | | if (this.local_set_cur < val) { |
| | | return false; |
| | | } |
| | | this.local_set_cur -= val; |
| | | } |
| | | ,setCur () { |
| | | if (this.local_set_cur > 500) { |
| | | this.local_set_cur = 500; |
| | | } |
| | | if (this.local_set_cur < 0 || parseInt(this.local_set_cur) < 0 || parseInt(this.local_set_cur)) { |
| | | this.local_set_cur = 0; |
| | | } |
| | | let param = { |
| | | num: 20, |
| | | currset: this.local_set_cur, |
| | | electric2KW_id: this.groupInfo[this.current_grp].electric2KW_id |
| | | }; |
| | | this.controlData[this.current_grp].local_set_cur = this.local_set_cur; |
| | | |
| | | this.$api.chargepower.upDateControlData(param).then((res) => { |
| | | res = JSON.parse(res.data.result); |
| | | if (res.code) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: res.msg |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.msg |
| | | }); |
| | | } |
| | | }); |
| | | let param1 = { |
| | | num: 7, |
| | | currset_confirm: 1, |
| | | electric2KW_id: this.groupInfo[this.current_grp].electric2KW_id |
| | | }; |
| | | this.$api.chargepower.upDateControlData(param1).then((res) => { |
| | | res = JSON.parse(res.data.result); |
| | | if (res.code) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: res.msg |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.msg |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | ,volAdd (val) { |
| | | if (this.local_set_vol + val > 500) { |
| | | return false; |
| | | } |
| | | this.local_set_vol *= 1; |
| | | this.local_set_vol += val; |
| | | } |
| | | ,volSub (val) { |
| | | if (this.local_set_vol < val) { |
| | | return false; |
| | | } |
| | | this.local_set_vol -= val; |
| | | } |
| | | ,setVol () { |
| | | if (this.local_set_vol > 500) { |
| | | this.local_set_vol = 500; |
| | | } |
| | | if (this.local_set_vol < 0 || parseInt(this.local_set_vol) < 0 || parseInt(this.local_set_vol)) { |
| | | this.local_set_vol = 0; |
| | | } |
| | | let param = { |
| | | num: 21, |
| | | volset: this.local_set_vol, |
| | | electric2KW_id: this.groupInfo[this.current_grp].electric2KW_id |
| | | }; |
| | | this.controlData[this.current_grp].local_set_vol = this.local_set_vol; |
| | | |
| | | this.$api.chargepower.upDateControlData(param).then((res) => { |
| | | res = JSON.parse(res.data.result); |
| | | if (res.code) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: res.msg |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.msg |
| | | }); |
| | | } |
| | | }); |
| | | let param1= { |
| | | num: 6, |
| | | volset_confirm: 1, |
| | | electric2KW_id: this.groupInfo[this.current_grp].electric2KW_id |
| | | }; |
| | | this.$api.chargepower.upDateControlData(param1).then((res) => { |
| | | res = JSON.parse(res.data.result); |
| | | if (res.code) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: res.msg |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.msg |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | // 查询实时数据 |
| | | ,getRTData (group) { |
| | | let param = { |
| | |
| | | this.constantvolflag[group] = data.constantvolflag; |
| | | this.local_remote_control[group] = data.local_remote_control; |
| | | // 高压开关 |
| | | this.switchFlag = !data.dc_voltage_state; |
| | | this.controlData[group].switchFlag = !data.dc_voltage_state; |
| | | } |
| | | |
| | | }); |
| | |
| | | .item > div { |
| | | flex: 1; |
| | | } |
| | | .item .group_set { |
| | | flex: 3.2; |
| | | display: -webkit-flex; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .item .group_set .btn_3d { |
| | | width: 16.6em; |
| | | } |
| | | .item .group_set .part_left { |
| | | display: -webkit-flex; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-right: 0.2rem; |
| | | width: 23.4em; |
| | | -webkit-transform: translateX(-2em); |
| | | transform: translateX(-2em); |
| | | } |
| | | .item .group_set .part_left .text_row { |
| | | flex: 1; |
| | | justify-content: flex-end; |
| | | } |
| | | .text_row em, |
| | | .text_row span { |
| | | padding-right: 10px; |
| | |
| | | max-width: 16.6em; |
| | | } |
| | | .flex_2btn_grp .label { |
| | | width: 6em; |
| | | width: 10em; |
| | | } |
| | | .flex_2btn_grp .center_con { |
| | | width: 1.6rem; |
| | |
| | | .wrap-table { |
| | | width: 100%; |
| | | } |
| | | |
| | | .cur_vol_set .btn_3d { |
| | | width: 6em; |
| | | } |
| | | .cur_vol_set .tab_content { |
| | | flex: 1; |
| | | display: -webkit-flex; |
| | | display: flex; |
| | | flex-direction: column; |
| | | /*align-items: center;*/ |
| | | /*text-align: center;*/ |
| | | } |
| | | .cur_vol_set .sub-title { |
| | | font-size: 20px; |
| | | text-align: center; |
| | | line-height: 36px; |
| | | } |
| | | .cur_vol_set .content { |
| | | display: -webkit-flex; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .cur_vol_set ._row { |
| | | display: -webkit-flex; |
| | | display: flex; |
| | | padding: 10px; |
| | | line-height: 20px; |
| | | text-align: right; |
| | | align-items: center; |
| | | } |
| | | .cur_vol_set ._row label { |
| | | width: 8.4em; |
| | | text-align: right; |
| | | } |
| | | .cur_vol_set ._row span { |
| | | width: 6em; |
| | | text-align: right; |
| | | padding-right: .4em; |
| | | color: #15e3f3; |
| | | } |
| | | .cur_vol_set ._row .btn_3d { |
| | | margin: 10px 10px; |
| | | } |
| | | .cur_vol_set .content [class*=part] { |
| | | flex: 1; |
| | | display: -webkit-flex; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | margin: 0 20px; |
| | | } |
| | | .input { |
| | | font-size: 14px; |
| | | width: 6em; |
| | | padding-right: .4em; |
| | | padding-left: .4em; |
| | | } |
| | | .input >>> input { |
| | | padding: 0 6px; |
| | | } |
| | | </style> |
| | |
| | | <div class="posA_full flexC_center"> |
| | | <div class="status flexR_center"> |
| | | <label>通讯状态:</label> |
| | | <div :class="['indicator', {'status_off': !1, 'status_normal': !0}]"></div> |
| | | <div :class="['indicator', {'status_off': !controlData[0 == key ? 'A' : 'B'].connectFlag, 'status_normal': controlData[0 == key ? 'A' : 'B'].connectFlag}]"></div> |
| | | </div> |
| | | <div class="info flexR_center" :class="{'upper_pulse_block': rtData[0 == key ? 'A' : 'B'].upper_pulse_block}">{{rtData[0 == key ? 'A' : 'B'].upper_pulse_block ? '脉冲封锁' : ''}}</div> |
| | | </div> |
| | |
| | | <div class="content"> |
| | | <div class="part_left"> |
| | | <div class="sub-title">2串2并运行电压设置</div> |
| | | <div class="_row"><label>机组给定电压</label><span>{{local_set_vol}}</span>V</div> |
| | | <div class="_row"><label>机组给定电压</label><el-input class="input transparent" size="mini" type="number" v-model="local_set_vol"></el-input>V</div> |
| | | <div class="_row"><label>机组实际给定电压</label><span>{{real_set_vol}}</span>V</div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="volAdd(10)">+10</div> |
| | |
| | | alldccurr: 0, |
| | | A: { |
| | | controlangle: 0 |
| | | ,connectFlag: false |
| | | }, |
| | | B: { |
| | | controlangle: 0 |
| | | ,connectFlag: false |
| | | } |
| | | }, |
| | | tableData_A: [], |
| | |
| | | |
| | | }); |
| | | } |
| | | ,getConnect () { |
| | | this.$api.common.getConnect().then((res) => { |
| | | res = JSON.parse(res.data.result); |
| | | if (res.code) { |
| | | let data = res.data; |
| | | data.forEach((v) => { |
| | | if (6001 == v.dev_id) { |
| | | this.controlData.A.connectFlag = !!v.connect_en; |
| | | } |
| | | if (6002 == v.dev_id) { |
| | | this.controlData.B.connectFlag = !!v.connect_en; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | // 轮询 |
| | | ,loop () { |
| | | this.timer.start(() => { |
| | |
| | | this.getControlData('B'); |
| | | this.getAlarm(); |
| | | draw.update(can1, this.switchFlag, this.model); |
| | | this.getConnect(); |
| | | this.timer.open(); |
| | | }, 1000); |
| | | } |
| | | ,volAdd (val) { |
| | | if (this.local_set_vol > 1000) { |
| | | if (this.local_set_vol + val > 1000) { |
| | | return false; |
| | | } |
| | | this.local_set_vol *= 1; |
| | | this.local_set_vol += val; |
| | | } |
| | | ,volSub (val) { |
| | |
| | | this.local_set_vol -= val; |
| | | } |
| | | ,setVol () { |
| | | if (this.local_set_vol > 1000) { |
| | | this.local_set_vol = 1000; |
| | | } |
| | | if (this.local_set_vol < 0 || parseInt(this.local_set_vol) < 0 || parseInt(this.local_set_vol)) { |
| | | this.local_set_vol = 0; |
| | | } |
| | | Object.keys(this.groupInfo).forEach((v) => { |
| | | let param = { |
| | | num: 21, |
| | |
| | | padding: 10px; |
| | | line-height: 20px; |
| | | text-align: right; |
| | | align-items: center; |
| | | } |
| | | .cur_vol_set ._row label { |
| | | width: 8.4em; |
| | |
| | | align-items: center; |
| | | margin: 0 20px; |
| | | } |
| | | .input { |
| | | font-size: 14px; |
| | | width: 6em; |
| | | padding-right: .4em; |
| | | padding-left: .4em; |
| | | } |
| | | .input >>> input { |
| | | padding: 0 6px; |
| | | } |
| | | .upper_pulse_block { |
| | | -webkit-animation: flicker 0.6s infinite; |
| | | animation: flicker 0.6s infinite; |
| | |
| | | <div class="posA_full flexC_center"> |
| | | <div class="status flexR_center"> |
| | | <label>通讯状态:</label> |
| | | <div :class="['indicator', {'status_off': !1, 'status_normal': !0}]"></div> |
| | | <div :class="['indicator', {'status_off': !controlData[0 == key ? 'A' : 'B'].connectFlag, 'status_normal': controlData[0 == key ? 'A' : 'B'].connectFlag}]"></div> |
| | | </div> |
| | | <div class="info flexR_center" :class="{'upper_pulse_block': rtData[0 == key ? 'A' : 'B'].upper_pulse_block}">{{rtData[0 == key ? 'A' : 'B'].upper_pulse_block ? '脉冲封锁' : ''}}</div> |
| | | </div> |
| | |
| | | <div class="content"> |
| | | <div class="part_left"> |
| | | <div class="sub-title">4并恒压运行电压设置</div> |
| | | <div class="_row"><label>机组给定电压</label><span>{{local_set_vol}}</span>V</div> |
| | | <div class="_row"><label>机组给定电压</label><el-input class="input transparent" size="mini" type="number" v-model="local_set_vol"></el-input>V</div> |
| | | <div class="_row"><label>机组实际给定电压</label><span>{{real_set_vol}}</span>V</div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="volAdd(10)">+10</div> |
| | |
| | | |
| | | <div class="part_right"> |
| | | <div class="sub-title">4并恒流运行电流设置</div> |
| | | <div class="_row"><label>机组给定电流</label><span>{{local_set_cur}}</span>A</div> |
| | | <div class="_row"><label>机组给定电流</label><el-input class="input transparent" size="mini" type="number" v-model="local_set_cur"></el-input>A</div> |
| | | <div class="_row"><label>机组实际给定电流</label><span>{{real_set_cur}}</span>A</div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="curAdd(10)">+10</div> |
| | |
| | | alldccurr: 0, |
| | | A: { |
| | | controlangle: 0 |
| | | ,connectFlag: false |
| | | }, |
| | | B: { |
| | | controlangle: 0 |
| | | ,connectFlag: false |
| | | } |
| | | }, |
| | | tableData_A: [], |
| | |
| | | |
| | | }); |
| | | } |
| | | ,getConnect () { |
| | | this.$api.common.getConnect().then((res) => { |
| | | res = JSON.parse(res.data.result); |
| | | if (res.code) { |
| | | let data = res.data; |
| | | data.forEach((v) => { |
| | | if (6001 == v.dev_id) { |
| | | this.controlData.A.connectFlag = !!v.connect_en; |
| | | } |
| | | if (6002 == v.dev_id) { |
| | | this.controlData.B.connectFlag = !!v.connect_en; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | // 轮询 |
| | | ,loop () { |
| | | this.timer.start(() => { |
| | |
| | | this.getControlData('B'); |
| | | this.getAlarm(); |
| | | draw.update(can1, this.switchFlag, this.model); |
| | | this.getConnect(); |
| | | this.timer.open(); |
| | | }, 1000); |
| | | } |
| | | ,curAdd (val) { |
| | | if (this.local_set_cur > 1000) { |
| | | if (this.local_set_cur + val > 1000) { |
| | | return false; |
| | | } |
| | | this.local_set_cur += val; |
| | |
| | | this.local_set_cur -= val; |
| | | } |
| | | ,setCur () { |
| | | if (this.local_set_cur > 1000) { |
| | | this.local_set_cur = 1000; |
| | | } |
| | | if (this.local_set_cur < 0 || parseInt(this.local_set_cur) < 0 || parseInt(this.local_set_cur)) { |
| | | this.local_set_cur = 0; |
| | | } |
| | | Object.keys(this.groupInfo).forEach((v) => { |
| | | let param = { |
| | | num: 20, |
| | |
| | | }); |
| | | } |
| | | ,volAdd (val) { |
| | | if (this.local_set_vol > 1000) { |
| | | if (this.local_set_vol + val > 1000) { |
| | | return false; |
| | | } |
| | | this.local_set_vol += val; |
| | |
| | | this.local_set_vol -= val; |
| | | } |
| | | ,setVol () { |
| | | if (this.local_set_vol > 1000) { |
| | | this.local_set_vol = 1000; |
| | | } |
| | | if (this.local_set_vol < 0 || parseInt(this.local_set_vol) < 0 || parseInt(this.local_set_vol)) { |
| | | this.local_set_vol = 0; |
| | | } |
| | | Object.keys(this.groupInfo).forEach((v) => { |
| | | let param = { |
| | | num: 7, |
| | |
| | | padding: 10px; |
| | | line-height: 20px; |
| | | text-align: right; |
| | | align-items: center; |
| | | } |
| | | .cur_vol_set ._row label { |
| | | width: 8.4em; |
| | |
| | | align-items: center; |
| | | margin: 0 20px; |
| | | } |
| | | .input { |
| | | font-size: 14px; |
| | | width: 6em; |
| | | padding-right: .4em; |
| | | padding-left: .4em; |
| | | } |
| | | .input >>> input { |
| | | padding: 0 6px; |
| | | } |
| | | .upper_pulse_block { |
| | | -webkit-animation: flicker 0.6s infinite; |
| | | animation: flicker 0.6s infinite; |
| | |
| | | <div class="posA_full flexC_center"> |
| | | <div class="status flexR_center"> |
| | | <label>通讯状态:</label> |
| | | <div :class="['indicator', {'status_off': !1, 'status_normal': !0}]"></div> |
| | | <div :class="['indicator', {'status_off': !controlData[0 == key ? 'A' : 'B'].connectFlag, 'status_normal': controlData[0 == key ? 'A' : 'B'].connectFlag}]"></div> |
| | | </div> |
| | | <div class="info flexR_center" :class="{'upper_pulse_block': rtData[0 == key ? 'A' : 'B'].upper_pulse_block}">{{rtData[0 == key ? 'A' : 'B'].upper_pulse_block ? '脉冲封锁' : ''}}</div> |
| | | </div> |
| | |
| | | <div class="content"> |
| | | <div class="part_left"> |
| | | <div class="sub-title">4串恒压运行电压设置</div> |
| | | <div class="_row"><label>机组给定电压</label><span>{{local_set_vol}}</span>V</div> |
| | | <div class="_row"><label>机组给定电压</label><el-input class="input transparent" size="mini" type="number" v-model="local_set_vol"></el-input>V</div> |
| | | <div class="_row"><label>机组实际给定电压</label><span>{{real_set_vol}}</span>V</div> |
| | | <div class="_row"> |
| | | <div class="btn_3d" @click="volAdd(10)">+10</div> |
| | |
| | | alldccurr: 0, |
| | | A: { |
| | | controlangle: 0 |
| | | ,connectFlag: false |
| | | }, |
| | | B: { |
| | | controlangle: 0 |
| | | ,connectFlag: false |
| | | } |
| | | }, |
| | | tableData_A: [], |
| | |
| | | |
| | | }); |
| | | } |
| | | ,getConnect () { |
| | | this.$api.common.getConnect().then((res) => { |
| | | res = JSON.parse(res.data.result); |
| | | if (res.code) { |
| | | let data = res.data; |
| | | data.forEach((v) => { |
| | | if (6001 == v.dev_id) { |
| | | this.controlData.A.connectFlag = !!v.connect_en; |
| | | } |
| | | if (6002 == v.dev_id) { |
| | | this.controlData.B.connectFlag = !!v.connect_en; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | // 轮询 |
| | | ,loop () { |
| | | this.timer.start(() => { |
| | |
| | | this.getControlData('A'); |
| | | this.getControlData('B'); |
| | | this.getAlarm(); |
| | | this.getConnect(); |
| | | draw.update(can1, this.switchFlag, this.model); |
| | | this.timer.open(); |
| | | }, 1000); |
| | | } |
| | | ,volAdd (val) { |
| | | if (this.local_set_vol > 1000) { |
| | | if (this.local_set_vol + val > 1000) { |
| | | return false; |
| | | } |
| | | this.local_set_vol *= 1; |
| | | this.local_set_vol += val; |
| | | } |
| | | ,volSub (val) { |
| | |
| | | this.local_set_vol -= val; |
| | | } |
| | | ,setVol () { |
| | | if (this.local_set_vol > 1000) { |
| | | this.local_set_vol = 1000; |
| | | } |
| | | if (this.local_set_vol < 0 || parseInt(this.local_set_vol) < 0 || parseInt(this.local_set_vol)) { |
| | | this.local_set_vol = 0; |
| | | } |
| | | Object.keys(this.groupInfo).forEach((v) => { |
| | | let param = { |
| | | num: 21, |
| | |
| | | padding: 10px; |
| | | line-height: 20px; |
| | | text-align: right; |
| | | align-items: center; |
| | | } |
| | | .cur_vol_set ._row label { |
| | | width: 8.4em; |
| | |
| | | align-items: center; |
| | | margin: 0 20px; |
| | | } |
| | | .input { |
| | | font-size: 14px; |
| | | width: 6em; |
| | | padding-right: .4em; |
| | | padding-left: .4em; |
| | | } |
| | | .input >>> input { |
| | | padding: 0 6px; |
| | | } |
| | | .upper_pulse_block { |
| | | -webkit-animation: flicker 0.6s infinite; |
| | | animation: flicker 0.6s infinite; |
| | |
| | | <div class="content"> |
| | | <div class="row"> |
| | | <label>{{load.data.TLabel}}</label> |
| | | <el-input class="input transparent" disabled size="mini" type="number" v-model="load.data.TValue"></el-input> |
| | | <el-input class="input transparent" disabled size="mini" type="text" v-model="load.data.TValue"></el-input> |
| | | </div> |
| | | <div class="row"> |
| | | <label>{{load.data.PLabel}}</label> |
| | | <el-input class="input transparent" disabled size="mini" type="number" v-model="load.data.PValue"></el-input> |
| | | <el-input class="input transparent" disabled size="mini" type="text" v-model="load.data.PValue"></el-input> |
| | | </div> |
| | | <div class="row"> |
| | | <label>{{load.data.FLabel}}</label> |
| | | <el-input class="input transparent" disabled size="mini" type="number" v-model="load.data.FValue"></el-input> |
| | | <el-input class="input transparent" disabled size="mini" type="text" v-model="load.data.FValue"></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | :cssWidth="item.position.width" |
| | | :cssHeight="item.position.height" |
| | | :top="item.position.top" :left="item.position.left"> |
| | | <el-input class="input transparent" :class="{'alarm': item.alarm}" disabled type="number" v-model="item.value"></el-input> |
| | | <el-input class="input transparent" :class="{'alarm': item.alarm}" disabled type="text" v-model="item.value"></el-input> |
| | | </science-box> |
| | | <!-- 运行状态 --> |
| | | <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="content"> |
| | | <div class="row"> |
| | | <label>{{load.data.TLabel}}</label> |
| | | <el-input class="input transparent" disabled size="mini" type="number" v-model="load.data.TValue"></el-input> |
| | | <el-input class="input transparent" disabled size="mini" type="text" v-model="load.data.TValue"></el-input> |
| | | </div> |
| | | <div class="row"> |
| | | <label>{{load.data.PLabel}}</label> |
| | | <el-input class="input transparent" disabled size="mini" type="number" v-model="load.data.PValue"></el-input> |
| | | <el-input class="input transparent" disabled size="mini" type="text" v-model="load.data.PValue"></el-input> |
| | | </div> |
| | | <div class="row"> |
| | | <label>{{load.data.FLabel}}</label> |
| | | <el-input class="input transparent" disabled size="mini" type="number" v-model="load.data.FValue"></el-input> |
| | | <el-input class="input transparent" disabled size="mini" type="text" v-model="load.data.FValue"></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | :cssWidth="item.position.width" |
| | | :cssHeight="item.position.height" |
| | | :top="item.position.top" :left="item.position.left"> |
| | | <el-input class="input transparent" :class="{'alarm': item.alarm}" disabled type="number" v-model="item.value"></el-input> |
| | | <el-input class="input transparent" :class="{'alarm': item.alarm}" disabled type="text" v-model="item.value"></el-input> |
| | | </science-box> |
| | | <!-- 运行状态 --> |
| | | <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> |
| | |
| | | :cssWidth="item.position.width" |
| | | :cssHeight="item.position.height" |
| | | :top="item.position.top" :left="item.position.left"> |
| | | <el-input class="input transparent" :class="{'alarm': item.alarm}" disabled type="number" v-model="item.value"></el-input> |
| | | <el-input class="input transparent" :class="{'alarm': item.alarm}" disabled type="text" v-model="item.value"></el-input> |
| | | </science-box> |
| | | <!-- 运行状态 --> |
| | | <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> |