| 
					
				 | 
			
			
				@@ -1,485 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    <BasicModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      v-bind="$attrs" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      @register="register" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      :title="`瓦斯巡检监测详情  ${currentTime}`" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      width="1200px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      @ok="handleOk" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      @cancel="handleCancel" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      wrapClassName="bundle-modal" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <div class="fiber-modal"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class="modal-left"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            v-for="device in deviceList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            class="link-item" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            :class="{ 'active-device-title': device.deviceID === activeDeviceID }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            :key="device.deviceID" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <span class="" @click="selectDevice(device.deviceID)">{{ device.strinstallpos }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class="modal-right"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <span class="base-title">实时监测参数</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div class="right-top"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="top-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="icon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <SvgIcon class="icon-style" name="coval" style="width: 62px; height: 38px; margin-top: 10px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="item-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="title">一氧化碳</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="value">{{ posMonitor.coval !== undefined && posMonitor.coval !== null ? posMonitor.coval : '-' }} <span>ppm</span> </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="top-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="icon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <SvgIcon class="icon-style" name="co2val" style="width: 72px; height: 46px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="item-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="title">二氧化碳</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="value">{{ posMonitor.co2val !== undefined && posMonitor.co2val !== null ? posMonitor.co2val : '-' }} <span>%</span></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="top-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="icon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <SvgIcon class="icon-style" name="gasval" style="width: 72px; height: 46px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="item-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="title">甲烷</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="value">{{ posMonitor.gasval !== undefined && posMonitor.gasval !== null ? posMonitor.gasval : '-' }} <span>%</span></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="top-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="icon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <SvgIcon class="icon-style" name="ch2val" style="width: 76px; height: 42px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="item-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="title">乙烯</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="value">{{ posMonitor.ch2val !== undefined && posMonitor.ch2val !== null ? posMonitor.ch2val : '-' }} <span>ppm</span></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="top-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="icon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <SvgIcon class="icon-style" name="chval" style="width: 76px; height: 42px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="item-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="title">乙炔</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="value">{{ posMonitor.chval !== undefined && posMonitor.chval !== null ? posMonitor.chval : '-' }} <span>ppm</span></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="top-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="icon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <SvgIcon class="icon-style" name="o2val" style="width: 76px; height: 50px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="item-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="title">氧气</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="value">{{ posMonitor.o2val !== undefined && posMonitor.o2val !== null ? posMonitor.o2val : '-' }} <span>%</span></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="top-item warning-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="icon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <SvgIcon class="icon-style" size="42" name="alarm-warning" style="margin-top: 5px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="item-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="title">风险等级</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="warning-value">{{ posMonitor['warnLevel_str'] ? posMonitor['warnLevel_str'] : '-' }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="top-item warning-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="icon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <SvgIcon class="icon-style" size="42" name="link" style="margin-top: 5px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class="item-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="title">连接状态</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="warning-value">{{ posMonitor['netStatus'] == 1 ? '连接' : '未连接' }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div class="right-bottom"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <span class="base-title">设备监测曲线</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="echarts-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <BarAndLine 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                class="echarts-line" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                xAxisPropType="time" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                :dataSource="historyList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                height="100%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                :chartsColumns="chartsColumns" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                :option="echatsOption" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                chartsType="listMonitor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    </BasicModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  <script lang="ts"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    import { defineComponent, ref, watch, shallowRef } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    import { BasicModal, useModalInner } from '/@/components/Modal'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    import BarAndLine from '/@/components/chart/BarAndLine.vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    import { SvgIcon } from '/@/components/Icon'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    import { Decoration7 as DvDecoration7, ScrollBoard as DvScrollBoard } from '@kjgl77/datav-vue3'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    import dayjs from 'dayjs'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      components: { BasicModal, BarAndLine, SvgIcon, DvScrollBoard, DvDecoration7 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        dataSource: { type: Array }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        activeID: { type: String }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      setup(props) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const currentTime = ref(dayjs().format('YYYY-MM-DD HH:mm:ss')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const modelRef = ref({}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const loading = ref(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const activeDeviceID = ref(''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const deviceList = ref<any[]>([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const historyList = ref<any[]>([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const posList = ref<any[]>([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const posMonitor = shallowRef({}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const echatsOption = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          grid: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            top: '25%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            left: '30', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            right: '45', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bottom: '3%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            containLabel: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          toolbox: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            feature: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const chartsColumns = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            legend: '一氧化碳', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            seriesName: '(ppm)', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ymax: 10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yname: 'ppm', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            linetype: 'line', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yaxispos: 'left', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            color: '#FDB146', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sort: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            xRotate: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dataIndex: 'coval', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            legend: '乙炔', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            seriesName: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ymax: 10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yname: 'ppm', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            linetype: 'line', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yaxispos: 'left', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            color: '#00FFA8', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sort: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            xRotate: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dataIndex: 'chval', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            legend: '乙烯', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            seriesName: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ymax: 10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yname: 'ppm', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            linetype: 'line', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yaxispos: 'left', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            color: '#AE19FF', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sort: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            xRotate: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dataIndex: 'ch2val', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            legend: '二氧化碳', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            seriesName: '(%)', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ymax: 20, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yname: '%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            linetype: 'line', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yaxispos: 'right', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            color: '#9C83D9', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sort: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            xRotate: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dataIndex: 'co2val', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            legend: '甲烷', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            seriesName: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ymax: 20, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yname: '%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            linetype: 'line', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yaxispos: 'right', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            color: '#DA3914', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sort: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            xRotate: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dataIndex: 'gasval', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            legend: '氧气', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            seriesName: '(氧气%)', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ymax: 30, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yname: '%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            linetype: 'line', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yaxispos: 'right', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            color: '#03C2EC', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sort: 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            xRotate: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dataIndex: 'o2val', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const [register, { setModalProps, closeModal }] = useModalInner(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function handleVisibleChange(visible) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (visible) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            loading.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            setModalProps({ loading: true, confirmLoading: true }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              loading.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              setModalProps({ loading: false, confirmLoading: false }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 选择监测 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function selectDevice(id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          loading.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          setModalProps({ loading: true, confirmLoading: true }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            loading.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            activeDeviceID.value = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            setModalProps({ loading: false, confirmLoading: false }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 300); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function handleOk(e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          e.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          closeModal(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function handleCancel(e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          e.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          closeModal(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        watch([() => props.dataSource, () => props.activeID], ([newDataSource, newActiveID], [oldDataSource, oldActiveID]) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // if (newActiveID != oldActiveID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //   activeDeviceID.value = newActiveID as string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          activeDeviceID.value = activeDeviceID.value ? activeDeviceID.value : newActiveID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          deviceList.value = newDataSource?.filter((item: any, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ((!activeDeviceID.value && index == 0) || item.deviceID === activeDeviceID.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              // activeDeviceID.value = item.deviceID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              posMonitor.value = Object.assign(item, item.readData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              historyList.value = item['history']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.readTime = item.readTime?.substring(11); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          register, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          model: modelRef, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          currentTime, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          handleVisibleChange, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          selectDevice, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          handleOk, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          handleCancel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          deviceList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          historyList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          activeDeviceID, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          posMonitor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          echatsOption, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          posList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          chartsColumns, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  <style lang="less"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    .bundle-modal { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      .zxm-modal { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        top: 30px !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  </style> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  <style lang="less" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    .fiber-modal { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      height: 650px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      flex-direction: row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      .modal-left { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        width: 200px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        height: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        overflow-y: auto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        background: #ffffff11; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        padding: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        border-radius: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .active-device-title { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          color: aqua; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .link-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          line-height: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          padding-left: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          span:hover { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            color: #89ffff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          &::after { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            content: ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            display: block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: 8px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            height: 8px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            top: 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            left: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            transform: rotateZ(45deg) skew(10deg, 10deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            background: #45d3fd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      .modal-right { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        width: calc(100% - 220px); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        overflow-y: auto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .base-title { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          line-height: 32px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          padding-left: 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          &::after { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            content: ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            display: block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            height: 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            top: 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            left: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            background: #45d3fd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            border-radius: 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .right-top { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          flex-direction: row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          flex-wrap: wrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          margin-bottom: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          .top-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: 220px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            height: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            flex-direction: row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            justify-content: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            border: 1px solid rgba(25, 237, 255, 0.4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            box-shadow: inset 0 0 10px rgba(0, 197, 255, 0.6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            background: rgba(0, 0, 0, 0.06666666666666667); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            padding-top: 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            margin: 10px 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            .icon { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              margin-right: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              margin-top: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              color: #fdb146; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            .item-container { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              width: 110px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              flex-direction: column; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              justify-content: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              div { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                text-align: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              .title { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                font-size: 18px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              .value { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                text-shadow: 0 0 25px #00fbfe; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                background: linear-gradient(0deg, #45d3fd, #45d3fd, #61ddb1, #61ddb1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                font-style: normal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                background-size: cover; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                font-family: electronicFont; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                font-size: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                -webkit-background-clip: text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                background-clip: text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                -webkit-text-fill-color: transparent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                top: -8px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                span { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  font-family: Arial, Helvetica, sans-serif; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  font-size: 18px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  color: aliceblue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          .warning-box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            padding-top: 0px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            .icon { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              margin-top: 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              :deep(.icon-style) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                width: auto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                color: #fdb146; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            .warning-value { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              font-size: 18px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              color: #61ddb1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .right-center { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          margin-top: 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          flex-direction: row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          .table-box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: 500px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            height: 250px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          .warning-box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: calc(100% - 520px); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            .warning-container { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              height: convert; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              background: #009acd00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              :deep(.dv-scroll-board) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .row-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  height: 40px !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  line-height: 40px !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .header-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  border-top: 1px solid #91e9fe !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  border-bottom: 1px solid #91e9fe !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .right-bottom { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          margin-top: 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          .echarts-box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            height: 320px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            .echarts-line { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              width: calc(100% + 80px); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    :deep(.zxm-table-body) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      border: 1px solid rgba(57, 232, 255, 0.2) !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      .zxm-table-tbody > tr > td { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        border: none !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    :deep(.zxm-table-cell) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      border-right: none !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  </style> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 |