|
@@ -47,19 +47,25 @@
|
|
<a-table size="small" :scroll="{ y: 710 }" :columns="columns" :data-source="tableData" :pagination="pagination"
|
|
<a-table size="small" :scroll="{ y: 710 }" :columns="columns" :data-source="tableData" :pagination="pagination"
|
|
@change="pageChange">
|
|
@change="pageChange">
|
|
<template #action="{ record }">
|
|
<template #action="{ record }">
|
|
- <a-button v-if="!record.devInfoList" type="primary" style="margin-right:10px" :disabled="record.linkId != '0'" size="small"
|
|
|
|
|
|
+ <a-button v-if="!record.devInfoList" type="primary" :disabled="record.linkId != '0'" size="small"
|
|
@click="handlerunDeviceMonitor(record, '启动')">启动</a-button>
|
|
@click="handlerunDeviceMonitor(record, '启动')">启动</a-button>
|
|
- <a-button type="success" size="small" @click="handlerunDeviceMonitor(record, '编辑')">编辑</a-button>
|
|
|
|
|
|
+ <a-button type="success" size="small" style="margin: 0px 10px"
|
|
|
|
+ @click="handlerunDeviceMonitor(record, '编辑')">编辑</a-button>
|
|
|
|
+ <a-button type="primary" size="small" @click="debugClick(record)">{{ record.debugTitle
|
|
|
|
+ }}</a-button>
|
|
</template>
|
|
</template>
|
|
<template #bodyCell="{ column, text }">
|
|
<template #bodyCell="{ column, text }">
|
|
<template v-if="column.dataIndex === 'valueJc' && text">
|
|
<template v-if="column.dataIndex === 'valueJc' && text">
|
|
<div v-for="item in text.split(',')" :key="item">
|
|
<div v-for="item in text.split(',')" :key="item">
|
|
- <span v-if="item.substring(item.indexOf(':') + 1) && !isNaN(parseFloat(item.substring(item.indexOf(':') + 1)))"
|
|
|
|
|
|
+ <span
|
|
|
|
+ v-if="item.substring(item.indexOf(':') + 1) && !isNaN(parseFloat(item.substring(item.indexOf(':') + 1)))"
|
|
style="display: inline-block;width: 45%;text-align: right; color:rgb(0, 242, 255);margin-right:5px">{{
|
|
style="display: inline-block;width: 45%;text-align: right; color:rgb(0, 242, 255);margin-right:5px">{{
|
|
item.substring(0, item.indexOf(':') + 1) }}</span>
|
|
item.substring(0, item.indexOf(':') + 1) }}</span>
|
|
- <span v-if="item.substring(item.indexOf(':') + 1) && !isNaN(parseFloat(item.substring(item.indexOf(':') + 1)))"
|
|
|
|
|
|
+ <span
|
|
|
|
+ v-if="item.substring(item.indexOf(':') + 1) && !isNaN(parseFloat(item.substring(item.indexOf(':') + 1)))"
|
|
style="display: inline-block; width:50%;text-align: left; color:#fff">{{
|
|
style="display: inline-block; width:50%;text-align: left; color:#fff">{{
|
|
- item.substring(item.indexOf(':') + 1)==='1' ? '正风' : item.substring(item.indexOf(':') + 1)==='2' ? '反风' : item.substring(item.indexOf(':') + 1) }} </span>
|
|
|
|
|
|
+ item.substring(item.indexOf(':') + 1) === '1' ? '正风' : item.substring(item.indexOf(':') + 1) === '2' ?
|
|
|
|
+ '反风' : item.substring(item.indexOf(':') + 1) }} </span>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -70,7 +76,7 @@
|
|
@cancel="handleCancel">
|
|
@cancel="handleCancel">
|
|
<a-form :model="startupData" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
|
<a-form :model="startupData" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
|
<a-form-item label="安装位置">
|
|
<a-form-item label="安装位置">
|
|
- <a-input v-model:value="startupData.address" placeholder="请输入" style="width: 260px" />
|
|
|
|
|
|
+ <a-input v-model:value="startupData.address" placeholder="请输入" style="width: 260px" />
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</a-form>
|
|
</a-form>
|
|
</a-modal>
|
|
</a-modal>
|
|
@@ -79,7 +85,22 @@
|
|
@ok="handleOkEdit" @cancel="handleCancelEdit">
|
|
@ok="handleOkEdit" @cancel="handleCancelEdit">
|
|
<a-form :model="startupDataEdit" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
|
<a-form :model="startupDataEdit" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
|
<a-form-item label="安装位置">
|
|
<a-form-item label="安装位置">
|
|
- <a-input v-model:value="startupDataEdit.address" placeholder="请输入" style="width: 260px" />
|
|
|
|
|
|
+ <a-input v-model:value="startupDataEdit.address" placeholder="请输入" style="width: 260px" />
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </a-form>
|
|
|
|
+ </a-modal>
|
|
|
|
+ <!-- 调试弹窗 -->
|
|
|
|
+ <a-modal style="top:300px;left:360px" v-model:visible="visibleModalDebug" :width="450" title="调试信息"
|
|
|
|
+ @ok="handleOkDebug" @cancel="handleCancelDebug">
|
|
|
|
+ <a-form :model="startupDataDebug" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
|
|
|
+ <a-form-item label="风速">
|
|
|
|
+ <a-input v-model:value="startupDataDebug.speed" placeholder="请输入" style="width: 260px" />
|
|
|
|
+ </a-form-item>
|
|
|
|
+ <a-form-item label="风向">
|
|
|
|
+ <a-select v-model:value="startupDataDebug.direction" style="width: 260px">
|
|
|
|
+ <a-select-option v-for="file in derictList" :key="file.label" :value="file.value">{{ file.label
|
|
|
|
+ }}</a-select-option>
|
|
|
|
+ </a-select>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</a-form>
|
|
</a-form>
|
|
</a-modal>
|
|
</a-modal>
|
|
@@ -91,9 +112,21 @@
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import { ref, nextTick, reactive, onMounted, onUnmounted } from 'vue';
|
|
import { ref, nextTick, reactive, onMounted, onUnmounted } from 'vue';
|
|
import customHeader from '/@/components/vent/customHeader.vue';
|
|
import customHeader from '/@/components/vent/customHeader.vue';
|
|
-import { subStationList, getList, getEdit, runDeviceMonitor, update158DevName } from './safetyList.api';
|
|
|
|
|
|
+import { subStationList, getList, getEdit, runDeviceMonitor, update158DevName, updateDebugStatus } from './safetyList.api';
|
|
import { columns } from './safetyList.data'
|
|
import { columns } from './safetyList.data'
|
|
|
|
|
|
|
|
+let visibleModalDebug = ref(false)
|
|
|
|
+let debugFlag = ref('')
|
|
|
|
+let debugStationId = ref('')
|
|
|
|
+let debugDeviceId = ref('')
|
|
|
|
+let startupDataDebug = reactive({
|
|
|
|
+ speed: '',
|
|
|
|
+ direction: '',
|
|
|
|
+})
|
|
|
|
+let derictList = reactive<any[]>([
|
|
|
|
+ { label: '正向', value: '1' },
|
|
|
|
+ { label: '反向', value: '0' }
|
|
|
|
+])
|
|
let paramId = ref('')
|
|
let paramId = ref('')
|
|
let isShow = ref(false)
|
|
let isShow = ref(false)
|
|
let stationName = ref('')
|
|
let stationName = ref('')
|
|
@@ -131,25 +164,25 @@ let startupDataEdit = reactive({
|
|
address: ''
|
|
address: ''
|
|
})
|
|
})
|
|
|
|
|
|
-// https获取监测数据
|
|
|
|
-let timer: null | NodeJS.Timeout = null;
|
|
|
|
-function getMonitor(flag = false) {
|
|
|
|
- timer = setTimeout(
|
|
|
|
- async () => {
|
|
|
|
- // await getSubStationList()
|
|
|
|
- await getStationList()
|
|
|
|
- if (timer) {
|
|
|
|
- timer = null;
|
|
|
|
- }
|
|
|
|
- getMonitor();
|
|
|
|
- },
|
|
|
|
- flag ? 0 : 5000
|
|
|
|
- );
|
|
|
|
-}
|
|
|
|
|
|
+
|
|
|
|
+// // https获取监测数据
|
|
|
|
+// let timer: null | NodeJS.Timeout = null;
|
|
|
|
+// function getMonitor(flag = false) {
|
|
|
|
+// timer = setTimeout(
|
|
|
|
+// async () => {
|
|
|
|
+// // await getSubStationList()
|
|
|
|
+// await getStationList()
|
|
|
|
+// if (timer) {
|
|
|
|
+// timer = null;
|
|
|
|
+// }
|
|
|
|
+// getMonitor();
|
|
|
|
+// },
|
|
|
|
+// flag ? 0 : 5000
|
|
|
|
+// );
|
|
|
|
+// }
|
|
//获取分站信息
|
|
//获取分站信息
|
|
async function getSubStationList() {
|
|
async function getSubStationList() {
|
|
let res = await subStationList({ strtype: "modbus" })
|
|
let res = await subStationList({ strtype: "modbus" })
|
|
- console.log(res, '分站-----------')
|
|
|
|
if (res.length != 0) {
|
|
if (res.length != 0) {
|
|
cardList.value = res
|
|
cardList.value = res
|
|
openNum.value = cardList.value?.filter(v => v.linkstatus == 1)['length']
|
|
openNum.value = cardList.value?.filter(v => v.linkstatus == 1)['length']
|
|
@@ -160,7 +193,6 @@ async function getSubStationList() {
|
|
}
|
|
}
|
|
//站点选项点击
|
|
//站点选项点击
|
|
function cardClick(item, index) {
|
|
function cardClick(item, index) {
|
|
- console.log(item, '站点选项------------')
|
|
|
|
activeIndex.value = item.isNewAccess ? index : null
|
|
activeIndex.value = item.isNewAccess ? index : null
|
|
stationName.value = item.strname
|
|
stationName.value = item.strname
|
|
stationStatus.value = item.linkstatus
|
|
stationStatus.value = item.linkstatus
|
|
@@ -178,21 +210,21 @@ function changeStatus(val) {
|
|
}
|
|
}
|
|
async function getChangeStation() {
|
|
async function getChangeStation() {
|
|
let res = await getEdit({ id: stationId.value, strname: stationName.value, linkstatus: stationStatus.value })
|
|
let res = await getEdit({ id: stationId.value, strname: stationName.value, linkstatus: stationStatus.value })
|
|
- console.log(res, '站点编辑')
|
|
|
|
getSubStationList()
|
|
getSubStationList()
|
|
isShow.value = false
|
|
isShow.value = false
|
|
}
|
|
}
|
|
//获取详细信息列表
|
|
//获取详细信息列表
|
|
async function getStationList() {
|
|
async function getStationList() {
|
|
let res = await getList({ subId: stationId.value, pageNo: pagination.current, pageSize: pagination.pageSize, })
|
|
let res = await getList({ subId: stationId.value, pageNo: pagination.current, pageSize: pagination.pageSize, })
|
|
- console.log(res, '详细信息列表--------')
|
|
|
|
res.forEach(el => {
|
|
res.forEach(el => {
|
|
el.key = el.id
|
|
el.key = el.id
|
|
el.linkstatusC = el.linkstatus ? '连接' : '未连接'
|
|
el.linkstatusC = el.linkstatus ? '连接' : '未连接'
|
|
|
|
+ el.debugTitle = '调试'
|
|
el.children = el.devInfoList
|
|
el.children = el.devInfoList
|
|
el.children.forEach(v => {
|
|
el.children.forEach(v => {
|
|
v.key = v.id
|
|
v.key = v.id
|
|
v.linkstatus = v.linkId
|
|
v.linkstatus = v.linkId
|
|
|
|
+ v.debugTitle = '调试'
|
|
v.linkstatusC = v.linkstatus == '0' ? '待启用' : v.linkstatus == '1' ? '连接' : '断开'
|
|
v.linkstatusC = v.linkstatus == '0' ? '待启用' : v.linkstatus == '1' ? '连接' : '断开'
|
|
v.updateTime = v.time
|
|
v.updateTime = v.time
|
|
v.valueJc = `风向:${v.forward || ''},风量:${v.m3 || ''}m³/min,风速:${v.windSpeed || ''}m/s,气压:${v.difPress || ''}Pa,温度:${v.temperature || ''}℃,湿度:${v.humidity || ''}%,断面积:${v.area || ''}㎡`
|
|
v.valueJc = `风向:${v.forward || ''},风量:${v.m3 || ''}m³/min,风速:${v.windSpeed || ''}m/s,气压:${v.difPress || ''}Pa,温度:${v.temperature || ''}℃,湿度:${v.humidity || ''}%,断面积:${v.area || ''}㎡`
|
|
@@ -223,9 +255,92 @@ function handlerunDeviceMonitor(record, val) {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+//分站,设备调试
|
|
|
|
+function debugClick(record) {
|
|
|
|
+ if (record.debugTitle == '调试') {
|
|
|
|
+ //正在调试中
|
|
|
|
+ startupDataDebug.speed = ''
|
|
|
|
+ startupDataDebug.direction = ''
|
|
|
|
+ visibleModalDebug.value = true
|
|
|
|
+ if (record.devInfoList) {
|
|
|
|
+ debugFlag.value = 'station'
|
|
|
|
+ debugStationId.value = record.id
|
|
|
|
+ tableData.value.forEach(el => {
|
|
|
|
+ el.debugTitle = '结束调试'
|
|
|
|
+ el.devInfoList.forEach(v => {
|
|
|
|
+ v.debugTitle = '结束调试'
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ debugFlag.value = 'device'
|
|
|
|
+ debugDeviceId.value = record.id
|
|
|
|
+ tableData.value.forEach(el => {
|
|
|
|
+ el.devInfoList.forEach(v => {
|
|
|
|
+ if (v.id == debugDeviceId.value) {
|
|
|
|
+ debugStationId.value = el.id
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ record.debugTitle = '结束调试'
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (record.devInfoList) {
|
|
|
|
+ debugFlag.value = 'station'
|
|
|
|
+ debugStationId.value = record.id
|
|
|
|
+ tableData.value.forEach(el => {
|
|
|
|
+ el.debugTitle = '调试'
|
|
|
|
+ el.devInfoList.forEach(v => {
|
|
|
|
+ v.debugTitle = '调试'
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ stopDebug()
|
|
|
|
+ } else {
|
|
|
|
+ debugFlag.value = 'device'
|
|
|
|
+ debugDeviceId.value = record.id
|
|
|
|
+ tableData.value.forEach(el => {
|
|
|
|
+ el.devInfoList.forEach(v => {
|
|
|
|
+ if (v.id == debugDeviceId.value) {
|
|
|
|
+ debugStationId.value = el.id
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ record.debugTitle = '调试'
|
|
|
|
+ stopDebug()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+//调试确认
|
|
|
|
+async function handleOkDebug() {
|
|
|
|
+ if (debugFlag.value == 'station') {
|
|
|
|
+ let res = await updateDebugStatus({ stationId: debugStationId.value, speed: startupDataDebug.speed, direction: startupDataDebug.direction, debugFlag: '1' })
|
|
|
|
+ visibleModalDebug.value = false
|
|
|
|
+ getStationList()
|
|
|
|
+ } else {
|
|
|
|
+ let res = await updateDebugStatus({ stationId: debugStationId.value, deviceId: debugDeviceId.value, speed: startupDataDebug.speed, direction: startupDataDebug.direction, debugFlag: '1' })
|
|
|
|
+ visibleModalDebug.value = false
|
|
|
|
+ getStationList()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+//调试取消
|
|
|
|
+function handleCancelDebug() {
|
|
|
|
+ visibleModalDebug.value = false
|
|
|
|
+ debugFlag.value = ''
|
|
|
|
+ debugStationId.value = ''
|
|
|
|
+ debugDeviceId.value = ''
|
|
|
|
+}
|
|
|
|
+//停止调试
|
|
|
|
+async function stopDebug() {
|
|
|
|
+ if (debugFlag.value == 'station') {
|
|
|
|
+ let res = await updateDebugStatus({ stationId: debugStationId.value, debugFlag: '0' })
|
|
|
|
+ getStationList()
|
|
|
|
+ } else {
|
|
|
|
+ let res = await updateDebugStatus({ stationId: debugStationId.value, deviceId: debugDeviceId.value, debugFlag: '0' })
|
|
|
|
+ getStationList()
|
|
|
|
+ }
|
|
|
|
+}
|
|
async function handleOk() {
|
|
async function handleOk() {
|
|
let res = await runDeviceMonitor({ devId: devId.value, devName: startupData.address })
|
|
let res = await runDeviceMonitor({ devId: devId.value, devName: startupData.address })
|
|
- console.log(res, '新设备启动---')
|
|
|
|
visibleModal.value = false
|
|
visibleModal.value = false
|
|
getStationList();
|
|
getStationList();
|
|
}
|
|
}
|
|
@@ -255,7 +370,8 @@ function handleCancelEdit() {
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
getSubStationList()
|
|
getSubStationList()
|
|
- getMonitor(true);
|
|
|
|
|
|
+ // getMonitor(true);
|
|
|
|
+ getStationList()
|
|
})
|
|
})
|
|
onUnmounted(() => {
|
|
onUnmounted(() => {
|
|
if (timer) {
|
|
if (timer) {
|