Kaynağa Gözat

分站监测详情界面修改-提交

lxh 3 ay önce
ebeveyn
işleme
c9b67f75de

+ 396 - 124
src/views/vent/safetyList/common/detail.vue

@@ -116,74 +116,186 @@
                 </div>
                 <!-- 监测详情 -->
                 <div class="detail-content" v-if="activeKey == 'manageAuto'">
-                    <div class="search-area">
-                        <span style="color:#fff">分站:</span>
-                        <a-select v-model:value="searchStationId" style="width: 240px;margin-right: 10px;">
-                            <a-select-option v-for="file in stationList" :key="file.label" :value="file.value">{{
-                                file.label }}</a-select-option>
-                        </a-select>
-                        <a-button type="primary" preIcon="ant-design:search-outlined" style="margin-right: 15px"
-                            @click="getSearch">查询</a-button>
-                        <a-button preIcon="ant-design:sync-outlined" @click="getReset">重置</a-button>
-                    </div>
-                    <a-table size="small" :scroll="{ y: 680 }" :columns="columnsDetail" :data-source="tableData1">
+                    <!-- <a-button preIcon="ant-design:sync-outlined" @click="visibleModalEdit1 = true">重置</a-button> -->
+                    <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" centered :width="650" title="编辑信息" :footer="null">
-                        <a-form :model="formEdit" labelAlign="right" :label-col="{ span: 7 }"
-                            :wrapper-col="{ span: 17 }">
-                            <a-form-item label="软件版本:">
-                                <a-input v-model:value="formEdit.rjbb" placeholder="请输入"
+                    <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-button type="primary" @click="handleClick('软件版本')">下发</a-button>
                             </a-form-item>
                             <a-form-item label="硬件版本:">
-                                <a-input v-model:value="formEdit.yjbb" placeholder="请输入"
+                                <a-input v-model:value="formView.yjbb" placeholder="请输入" disabled
                                     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.dcedrl" placeholder="请输入"
+                            <a-form-item label="软件版本:">
+                                <a-input v-model:value="formView.rjbb" placeholder="请输入" disabled
                                     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.sgzjbcmm" placeholder="请输入"
+                            <a-form-item label="在线离线标志:">
+                                <a-input v-model:value="formView.zxlxbz" placeholder="请输入" disabled
                                     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="请输入"
+                            <a-form-item label="日期和时间:">
+                                <a-input v-model:value="formView.rqsj" placeholder="请输入" disabled
                                     style="width: 260px;margin-right: 10px;" />
-                                <a-button type="primary" @click="handleClick('第一路485波特率')">下发</a-button>
                             </a-form-item>
-                            <a-form-item label="维护性放电:">
-                                <a-select v-model:value="formEdit.whxfd" style="width: 260px;margin-right: 10px;">
-                                    <a-select-option v-for="file in whxfdList" :key="file.label" :value="file.value">{{
+                        </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="primary" @click="handleClick('维护性放电')">下发</a-button>
+                                <a-button type="success" @click="getMonitor">读取</a-button>
                             </a-form-item>
-                            <a-form-item label="近程断电控制1:">
-                                <a-select v-model:value="formEdit.jcddkz1" style="width: 260px;margin-right: 10px;">
-                                    <a-select-option v-for="file in jcddkzList" :key="file.label" :value="file.value">{{
-                                        file.label }}</a-select-option>
-                                </a-select>
-                                <a-button type="primary" @click="handleClick('近程断电控制1')">下发</a-button>
+                            <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="近程断电控制2:">
-                                <a-select v-model:value="formEdit.jcddkz2" style="width: 260px;margin-right: 10px;">
-                                    <a-select-option v-for="file in jcddkzList" :key="file.label" :value="file.value">{{
-                                        file.label }}</a-select-option>
-                                </a-select>
-                                <a-button type="primary" @click="handleClick('近程断电控制2')">下发</a-button>
+                            <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>
@@ -193,7 +305,7 @@
 
 <script setup lang="ts">
 import { ref, nextTick, reactive, onMounted, onUnmounted } from 'vue';
-import { subStationList, getList, getEdit, runDeviceMonitor, update158DevName, updateDebugStatus, get158StationData, set158StationData } from '../safetyList.api';
+import { subStationList, getList, getEdit, runDeviceMonitor, update158DevName, updateDebugStatus, get158StationData, set158StationData, get158StationDevices, set158StationRead } from '../safetyList.api';
 import { columnsDetail, columns } from '../safetyList.data'
 import customHeader from '/@/components/vent/customHeader.vue';
 
@@ -222,31 +334,46 @@ let pagination = reactive({
     pageSizeOptions: ['10', '20', '30', '40', '50', '100'], // 可选的每页显示条数
 });
 let visibleModalEdit = ref(false)
-let visibleModalEdit1=ref(false)
+let visibleModalEdit1 = ref(false)
 let formEdit = reactive({
     id: '',
-    rs: '',
-    fm: '',
-    ny: '',
-    rjbb: '',
-    yjbb: '',
-    sgzjbcmm: '',
+    cgq: '',
+    rs485modbusdz: '',
+    ttazjl: '',
+    jxjl: '',
+    azjd: '',
+    szsz: '',
+    sjpjzq: '',
+    dylyfesPGz: '',
+    dylefysPGz: '',
+    fdjmj: '',
+    dylztxsk: '',
+    dyldydxs1: '',
+    dyldedxs2: '',
+    dyldsdxs3: '',
+    dyldsdxs4: '',
+    dyldwdxs5: '',
+    dyldldxs6: '',
+    xsKB: '',
+    xsKBfh: '',
+    gbjyz: '',
+    dbjyz: '',
+    bjsn: '',
     dyl485btl: '',
-    whxfd: '',
-    jcddkz1: '',
-    jcddkz2: '',
-    dcedrl: '',
+    sgzjbcmm: '',
 })
-let whxfdList = reactive<any[]>([
-    { label: '维护放电开启', value: '1' },
-    { label: '维护放电关闭', value: '0' },
-])
-let jcddkzList = reactive<any[]>([
-    { label: '控制', value: '1' },
-    { label: '不控制', value: '0' },
-])
-let searchStationId = ref('')
-let stationList = reactive<any[]>([])
+let formView = reactive({
+    dylfsfx: '',
+    dylbjzt: '',
+    dyl1f2sADz: '',
+    dyl2f1sADz: '',
+    tfl: '',
+    yjbb: '',
+    rjbb: '',
+    zxlxbz: '',
+    rqsj: '',
+})
+let cgqList = reactive<any[]>([])
 let devId = ref('')
 let startupDataEdit = reactive({
     address: ''
@@ -269,97 +396,229 @@ let derictList = reactive<any[]>([
     { label: '正向', value: '1' },
     { label: '反向', value: '0' }
 ])
+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,
+        }
+    }
+}
 //tab选项切换
 function onChangeTab(tab) {
     activeKey.value = tab
     if (activeKey.value == 'device') {
+        clearTimeout(timer1)
         getSubStationList()
         getStationList1()
     } else {
         getSubStationList()
         getStationList()
+        getMonitor1()
     }
 }
+
 //获取详细信息列表
 async function getStationList() {
-    tableData1.value.length = 0
-    let res = await get158StationData({ stationId: searchStationId.value })
-    res.dqgdfsC = res.dqgdfs == '1' ? '交流供电' : res.dqgdfs == '0' ? '电池供电' : ''
-    res.kgdwztC = res.kgdwzt == '1' ? '开启' : res.kgdwzt == '0' ? '关闭' : ''
-    res.dccfdztC = res.dccfdzt == '0' ? '充电' : res.dccfdzt == '1' ? '放电' : res.dccfdzt == '2' ? '不充不放' : ''
-    res.whxfdC = res.whxfd == '1' ? '维护放电开启' : res.whxfd == '0' ? '维护放电关闭' : ''
-    res.jcddkz1C = res.jcddkz1 == '1' ? '控制' : res.jcddkz1 == '0' ? '不控制' : ''
-    res.jcddkz2C = res.jcddkz2 == '1' ? '控制' : res.jcddkz2 == '0' ? '不控制' : ''
-    tableData1.value.push(res)
-}
-//查询
-function getSearch() {
-    getStationList()
-}
-//重置
-function getReset() {
-    searchStationId.value = ''
-    getStationList()
+    let res = await get158StationData()
+    tableData1.value = res
 }
+
 //编辑
-function handleEdit(record) {
+async function handleEdit(record) {
+    cgqList.length = 0
     visibleModalEdit1.value = true
+    devStationId.value = record.stationId
     formEdit = {
-        id: record.id,
-        rs: record.rs,
-        fm: record.fm,
-        ny: record.ny,
-        rjbb: record.rjbb,
-        yjbb: record.yjbb,
-        sgzjbcmm: record.sgzjbcmm,
-        dyl485btl: record.dyl485btl,
-        whxfd: record.whxfd,
-        jcddkz1: record.jcddkz1,
-        jcddkz2: record.jcddkz2,
-        dcedrl: record.dcedrl,
+        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 '软件版本':
-            await set158StationData({ stationId: formEdit.id, plcCode: 'rjbb', value: formEdit.rjbb })
+        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: formEdit.id, plcCode: 'yjbb', value: formEdit.yjbb })
+        case '探头安装距离':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'ttazjl', value: formEdit.ttazjl })
             visibleModalEdit1.value = false
             getStationList()
             break;
-        case '电池额定容量':
-            await set158StationData({ stationId: formEdit.id, plcCode: 'dcedrl', value: formEdit.dcedrl })
+        case '基线距离':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'jxjl', value: formEdit.jxjl })
             visibleModalEdit1.value = false
             getStationList()
             break;
-        case '四个字节保存密码':
-            await set158StationData({ stationId: formEdit.id, plcCode: 'sgzjbcmm', value: formEdit.sgzjbcmm })
+        case '安装角度':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'azjd', value: formEdit.azjd })
             visibleModalEdit1.value = false
             getStationList()
             break;
-        case '第一路485波特率':
-            await set158StationData({ stationId: formEdit.id, plcCode: 'dyl485btl', value: formEdit.dyl485btl })
+        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: formEdit.id, plcCode: 'whxfd', value: formEdit.whxfd })
+        case '低报警阈值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dbjyz', value: formEdit.dbjyz })
             visibleModalEdit1.value = false
             getStationList()
             break;
-        case '近程断电控制1':
-            await set158StationData({ stationId: formEdit.id, plcCode: 'jcddkz1', value: formEdit.jcddkz1 })
+        case '报警使能':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'bjsn', value: formEdit.bjsn })
             visibleModalEdit1.value = false
             getStationList()
             break;
-        case '近程断电控制2':
-            await set158StationData({ stationId: formEdit.id, plcCode: 'jcddkz2', value: formEdit.jcddkz2 })
+        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;
@@ -368,13 +627,9 @@ async function handleClick(data) {
 
 //获取分站实时监测信息
 async function getSubStationList() {
-    stationList.length = 0
     let res = await subStationList({ strtype: "modbus" })
     if (res.length != 0) {
         cardList.value = res
-        res.forEach(el => {
-            stationList.push({ label: el.strinstallpos, value: el.id })
-        })
         openNum.value = cardList.value?.filter(v => v.linkstatus == 1)['length']
         clsoeNum.value = cardList.value?.filter(v => v.linkstatus == 0)['length']
     } else {
@@ -569,6 +824,16 @@ onMounted(() => {
     getSubStationList()
     getStationList1()
 })
+onUnmounted(() => {
+    if (timer) {
+        clearTimeout(timer);
+        timer = undefined;
+    }
+    if(timer1){
+        clearTimeout(timer1);
+        timer1 = undefined;
+    }
+});
 </script>
 
 <style lang="less" scoped>
@@ -786,20 +1051,20 @@ onMounted(() => {
             .detail-content {
                 width: 100%;
                 height: 100%;
-
-                .search-area {
-                    margin-bottom: 10px;
-                }
             }
         }
     }
 }
 
+
 .zxm-form {
+    width: 50%;
+    height: 100%;
     padding-top: 20px !important;
     box-sizing: border-box;
 }
 
+
 ::v-deep(.zxm-radio-wrapper) {
     font-size: 12px;
 }
@@ -808,19 +1073,26 @@ onMounted(() => {
     font-size: 12px;
 }
 
-:deep(.zxm-select:not(.zxm-select-customize-input) .zxm-select-selector) {
+::v-deep(.zxm-select:not(.zxm-select-customize-input) .zxm-select-selector) {
     border: 1px solid #3ad8ff77 !important;
     background-color: #ffffff00 !important;
 }
 
-:deep(.zxm-select-selection-item) {
+::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>

+ 9 - 3
src/views/vent/safetyList/safetyList.api.ts

@@ -8,7 +8,9 @@ enum Api {
   update158DevName='/safety/ventanalyDeviceInfo/update158DevName',
   updateDebugStatus='/safety/ventanalyDeviceInfo/updateDebugStatus',
   get158StationData='/safety/ventanalyDeviceInfo/get158StationData',
-  set158StationData='/safety/ventanalyDeviceInfo/set158StationData'
+  set158StationData='/safety/ventanalyDeviceInfo/set158StationData',
+  get158StationDevices='/safety/ventanalyDeviceInfo/get158StationDevices',
+  set158StationRead='/safety/ventanalyDeviceInfo/set158StationRead'
 }
 
 
@@ -25,6 +27,10 @@ export const update158DevName = (params) => defHttp.post({ url: Api.update158Dev
 // 分站设备调试
 export const updateDebugStatus = (params) => defHttp.post({ url: Api.updateDebugStatus,params },{ joinParamsToUrl: true });
 // 分站详情列表
-export const get158StationData = (params) => defHttp.post({ url: Api.get158StationData,params },{ joinParamsToUrl: true });
+export const get158StationData = () => defHttp.post({ url: Api.get158StationData });
 // 分站详情下发
-export const set158StationData = (params) => defHttp.post({ url: Api.set158StationData,params },{ joinParamsToUrl: true });
+export const set158StationData = (params) => defHttp.post({ url: Api.set158StationData,params },{ joinParamsToUrl: true });
+// 根据分站ID获取分站下设备
+export const get158StationDevices = (params) => defHttp.post({ url: Api.get158StationDevices,params },{ joinParamsToUrl: true });
+//读取分站设备数据
+export const set158StationRead = (params) => defHttp.post({ url: Api.set158StationRead,params },{ joinParamsToUrl: true });

+ 33 - 75
src/views/vent/safetyList/safetyList.data.ts

@@ -58,131 +58,89 @@ export const columns: BasicColumn[] = [
 
 export const columnsDetail: BasicColumn[] = [
     {
-        title: '安装位置',
-        dataIndex: 'strinstallpos',
-        key: 'strinstallpos',
+        title: '读写状态',
+        dataIndex: 'dxzt',
+        key: 'dxzt',
         align: 'center',
     },
     {
-        title: '硬件版本',
-        dataIndex: 'yjbb',
-        key: 'yjbb',
-        width: 100,
+        title: '程序版本号',
+        dataIndex: 'cxbbh',
+        key: 'cxbbh',
         align: 'center',
     },
     {
-        title: '供电模式',
-        dataIndex: 'dqgdfsC',
-        key: 'dqgdfsC',
-        width: 100,
+        title: '电源状态',
+        dataIndex: 'dyzt',
+        key: 'dyzt',
         align: 'center',
     },
     {
         title: '电量(%)',
         dataIndex: 'dl',
         key: 'dl',
-        width: 80,
         align: 'center',
     },
     {
-        title: '直流供电电压(mv)',
-        dataIndex: 'zlgddy',
-        key: 'zlgddy',
-        width: 80,
+        title: '断线标志',
+        dataIndex: 'dxbz',
+        key: 'dxbz',
         align: 'center',
     },
     {
         title: '电池组总电压(mv)',
         dataIndex: 'dczzdy',
         key: 'dczzdy',
-        width: 80,
         align: 'center',
     },
     {
         title: '负载电流(mA)',
         dataIndex: 'fzcdl',
         key: 'fzcdl',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '充电电流(mA)',
-        dataIndex: 'dccddl',
-        key: 'dccddl',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '电池温度(℃)',
-        dataIndex: 'dcdwd',
-        key: 'dcdwd',
-        width: 80,
         align: 'center',
     },
     {
-        title: '底板温度(℃)',
-        dataIndex: 'dbdwd',
-        key: 'dbdwd',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '档位状态',
-        dataIndex: 'kgdwztC',
-        key: 'kgdwztC',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '均衡状态',
-        dataIndex: 'jhzt',
-        key: 'jhzt',
-        width: 80,
+        title: '电池数量(节)',
+        dataIndex: 'dcsl',
+        key: 'dcsl',
         align: 'center',
     },
     {
-        title: '充放电状态',
-        dataIndex: 'dccfdztC',
-        key: 'dccfdztC',
-        width: 80,
+        title: '单节电池电压1',
+        dataIndex: 'djdcdy1',
+        key: 'djdcdy1',
         align: 'center',
     },
     {
-        title: '电池数量(节)',
-        dataIndex: 'jrdcdsl',
-        key: 'jrdcdsl',
-        width: 80,
+        title: '单节电池电压2',
+        dataIndex: 'djdcdy2',
+        key: 'djdcdy2',
         align: 'center',
     },
     {
-        title: '电池额定容量(mah)',
-        dataIndex: 'dcedrl',
-        key: 'dcedrl',
-        width: 100,
+        title: '单节电池电压3',
+        dataIndex: 'djdcdy3',
+        key: 'djdcdy3',
         align: 'center',
     },
     {
-        title: '维护性放电',
-        dataIndex: 'whxfdC',
-        key: 'whxfdC',
-        width: 80,
+        title: '单节电池电压4',
+        dataIndex: 'djdcdy4',
+        key: 'djdcdy4',
         align: 'center',
     },
     {
-        title: '断电控制1',
-        dataIndex: 'jcddkz1C',
-        key: 'jcddkz1C',
-        width: 80,
+        title: '单节电池电压5',
+        dataIndex: 'djdcdy5',
+        key: 'djdcdy5',
         align: 'center',
     },
     {
-        title: '断电控制2',
-        dataIndex: 'jcddkz2C',
-        key: 'jcddkz2C',
-        width: 80,
+        title: '单节电池电压6',
+        dataIndex: 'djdcdy6',
+        key: 'djdcdy6',
         align: 'center',
     },
-
     {
         title: '操作',
         dataIndex: 'action',