husq
2023-09-18 1ef360a14efab8a1defa1dfdc13bb5af64a9d621
src/pages/page-web/projects/tsa.vue
@@ -16,9 +16,6 @@
            <a-empty style="color: #fff;" :image="simpleImage" description="暂无数据" :image-style="{ height: '60px' }" />
          </div>
          <div v-else class="fz12" style="color: white;">
            {{ onlineDocks.data }}
            =========
            {{ dockInfo }}
            <div v-for="dock in onlineDocks.data" :key="dock.sn"
              style="background: #3c3c3c; height: 90px; margin-bottom: 10px;">
              <div style="border-radius: 2px; height: 100%; width: 100%;"
@@ -59,7 +56,7 @@
                          <div :class="hmsInfo[dock.gateway.sn][0].level === EHmsLevel.CAUTION ? 'caution' :
                            hmsInfo[dock.gateway.sn][0].level === EHmsLevel.WARN ? 'warn' : 'notice'"
                            style="margin-left: 3px; width: 62px; height: 16px;">
                            <span class="word-loop">{{ hmsInfo[dock.gateway.sn][0].message_en }}</span>
                            <span class="word-loop">{{ hmsInfo[dock.gateway.sn][0].message_zh }}</span>
                          </div>
                          <template #content>
                            <a-collapse style="background: black; height: 300px; overflow-y: auto;" :bordered="false"
@@ -71,7 +68,7 @@
                                <template #header="{ isActive }">
                                  <div class="flex-row flex-align-center" style="width: 130px;">
                                    <div style="width: 110px;">
                                      <span class="word-loop">{{ hms.message_en }}</span>
                                      <span class="word-loop">{{ hms.message_zh }}</span>
                                    </div>
                                    <div style="width: 20px; height: 15px; font-size: 10px; z-index: 2 "
                                      class="flex-row flex-align-center flex-justify-center"
@@ -97,12 +94,11 @@
                    <div class="flex-row">
                      <span class="ml5 mr5">
                        <RocketOutlined />
                        123
                      </span>
                      <div class="font-bold text-hidden" style="max-width: 80px"
                        :style="deviceInfo[dock.sn] && deviceInfo[dock.sn].mode_code !== EModeCode.Disconnected ? 'color: #00ee8b' : 'color: red;'">
                        {{ deviceInfo[dock.sn] ? EModeCode[deviceInfo[dock.sn].mode_code] :
                          EModeCode[EModeCode.Disconnected] }}
                        {{ deviceInfo[dock.sn] ? EModeText[deviceInfo[dock.sn].mode_code] :
                          EModeText[EModeCode.Disconnected] }}
                      </div>
                    </div>
                    <div class="mr5 flex-align-center flex-row" style="width: 85px; margin-right: 0; height: 18px;">
@@ -156,7 +152,7 @@
                <div style="float: right; background: #595959; height: 100%; width: 40px;"
                  class="flex-row flex-justify-center flex-align-center">
                  <div class="fz16"
                    @click="switchVisible($event, dock, true, dockInfo[dock.gateway.sn] && dockInfo[dock.gateway.sn].basic_osd?.mode_code !== EDockModeCode.Disconnected)">
                    @click="switchVisible($event, dock, true, dockInfo[dock.gateway.sn] && dockInfo[dock.gateway.sn].basic_osd?.mode_code !== EDockModeCode.Disconnected, dock.gateway.sn)">
                    <a v-if="osdVisible.gateway_sn === dock.gateway.sn && osdVisible.visible">
                      <EyeOutlined />
                    </a>
@@ -237,28 +233,24 @@
          </div>
        </a-collapse-panel>
      </a-collapse>
       <!-- 测试视频播放组件 -->
    <!-- <JessibucaVideo videoUrl="https://www.ainfo.top:700/rtp/34020000001110000101_34020000001310000001.flv" /> -->
    </div>
    <Drawer title="项目设置" :styleDrawer="styleDrawer" v-model:show="showDrawer">
      <DockConfig />
    </Drawer>
  </div>
</template>
<script lang="ts" setup>
import { computed, onMounted, reactive, ref, watch, WritableComputedRef } from 'vue'
import { EDeviceTypeName, ELocalStorageKey } from '/@/types'
import JessibucaVideo from '/@/components/Jessibuca/Jessibuca.vue'
import noData from '/@/assets/icons/no-data.png'
import rc from '/@/assets/icons/rc.png'
import { OnlineDevice, EModeCode, OSDVisible, EDockModeCode, DeviceOsd, EDockModeText } from '/@/types/device'
import { OnlineDevice, EModeCode, OSDVisible, EDockModeCode, DeviceOsd, EDockModeText, EModeText } from '/@/types/device'
import { useMyStore } from '/@/store'
import { getDeviceTopo, getUnreadDeviceHms, updateDeviceHms } from '/@/api/manage'
import { RocketOutlined, EyeInvisibleOutlined, EyeOutlined, RobotOutlined, DoubleRightOutlined } from '@ant-design/icons-vue'
import { EHmsLevel } from '/@/types/enums'
import Drawer from '/@/components/Drawer/Drawer.vue'
import { styleDrawer } from './common/common'
import DockConfig from './components/DockConfig.vue'
const showDrawer = ref(false)
const { appContext } = getCurrentInstance()
const global = appContext.config.globalProperties
const route = useRoute()
@@ -357,7 +349,7 @@
  })
}
function switchVisible (e: any, device: OnlineDevice, isDock: boolean, isClick: boolean) {
function switchVisible (e: any, device: OnlineDevice, isDock: boolean, isClick: boolean, sn?: any) {
  // showDrawer.value = !showDrawer.value
  if (!isClick) {
    e.target.style.cursor = 'not-allowed'
@@ -376,6 +368,7 @@
    osdVisible.value.payloads = device.payload
  }
  store.commit('SET_OSD_VISIBLE_INFO', osdVisible)
  store.commit('SET_HMSInfo_DetailSn', sn)
}
function getUnreadHms (sn: string) {