Browse Source

分站监测详情单独拆分提交

lxh 3 months ago
parent
commit
0b91a4f40c
1 changed files with 531 additions and 0 deletions
  1. 531 0
      src/views/vent/safetyList/common/detail-cl.vue

+ 531 - 0
src/views/vent/safetyList/common/detail-cl.vue

@@ -0,0 +1,531 @@
+<template>
+    <div class="safetyList">
+        <div class="content">
+            <div class="box-content">
+                <!-- 监测详情 -->
+                <div class="detail-content">
+                    <a-table size="small" :scroll="{ y: 710 }" :columns="columnsDetail" :data-source="tableData1">
+                        <template #action="{ record }">
+                            <a-button type="primary" size="small" @click="handleEdit(record)">编辑</a-button>
+                        </template>
+                        <template #bodyCell="{ column, text }"></template>
+                    </a-table>
+                    <!-- 编辑弹窗 -->
+                    <a-modal v-model:visible="visibleModalEdit1" :width="1100"
+                        :bodyStyle="{ display: 'flex', height: '680px', 'overflow-y': 'auto', 'margin-bottom': '15px' }"
+                        title="编辑信息" :footer="null">
+
+                        <a-form :model="formView" labelAlign="right" :label-col="{ span: 8 }"
+                            :wrapper-col="{ span: 16 }">
+                            <a-form-item label="第一路风速风向:">
+                                <a-input v-model:value="formView.dylfsfx" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="第一路报警状态:">
+                                <a-input v-model:value="formView.dylbjzt" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="第一路1发2收AD值:">
+                                <a-input v-model:value="formView.dyl1f2sADz" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="第一路2发1收AD值:">
+                                <a-input v-model:value="formView.dyl2f1sADz" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="通风量:">
+                                <a-input v-model:value="formView.tfl" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="硬件版本:">
+                                <a-input v-model:value="formView.yjbb" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="软件版本:">
+                                <a-input v-model:value="formView.rjbb" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="在线离线标志:">
+                                <a-input v-model:value="formView.zxlxbz" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="日期和时间:">
+                                <a-input v-model:value="formView.rqsj" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                        </a-form>
+
+
+                        <a-form :model="formEdit" labelAlign="right" :label-col="{ span: 7 }"
+                            :wrapper-col="{ span: 17 }">
+                            <a-form-item label="传感器设备:">
+                                <a-select v-model:value="formEdit.cgq" style="width: 260px;margin-right: 10px;">
+                                    <a-select-option v-for="file in cgqList" :key="file.label" :value="file.value">{{
+                                        file.label }}</a-select-option>
+                                </a-select>
+                                <a-button type="success" @click="getMonitor">读取</a-button>
+                            </a-form-item>
+                            <a-form-item label="RS485_MODBUS地址:">
+                                <a-input v-model:value="formEdit.rs485modbusdz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('RS485_MODBUS地址')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="探头安装距离:">
+                                <a-input v-model:value="formEdit.ttazjl" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('探头安装距离')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="基线距离:">
+                                <a-input v-model:value="formEdit.jxjl" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('基线距离')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="安装角度:">
+                                <a-input v-model:value="formEdit.azjd" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('安装角度')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="设置时长:">
+                                <a-input v-model:value="formEdit.szsz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('设置时长')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="数据平均周期:">
+                                <a-input v-model:value="formEdit.sjpjzq" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('数据平均周期')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路一发二收PG值:">
+                                <a-input v-model:value="formEdit.dylyfesPGz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路一发二收PG值')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路二发一收PG值:">
+                                <a-input v-model:value="formEdit.dylefysPGz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路二发一收PG值')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="风道截面积:">
+                                <a-input v-model:value="formEdit.fdjmj" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('风道截面积')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路整体系数k:">
+                                <a-input v-model:value="formEdit.dylztxsk" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路整体系数k')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第一段系数:">
+                                <a-input v-model:value="formEdit.dyldydxs1" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第一段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第二段系数:">
+                                <a-input v-model:value="formEdit.dyldedxs2" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第二段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第三段系数:">
+                                <a-input v-model:value="formEdit.dyldsdxs3" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第三段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第四段系数:">
+                                <a-input v-model:value="formEdit.dyldsdxs4" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第四段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第五段系数:">
+                                <a-input v-model:value="formEdit.dyldwdxs5" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第五段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第六段系数:">
+                                <a-input v-model:value="formEdit.dyldldxs6" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第六段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="系数KB:">
+                                <a-input v-model:value="formEdit.xsKB" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('系数KB')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="系数KB符号:">
+                                <a-input v-model:value="formEdit.xsKBfh" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('系数KB符号')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="高报警阈值:">
+                                <a-input v-model:value="formEdit.gbjyz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('高报警阈值')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="低报警阈值:">
+                                <a-input v-model:value="formEdit.dbjyz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('低报警阈值')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="报警使能:">
+                                <a-input v-model:value="formEdit.bjsn" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('报警使能')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路485波特率:">
+                                <a-input v-model:value="formEdit.dyl485btl" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路485波特率')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="四个字节保存密码:">
+                                <a-input v-model:value="formEdit.sgzjbcmm" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('四个字节保存密码')">下发</a-button>
+                            </a-form-item>
+                        </a-form>
+
+
+                    </a-modal>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref, nextTick, reactive, onMounted, onUnmounted } from 'vue';
+import {  get158StationData, set158StationData, get158StationDevices, set158StationRead } from '../safetyList.api';
+import { columnsDetail } from '../safetyList.data'
+
+let tableData1 = ref<any[]>([])
+let visibleModalEdit1 = ref(false)
+let formEdit = reactive({
+    id: '',
+    cgq: '',
+    rs485modbusdz: '',
+    ttazjl: '',
+    jxjl: '',
+    azjd: '',
+    szsz: '',
+    sjpjzq: '',
+    dylyfesPGz: '',
+    dylefysPGz: '',
+    fdjmj: '',
+    dylztxsk: '',
+    dyldydxs1: '',
+    dyldedxs2: '',
+    dyldsdxs3: '',
+    dyldsdxs4: '',
+    dyldwdxs5: '',
+    dyldldxs6: '',
+    xsKB: '',
+    xsKBfh: '',
+    gbjyz: '',
+    dbjyz: '',
+    bjsn: '',
+    dyl485btl: '',
+    sgzjbcmm: '',
+})
+let formView = reactive({
+    dylfsfx: '',
+    dylbjzt: '',
+    dyl1f2sADz: '',
+    dyl2f1sADz: '',
+    tfl: '',
+    yjbb: '',
+    rjbb: '',
+    zxlxbz: '',
+    rqsj: '',
+})
+let cgqList = reactive<any[]>([])
+let devStationId = ref('')
+
+//读取分站设备下拉选项数据
+let timer: null | NodeJS.Timeout = null;
+function getMonitor(flag = false) {
+    timer = setTimeout(
+        async () => {
+            await getDeviceList()
+            if (timer) {
+                timer = null;
+            }
+            getMonitor();
+        },
+        flag ? 0 : 3000
+    );
+}
+let timer1: null | NodeJS.Timeout = null;
+function getMonitor1(flag = false) {
+    timer1 = setTimeout(
+        async () => {
+            await getStationList()
+            if (timer1) {
+                timer1 = null;
+            }
+            getMonitor1();
+        },
+        flag ? 0 : 5000
+    );
+}
+async function getDeviceList() {
+    let res = await set158StationRead({ stationId: devStationId.value, deviceId: formEdit.cgq })
+    if (res) {
+        let data = await get158StationData()
+        let list = data.filter(v => v.stationId == devStationId.value)[0]
+        formView = {
+            dylfsfx: list.dylfsfx,
+            dylbjzt: list.dylbjzt,
+            dyl1f2sADz: list.dyl1f2sADz,
+            dyl2f1sADz: list.dyl2f1sADz,
+            tfl: list.tfl,
+            yjbb: list.yjbb,
+            rjbb: list.rjbb,
+            zxlxbz: list.zxlxbz,
+            rqsj: list.rqsj,
+        }
+    }
+}
+//获取详细信息列表
+async function getStationList() {
+    let res = await get158StationData()
+    tableData1.value = res
+}
+
+//编辑
+async function handleEdit(record) {
+    cgqList.length = 0
+    visibleModalEdit1.value = true
+    devStationId.value = record.stationId
+    formEdit = {
+        id: '',
+        cgq: '',
+        rs485modbusdz: '',
+        ttazjl: '',
+        jxjl: '',
+        azjd: '',
+        szsz: '',
+        sjpjzq: '',
+        dylyfesPGz: '',
+        dylefysPGz: '',
+        fdjmj: '',
+        dylztxsk: '',
+        dyldydxs1: '',
+        dyldedxs2: '',
+        dyldsdxs3: '',
+        dyldsdxs4: '',
+        dyldwdxs5: '',
+        dyldldxs6: '',
+        xsKB: '',
+        xsKBfh: '',
+        gbjyz: '',
+        dbjyz: '',
+        bjsn: '',
+        dyl485btl: '',
+        sgzjbcmm: '',
+    }
+    let res = await get158StationDevices({ stationId: devStationId.value })
+    console.log(res, '分站下设备下拉选项-------------')
+    if (res.length != 0) {
+        res.forEach(el => {
+            cgqList.push({ label: el.strinstallpos, value: el.id })
+        })
+    }
+}
+
+//下发
+async function handleClick(data) {
+    switch (data) {
+        case 'RS485_MODBUS地址':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'rs485modbusdz', value: formEdit.rs485modbusdz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '探头安装距离':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'ttazjl', value: formEdit.ttazjl })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '基线距离':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'jxjl', value: formEdit.jxjl })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '安装角度':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'azjd', value: formEdit.azjd })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '设置时长':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'szsz', value: formEdit.szsz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '数据平均周期':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'sjpjzq', value: formEdit.sjpjzq })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路一发二收PG值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dylyfesPGz', value: formEdit.dylyfesPGz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路二发一收PG值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dylefysPGz', value: formEdit.dylefysPGz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '风道截面积':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'fdjmj', value: formEdit.fdjmj })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路整体系数k':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dylztxsk', value: formEdit.dylztxsk })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第一段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldydxs1', value: formEdit.dyldydxs1 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第二段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldedxs2', value: formEdit.dyldedxs2 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第三段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldsdxs3', value: formEdit.dyldsdxs3 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第四段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldsdxs4', value: formEdit.dyldsdxs4 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第五段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldwdxs5', value: formEdit.dyldwdxs5 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第六段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldldxs6', value: formEdit.dyldldxs6 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '系数KB':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'xsKB', value: formEdit.xsKB })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '系数KB符号':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'xsKBfh', value: formEdit.xsKBfh })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '高报警阈值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'gbjyz', value: formEdit.gbjyz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '低报警阈值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dbjyz', value: formEdit.dbjyz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '报警使能':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'bjsn', value: formEdit.bjsn })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路485波特率':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyl485btl', value: formEdit.dyl485btl })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '四个字节保存密码':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'sgzjbcmm', value: formEdit.sgzjbcmm })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+    }
+}
+
+
+onMounted(() => {
+    getStationList()
+    getMonitor1()
+})
+onUnmounted(() => {
+    if (timer) {
+        clearTimeout(timer);
+        timer = undefined;
+    }
+    if(timer1){
+        clearTimeout(timer1);
+        timer1 = undefined;
+    }
+});
+</script>
+
+<style lang="less" scoped>
+.safetyList {
+    width: calc(100% - 20px);
+    height: calc(100% - 70px);
+    position: relative;
+    margin:10px;
+
+    .content {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        .box-content {
+            height: 100%;
+            .detail-content {
+                width: 100%;
+                height: 100%;
+            }
+        }
+    }
+}
+
+
+.zxm-form {
+    width: 50%;
+    height: 100%;
+    padding-top: 20px !important;
+    box-sizing: border-box;
+}
+
+
+::v-deep(.zxm-radio-wrapper) {
+    font-size: 12px;
+}
+
+::v-deep(.zxm-input) {
+    font-size: 12px;
+}
+
+::v-deep(.zxm-select:not(.zxm-select-customize-input) .zxm-select-selector) {
+    border: 1px solid #3ad8ff77 !important;
+    background-color: #ffffff00 !important;
+}
+
+::v-deep(.zxm-select-selection-item) {
+    color: #fff !important;
+}
+
+
+
+.zxm-picker,
+.zxm-input {
+    border: 1px solid #3ad8ff77 !important;
+    background-color: #ffffff00 !important;
+    color: #fff !important;
+}
+</style>
+<style>
+div[aria-hidden="true"] {
+    display: none !important
+}
+</style>