Merge remote-tracking branch 'origin/boardTest' into boardTest

boardTest
夜笙歌 3 weeks ago
commit 1df571b893

@ -25,8 +25,8 @@ export default {
return { return {
// WebSocket // WebSocket
websocket: null, websocket: null,
// websocketUrl: 'ws://10.42.0.1:7181/ws', websocketUrl: 'ws://10.42.0.1:7181/ws',
websocketUrl: 'ws://119.45.202.115:7181/ws', // websocketUrl: 'ws://119.45.202.115:7181/ws',
isWebSocketConnected: false, isWebSocketConnected: false,
reconnectTimer: null, reconnectTimer: null,
reconnectAttempts: 0, reconnectAttempts: 0,

@ -18,6 +18,8 @@
<!-- <el-tooltip content="文档地址" effect="dark" placement="bottom">--> <!-- <el-tooltip content="文档地址" effect="dark" placement="bottom">-->
<!-- <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />--> <!-- <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />-->
<!-- </el-tooltip>--> <!-- </el-tooltip>-->
<!-- 异常处理按钮 - 已注释改用全局处理 -->
<!--
<el-tooltip content="异常处理" class="right-menu-item hover-effect"> <el-tooltip content="异常处理" class="right-menu-item hover-effect">
<span <span
class="exceptionHandling" class="exceptionHandling"
@ -29,6 +31,7 @@
}} }}
</span> </span>
</el-tooltip> </el-tooltip>
-->
<!-- WebSocket连接状态指示器 - 已注释改用全局管理 --> <!-- WebSocket连接状态指示器 - 已注释改用全局管理 -->
<!-- <!--
@ -73,7 +76,8 @@
</el-dropdown> </el-dropdown>
</div> </div>
<!-- 告警对话框 --> <!-- 告警对话框 - 已注释改用全局处理 -->
<!--
<el-dialog <el-dialog
:title="alarmTitle" :title="alarmTitle"
:visible.sync="alarmOpen" :visible.sync="alarmOpen"
@ -81,7 +85,6 @@
append-to-body append-to-body
> >
<el-tabs v-model="activeTab" type="card"> <el-tabs v-model="activeTab" type="card">
<!-- 告警列表标签页 -->
<el-tab-pane label="告警列表" name="alarmList"> <el-tab-pane label="告警列表" name="alarmList">
<el-table <el-table
v-loading="alarmLoading" v-loading="alarmLoading"
@ -125,7 +128,6 @@
/> />
</el-tab-pane> </el-tab-pane>
<!-- 处置措施标签页 -->
<el-tab-pane label="处置措施" name="actionSteps" :disabled="!currentAlarmData"> <el-tab-pane label="处置措施" name="actionSteps" :disabled="!currentAlarmData">
<div v-if="currentAlarmData"> <div v-if="currentAlarmData">
<el-alert <el-alert
@ -155,12 +157,10 @@
<span class="step-title">{{ step.stepSequence }}</span> <span class="step-title">{{ step.stepSequence }}</span>
</div> </div>
<!-- 步骤描述 -->
<div class="step-description"> <div class="step-description">
<p>{{ step.description }}</p> <p>{{ step.description }}</p>
</div> </div>
<!-- 步骤图片 -->
<div v-if="step.stepImages && step.stepImages.length > 0" class="step-images"> <div v-if="step.stepImages && step.stepImages.length > 0" class="step-images">
<div class="images-title">参考图片</div> <div class="images-title">参考图片</div>
<div class="image-gallery"> <div class="image-gallery">
@ -176,7 +176,6 @@
</div> </div>
</div> </div>
<!-- 步骤备注 -->
<div v-if="step.remark" class="step-remark"> <div v-if="step.remark" class="step-remark">
<el-tag type="info" size="small">备注{{ step.remark }}</el-tag> <el-tag type="info" size="small">备注{{ step.remark }}</el-tag>
</div> </div>
@ -196,8 +195,10 @@
<el-button @click="closeDialog"> </el-button> <el-button @click="closeDialog"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
-->
<!-- 图片预览对话框 --> <!-- 图片预览对话框 - 已注释改用全局处理 -->
<!--
<el-dialog <el-dialog
title="图片预览" title="图片预览"
:visible.sync="imagePreviewVisible" :visible.sync="imagePreviewVisible"
@ -209,6 +210,7 @@
<img :src="previewImageUrl" style="max-width: 100%; max-height: 70vh;"/> <img :src="previewImageUrl" style="max-width: 100%; max-height: 70vh;"/>
</div> </div>
</el-dialog> </el-dialog>
-->
<!-- 实时告警弹窗 - 已注释使用全局弹窗代替 --> <!-- 实时告警弹窗 - 已注释使用全局弹窗代替 -->
<!-- <!--
@ -450,41 +452,42 @@ import Search from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git' import RuoYiGit from '@/components/RuoYi/Git'
import RuoYiDoc from '@/components/RuoYi/Doc' import RuoYiDoc from '@/components/RuoYi/Doc'
import settings from '@/settings' import settings from '@/settings'
import {handleExceptions, listRecordAlarmData} from '@/api/ems/record/recordAlarmData' // import {handleExceptions, listRecordAlarmData} from '@/api/ems/record/recordAlarmData' //
import {getEmsAlarmActionStepsByRuleId, getEmsAlarmActionStepsByAlarmInfo} from '@/api/ems/base/emsAlarmActionStep' // import {getEmsAlarmActionStepsByRuleId, getEmsAlarmActionStepsByAlarmInfo} from '@/api/ems/base/emsAlarmActionStep' //
// import {saveWebSocketAlarmData} from '@/api/ems/record/recordAlarmData' // // import {saveWebSocketAlarmData} from '@/api/ems/record/recordAlarmData' //
export default { export default {
dicts: ['alarm_type', 'alarm_status'], // dicts: ['alarm_type', 'alarm_status'], //
data() { data() {
return { return {
poolNameList: [], // -
poolName: '', // poolNameList: [],
alarmTitle: '异常处理', // poolName: '',
alarmOpen: false, // alarmTitle: '',
alarmLoading: false, // alarmOpen: false,
alarmDataList: [], // alarmLoading: false,
alarmDataTotal: 0, // alarmDataList: [],
// alarmDataTotal: 0,
// //
objIds: [], // objIds: [],
// //
single: true, // single: true,
// //
multiple: true, // multiple: true,
// //
queryParams: { // queryParams: {
pageNum: 1, // pageNum: 1,
pageSize: 10, // pageSize: 10,
alarmStatus: '1' // alarmStatus: '1'
}, // },
// //
currentAlarmData: null, // currentAlarmData: null,
showActionSteps: false, // showActionSteps: false,
actionSteps: [], // actionSteps: [],
actionStepsLoading: false, // actionStepsLoading: false,
activeTab: 'alarmList', // activeTab: 'alarmList',
imagePreviewVisible: false, // imagePreviewVisible: false,
previewImageUrl: '', // previewImageUrl: '',
// WebSocket - // WebSocket -
// realtimeAlarmDialog: false, // realtimeAlarmDialog: false,
@ -508,7 +511,8 @@ export default {
} }
}, },
created() { created() {
localStorage.setItem('this.alarmDataTotal', 0) // -
// localStorage.setItem('this.alarmDataTotal', 0)
// WebSocket - // WebSocket -
// this.$bus.$on('websocket-alarm-with-callback', this.handleQueuedRealtimeAlarm) // this.$bus.$on('websocket-alarm-with-callback', this.handleQueuedRealtimeAlarm)
@ -534,8 +538,8 @@ export default {
// } // }
}, },
mounted() { mounted() {
// WebSocket // -
this.getAlarmData() // this.getAlarmData()
// - // -
// this.queueStatusTimer = setInterval(() => { // this.queueStatusTimer = setInterval(() => {
@ -576,6 +580,8 @@ export default {
} }
}, },
methods: { methods: {
// -
/*
// //
openAlarm() { openAlarm() {
this.$notify({ this.$notify({
@ -594,7 +600,7 @@ export default {
) )
}) })
}, },
/** 报警列表 */ //
getAlarmData(open) { getAlarmData(open) {
this.alarmOpen = open this.alarmOpen = open
this.alarmLoading = true this.alarmLoading = true
@ -611,7 +617,7 @@ export default {
} }
}) })
}, },
/** 跳转处理 */ //
jumpProcessing(row) { jumpProcessing(row) {
if (this.objIds.length === 0) { if (this.objIds.length === 0) {
this.$modal.msgWarning('请勾选设备进行异常处理!') this.$modal.msgWarning('请勾选设备进行异常处理!')
@ -628,6 +634,7 @@ export default {
this.single = selection.length !== 1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
*/
toggleSideBar() { toggleSideBar() {
this.$store.dispatch('app/toggleSideBar') this.$store.dispatch('app/toggleSideBar')
}, },
@ -645,6 +652,8 @@ export default {
}).catch(() => { }).catch(() => {
}) })
}, },
// -
/*
handleRowClick(row) { handleRowClick(row) {
this.currentAlarmData = row this.currentAlarmData = row
this.activeTab = 'actionSteps' this.activeTab = 'actionSteps'
@ -673,6 +682,7 @@ export default {
this.alarmOpen = false this.alarmOpen = false
this.activeTab = 'alarmList' this.activeTab = 'alarmList'
}, },
*/
// URL // URL
getFullImageUrl(relativePath) { getFullImageUrl(relativePath) {
if (!relativePath) return ''; if (!relativePath) return '';

@ -41,10 +41,10 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="图片地址" prop="imageAddress"> <el-form-item label="图片" prop="imageAddress">
<el-input <el-input
v-model="queryParams.imageAddress" v-model="queryParams.imageAddress"
placeholder="请输入图片地址" placeholder="请输入图片"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -215,7 +215,7 @@
<el-table-column label="位置描述" align="center" prop="locationDescription" v-if="columns[3].visible"/> <el-table-column label="位置描述" align="center" prop="locationDescription" v-if="columns[3].visible"/>
<el-table-column label="来源" align="center" prop="source" v-if="columns[4].visible"/> <el-table-column label="来源" align="center" prop="source" v-if="columns[4].visible"/>
<el-table-column label="取电" align="center" prop="powerSource" v-if="columns[5].visible"/> <el-table-column label="取电" align="center" prop="powerSource" v-if="columns[5].visible"/>
<el-table-column label="图片地址" align="center" prop="imageAddress" width="100" v-if="columns[6].visible"> <el-table-column label="图片" align="center" prop="imageAddress" width="100" v-if="columns[6].visible">
<template slot-scope="scope"> <template slot-scope="scope">
<image-preview :src="scope.row.imageAddress" :width="50" :height="50"/> <image-preview :src="scope.row.imageAddress" :width="50" :height="50"/>
</template> </template>
@ -279,7 +279,7 @@
<el-form-item label="取电" prop="powerSource"> <el-form-item label="取电" prop="powerSource">
<el-input v-model="form.powerSource" placeholder="请输入取电" /> <el-input v-model="form.powerSource" placeholder="请输入取电" />
</el-form-item> </el-form-item>
<el-form-item label="图片地址" prop="imageAddress"> <el-form-item label="图片" prop="imageAddress">
<image-upload v-model="form.imageAddress"/> <image-upload v-model="form.imageAddress"/>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" prop="remarks">
@ -499,7 +499,7 @@
{ key: 3, label: `位置描述`, visible: true }, { key: 3, label: `位置描述`, visible: true },
{ key: 4, label: `来源`, visible: true }, { key: 4, label: `来源`, visible: true },
{ key: 5, label: `取电`, visible: true }, { key: 5, label: `取电`, visible: true },
{ key: 6, label: `图片地址`, visible: true }, { key: 6, label: `图片`, visible: true },
{ key: 7, label: `备注`, visible: true }, { key: 7, label: `备注`, visible: true },
{ key: 8, label: `第1次`, visible: true }, { key: 8, label: `第1次`, visible: true },
{ key: 9, label: `第2次`, visible: true }, { key: 9, label: `第2次`, visible: true },

@ -45,10 +45,10 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="图片地址" prop="imageAddress"> <el-form-item label="图片" prop="imageAddress">
<el-input <el-input
v-model="queryParams.imageAddress" v-model="queryParams.imageAddress"
placeholder="请输入图片地址" placeholder="请输入图片"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -224,7 +224,7 @@
</el-table-column> </el-table-column>
<el-table-column label="电池类型" align="center" prop="batteryType" v-if="columns[5].visible"> <el-table-column label="电池类型" align="center" prop="batteryType" v-if="columns[5].visible">
</el-table-column> </el-table-column>
<el-table-column label="图片地址" align="center" prop="imageAddress" width="100" v-if="columns[6].visible"> <el-table-column label="图片" align="center" prop="imageAddress" width="100" v-if="columns[6].visible">
<template slot-scope="scope"> <template slot-scope="scope">
<image-preview :src="scope.row.imageAddress" :width="50" :height="50"/> <image-preview :src="scope.row.imageAddress" :width="50" :height="50"/>
</template> </template>
@ -301,7 +301,7 @@
<el-form-item label="电池类型" prop="batteryType"> <el-form-item label="电池类型" prop="batteryType">
<el-input v-model="form.batteryType" placeholder="请输入电池类型" /> <el-input v-model="form.batteryType" placeholder="请输入电池类型" />
</el-form-item> </el-form-item>
<el-form-item label="图片地址" prop="imageAddress"> <el-form-item label="图片" prop="imageAddress">
<image-upload v-model="form.imageAddress"/> <image-upload v-model="form.imageAddress"/>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" prop="remarks">
@ -518,7 +518,7 @@
{ key: 3, label: `位置描述`, visible: true }, { key: 3, label: `位置描述`, visible: true },
{ key: 4, label: `取电`, visible: true }, { key: 4, label: `取电`, visible: true },
{ key: 5, label: `电池类型`, visible: true }, { key: 5, label: `电池类型`, visible: true },
{ key: 6, label: `图片地址`, visible: true }, { key: 6, label: `图片`, visible: true },
{ key: 7, label: `备注`, visible: true }, { key: 7, label: `备注`, visible: true },
{ key: 8, label: `第1次`, visible: true }, { key: 8, label: `第1次`, visible: true },
{ key: 9, label: `第2次`, visible: true }, { key: 9, label: `第2次`, visible: true },

Loading…
Cancel
Save