Переглянути джерело

feat(photography): 添加一键释放功能

- 在摄影校正页面移除设备状态显示选项
- 添加一键释放菜单项到摄影相关组件
- 在头部栏组件中实现一键释放功能
- 集成socket消息发送一键释放指令
- 添加确认弹窗确保操作安全性
panqiuyao 3 тижнів тому
батько
коміт
a7f1315542

+ 40 - 5
frontend/src/components/header-bar/index.vue

@@ -66,16 +66,26 @@
       </div>
       <!-- 设备状态按钮 -->
       <div
-        v-if="showDeviceStatus"
-        class="header-bar__menu-item"
-        @click="openDeviceStatus"
-        title="设备状态"
+          v-if="showDeviceStatus"
+          class="header-bar__menu-item"
+          @click="openDeviceStatus"
+          title="设备状态"
       >
         <div class="header-bar__menu-item-content flex">
-          <img :src="deviceStatusIcon" class="header-bar__menu-icon" />
           <span class="header-bar__menu-name">设备状态</span>
         </div>
       </div>
+      <!-- 设备状态按钮 -->
+<!--      <div
+          v-if="showDeviceStatus"
+          class="header-bar__menu-item"
+          @click="OneClickRelease"
+          title="一键释放"
+      >
+        <div class="header-bar__menu-item-content flex">
+          <span class="header-bar__menu-name">一键释放</span>
+        </div>
+      </div>-->
     </div>
     <div class="header-bar__title">
       <span class="header-bar__text">
@@ -131,6 +141,8 @@ import packageJson from '@/../../package.json';
 import { getCameraMachineDoc } from '@/apis/other';
 import useDeviceStatusStore from '@/stores/modules/deviceStatus';
 import DeviceStatusDialog from '@/components/device-status-dialog/index.vue';
+import socket from "@/stores/modules/socket";
+import {  ElMessageBox } from 'element-plus'
 
 // 设备状态 store
 const deviceStatusStore = useDeviceStatusStore();
@@ -143,6 +155,7 @@ const deviceStatusIcon = ref(iconsz);
 
 const clientStore = client()
 const useUserInfoStore = useUserInfo()
+const socketStore = socket()
 
 const currentVersion = ref(packageJson.version);
 // 定义 menu 项的类型
@@ -199,6 +212,10 @@ const menuType = reactive({
     icon: iconykq,
     click: openRemoteControl
   },
+  OneClickRelease: {
+    name: '一键释放',
+    click: OneClickRelease
+  },
   developer: {
     name: '初始设备调频设置',
     icon: iconsz,
@@ -337,6 +354,24 @@ function openDeviceStatus() {
   deviceStatusStore.openDialog();
 }
 
+//一键释放
+async function  OneClickRelease(){
+
+  await ElMessageBox.confirm(
+      `确定要一键释放设备吗?`,
+      '提示',
+      {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      },
+  )
+  socketStore.sendMessage({
+    type: 'oneclick_release',
+    data:"oneclick_release"
+  })
+}
+
 onMounted(() => {
   document.addEventListener('click', handleOutsideClick);
   // 初始化设备状态监听

+ 5 - 1
frontend/src/views/Photography/check.vue

@@ -5,7 +5,6 @@
       title="拍摄物体镜头矫正"
       :menu="menu"
       showUser
-      showDeviceStatus
   />
   <div class="check-wrap">
 
@@ -165,6 +164,11 @@ async function checkConfirm(init){
       type:'setting'
     })
 
+    menu.push({
+      type:'OneClickRelease'
+    })
+
+
   }
   if(!init) previewKey.value++;
 

+ 6 - 0
frontend/src/views/Photography/mixin/usePhotography.ts

@@ -617,6 +617,9 @@ export default function usePhotography() {
           },
           {
             ...generate,
+          },
+          {
+            type: 'OneClickRelease'
           }
         ]
       }
@@ -634,6 +637,9 @@ export default function usePhotography() {
         },
         {
           ...generate
+        },
+        {
+          type: 'OneClickRelease'
         }
       ]