From cff564c326af2c3c01e5f39d9c40cafe607d837c Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Wed, 24 Apr 2024 16:53:07 +0800
Subject: [PATCH] Update DockControlPanel.vue
---
src/components/g-map/DockControlPanel.vue | 142 ++++++++++++++++++++++++++---------------------
1 files changed, 78 insertions(+), 64 deletions(-)
diff --git a/src/components/g-map/DockControlPanel.vue b/src/components/g-map/DockControlPanel.vue
index e6d40ab..b9e6dd9 100644
--- a/src/components/g-map/DockControlPanel.vue
+++ b/src/components/g-map/DockControlPanel.vue
@@ -1,43 +1,52 @@
<template>
-<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 @click="closeControlPanel">
- <CloseOutlined />
- </span>
- </div>
- <!-- setting -->
- <DeviceSettingBox :sn="props.sn" :deviceInfo="props.deviceInfo"></DeviceSettingBox>
- <!-- cmd -->
- <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"/>
+ <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 @click="closeControlPanel">
+ <CloseOutlined />
+ </span>
</div>
- <div class="control-cmd-box">
- <div v-for="(cmdItem, index) in cmdList" :key="cmdItem.cmdKey" class="control-cmd-item">
- <div class="control-cmd-item-left">
+ <!-- setting -->
+ <DeviceSettingBox :sn="props.sn" :deviceInfo="props.deviceInfo"></DeviceSettingBox>
+ <!-- cmd -->
+ <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" />
+ </div>
+ <div class="control-cmd-box">
+ <div v-for="(cmdItem, index) in cmdList" :key="cmdItem.cmdKey" class="control-cmd-item">
+ <div class="control-cmd-item-left">
<div class="item-label">{{ cmdItem.label }}</div>
<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)">
- {{ cmdItem.operateText }}
+ </div>
+ <div class="control-cmd-item-right">
+ <a-button
+ :disabled="!debugStatus || cmdItem.disabled"
+ :loading="cmdItem.loading"
+ size="small"
+ type="primary"
+ @click="sendControlCmd(cmdItem, index)">
+ {{ cmdItem.operateText }}
</a-button>
+ </div>
</div>
</div>
</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) => {
- if (props.sn && devicesCmdExecuteInfo[props.sn]) {
- updateDeviceCmdInfoByExecuteInfo(cmdList.value, devicesCmdExecuteInfo[props.sn])
- }
-}, {
- immediate: true,
- deep: true,
-})
+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) => {
- updateDeviceCmdInfoByOsd(cmdList.value, value)
- // console.log('deviceInfo', value)
-}, {
- immediate: true,
- deep: true
-})
+watch(
+ () => props.deviceInfo,
+ (value) => {
+ updateDeviceCmdInfoByOsd(cmdList.value, value)
+ // console.log('deviceInfo', value)
+ },
+ {
+ immediate: true,
+ deep: true,
+ },
+)
const emit = defineEmits(['close-control-panel'])
@@ -98,26 +115,23 @@
}
}
-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>
-.dock-control-panel{
+<style lang="scss" scoped>
+.dock-control-panel {
position: absolute;
left: calc(100% + 10px);
top: 0px;
@@ -127,28 +141,28 @@
color: #fff;
border-radius: 2px;
- .dock-control-panel-header{
+ .dock-control-panel-header {
border-bottom: 1px solid #515151;
}
- .control-cmd-wrapper{
- .control-cmd-header{
+ .control-cmd-wrapper {
+ .control-cmd-header {
font-size: 14px;
font-weight: 600;
padding: 10px 10px 0px;
- .debug-btn{
+ .debug-btn {
margin-left: 10px;
- border:1px solid #585858;
+ border: 1px solid #585858;
}
}
- .control-cmd-box{
+ .control-cmd-box {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 4px 10px;
- .control-cmd-item{
+ .control-cmd-item {
width: 220px;
height: 58px;
display: flex;
@@ -158,11 +172,11 @@
margin: 4px 0;
padding: 0 8px;
- .control-cmd-item-left{
+ .control-cmd-item-left {
display: flex;
flex-direction: column;
- .item-label{
+ .item-label {
font-weight: 700;
}
}
--
Gitblit v1.9.3