Explorar o código

fix(photography): 清理重拍对象状态避免重复操作

- 在单张拍摄完成后清空重拍对象的商品货号
- 在单张拍摄完成后清空重拍对象的动作标识
- 防止重拍状态在拍摄完成后继续保留导致异常行为
panqiuyao hai 1 día
pai
achega
75c82c6e95

+ 1 - 1
frontend/src/views/Photography/mixin/usePhotography.ts

@@ -781,7 +781,7 @@ const onRemoteControl = async (type) => {
 
           takePictureLoading.value = true;
           await socketStore.connectSocket();
-          socketStore.sendMessage(result.data)
+         // socketStore.sendMessage(result.data)
 
           getPhotoRecords()
           // 延迟两秒再获取一遍数据

+ 11 - 6
frontend/src/views/RemoteControl/index.vue

@@ -15,8 +15,8 @@
     <el-row align="middle">
       <el-col :span="3"></el-col>
       <el-col :span="6"><div class="button up" :class="{ disabled: canStop }" @click="handleLeftRightClick($event, 'left')"><span style="font-size: 12px;">左脚配置</span></div></el-col>
-      <!-- ========== 新增:拍照配置按钮 ========== -->
-      <el-col :span="6">
+      <!-- ========== 拍照配置按钮(仅多相机模式显示)========== -->
+      <el-col :span="6" v-if="isMultiCameraMode">
         <div class="button up photo-config-btn" :class="{ disabled: canStop, active: showPhotoMenu }" @click="handlePhotoConfigClick">
           <span style="font-size: 12px;">拍照配置</span>
         </div>
@@ -71,8 +71,8 @@
       </div>
     </div>
 
-    <!-- ========== 新增:拍照配置菜单 ========== -->
-    <div v-if="showPhotoMenu" class="context-menu photo-menu" :style="{ left: menuPosition.x + 'px', top: menuPosition.y + 'px' }" @click.stop>
+    <!-- ========== 拍照配置菜单(仅多相机模式显示)========== -->
+    <div v-if="isMultiCameraMode && showPhotoMenu" class="context-menu photo-menu" :style="{ left: menuPosition.x + 'px', top: menuPosition.y + 'px' }" @click.stop>
       <div class="menu-title">拍照配置</div>
       <div class="menu-items">
         <div
@@ -91,22 +91,27 @@
     </div>
 
     <!-- 点击其他地方关闭菜单 -->
-    <div v-if="showLeftMenu || showRightMenu || showPhotoMenu" class="menu-overlay" @click="closeMenus"></div>
+    <div v-if="showLeftMenu || showRightMenu || (isMultiCameraMode && showPhotoMenu)" class="menu-overlay" @click="closeMenus"></div>
   </div>
 
 </template>
 
 <script setup lang="ts">
-import { defineEmits, defineProps, ref, onMounted } from 'vue'
+import { defineEmits, defineProps, ref, onMounted, computed } from 'vue'
 import socket from "@/stores/modules/socket";
 import { getTopTabs, setLeftRightConfig, getAllUserConfigs } from '@/apis/setting';
 import { ElMessage } from 'element-plus';
 import client from "@/stores/modules/client";
 import icpList from '@/utils/ipc';
+import useUserInfo from '@/stores/modules/user';
 
 // 初始化 WebSocket 状态管理
 const socketStore = socket()
 const clientStore = client()
+const userInfoStore = useUserInfo()
+
+// 是否为多相机模式
+const isMultiCameraMode = computed(() => userInfoStore.isMultiCameraMode)
 
 const props = defineProps<{
   canStop: boolean