GuLiMmo
2024-04-24 cff564c326af2c3c01e5f39d9c40cafe607d837c
Update DockControlPanel.vue
1 files modified
66 ■■■■■ changed files
src/components/g-map/DockControlPanel.vue 66 ●●●●● patch | view | raw | blame | history
src/components/g-map/DockControlPanel.vue
@@ -2,7 +2,9 @@
<div class="dock-control-panel">
  <!-- title -->
  <div class="dock-control-panel-header fz16 pl5 pr5 flex-align-center flex-row flex-justify-between">
    <span>设备控制<span class="fz12 pl15">{{ props.sn}}</span></span>
      <span
        >设备控制<span class="fz12 pl15">{{ props.sn }}</span></span
      >
    <span @click="closeControlPanel">
    <CloseOutlined />
    </span>
@@ -13,7 +15,12 @@
  <div class="control-cmd-wrapper">
    <div class="control-cmd-header">
      远程调试
      <a-switch class="debug-btn" checked-children="开" un-checked-children="关" v-model:checked="debugStatus" @change="onDeviceStatusChange"/>
        <a-switch
          class="debug-btn"
          checked-children="开"
          un-checked-children="关"
          v-model:checked="debugStatus"
          @change="onDeviceStatusChange" />
    </div>
    <div class="control-cmd-box">
      <div v-for="(cmdItem, index) in cmdList" :key="cmdItem.cmdKey" class="control-cmd-item">
@@ -22,7 +29,12 @@
            <div class="item-status">{{ cmdItem.status }}</div>
        </div>
        <div class="control-cmd-item-right">
            <a-button :disabled="!debugStatus || cmdItem.disabled" :loading="cmdItem.loading" size="small" type="primary" @click="sendControlCmd(cmdItem, index)">
            <a-button
              :disabled="!debugStatus || cmdItem.disabled"
              :loading="cmdItem.loading"
              size="small"
              type="primary"
              @click="sendControlCmd(cmdItem, index)">
            {{ cmdItem.operateText }}
            </a-button>
        </div>
@@ -30,14 +42,11 @@
    </div>
  </div>
</div>
</template>
<script setup lang="ts">
import { defineProps, defineEmits, ref, watch } from 'vue'
import {
  CloseOutlined
} from '@ant-design/icons-vue'
import { CloseOutlined } from '@ant-design/icons-vue'
import { useDockControl } from './use-dock-control'
import { DeviceInfoType, EDockModeCode } from '/@/types/device'
import { cmdList as baseCmdList, DeviceCmdItem } from '/@/types/device-cmd'
@@ -46,32 +55,40 @@
import DeviceSettingBox from './DeviceSettingBox.vue'
const props = defineProps<{
  sn: string,
  deviceInfo: DeviceInfoType,
  sn: string
  deviceInfo: DeviceInfoType
}>()
const store = useMyStore()
const initCmdList = baseCmdList.map(cmdItem => Object.assign({}, cmdItem))
const initCmdList = baseCmdList.map((cmdItem) => Object.assign({}, cmdItem))
const cmdList = ref(initCmdList)
// 根据机场指令执行状态更新信息
watch(() => store.state.devicesCmdExecuteInfo, (devicesCmdExecuteInfo) => {
watch(
  () => store.state.devicesCmdExecuteInfo,
  (devicesCmdExecuteInfo) => {
  if (props.sn && devicesCmdExecuteInfo[props.sn]) {
    updateDeviceCmdInfoByExecuteInfo(cmdList.value, devicesCmdExecuteInfo[props.sn])
  }
}, {
  },
  {
  immediate: true,
  deep: true,
})
  },
)
// 根据设备osd信息更新信息
watch(() => props.deviceInfo, (value) => {
watch(
  () => props.deviceInfo,
  (value) => {
  updateDeviceCmdInfoByOsd(cmdList.value, value)
  // console.log('deviceInfo', value)
}, {
  },
  {
  immediate: true,
  deep: true
})
    deep: true,
  },
)
const emit = defineEmits(['close-control-panel'])
@@ -98,25 +115,22 @@
  }
}
const {
  sendDockControlCmd,
  dockDebugOnOff
} = useDockControl()
const { sendDockControlCmd, dockDebugOnOff } = useDockControl()
async function sendControlCmd (cmdItem: DeviceCmdItem, index: number) {
  const success = await sendDockControlCmd({
  const params = {
    sn: props.sn,
    cmd: cmdItem.cmdKey,
    action: cmdItem.action
  }, true)
    action: cmdItem.action,
  }
  const success = await sendDockControlCmd(params, true)
  if (success) {
    // updateDeviceSingleCmdInfo(cmdList.value[index])
  }
}
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
.dock-control-panel{
  position: absolute;
  left: calc(100% + 10px);