1
0

2 کامیت‌ها d90f8a85b1 ... 97bf977159

نویسنده SHA1 پیام تاریخ
  xiaohaizhao 97bf977159 优化分时判断 2 هفته پیش
  xiaohaizhao 79df26e69d 添加阀门开度曲线图 2 هفته پیش

+ 0 - 529
src/operation/moduleNormal/controlPanel/model/01/index copy.vue

@@ -1,529 +0,0 @@
-<template>
-  <baidu-map
-    class="view"
-    :center="latlng"
-    :zoom="zoom"
-    :scroll-wheel-zoom="true"
-    @ready="ready">
-  </baidu-map>
-  <div :class="['control',{'wrapper':wrapper}]" v-if="detail">
-    <div class="control-left">
-      <div class="top" :style="Object.keys(iotcard).length || assets.length ? '--height:49.5%' : '--height:100%'">
-        <infoPanel :and-info="false" :is-handle="true"></infoPanel>
-      </div>
-      <div class="bottom" :style="Object.keys(iotcard).length || assets.length ? '--height:49.5%' : '--height:0%'" v-if="Object.keys(iotcard).length || assets.length">
-        <div class="header">
-          <span style="color:#ffffff">关联信息</span>
-        </div>
-        <div class="info">
-          <div v-if="Object.keys(iotcard).length">
-            <div class="info-item">
-              <div class="name">物联卡</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ iotcard.iccid }}
-                  </template>
-                  {{ iotcard.iccid }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name">剩余流量</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ calcUnit(iotcard.data_remainamount) }}
-                  </template>
-                  {{ calcUnit(iotcard.data_remainamount) }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name">余额</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ iotcard.balance }}
-                  </template>
-                  {{ iotcard.data_useamount }}
-                </a-tooltip>
-              </div>
-            </div>
-          </div>
-          <div class="assets" v-for="(item) in assets" :key="item.w_device_assetid">
-            <div class="info-item">
-              <div class="name">阀门资产</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ item.itemname }}
-                  </template>
-                  {{ item.itemname }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name">型号</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ item.model }}
-                  </template>
-                  {{ item.model }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name">规格</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ item.spec }}
-                  </template>
-                  {{ item.spec }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name" style="line-height: 88px;">图片</div>
-              <div class="value">
-                <img :src="item.attinfos.length ? item.attinfos[0].url : ''" alt="">
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <div class="control-content" v-if="refresh">
-      <div class="map" :style="{transform:`scale(${calcSize})`}">
-        <div style="display: inline-block;position: relative">
-          <dataBlock 
-            style="transform: scale(0.9)"
-            :top="20"  
-            :left="-40" 
-            title="位置"
-            :data="[{title:'地址',value:address.address || '--'},{title:detail.params.Longitude.paramname,value:detail.params.Longitude.lastvalue || '--',fontSize:'12px'},{title:detail.params.Latitude.paramname,value,value:detail.params.Latitude.lastvalue || '--',fontSize:'12px'}]"
-          >
-            <template #handle>
-              <a-button v-if="detail.function['position']" size="small" @click="positionCheck" style="width: 100%;margin-top: 5px;" ghost>{{ detail.params.position.paramname }}</a-button>
-            </template>
-          </dataBlock>
-          <dataBlock 
-            v-if="detail.params.OpenDeg"
-            :title="detail.params.OpenDeg.paramname" 
-            :top="20"  
-            :left="420" 
-            :data="[{value:detail.params.OpenDeg.lastvalue,unit:detail.params.OpenDeg.unit}]"
-          ></dataBlock>
-          <dataBlock 
-            v-if="detail.params.Voltage"
-            :title="detail.params.Voltage.paramname" 
-            :top="110" 
-            :left="420" 
-            :data="[{value:detail.params.Voltage.lastvalue,unit:detail.params.Voltage.unit}]"
-          ></dataBlock>
-          <!-- <div style="position: absolute;top: 180px;left: 10px;" v-if="detail.function['position']">
-            <a-button size="small" @click="positionCheck">{{ detail.params.position.paramname }}</a-button>
-          </div> -->
-          <img :src="imgUrl" alt="">
-          <div style="clear: both;"></div>
-        </div>
-      </div>
-      
-      
-      <div class="chart">
-        <MyChart ref="chart" :options="[{label:'阀门开度',value:['OpenDeg'],sumShow:true}]"></MyChart>
-      </div>
-      <div class="message-header">
-        <customBtn :btnOptions="[{label:wrapper ? '退出全屏' : '进入全屏'}]" :btn="true" style="width:70px" @clickBtn="clickBtn"></customBtn>
-        <!-- <Message></Message> -->
-      </div>
-    </div>
-    <div class="control-right">
-      <div class="header">
-        <span style="color:#ffffff">上传日志</span>
-      </div>
-      <div class="upinfo" v-load-directive="historyLoad">
-        <div class="upinfo-wrapper" v-if="uphistory.length">
-          <div class="upinfo-item" v-for="(item) in uphistory" :key="item.rowindex">
-            <div class="name">{{ item.createdate }}</div>
-            <div class="value">
-              <a-tooltip>
-                <template #title>
-                  {{ item.content }}
-                </template>
-                {{ item.content }}
-              </a-tooltip>
-            </div>
-          </div>
-        </div>
-        <a-empty :image="simpleImage" v-else />
-      </div>
-    </div>
-  </div>
-</template>
-
-<script setup>
-import infoPanel from '../../modules/infoPanel.vue'
-import MyChart from '../../modules/MyChart.vue'
-import customBtn from '../../modules/customBtn.vue'
-import dataBlock from '../../modules/dataBlock.vue'
-import Map from '@/operation/moduleNormal/equipmentMag/modules/map.vue'
-import {ref, defineProps, defineEmits, onMounted, provide, onBeforeMount, onUnmounted, computed, watch, nextTick} from 'vue'
-import {Modal} from 'ant-design-vue'
-import { onBeforeRouteUpdate, useRouter } from 'vue-router'
-import { useAuthStore } from '@/stores/modules/auth'
-import Api from '@/api/api'
-import Http from '@/api/http'
-import utils from '@/utils/utils'
-import { calcSizeFun,setIntervalFun } from '../../modules/util.js'
-import { Empty } from 'ant-design-vue';
-const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
-
-let AuthStore = useAuthStore()
-let map1 = ref()
-
-let router = useRouter()
-let emit = defineEmits(['onSuccess'])
-let props = defineProps({})
-
-let refresh = ref(true)
-let wrapper = ref(false)
-
-let detail = ref('')
-
-provide('detail',detail)
-
-let calcSize = ref(1)
-calcSizeFun((size) => {
-  calcSize.value = size
-})
-
-let imgUrl = computed(() => {
-  let arr = detail.value.attinfos.filter(item => item.usetype == 'previewImage')
-  return arr[arr.length - 1] && arr[arr.length - 1].url
-})
-
-let clickBtn = (tag) => {
-  tag.label == '进入全屏' ? wrapper.value = true : wrapper.value = false
-  refresh.value = false
-  setTimeout(() => {
-    refresh.value = true
-  })
-}
-
-let calcUnit = computed(() => {
-  return (value) => {
-    if (value) {
-      return (value / 1024).toFixed(2) + 'MB'
-    } else {
-      return '0.0MB'
-    }
-  }
-})
-
-let chart = ref()
-
-let iotcard = ref({})
-let assets = ref([])
-let uphistory = ref([])
-let upParam = ref({
-  id:20230701132202,
-  content: {
-    type:1,
-    pageNumber:1,
-    pageSize:20,
-    w_deviceid:router.currentRoute.value.query.id
-  }
-})
-let detailFun = async () => {
-  let res = await Api.requested({
-    "id": "20230628084901",
-    "content": {
-      "w_deviceid": router.currentRoute.value.query.id
-    }
-  })
-  detail.value = res.data
-  detail.value.isSite = AuthStore.nowAccount.sitename == detail.value.sitename //是否本站点设备
-
-  let res2 = await Api.requested({
-    id:20230826160402,
-    content: {
-      w_deviceid:router.currentRoute.value.query.id
-    }
-  })
-  iotcard.value = res2.data.length ? res2.data[0] : {}
-  console.log(iotcard.value,'物联卡信息');
-
-  let res3 = await Api.requested({
-    id:20230802163102,
-    content: {
-      assettype:'阀门',
-      pageNumber:1,
-      pageSize:999999,
-      w_deviceid:router.currentRoute.value.query.id
-    }
-  })
-  assets.value = res3.data
-  console.log(assets.value,'阀门资产信息');
-
-  if (!detail.value.isfeedback) {
-    let keys = Object.keys(detail.value.paramcmdvalues)
-    keys.forEach(item => {
-      detail.value.paramcmdvalues[item] = detail.value.paramvalues[item]
-    })
-  }
-
-}
-
-provide('detailFun',detailFun)
-
-let address = ref('')
-let ready = async () => {
-  address.value = detail.value.paramvalues.Longitude && detail.value.paramvalues.Latitude ? await utils.getLocation({lng:detail.value.paramvalues.Longitude,lat:detail.value.paramvalues.Latitude}) : '--'
-  console.log(address,'地址');
-}
-
-let positionCheck = () => {
-  Modal.confirm({
-    title:`确定下发检测位置操作吗?`,
-    async onOk () {
-      let res = await Api.requested({
-        "id": "20230627163701",
-        "content": {
-          "w_deviceid": router.currentRoute.value.query.id,
-          "w_functionid": detail.value.function['position'].w_functionid,
-          "params": {
-            'position':1
-          }
-        }
-      })
-      utils.message(res,'操作成功', async () => {
-        detailFun()
-      })
-    }
-  })
-}
-
-let vLoadDirective = {
-  mounted (el,binding) {
-    let tableWarp = el
-    function handleFun (e) {
-      if (tableWarp.scrollTop + tableWarp.clientHeight >= tableWarp.scrollHeight) {
-        binding.value()
-      }
-    }
-    tableWarp.addEventListener('scroll',handleFun)
-    el.tableWarp = tableWarp
-    el.handleFun = handleFun
-  },
-  unmounted(el) {
-    el.tableWarp.removeEventListener('scroll',el.handleFun)
-  },
-}
-
-let TotalPage = ref(0)
-let loading = ref(false)
-let historyLoad = () => {
-  if (upParam.value.content.pageNumber == TotalPage.value || loading.value == true) return
-  upParam.value.content.pageNumber += 1
-  console.log(upParam.value);
-  getHistoryData()
-}
-
-let getHistoryData = async () => {
-  loading.value = true
-  upParam.value.content.timer = new Date().getTime()
-  let res = await Api.requested(upParam.value)
-  console.log(res);
-  uphistory.value = upParam.value.content.pageNumber == 1 ? res.data : uphistory.value.concat(res.data)
-  TotalPage.value = res.pageTotal
-  setTimeout(() => {
-    loading.value = false
-  },1500)
-  console.log(uphistory.value,'上传日志信息');
-}
- 
-//刷新数据
-let timer = setIntervalFun(detailFun,router.currentRoute.value.query.id)
-
-onMounted( () => {
-  detailFun()
-  getHistoryData()
-})
-onUnmounted(() => {
-  clearInterval(timer)
-})
-</script>
-
-<style scoped>
-/deep/.ant-empty-description {
-  color: #ffffff !important;
-}
-*{
-  box-sizing: border-box;
-}
-.control {
-  display: flex;
-  height: calc(100vh - 115px);
-  width: 100%;
-  padding: 10px 0;
-  background: linear-gradient(90deg, #001D6A 0%, #0060B2 82%, #007BD5 100%) !important;
-}
-.wrapper {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 999;
-  height: 100vh !important;
-  padding: 20px;
-}
-.control .control-left {
-  width: 290px;
-  height: 100%;
-  display: flex;
-  flex-direction: column;
-  justify-content: space-between;
-} 
-.control .control-left .top {
-  width: 100%;
-  height: var(--height);
-  background:  rgb(0, 0, 0,.05);
-  padding: 10px;
-}
-.control .control-left .bottom {
-  width: 100%;
-  min-width: 290px;
-  height: var(--height);
-  background:  rgb(0, 0, 0,.05);
-  padding: 10px;
-  margin-top: 20px;
-}
-
-.control .control-content {
-  flex:1;
-  height: 100%;
-  padding: 0 10px;
-  display: flex;
-  flex-direction: column;
-  justify-content: space-between;
-  position: relative;
-  overflow: hidden;
-}
-.control .control-content .message-header {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  padding-left: 10px;
-}
-.control .control-content .map {
-  width: 100%;
-  height: calc(100vh - 245px);
-  position: relative;
-  display: flex;
-  align-items: center;
-  width: 684px;
-  padding: 10px 70px 0 70px;
-  margin: auto;
-}
-.control .control-content .map img {
-  width: 100%;
-  object-fit: scale-down;
-  z-index: 1;
-  margin-bottom: 30px;
-}
-
-.control .control-content .chart {
-  width: 100%;
-  height: 255px;
-  background:  rgb(0, 0, 0,.05);
-  padding: 0 10px 10px 0;
-}
-
-.control .control-right {
-  width: 272px;
-  height: 100%;
-  background:  rgb(0, 0, 0,.05);
-  padding: 10px;
-}
-
-.control .control-right .upinfo {
-  overflow-y: scroll;
-  height: calc(100% - 10px);
-  scrollbar-width: none;
-}
-.control .control-right .upinfo .upinfo-item {
-  display: flex;
-  margin-bottom: 10px;
-}
-.control .control-right .upinfo .upinfo-item .name {
-  font-size: 12px;
-  color: #ffffff;
-  background: rgb(255, 225, 255,.25);
-  padding: 0 10px;
-  width: 100px;
-  text-align: center;
-
-  display: -webkit-box;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-}
-.control .control-right .upinfo .upinfo-item .value {
-  font-size: 12px;
-  color:#16FFF6;
-  background: rgb(255, 225, 255,.10);
-  padding: 0 10px;
-  flex: 100;
-  overflow: hidden;
-  word-break: break-all;
-}
-
-.info {
-  overflow-y: scroll;
-  height: calc(100% - 25px);
-  scrollbar-width: none;
-}
-::-webkit-scrollbar {
-  display: none;
-}
-.info .info-item {
-  display: flex;
-  line-height: 32px;
-  white-space: nowrap;
-}
-.info .info-item .name {
-  font-size: 12px;
-  color: #ffffff;
-  background: rgb(255, 225, 255,.25);
-  padding: 0 10px;
-  width: 100px;
-}
-.info .info-item .value {
-  font-size: 12px;
-  color:#16FFF6;
-  background: rgb(255, 225, 255,.10);
-  padding: 0 10px;
-  flex: 100;
-  text-align: right;
-  overflow: hidden;
-}
-.info .info-item .value img {
-  width: 100%;
-}
-.info .assets {
-  margin-top: 10px;
-}
-.info .assets .info-item {
-  margin-bottom: 0px !important;
-}
-/deep/.ant-btn-background-ghost:hover {
-  border-color: #16FFF6 !important;
-  color: #16FFF6 !important;
-  background: rgb(22,255,246,.30) !important;
-}
-</style>

+ 0 - 487
src/operation/moduleNormal/controlPanel/model/FW01/index copy.vue

@@ -1,487 +0,0 @@
-<template>
-  <baidu-map
-    class="view"
-    :center="latlng"
-    :zoom="zoom"
-    :scroll-wheel-zoom="true"
-    @ready="ready">
-  </baidu-map>
-  <div :class="['control',{'wrapper':wrapper}]" v-if="detail">
-    <div class="control-left">
-      <div class="top">
-        <infoPanel :and-info="false" :is-handle="false"></infoPanel>
-      </div>
-      <div class="bottom" v-if="Object.keys(iotcard).length || assets.length">
-        <div class="header" style="margin-bottom: 10px;">
-          <span style="color:#ffffff">关联信息</span>
-        </div>
-        <div class="info">
-          <div v-if="Object.keys(iotcard).length">
-            <div class="info-item">
-              <div class="name">物联卡</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ iotcard.iccid }}
-                  </template>
-                  {{ iotcard.iccid }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name">剩余流量</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ calcUnit(iotcard.data_remainamount) }}
-                  </template>
-                  {{ calcUnit(iotcard.data_remainamount) }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name">余额</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ iotcard.balance }}
-                  </template>
-                  {{ iotcard.balance }}
-                </a-tooltip>
-              </div>
-            </div>
-          </div>
-          <div class="assets" v-for="(item) in assets" :key="item.w_device_assetid">
-            <div class="info-item">
-              <div class="name">阀门资产</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ item.itemname }}
-                  </template>
-                  {{ item.itemname }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name">型号</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ item.model }}
-                  </template>
-                  {{ item.model }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name">规格</div>
-              <div class="value">
-                <a-tooltip>
-                  <template #title>
-                    {{ item.spec }}
-                  </template>
-                  {{ item.spec }}
-                </a-tooltip>
-              </div>
-            </div>
-            <div class="info-item">
-              <div class="name" style="line-height: 88px;">图片</div>
-              <div class="value">
-                <img :src="item.attinfos.length ? item.attinfos[0].url : ''" alt="">
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <div class="control-content" v-if="refresh">
-      <div class="map" :style="{transform:`scale(${calcSize})`}">
-        <div style="display: inline-block;position: relative">
-          <dataBlock 
-          style="transform: scale(0.9)"
-            :top="-20"  
-            :left="0" 
-            :data="[{title:detail.params.Longitude.paramname,value:detail.params.Longitude.lastvalue || '--'},{title:detail.params.Latitude.paramname,value,value:detail.params.Latitude.lastvalue || '--'},{title:'地址',value,value:address}]"
-          ></dataBlock>
-          <dataBlock 
-            v-if="detail.params.OpenDeg"
-            :title="detail.params.OpenDeg.paramname" 
-            :top="0"  
-            :left="350" 
-            :data="[{value:detail.params.OpenDeg.lastvalue,unit:detail.params.OpenDeg.unit}]"
-          ></dataBlock>
-          <dataBlock 
-            v-if="detail.params.Voltage"
-            :title="detail.params.Voltage.paramname" 
-            :top="80" 
-            :left="350" 
-            :data="[{value:detail.params.Voltage.lastvalue,unit:detail.params.Voltage.unit}]"
-          ></dataBlock>
-          <img :src="imgUrl" alt="">
-          <div style="clear: both;"></div>
-        </div>
-      </div>
-      
-      
-      <div class="chart">
-        <MyChart ref="chart" :options="[{label:'阀门开度',value:['OpenDeg'],sumShow:true}]" :sumShow="false"></MyChart>
-      </div>
-      <div class="message-header">
-        <customBtn :btnOptions="[{label:wrapper ? '退出全屏' : '进入全屏'}]" :btn="true" style="width:70px" @clickBtn="clickBtn"></customBtn>
-        <!-- <Message></Message> -->
-      </div>
-    </div>
-    <div class="control-right">
-      <div class="header">
-        <span style="color:#ffffff">上传日志</span>
-      </div>
-      <div class="upinfo" v-load-directive="historyLoad">
-        <div class="upinfo-wrapper" v-if="uphistory.length">
-          <div class="upinfo-item" v-for="(item) in uphistory" :key="item.rowindex">
-            <div class="name">{{ item.createdate }}</div>
-            <div class="value">
-              <a-tooltip>
-                <template #title>
-                  {{ item.content }}
-                </template>
-                {{ item.content }}
-              </a-tooltip>
-            </div>
-          </div>
-        </div>
-        <a-empty :image="simpleImage" v-else />
-      </div>
-    </div>
-  </div>
-</template>
-
-<script setup>
-import infoPanel from '../../modules/infoPanel.vue'
-import MyChart from '../../modules/MyChart.vue'
-import customBtn from '../../modules/customBtn.vue'
-import dataBlock from '../../modules/dataBlock.vue'
-import {ref, defineProps, defineEmits, onMounted, provide, onBeforeMount, onUnmounted, computed, watch, nextTick} from 'vue'
-import {Modal} from 'ant-design-vue'
-import { onBeforeRouteUpdate, useRouter } from 'vue-router'
-import { useAuthStore } from '@/stores/modules/auth'
-import Api from '@/api/api'
-import Http from '@/api/http'
-import utils from '@/utils/utils'
-import { calcSizeFun,setIntervalFun } from '../../modules/util.js'
-import { Empty } from 'ant-design-vue';
-const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
-
-let AuthStore = useAuthStore()
-let map1 = ref()
-
-let router = useRouter()
-let emit = defineEmits(['onSuccess'])
-let props = defineProps({})
-
-let refresh = ref(true)
-let wrapper = ref(false)
-
-let detail = ref('')
-
-provide('detail',detail)
-
-let calcSize = ref(1)
-calcSizeFun((size) => {
-  calcSize.value = size
-})
-
-let imgUrl = computed(() => {
-  let arr = detail.value.attinfos.filter(item => item.usetype == 'previewImage')
-  return arr[arr.length - 1] && arr[arr.length - 1].url
-})
-
-let clickBtn = (tag) => {
-  tag.label == '进入全屏' ? wrapper.value = true : wrapper.value = false
-  refresh.value = false
-  setTimeout(() => {
-    refresh.value = true
-  })
-}
-
-let calcUnit = computed(() => {
-  return (value) => {
-    if (value) {
-      return (value / 1024).toFixed(2) + 'MB'
-    } else {
-      return '0.0MB'
-    }
-  }
-})
-
-let chart = ref()
-
-let iotcard = ref({})
-let assets = ref([])
-let uphistory = ref([])
-let upParam = ref({
-  id:20230701132202,
-  content: {
-    type:1,
-    pageNumber:1,
-    pageSize:20,
-    w_deviceid:router.currentRoute.value.query.id
-  }
-})
-let detailFun = async () => {
-  let res = await Api.requested({
-    "id": "20230628084901",
-    "content": {
-      "w_deviceid": router.currentRoute.value.query.id
-    }
-  })
-  detail.value = res.data
-  detail.value.isSite = AuthStore.nowAccount.sitename == detail.value.sitename //是否本站点设备
-
-  let res2 = await Api.requested({
-    id:20230826160402,
-    content: {
-      w_deviceid:router.currentRoute.value.query.id
-    }
-  })
-  iotcard.value = res2.data.length ? res2.data[0] : {}
-  console.log(iotcard.value,'物联卡信息');
-
-  let res3 = await Api.requested({
-    id:20230802163102,
-    content: {
-      assettype:'阀门',
-      pageNumber:1,
-      pageSize:999999,
-      w_deviceid:router.currentRoute.value.query.id
-    }
-  })
-  assets.value = res3.data
-  console.log(assets.value,'阀门资产信息');
-
-}
-
-provide('detailFun',detailFun)
-
-let address = ref('')
-let ready = async () => {
-  address.value = detail.value.paramvalues.Longitude && detail.value.paramvalues.Latitude ? await utils.getLocation({lng:detail.value.paramvalues.Longitude,lat:detail.value.paramvalues.Latitude}) : '--'
-  console.log(address,'地址');
-}
-
-let vLoadDirective = {
-  mounted (el,binding) {
-    let tableWarp = el
-    function handleFun (e) {
-      if (tableWarp.scrollTop + tableWarp.clientHeight >= tableWarp.scrollHeight) {
-        binding.value()
-      }
-    }
-    tableWarp.addEventListener('scroll',handleFun)
-    el.tableWarp = tableWarp
-    el.handleFun = handleFun
-  },
-  unmounted(el) {
-    el.tableWarp.removeEventListener('scroll',el.handleFun)
-  },
-}
-
-let TotalPage = ref(0)
-let loading = ref(false)
-let historyLoad = () => {
-  if (upParam.value.content.pageNumber == TotalPage.value || loading.value == true) return
-  upParam.value.content.pageNumber += 1
-  console.log(upParam.value);
-  getHistoryData()
-}
-
-let getHistoryData = async () => {
-  loading.value = true
-  upParam.value.content.timer = new Date().getTime()
-  let res = await Api.requested(upParam.value)
-  console.log(res);
-  uphistory.value = upParam.value.content.pageNumber == 1 ? res.data : uphistory.value.concat(res.data)
-  TotalPage.value = res.pageTotal
-  setTimeout(() => {
-    loading.value = false
-  },1500)
-  console.log(uphistory.value,'上传日志信息');
-}
- 
-//刷新数据
-let timer = setIntervalFun(detailFun,router.currentRoute.value.query.id)
-
-onMounted( () => {
-  detailFun()
-  getHistoryData()
-})
-onUnmounted(() => {
-  clearInterval(timer)
-})
-</script>
-
-<style scoped>
-/deep/.ant-empty-description {
-  color: #ffffff !important;
-}
-*{
-  box-sizing: border-box;
-}
-.control {
-  display: flex;
-  height: calc(100vh - 115px);
-  width: 100%;
-  padding: 10px 0;
-  background: linear-gradient(90deg, #001D6A 0%, #0060B2 82%, #007BD5 100%) !important;
-}
-.wrapper {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 999;
-  height: 100vh !important;
-  padding: 20px;
-}
-.control .control-left {
-  width: 290px;
-  height: 100%;
-  display: flex;
-  flex-direction: column;
-  justify-content: space-between;
-} 
-.control .control-left .top {
-  width: 100%;
-  height: 49.5%;
-  background:  rgb(0, 0, 0,.05);
-  padding: 10px;
-}
-.control .control-left .bottom {
-  width: 100%;
-  min-width: 290px;
-  height: 49.5%;
-  background:  rgb(0, 0, 0,.05);
-  padding: 10px;
-  margin-top: 20px;
-}
-
-.control .control-content {
-  flex:1;
-  height: 100%;
-  padding: 0 10px;
-  display: flex;
-  flex-direction: column;
-  justify-content: space-between;
-  position: relative;
-  overflow: hidden;
-}
-.control .control-content .message-header {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  padding-left: 10px;
-}
-.control .control-content .map {
-  width: 100%;
-  height: calc(100vh - 245px);
-  position: relative;
-  display: flex;
-  align-items: center;
-  width: 684px;
-  padding: 10px 70px 0 70px;
-  margin: auto;
-}
-.control .control-content .map img {
-  width: 100%;
-  object-fit: scale-down;
-  z-index: 1;
-  margin-bottom: 30px;
-}
-
-.control .control-content .chart {
-  width: 100%;
-  height: 255px;
-  background:  rgb(0, 0, 0,.05);
-  padding: 0 10px 10px 0;
-}
-
-.control .control-right {
-  width: 272px;
-  height: 100%;
-  background:  rgb(0, 0, 0,.05);
-  padding: 10px;
-}
-
-.control .control-right .upinfo {
-  overflow-y: scroll;
-  height: calc(100% - 10px);
-  scrollbar-width: none;
-}
-.control .control-right .upinfo .upinfo-item {
-  display: flex;
-  margin-bottom: 10px;
-}
-.control .control-right .upinfo .upinfo-item .name {
-  font-size: 12px;
-  color: #ffffff;
-  background: rgb(255, 225, 255,.25);
-  padding: 0 10px;
-  width: 100px;
-  text-align: center;
-
-  display: -webkit-box;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-}
-.control .control-right .upinfo .upinfo-item .value {
-  font-size: 12px;
-  color:#16FFF6;
-  background: rgb(255, 225, 255,.10);
-  padding: 0 10px;
-  flex: 100;
-  overflow: hidden;
-  word-break: break-all;
-}
-
-.info {
-  overflow-y: scroll;
-  height: calc(100% - 25px);
-  scrollbar-width: none;
-}
-::-webkit-scrollbar {
-  display: none;
-}
-.info .info-item {
-  display: flex;
-  line-height: 32px;
-  white-space: nowrap;
-}
-.info .info-item .name {
-  font-size: 12px;
-  color: #ffffff;
-  background: rgb(255, 225, 255,.25);
-  padding: 0 10px;
-  width: 100px;
-}
-.info .info-item .value {
-  font-size: 12px;
-  color:#16FFF6;
-  background: rgb(255, 225, 255,.10);
-  padding: 0 10px;
-  flex: 100;
-  text-align: right;
-  overflow: hidden;
-}
-.info .info-item .value img {
-  width: 100%;
-}
-.info .assets {
-  margin-top: 10px;
-}
-.info .assets .info-item {
-  margin-bottom: 0px !important;
-}
-</style>

+ 19 - 10
src/operation/moduleNormal/controlPanel/model/MT01/index.vue

@@ -145,17 +145,26 @@ let detailFun = async () => {
     }
   })
   detail.value = res.data
-  for (let i=1;i<9;i++) {
-    if (detail.value.paramvalues[`时段${numberArr[i]}小时开始`]) {
-      detail.value.paramvalues[`start${i}`] = detail.value.paramvalues[`时段${numberArr[i]}小时开始`] ? detail.value.paramvalues[`时段${numberArr[i]}小时开始`] + ':' + detail.value.paramvalues[`时段${numberArr[i]}分钟开始`] : ''
-      detail.value.paramvalues[`end${i}`] = detail.value.paramvalues[`时段${numberArr[i]}小时结束`] ? detail.value.paramvalues[`时段${numberArr[i]}小时结束`] + ':' + detail.value.paramvalues[`时段${numberArr[i]}分钟结束`] : ''
-      detail.value.paramcmdvalues[`start${i}`] = detail.value.paramcmdvalues[`时段${numberArr[i]}小时开始`] ? detail.value.paramcmdvalues[`时段${numberArr[i]}小时开始`] + ':' + detail.value.paramcmdvalues[`时段${numberArr[i]}分钟开始`] : ''
-      detail.value.paramcmdvalues[`end${i}`] = detail.value.paramcmdvalues[`时段${numberArr[i]}小时结束`] ? detail.value.paramcmdvalues[`时段${numberArr[i]}小时结束`] + ':' + detail.value.paramcmdvalues[`时段${numberArr[i]}分钟结束`] : ''
+  for (let i = 1; i < 9; i++) {
+    const startHour = detail.value.paramvalues[`时段${numberArr[i]}小时开始`];
+    const startMinute = detail.value.paramvalues[`时段${numberArr[i]}分钟开始`];
+    const endHour = detail.value.paramvalues[`时段${numberArr[i]}小时结束`];
+    const endMinute = detail.value.paramvalues[`时段${numberArr[i]}分钟结束`];
+
+    if (startHour !== undefined && startMinute !== undefined) {
+      detail.value.paramvalues[`start${i}`] = `${startHour}:${startMinute}`;
+      detail.value.paramcmdvalues[`start${i}`] = `${startHour}:${startMinute}`;
+    } else {
+      detail.value.paramvalues[`start${i}`] = '';
+      detail.value.paramcmdvalues[`start${i}`] = '';
+    }
+
+    if (endHour !== undefined && endMinute !== undefined) {
+      detail.value.paramvalues[`end${i}`] = `${endHour}:${endMinute}`;
+      detail.value.paramcmdvalues[`end${i}`] = `${endHour}:${endMinute}`;
     } else {
-      detail.value.paramvalues[`start${i}`] = ''
-      detail.value.paramvalues[`end${i}`] = ''
-      detail.value.paramcmdvalues[`start${i}`] = ''
-      detail.value.paramcmdvalues[`end${i}`] = ''
+      detail.value.paramvalues[`end${i}`] = '';
+      detail.value.paramcmdvalues[`end${i}`] = '';
     }
   }
   detail.value.paramvalues.nian = `${detail.value.paramvalues.年}-${detail.value.paramvalues.月}-${detail.value.paramvalues.日}`

+ 16 - 16
src/operation/moduleNormal/controlPanel/model/MT02/index.vue

@@ -142,37 +142,37 @@ let detailFun = async () => {
 
   for (let i = 1; i < 9; i++) {
     detail.value.paramvalues[`start${i}`] =
-      (detail.value.paramvalues[`T${i}H`] !== ""
+      (detail.value.paramvalues[`T${i}H`] !== "" && detail.value.paramvalues[`T${i}H`] !== undefined
         ? detail.value.paramvalues[`T${i}H`] || 0
-        : "-") +
+        : "0") +
       ":" +
-      (detail.value.paramvalues[`T${i}M`] !== ""
+      (detail.value.paramvalues[`T${i}M`] !== "" && detail.value.paramvalues[`T${i}M`] !== undefined
         ? detail.value.paramvalues[`T${i}M`] || 0
-        : "-");
+        : "0");
     detail.value.paramvalues[`end${i}`] =
-      (detail.value.paramvalues[`T${i}H1`] !== ""
+      (detail.value.paramvalues[`T${i}H1`] !== "" && detail.value.paramvalues[`T${i}H1`] !== undefined
         ? detail.value.paramvalues[`T${i}H1`] || 0
-        : "-") +
+        : "0") +
       ":" +
-      (detail.value.paramvalues[`T${i}M1`] !== ""
+      (detail.value.paramvalues[`T${i}M1`] !== "" && detail.value.paramvalues[`T${i}M1`] !== undefined
         ? detail.value.paramvalues[`T${i}M1`] || 0
-        : "-");
+        : "0");
     detail.value.paramcmdvalues[`start${i}`] =
-      (detail.value.paramcmdvalues[`T${i}H`] !== ""
+      (detail.value.paramcmdvalues[`T${i}H`] !== "" && detail.value.paramcmdvalues[`T${i}H`] !== undefined
         ? detail.value.paramcmdvalues[`T${i}H`] || 0
-        : "-") +
+        : "0") +
       ":" +
-      (detail.value.paramcmdvalues[`T${i}M`] !== ""
+      (detail.value.paramcmdvalues[`T${i}M`] !== "" && detail.value.paramcmdvalues[`T${i}M`] !== undefined
         ? detail.value.paramcmdvalues[`T${i}M`] || 0
-        : "-");
+        : "0");
     detail.value.paramcmdvalues[`end${i}`] =
-      (detail.value.paramcmdvalues[`T${i}H1`] !== ""
+      (detail.value.paramcmdvalues[`T${i}H1`] !== "" && detail.value.paramcmdvalues[`T${i}H1`] !== undefined
         ? detail.value.paramcmdvalues[`T${i}H1`] || 0
-        : "-") +
+        : "0") +
       ":" +
-      (detail.value.paramcmdvalues[`T${i}M1`] !== ""
+      (detail.value.paramcmdvalues[`T${i}M1`] !== "" && detail.value.paramcmdvalues[`T${i}M1`] !== undefined
         ? detail.value.paramcmdvalues[`T${i}M1`] || 0
-        : "-");
+        : "0");
   }
 
   modelList.value.forEach((item) => {

+ 185 - 115
src/operation/moduleNormal/controlPanel/model/MT05/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div :class="['control',{'wrapper':wrapper}]" v-if="detail">
+  <div :class="['control', { wrapper: wrapper }]" v-if="detail">
     <div class="control-left">
       <div class="top">
         <infoPanel></infoPanel>
@@ -10,12 +10,27 @@
     </div>
     <div class="control-content" v-if="refresh">
       <div class="lamp-box">
-        <Lamp :isTrue="detail.params.A003 ? detail.params.A003.lastvalue == 1 : false">{{ detail.params.A003 && detail.params.A003.paramname }}</Lamp>
-        <Lamp :isTrue="detail.params.A004 ? detail.params.A004.lastvalue == 1 : false">{{ detail.params.A004 && detail.params.A004.paramname }}</Lamp>
-        <Lamp :isTrue="detail.params.A002 ? detail.params.A002.lastvalue == 1 : false">{{ detail.params.A002 && detail.params.A002.paramname }}</Lamp>
+        <Lamp
+          :isTrue="
+            detail.params.A003 ? detail.params.A003.lastvalue == 1 : false
+          "
+          >{{ detail.params.A003 && detail.params.A003.paramname }}</Lamp
+        >
+        <Lamp
+          :isTrue="
+            detail.params.A004 ? detail.params.A004.lastvalue == 1 : false
+          "
+          >{{ detail.params.A004 && detail.params.A004.paramname }}</Lamp
+        >
+        <Lamp
+          :isTrue="
+            detail.params.A002 ? detail.params.A002.lastvalue == 1 : false
+          "
+          >{{ detail.params.A002 && detail.params.A002.paramname }}</Lamp
+        >
       </div>
-      <div class="map" :style="{transform:`scale(${calcSize})`}">
-        <div style="display: inline-block;position: relative">
+      <div class="map" :style="{ transform: `scale(${calcSize})` }">
+        <div style="display: inline-block; position: relative">
           <!-- <dataBlock 
             v-if="detail.params.瞬时流量"
             :title="detail.params.瞬时流量.paramname" 
@@ -23,29 +38,44 @@
             left="50" 
             :data="[{value:detail.params.瞬时流量.lastvalue,unit:detail.params.瞬时流量.unit}]"
           ></dataBlock> -->
-          <dataBlock 
+          <dataBlock
             v-if="detail.params.U002"
-            :title="detail.params.U002.paramname" 
-            top="25" 
-            left="350" 
-            :data="[{value:detail.params.U002.lastvalue,unit:detail.params.U002.unit}]"
+            :title="detail.params.U002.paramname"
+            top="25"
+            left="350"
+            :data="[
+              {
+                value: detail.params.U002.lastvalue,
+                unit: detail.params.U002.unit,
+              },
+            ]"
           ></dataBlock>
-          <dataBlock 
+          <dataBlock
             v-if="detail.params.U001"
-            :title="detail.params.U001.paramname" 
-            :top="240" 
-            :left="350" 
-            :data="[{value:detail.params.U001.lastvalue,unit:detail.params.U001.unit}]"
+            :title="detail.params.U001.paramname"
+            :top="240"
+            :left="350"
+            :data="[
+              {
+                value: detail.params.U001.lastvalue,
+                unit: detail.params.U001.unit,
+              },
+            ]"
           ></dataBlock>
-          <img :src="imgUrl" alt="">
-          <div style="clear: both;"></div>
+          <img :src="imgUrl" alt="" />
+          <div style="clear: both"></div>
         </div>
       </div>
       <div class="chart">
-        <MyChart :options="[{label:'压力历史曲线图',value:['U001'],sumShow:true}]"></MyChart>
+        <MyChart :options="options"></MyChart>
       </div>
       <div class="message-header">
-        <customBtn :btnOptions="[{label:wrapper ? '退出全屏' : '进入全屏'}]" :btn="true" style="width:70px" @clickBtn="clickBtn"></customBtn>
+        <customBtn
+          :btnOptions="[{ label: wrapper ? '退出全屏' : '进入全屏' }]"
+          :btn="true"
+          style="width: 70px"
+          @clickBtn="clickBtn"
+        ></customBtn>
         <!-- <Message></Message> -->
       </div>
     </div>
@@ -56,126 +86,161 @@
 </template>
 
 <script setup>
-import infoPanel from '../../modules/infoPanel.vue'
-import MyChart from '../../modules/MyChart.vue'
-import timeControl from './modules/timeControl.vue'
-import controlPanel from './modules/controlPanel.vue'
-import customBtn from '../../modules/customBtn.vue'
-import Lamp from '../../modules/lamp.vue'
-import Message from '../../modules/message.vue'
-import dataBlock from '../../modules/dataBlock.vue'
-import updataBtn from '../../modules/updataBtn.vue'
-import {ref, defineProps, defineEmits, onMounted, provide, onBeforeMount, onUnmounted, computed, watch} from 'vue'
-import {Modal} from 'ant-design-vue'
-import { onBeforeRouteUpdate, useRouter } from 'vue-router'
-import { useAuthStore } from '@/stores/modules/auth'
-import Api from '@/api/api'
-import Http from '@/api/http'
-import utils from '@/utils/utils'
-import { calcSizeFun,setIntervalFun } from '../../modules/util.js'
+import infoPanel from "../../modules/infoPanel.vue";
+import MyChart from "../../modules/MyChart.vue";
+import timeControl from "./modules/timeControl.vue";
+import controlPanel from "./modules/controlPanel.vue";
+import customBtn from "../../modules/customBtn.vue";
+import Lamp from "../../modules/lamp.vue";
+import Message from "../../modules/message.vue";
+import dataBlock from "../../modules/dataBlock.vue";
+import updataBtn from "../../modules/updataBtn.vue";
+import {
+  ref,
+  defineProps,
+  defineEmits,
+  onMounted,
+  provide,
+  onBeforeMount,
+  onUnmounted,
+  computed,
+  watch,
+} from "vue";
+import { Modal } from "ant-design-vue";
+import { onBeforeRouteUpdate, useRouter } from "vue-router";
+import { useAuthStore } from "@/stores/modules/auth";
+import Api from "@/api/api";
+import Http from "@/api/http";
+import utils from "@/utils/utils";
+import { calcSizeFun, setIntervalFun } from "../../modules/util.js";
 
-let AuthStore = useAuthStore()
+let AuthStore = useAuthStore();
 
-let router = useRouter()
-let emit = defineEmits(['onSuccess'])
-let props = defineProps({})
+let router = useRouter();
+let emit = defineEmits(["onSuccess"]);
+let props = defineProps({});
 
-let refresh = ref(true)
-let wrapper = ref(false)
+let refresh = ref(true);
+let wrapper = ref(false);
 
-let detail = ref('')
+let detail = ref("");
 
 let modelList = ref([
-  {label:'就地模式',value:'就地模式'},
-  {label:'远程开关阀模式',value:'远程开关阀模式'},
-  {label:'远程不利点模式',value:'远程不利点模式'},
-  {label:'恒压控制',value:'恒压控制启动'},
-  {label:'分时控制模式',value:'分时控制启动'},
-])
+  { label: "就地模式", value: "就地模式" },
+  { label: "远程开关阀模式", value: "远程开关阀模式" },
+  { label: "远程不利点模式", value: "远程不利点模式" },
+  { label: "恒压控制", value: "恒压控制启动" },
+  { label: "分时控制模式", value: "分时控制启动" },
+]);
 
-provide('detail',detail)
-provide('modelList',modelList)
+provide("detail", detail);
+provide("modelList", modelList);
 
-let calcSize = ref(1)
+let options = [
+  { label: "压力历史曲线图", value: ["U001"], sumShow: true },
+  { label: "阀门开度曲线图", value: ["U002"] },
+];
+let calcSize = ref(1);
 calcSizeFun((size) => {
-  calcSize.value = size
-})
+  calcSize.value = size;
+});
 
 let imgUrl = computed(() => {
-  let arr = detail.value.attinfos.filter(item => item.usetype == 'previewImage')
-  return arr[arr.length - 1] ? arr[arr.length - 1].url : ''
-})
+  let arr = detail.value.attinfos.filter(
+    (item) => item.usetype == "previewImage"
+  );
+  return arr[arr.length - 1] ? arr[arr.length - 1].url : "";
+});
 
 let clickBtn = (tag) => {
-  tag.label == '进入全屏' ? wrapper.value = true : wrapper.value = false
-  refresh.value = false
+  tag.label == "进入全屏" ? (wrapper.value = true) : (wrapper.value = false);
+  refresh.value = false;
   setTimeout(() => {
-    refresh.value = true
-  })
-}
+    refresh.value = true;
+  });
+};
 let numberArr = {
-  1:'一',
-  2:'二',
-  3:'三',
-  4:'四',
-  5:'五',
-  6:'六',
-  7:'七',
-  8:'八',
-} 
+  1: "一",
+  2: "二",
+  3: "三",
+  4: "四",
+  5: "五",
+  6: "六",
+  7: "七",
+  8: "八",
+};
 let detailFun = async () => {
   let res = await Api.requested({
-    "id": "20230628084901",
-    "content": {
-      "w_deviceid": router.currentRoute.value.query.id
-    }
-  })
-  detail.value = res.data
-  console.log(detail.value,'res');
+    id: "20230628084901",
+    content: {
+      w_deviceid: router.currentRoute.value.query.id,
+    },
+  });
+  detail.value = res.data;
+  console.log(detail.value, "res");
   for (let index = 1; index <= 12; index++) {
-    detail.value.paramvalues[`start${index}`] = detail.value.paramvalues[`T0${numberCale(index*4-3)}`] ? detail.value.paramvalues[`T0${numberCale(index*4-3)}`] + ':' + detail.value.paramvalues[`T0${numberCale(index*4-1)}`] : ''
-    detail.value.paramvalues[`end${index}`] = detail.value.paramvalues[`T0${numberCale(index*4-2)}`] ? detail.value.paramvalues[`T0${numberCale(index*4-2)}`] + ':' + detail.value.paramvalues[`T0${numberCale(index*4)}`] : ''
-    detail.value.paramcmdvalues[`start${index}`] = detail.value.paramcmdvalues[`T0${numberCale(index*4-3)}`] ? detail.value.paramcmdvalues[`T0${numberCale(index*4-3)}`] + ':' + detail.value.paramcmdvalues[`T0${numberCale(index*4-1)}`] : ''
-    detail.value.paramcmdvalues[`end${index}`] = detail.value.paramcmdvalues[`T0${numberCale(index*4-2)}`] ? detail.value.paramcmdvalues[`T0${numberCale(index*4-2)}`] + ':' + detail.value.paramcmdvalues[`T0${numberCale(index*4)}`] : ''
+    let startHour = detail.value.paramvalues[`T0${numberCale(index * 4 - 3)}`];
+    let startMinute = detail.value.paramvalues[`T0${numberCale(index * 4 - 1)}`];
+    let endHour = detail.value.paramvalues[`T0${numberCale(index * 4 - 2)}`];
+    let endMinute = detail.value.paramvalues[`T0${numberCale(index * 4)}`];
+
+    detail.value.paramvalues[`start${index}`] =
+      startHour && startMinute ? `${startHour}:${startMinute}` : "";
+    detail.value.paramvalues[`end${index}`] =
+      endHour && endMinute ? `${endHour}:${endMinute}` : "";
+
+    let cmdStartHour = detail.value.paramcmdvalues[`T0${numberCale(index * 4 - 3)}`];
+    let cmdStartMinute = detail.value.paramcmdvalues[`T0${numberCale(index * 4 - 1)}`];
+    let cmdEndHour = detail.value.paramcmdvalues[`T0${numberCale(index * 4 - 2)}`];
+    let cmdEndMinute = detail.value.paramcmdvalues[`T0${numberCale(index * 4)}`];
+
+    detail.value.paramcmdvalues[`start${index}`] =
+      cmdStartHour && cmdStartMinute ? `${cmdStartHour}:${cmdStartMinute}` : "";
+    detail.value.paramcmdvalues[`end${index}`] =
+      cmdEndHour && cmdEndMinute ? `${cmdEndHour}:${cmdEndMinute}` : "";
   }
-  detail.value.paramvalues.nian = `${detail.value.paramvalues.C006}-${detail.value.paramvalues.C007}-${detail.value.paramvalues.C008}`
-  detail.value.paramvalues.time = `${detail.value.paramvalues.C009}-${detail.value.paramvalues.C010}-${detail.value.paramvalues.C011}`
+  detail.value.paramvalues.nian = `${detail.value.paramvalues.C006}-${detail.value.paramvalues.C007}-${detail.value.paramvalues.C008}`;
+  detail.value.paramvalues.time = `${detail.value.paramvalues.C009}-${detail.value.paramvalues.C010}-${detail.value.paramvalues.C011}`;
 
   if (!detail.value.isfeedback) {
-    let keys = Object.keys(detail.value.paramcmdvalues)
-    keys.forEach(item => {
-      detail.value.paramcmdvalues[item] = detail.value.paramvalues[item]
-    })
+    let keys = Object.keys(detail.value.paramcmdvalues);
+    keys.forEach((item) => {
+      detail.value.paramcmdvalues[item] = detail.value.paramvalues[item];
+    });
   }
-  if (detail.value.paramcmdvalues.C006 == '00' || detail.value.paramcmdvalues.C006 == '0' || detail.value.paramcmdvalues.C006 == '') {
-    detail.value.paramcmdvalues.times = ''
+  if (
+    detail.value.paramcmdvalues.C006 == "00" ||
+    detail.value.paramcmdvalues.C006 == "0" ||
+    detail.value.paramcmdvalues.C006 == ""
+  ) {
+    detail.value.paramcmdvalues.times = "";
   } else {
-    detail.value.paramcmdvalues.times = `${detail.value.paramcmdvalues.C006}-${detail.value.paramcmdvalues.C007}-${detail.value.paramcmdvalues.C008} ${detail.value.paramcmdvalues.C009}:${detail.value.paramcmdvalues.C010}:${detail.value.paramcmdvalues.C011}`
+    detail.value.paramcmdvalues.times = `${detail.value.paramcmdvalues.C006}-${detail.value.paramcmdvalues.C007}-${detail.value.paramcmdvalues.C008} ${detail.value.paramcmdvalues.C009}:${detail.value.paramcmdvalues.C010}:${detail.value.paramcmdvalues.C011}`;
   }
-  
-  console.log(detail.value,'数据');
-  detail.value.isSite = AuthStore.nowAccount.sitename == detail.value.sitename //是否本站点设备
-}
+
+  console.log(detail.value, "数据");
+  detail.value.isSite = AuthStore.nowAccount.sitename == detail.value.sitename; //是否本站点设备
+};
 
 let numberCale = (num) => {
-  return (num+'').padStart(2,'0')
-}
+  return (num + "").padStart(2, "0");
+};
 
-provide('detailFun',detailFun)
+provide("detailFun", detailFun);
 
 //刷新数据
-let timer = setIntervalFun(detailFun,router.currentRoute.value.query.id)
+let timer = setIntervalFun(detailFun, router.currentRoute.value.query.id);
 
-onMounted( () => {
-  detailFun()
-})
+onMounted(() => {
+  detailFun();
+});
 onUnmounted(() => {
-  clearInterval(timer)
-})
+  clearInterval(timer);
+});
 </script>
 
 <style scoped>
-*{
+* {
   box-sizing: border-box;
 }
 .control {
@@ -183,7 +248,12 @@ onUnmounted(() => {
   height: calc(100vh - 60px);
   width: 100%;
   padding: 10px 0;
-  background: linear-gradient(90deg, #001D6A 0%, #0060B2 82%, #007BD5 100%) !important;
+  background: linear-gradient(
+    90deg,
+    #001d6a 0%,
+    #0060b2 82%,
+    #007bd5 100%
+  ) !important;
 }
 .wrapper {
   position: absolute;
@@ -199,12 +269,12 @@ onUnmounted(() => {
   display: flex;
   flex-direction: column;
   justify-content: space-between;
-} 
+}
 .control .control-left .top {
   width: 100%;
   height: 49%;
   min-height: 330px;
-  background:  rgb(0, 0, 0,.05);
+  background: rgb(0, 0, 0, 0.05);
   padding: 10px;
 }
 .control .control-left .bottom {
@@ -212,12 +282,12 @@ onUnmounted(() => {
   min-width: 290px;
   height: 49%;
   min-height: 330px;
-  background:  rgb(0, 0, 0,.05);
+  background: rgb(0, 0, 0, 0.05);
   padding: 10px;
 }
 
 .control .control-content {
-  flex:1 ;
+  flex: 1;
   height: 100%;
   padding: 0 10px;
   display: flex;
@@ -256,14 +326,14 @@ onUnmounted(() => {
 .control .control-content .chart {
   width: 100%;
   height: 255px;
-  background:  rgb(0, 0, 0,.05);
+  background: rgb(0, 0, 0, 0.05);
   padding: 0 10px 10px 0;
 }
 
 .control .control-right {
   width: 272px;
   height: 100%;
-  background:  rgb(0, 0, 0,.05);
+  background: rgb(0, 0, 0, 0.05);
   padding: 10px;
 }
 .stop {
@@ -278,8 +348,8 @@ onUnmounted(() => {
 }
 .lamp-box {
   position: absolute;
-  left:-10px;
-  top:-40px;
+  left: -10px;
+  top: -40px;
   margin: 70px 0 0 20px;
   transform: scale(0.9);
 }

+ 197 - 153
src/operation/moduleNormal/controlPanel/model/MT05/modules/timeControl.vue

@@ -1,116 +1,144 @@
 <template>
   <div class="header">
-    <span style="color:#ffffff">分时控制设置</span>
-    <!-- <customBtn :btnOptions="[{label:'保存',value:'timeshared'}]" @clickBtn="updateData" v-if="detailData.function['timeshared']"></customBtn> -->
+    <span style="color: #ffffff">分时控制设置</span>
   </div>
   <div class="info">
-    <div class="info-item" v-for="(i,index) in 12">
+    <div class="info-item" v-for="i in 12" :key="i">
       <div class="title" v-if="detailData.function[`时段${i}`]">
         <div class="left">
           <span class="inline-16">时间段{{ i }}</span>
-          <Lamp bgStart="green" bgEnd="rgb(0, 255, 0)" :isTrue="detailData.params[`C0${numberCale(16+i)}`] ? detailData.params[`C0${numberCale(16+i)}`].lastvalue == 1 : false" :marginB="false"></Lamp>
+          <Lamp
+            bgStart="green"
+            bgEnd="rgb(0, 255, 0)"
+            :isTrue="
+              detailData.params[`C0${numberCale(16 + i)}`]
+                ? detailData.params[`C0${numberCale(16 + i)}`].lastvalue == 1
+                : false
+            "
+            :marginB="false"
+          ></Lamp>
         </div>
         <div style="display: flex">
-          <customBtn 
-            style="margin-right: 10px;"
-            :icon1="detailData.paramcmdvalues[`C0${16+i}`] && detailData.isfeedback ? true : false"
+          <customBtn
+            style="margin-right: 10px"
+            :icon1="
+              detailData.paramcmdvalues[`C0${16 + i}`] && detailData.isfeedback
+                ? true
+                : false
+            "
             :btn="true"
-            :btnOptions="[{label:detailData.paramvalues[`C0${16+i}`]==1?'切出':'投入',value:detailData.paramvalues[`C0${16+i}`]==1?'切出':'投入'}]" 
-            @clickBtn="upStatus(i)" 
+            :btnOptions="btnOptions(i)"
+            @clickBtn="upStatus(i)"
           ></customBtn>
-          <updataBtn v-if="detailData.function[`时段${i}`]" :icon1="detailData.paramcmdvalues[`T0${48+i}`] && detailData.isfeedback ? true : false">
+          <updataBtn
+            v-if="detailData.function[`时段${i}`]"
+            :icon1="
+              detailData.paramcmdvalues[`T0${48 + i}`] && detailData.isfeedback
+                ? true
+                : false
+            "
+          >
             <div class="info-item_item">
-                <MyInput 
-                  :ref="`Input${i}`"
-                  v-model:value="detailData.paramcmdvalues[`start${i}`]" 
-                  :name="`start${i}`" 
-                  title="开始时间"
-                  type="h:m"
-                  :form="detailData.paramcmdvalues"
-                  :isCheck="true"
-                  time-split=":"
-                  inputBorder="1px solid #ccc"
-                  :unit="params[`start${i}`] && params[`start${i}`].unit" 
-                >
+              <MyInput
+                :ref="`Input${i}`"
+                v-model:value="detailData.paramcmdvalues[`start${i}`]"
+                :name="`start${i}`"
+                title="开始时间"
+                type="h:m"
+                :form="detailData.paramcmdvalues"
+                :isCheck="true"
+                time-split=":"
+                inputBorder="1px solid #ccc"
+                :unit="params[`start${i}`] && params[`start${i}`].unit"
+              >
               </MyInput>
             </div>
             <div class="info-item_item">
-                <MyInput 
-                  v-model:value="detailData.paramcmdvalues[`end${i}`]" 
-                  :name="`end${i}`" 
-                  title="结束时间"
-                  :form="detailData.paramcmdvalues"
-                  :ref="`Input${i}`"
-                  :isCheck="true"
-                  type="h:m"
-                  time-split=":"
-                  inputBorder="1px solid #ccc"
-                  :unit="params[`end${i}`] && params[`end${i}`].unit" 
-                >
+              <MyInput
+                v-model:value="detailData.paramcmdvalues[`end${i}`]"
+                :name="`end${i}`"
+                title="结束时间"
+                :form="detailData.paramcmdvalues"
+                :ref="`Input${i}`"
+                :isCheck="true"
+                type="h:m"
+                time-split=":"
+                inputBorder="1px solid #ccc"
+                :unit="params[`end${i}`] && params[`end${i}`].unit"
+              >
               </MyInput>
             </div>
-            <div class="info-item_item" v-if="params[`T0${48+i}`]">
-                <MyInput 
-                  :scale="params[`T0${48+i}`] && params[`T0${48+i}`].num_scale" 
-                  v-model:value="detailData.paramcmdvalues[`T0${48+i}`]" 
-                  :name="`T0${48+i}`" 
-                  title="压力设定"
-                  :form="detailData.paramcmdvalues"
-                  :ref="`Input${i}`"
-                  :isCheck="true"
-                  inputBorder="1px solid #ccc"
-                  :max="params[`T0${48+i}`] && params[`T0${48+i}`].num_maxvalue"
-                  :min="params[`T0${48+i}`] && params[`T0${48+i}`].num_minvalue"
-                  :step="params[`T0${48+i}`] && params[`T0${48+i}`].num_step"
-                  :unit="params[`T0${48+i}`]  && params[`T0${48+i}`] .unit" 
-                >
+            <div class="info-item_item" v-if="params[`T0${48 + i}`]">
+              <MyInput
+                :scale="
+                  params[`T0${48 + i}`] && params[`T0${48 + i}`].num_scale
+                "
+                v-model:value="detailData.paramcmdvalues[`T0${48 + i}`]"
+                :name="`T0${48 + i}`"
+                title="压力设定"
+                :form="detailData.paramcmdvalues"
+                :ref="`Input${i}`"
+                :isCheck="true"
+                inputBorder="1px solid #ccc"
+                :max="
+                  params[`T0${48 + i}`] && params[`T0${48 + i}`].num_maxvalue
+                "
+                :min="
+                  params[`T0${48 + i}`] && params[`T0${48 + i}`].num_minvalue
+                "
+                :step="params[`T0${48 + i}`] && params[`T0${48 + i}`].num_step"
+                :unit="params[`T0${48 + i}`] && params[`T0${48 + i}`].unit"
+              >
               </MyInput>
             </div>
-            <div style="display: flex;justify-content: space-between;margin-top: 10px;">
-              <customBtn 
-                btnColor="rgb(22,255,246)" 
-                textColor="#000000" 
-                :btnOptions="[{label:'更新',value:'timeshared'}]" 
-                @clickBtn="updateData(i,$refs[`Input${i}`])" 
+            <div
+              style="
+                display: flex;
+                justify-content: space-between;
+                margin-top: 10px;
+              "
+            >
+              <customBtn
+                btnColor="rgb(22,255,246)"
+                textColor="#000000"
+                :btnOptions="[{ label: '更新', value: 'timeshared' }]"
+                @clickBtn="updateData(i, $refs[`Input${i}`])"
               ></customBtn>
             </div>
-            
           </updataBtn>
         </div>
-        
-        
       </div>
       <div class="info-item_item">
-          <MyInput 
-            v-model:value="detailData.paramvalues[`start${i}`]" 
-            :name="`时段${i}小时开始`" 
-            title="开始时间"
-            type="h:m"
-            :form="detailData.paramvalues"
-            :disabled="true"
-          >
+        <MyInput
+          v-model:value="detailData.paramvalues[`start${i}`]"
+          :name="`时段${i}小时开始`"
+          title="开始时间"
+          type="h:m"
+          :form="detailData.paramvalues"
+          :disabled="true"
+        >
         </MyInput>
       </div>
       <div class="info-item_item">
-          <MyInput 
-            v-model:value="detailData.paramvalues[`end${i}`]" 
-            :name="`时段${i}小时结束`" 
-            title="结束时间"
-            :form="detailData.paramvalues"
-            :disabled="true"
-          >
+        <MyInput
+          v-model:value="detailData.paramvalues[`end${i}`]"
+          :name="`时段${i}小时结束`"
+          title="结束时间"
+          :form="detailData.paramvalues"
+          :disabled="true"
+        >
         </MyInput>
       </div>
-      <div class="info-item_item" v-if="params[`T0${48+i}`]">
-          <MyInput 
-            :scale="params[`T0${48+i}`] && params[`T0${48+i}`].num_scale" 
-            v-model:value="detailData.paramvalues[`T0${48+i}`]" 
-            :name="`T0${48+i}`" 
-            title="压力设定"
-            :form="detailData.paramvalues"
-            :unit="params[`T0${48+i}`] && params[`T0${48+i}`].unit" 
-            :disabled="true"
-          >
+      <div class="info-item_item" v-if="params[`T0${48 + i}`]">
+        <MyInput
+          :scale="params[`T0${48 + i}`] && params[`T0${48 + i}`].num_scale"
+          v-model:value="detailData.paramvalues[`T0${48 + i}`]"
+          :name="`T0${48 + i}`"
+          title="压力设定"
+          :form="detailData.paramvalues"
+          :unit="params[`T0${48 + i}`] && params[`T0${48 + i}`].unit"
+          :disabled="true"
+        >
         </MyInput>
       </div>
     </div>
@@ -118,88 +146,104 @@
 </template>
 
 <script setup>
-import MyInput from '../../../modules/myInput.vue'
-import MyRadio from '../../../modules/myRadio.vue'
-import customBtn from '../../../modules/customBtn.vue'
-import updataBtn from '../../../modules/updataBtn.vue'
-import Lamp from '../../../modules/lamp.vue'
-import {ref, defineProps, defineEmits, inject, computed, onMounted} from 'vue'
-import {message, Modal} from 'ant-design-vue'
-import Api from '@/api/api'
-import utils from '@/utils/utils'
-import {useRouter} from 'vue-router'
-let emit = defineEmits([])
-let props = defineProps({})
+import MyInput from "../../../modules/myInput.vue";
+import MyRadio from "../../../modules/myRadio.vue";
+import customBtn from "../../../modules/customBtn.vue";
+import updataBtn from "../../../modules/updataBtn.vue";
+import Lamp from "../../../modules/lamp.vue";
+import {
+  ref,
+  defineProps,
+  defineEmits,
+  inject,
+  computed,
+  onMounted,
+} from "vue";
+import { message, Modal } from "ant-design-vue";
+import Api from "@/api/api";
+import utils from "@/utils/utils";
+import { useRouter } from "vue-router";
+let emit = defineEmits([]);
+let props = defineProps({});
 
-let router = useRouter()
+let router = useRouter();
 
-let detailData = inject('detail')
-let params = ref(detailData.value.params)
-let form = ref(detailData.value.paramvalues)
-let cmdForm = ref(detailData.value.paramcmdvalues)
+let detailData = inject("detail");
+let params = ref(detailData.value.params);
+let form = ref(detailData.value.paramvalues);
+let cmdForm = ref(detailData.value.paramcmdvalues);
 
-
-let Input = ref()
+let btnOptions = (i) => {
+  return [
+    {
+      label: cmdForm[`C0${16 + i}`] == 1 ? "切出" : "投入",
+      value: cmdForm[`C0${16 + i}`] == 1 ? "切出" : "投入",
+    },
+  ];
+};
+let Input = ref();
 let numberCale = (num) => {
-  return (num+'').padStart(2,'0')
-}
-let updateData = async (i,vm) => {
-  let check
+  return (num + "").padStart(2, "0");
+};
+let updateData = async (i, vm) => {
+  let check;
   for (var el of vm) {
-    check = await el.Form.validateFields()
+    check = await el.Form.validateFields();
   }
-  if (!check) return
+  if (!check) return;
   Modal.confirm({
-    title:'确定更新数据吗?',
-    async onOk () {
-      let keys = Object.keys(detailData.value.function[`时段${i}`].params)
-      let obj = {}
-      let start = detailData.value.paramcmdvalues[`start${i}`].split(':')
-      let end = detailData.value.paramcmdvalues[`end${i}`].split(':')
-      obj[`T0${numberCale(i*4-3)}`] = start[0]
-      obj[`T0${numberCale(i*4-2)}`] = end[0]
-      obj[`T0${numberCale(i*4-1)}`] = start[1]
-      obj[`T0${numberCale(i*4)}`] = end[1]
-      obj[`T0${numberCale(48+i)}`] = detailData.value.paramcmdvalues[`T0${numberCale(48+i)}`]
+    title: "确定更新数据吗?",
+    async onOk() {
+      let keys = Object.keys(detailData.value.function[`时段${i}`].params);
+      let obj = {};
+      let start = detailData.value.paramcmdvalues[`start${i}`].split(":");
+      let end = detailData.value.paramcmdvalues[`end${i}`].split(":");
+      obj[`T0${numberCale(i * 4 - 3)}`] = start[0];
+      obj[`T0${numberCale(i * 4 - 2)}`] = end[0];
+      obj[`T0${numberCale(i * 4 - 1)}`] = start[1];
+      obj[`T0${numberCale(i * 4)}`] = end[1];
+      obj[`T0${numberCale(48 + i)}`] =
+        detailData.value.paramcmdvalues[`T0${numberCale(48 + i)}`];
       let res = await Api.requested({
-        "id": "20230627163701",
-        "content": {
-          "w_deviceid": router.currentRoute.value.query.id,
-          "w_functionid": detailData.value.function[`时段${i}`].w_functionid,
-          "params": obj
-        }
-      })
-      utils.message(res,'操作成功',() => {
-      })
-    }
-  })
-}
+        id: "20230627163701",
+        content: {
+          w_deviceid: router.currentRoute.value.query.id,
+          w_functionid: detailData.value.function[`时段${i}`].w_functionid,
+          params: obj,
+        },
+      });
+      utils.message(res, "操作成功", () => {});
+    },
+  });
+};
 
 let upStatus = async (i) => {
-  if (!detailData.value.paramcmdvalues[`T0${numberCale(48+i)}`]) return message.warning('请填写压力值')
+  if (!detailData.value.paramcmdvalues[`T0${numberCale(48 + i)}`])
+    return message.warning("请填写压力值");
   Modal.confirm({
-    title:`确认${detailData.value.paramvalues[`C0${16+i}`]==1?'切出':'投入'}时间段${i}吗?`,
-    async onOk () {
-      let obj = {}
-      obj[`C0${16+i}`] = detailData.value.paramcmdvalues[`C0${16+i}`]==1?0:1
+    title: `确认${
+      detailData.value.paramvalues[`C0${16 + i}`] == 1 ? "切出" : "投入"
+    }时间段${i}吗?`,
+    async onOk() {
+      let obj = {};
+      obj[`C0${16 + i}`] =
+        detailData.value.paramcmdvalues[`C0${16 + i}`] == 1 ? 0 : 1;
       let res = await Api.requested({
-        "id": "20230627163701",
-        "content": {
-          "w_deviceid": router.currentRoute.value.query.id,
-          "w_functionid": detailData.value.function[`时间段${i}`].w_functionid,
-          "params": obj
-        }
-      })
-      utils.message(res,'操作成功',() => {
-      })
-    }
-  })
-  
-}
+        id: "20230627163701",
+        content: {
+          w_deviceid: router.currentRoute.value.query.id,
+          w_functionid: detailData.value.function[`时间段${i}`].w_functionid,
+          params: obj,
+        },
+      });
+      utils.message(res, "操作成功", () => {});
+    },
+  });
+};
 </script>
 
 <style scoped>
-*{
+* {
   box-sizing: border-box;
 }
 .header {
@@ -243,14 +287,14 @@ let upStatus = async (i) => {
 .info .info-item .info-item_item .name {
   font-size: 12px;
   color: #ffffff;
-  background: rgb(255, 225, 255,.25);
+  background: rgb(255, 225, 255, 0.25);
   padding: 0 10px;
   flex: 1;
 }
 .info .info-item .info-item_item .value {
   font-size: 12px;
-  color:#16FFF6;
-  background: rgb(255, 225, 255,.10);
+  color: #16fff6;
+  background: rgb(255, 225, 255, 0.1);
   padding: 0 10px;
   flex: 2.5;
   text-align: right;

+ 29 - 39
src/router/controlPanle.js

@@ -1,85 +1,75 @@
-export default [
-  {
+export default [{
     path: '/06',
     name: 'dianci',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/06/index.vue')
-  },{
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/06/index.vue')
+  }, {
     path: '/BT01',
     name: 'BT01',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/06/index.vue')
-  },{
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/06/index.vue')
+  }, {
     path: '/MT02',
     name: 'shidianxing',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
-    },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT02/index.vue')
-  },{
-    path: '/MT01',
-    name: 'MT01',
-    meta: {
-      title: '控制台',
-      name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT01/index.vue')
-  },{
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT02/index.vue')
+  }, {
     path: '/MT01',
     name: 'MT01',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT05/index.vue')
-  },{
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT05/index.vue')
+  }, {
     path: '/MT04',
     name: 'MT04',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT01/index.vue')
-  },{
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT01/index.vue')
+  }, {
     path: '/MT03',
     name: 'MT03',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT01/index.vue')
-  },{
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/MT01/index.vue')
+  }, {
     path: '/YK01',
     name: 'YK01',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/YK01/index.vue')
-  },{
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/YK01/index.vue')
+  }, {
     path: '/FW01',
     name: 'FW01',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/FW01/index.vue')
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/FW01/index.vue')
   },
   {
     path: '/01',
@@ -87,17 +77,17 @@ export default [
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/01/index.vue')
-  },{
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/01/index.vue')
+  }, {
     path: '/baseDevice',
     name: 'baseDevice',
     meta: {
       title: '控制台',
       name: 'bs_equipmentmag',
-      keepAlive:false,
+      keepAlive: false,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/baseDevice/index.vue')
+    component: () => import( /* webpackChunkName: "about" */ '@/operation/moduleNormal/controlPanel/model/baseDevice/index.vue')
   },
 ]