Explorar el Código

fix:左右脚程序设置

DESKTOP-1OI7FFK\WZTX hace 8 meses
padre
commit
91457ad02c

+ 3 - 3
electron/api/request.js

@@ -5,7 +5,7 @@ const axios = require('axios')
 
 // create an axios instance
 const service = axios.create()
-const baseUrl = 'http://10.56.42.176:7074/'
+const baseUrl = 'http://10.56.42.176:7074'
 const basePrefixUrl = 'api'
 const timeout = 600000
 const uploadTimeout = 600000
@@ -28,7 +28,7 @@ function _get(config = {
 }) {
 
   const thisBasePrefixUrl = config.basePrefixUrl !== undefined ? config.basePrefixUrl : basePrefixUrl
-  return service.get(config.baseUrl + thisBasePrefixUrl + config.url, {
+  return service.get(config.baseUrl + config.url, {
     params: {
       ...config.data
     },
@@ -49,7 +49,7 @@ function _post(config = {
   data: {}
 }) {
   const thisBasePrefixUrl = config.basePrefixUrl !== undefined ? config.basePrefixUrl : basePrefixUrl
-  return service.post(config.baseUrl + thisBasePrefixUrl + config.url, {
+  return service.post(config.baseUrl + config.url, {
     ...config.data
   }, {
     headers: config.headers || {},

+ 14 - 2
electron/api/setting.js

@@ -3,7 +3,11 @@ const { post } = require('./request')
 module.exports = {
   getDeviceConfigs(data){
     return post({
-      url: '/get_device_configs'
+      url: '/get_device_configs',
+      data: data,
+      headers:{
+        'Content-Type':"application/json",
+      }
     })
   },
 
@@ -40,7 +44,15 @@ module.exports = {
     })
   },
 
-
+  resetDeviceConfig(data){
+    return post({
+      url: '/reset_config',
+      data: data,
+      headers:{
+        'Content-Type':"application/json",
+      }
+    })
+  }
 
 
 }

+ 24 - 6
electron/controller/setting.js

@@ -5,7 +5,7 @@ const Log = require('ee-core/log');
 const Services = require('ee-core/services');
 const path = require('path');
 const fs = require('fs');
-const { getDeviceConfigs, getDeviceConfigDetail, removeConfig, saveDeviceConfig } = require('../api/setting');
+const { getDeviceConfigs, getDeviceConfigDetail, removeConfig, saveDeviceConfig, resetDeviceConfig } = require('../api/setting');
 
 const errData = {
   msg :'请求失败,请联系管理员',
@@ -29,7 +29,7 @@ class SettingController extends Controller {
   async getDeviceConfigList(args) {
     try {
       const result = await getDeviceConfigs(args);
-      if(result.data)  return result.dta
+      if(result.data)  return result.data
       return errData;
     } catch (error) {
       Log.error('获取设备配置列表失败:', error);
@@ -57,11 +57,14 @@ class SettingController extends Controller {
    */
   async removeDeviceConfig(args) {
     try {
+      console.log('1111');
       const result = await removeConfig(args);
-      return result;
+      console.log(result);
+      if(result.data)  return result.data
+      return errData;
     } catch (error) {
       Log.error('删除设备配置失败:', error);
-      return false;
+      return errData;
     }
   }
 
@@ -72,13 +75,28 @@ class SettingController extends Controller {
   async saveDeviceConfig(args) {
     try {
       const result = await saveDeviceConfig(args);
-      return result;
+      if(result.data)  return result.data
+      return errData;
     } catch (error) {
       Log.error('保存设备配置失败:', error);
-      return false;
+      return errData;
     }
   }
 
+  /**
+   * 重置设备配置
+   * @param {Object} args - 配置ID
+   */
+  async resetDeviceConfig(args) {
+    try {
+      const result = await resetDeviceConfig(args);
+      if(result.data)  return result.data
+      return errData;
+    } catch (error) {
+      Log.error('重置设备配置失败:', error);
+      return errData;
+    }
+  }
 }
 
 SettingController.toString = () => '[class SettingController]';

+ 2 - 1
frontend/src/utils/ipc.ts

@@ -22,9 +22,10 @@ const icpList = {
     },
     setting:{
         getDeviceConfigDetail: 'controller.setting.getDeviceConfigDetail',
-        removeConfig: 'controller.setting.removeConfig',
+        removeDeviceConfig: 'controller.setting.removeDeviceConfig',
         saveDeviceConfig: 'controller.setting.saveDeviceConfig',
         getDeviceConfigList: 'controller.setting.getDeviceConfigList',
+        resetDeviceConfig: 'controller.setting.resetDeviceConfig',
     }
 }
 

+ 3 - 2
frontend/src/views/Home/index.vue

@@ -233,10 +233,11 @@ function socketConnect(){
 
 
 
-function connect_mcu(){
+async function connect_mcu(){
 
   if(clientStore.isClient){
 
+    await socketStore.connectSocket();
      socketStore.sendMessage({
       type: 'connect_mcu',
        data:"connect_mcu"
@@ -247,7 +248,7 @@ function connect_mcu(){
 
 async function connect_bluetooth(){
 
-    await socketStore.connectSocket();
+  await socketStore.connectSocket();
      socketStore.sendMessage({type: 'connect_bluetooth',})
 
       clientStore.ipc.on(icpList.socket.message+'_blue_tooth', (event, result) => {

+ 211 - 98
frontend/src/views/Setting/index.vue

@@ -194,20 +194,20 @@
             <div class="form-table">
               <div class="btnBox">
                 <div class="primary-btn" @click="addRow">新增一行</div>
-                <div class="normal-btn">重新初始化</div>
+                <div class="normal-btn" @click="resetConfig">重新初始化</div>
               </div>
               <el-table height="200px" :data="activeTab === 'left' ? lefttableData : righttableData" style="width: 100%" border>
-                <el-table-column prop="id" label="ID" />
-                <el-table-column prop="name" label="步骤" />
-                <el-table-column prop="value" label="是否拍照" width="200px">
+                <el-table-column prop="id" label="id" />
+                <el-table-column prop="action_name" label="步骤" />
+                <el-table-column prop="take_picture" label="是否拍照" width="200px">
                   <template #default="scope">
-                    <el-radio-group v-model="scope.row.value">
-                      <el-radio :label="1">拍照</el-radio>
-                      <el-radio :label="0">不拍照</el-radio>
+                    <el-radio-group v-model="scope.row.take_picture">
+                      <el-radio :label="true">拍照</el-radio>
+                      <el-radio :label="false">不拍照</el-radio>
                     </el-radio-group>
                   </template>
                 </el-table-column>
-                <el-table-column prop="value" label="排序" >
+                <el-table-column prop="action_index" label="排序" >
                   <template #default="{row, $index}">
                     <a v-if="$index !== 0" class="cursor-pointer" @click="upRow(row)">上移</a>
                     <a class="mar-left-10 cursor-pointer" v-if="$index !== activeTab === 'left' ? lefttableData.length - 1 : righttableData.length - 1" @click="downRow(row)">下移</a>
@@ -224,83 +224,83 @@
           </div>
     </div>
       <div class="text-center mt-8">
-        <button class="bg-gradient-to-r from-primary" @click="saveSetting">
+        <button class="bg-gradient-to-r from-primary" @click="saveSetting" v-if="activeIndex !== 4">
           保存
         </button>
       </div>
-      <el-dialog custom-class="editDialog" v-model="dialogVisible" :title="editTitle" width="620px">
-        <div class="config-type">配置类型:执行{{ activeTab === 'left' ? '左脚' : '右脚' }}程序 <el-checkbox v-model="editRowData.isDefault">开启运动调试</el-checkbox></div>
+      <el-dialog custom-class="editDialog" v-model="dialogVisible" :title="editTitle" width="660px">
+        <div class="config-type">配置类型:执行{{ activeTab === 'left' ? '左脚' : '右脚' }}程序 <el-checkbox v-model="isDefault">开启运动调试</el-checkbox></div>
         <el-form class="editForm" :model="editRowData" label-width="100px">
           <el-form-item label="动作名称">
-            <el-input v-model="editRowData.name" style="width: 170px;"/>
+            <el-input v-model="editRowData.action_name" style="width: 170px;"/>
           </el-form-item>
           <el-form-item label="是否拍照">
-            <el-radio-group v-model="editRowData.value">
-              <el-radio :label="1">拍照</el-radio>
-              <el-radio :label="0">不拍照</el-radio>
+            <el-radio-group v-model="editRowData.take_picture">
+              <el-radio :label="true">拍照</el-radio>
+              <el-radio :label="false">不拍照</el-radio>
             </el-radio-group>
           </el-form-item>
           <el-form-item label="相机高度(mm)">
-            <el-input v-model="editRowData.cameraHeight" style="width: 170px;" type="number">
+            <el-input v-model="editRowData.camera_height" @change="changeNum('camera_high_motor')" :min="0" :max="400" :step="1"  style="width: 170px;" type="number">
             </el-input>
           </el-form-item>
           <el-form-item label="相机倾角">
-            <el-input v-model="editRowData.cameraAngle" style="width: 170px;" type="number">
+            <el-input v-model="editRowData.camera_angle" :min="-40" :max="40" :step=".1" @change="changeNum('camera_steering')" style="width: 170px;" type="number">
             </el-input>
           </el-form-item>
           <el-form-item label="转盘前后位置">
-            <el-input v-model="editRowData.position" style="width: 170px;" type="number">
+            <el-input v-model="editRowData.turntable_position" @change="changeNum('turntable_position_motor')" :min="0" :max="800" :step="1"  style="width: 170px;" type="number">
             </el-input>
           </el-form-item>
           <el-form-item label="转盘角度">
-            <el-input v-model="editRowData.angle" style="width: 170px;" type="number">
+            <el-input v-model="editRowData.turntable_angle" @change="changeNum('turntable_steering')" :min="-720" :max="720" :step="1"  style="width: 170px;" type="number">
             </el-input>
           </el-form-item>
           <el-form-item label="鞋子翻转">
             <div class="flex-row">
-            <el-radio-group v-model="editRowData.shoesFlip">
-              <el-radio :label="1">翻转</el-radio>
-              <el-radio :label="0">不翻转</el-radio>
+            <el-radio-group v-model="editRowData.shoe_upturn">
+              <el-radio :label="true">翻转</el-radio>
+              <el-radio :label="false">不翻转</el-radio>
               </el-radio-group>
-              <a class="cursor-pointer" @click="testShoesFlip">测试翻转</a>
+              <a class="cursor-pointer" @click="changeNum('shoe_upturn')">测试翻转</a>
             </div>
           </el-form-item>
-          <el-form-item label="LED灯光开光">
-            <el-radio-group v-model="editRowData.ledLight">
-              <el-radio :label="0">关闭</el-radio>
-              <el-radio :label="1">开启</el-radio>
+          <el-form-item label="LED灯光开光" @change="changeNum('laser_position')">
+            <el-radio-group v-model="editRowData.led_switch">
+              <el-radio :label="false">关闭</el-radio>
+              <el-radio :label="true">开启</el-radio>
             </el-radio-group>
           </el-form-item>
           <el-form-item label="对焦次数">
-            <el-input v-model="editRowData.focusTimes" style="width: 170px;" type="number">
+            <el-input v-model="editRowData.number_focus" @change="changeNum('take_picture')" :min="0" :max="1" :step="1"  style="width: 170px;" type="number">
             </el-input>
           </el-form-item>
           <el-form-item label="拍照前延时(秒)">
-            <el-input v-model="editRowData.photoDelay" style="width: 170px;" type="number">
+            <el-input v-model="editRowData.pre_delay" :min="0" :max="99" :step="1"  style="width: 170px;" type="number">
             </el-input>
           </el-form-item>
           <el-form-item label="拍照后延时(秒)">
-            <el-input v-model="editRowData.photoAfterDelay" style="width: 170px;" type="number">
+            <el-input v-model="editRowData.after_delay" :min="0" :max="99" :step="1"  style="width: 170px;" type="number">
             </el-input>
           </el-form-item>
-          <el-form-item label="是否等待">
-            <el-radio-group v-model="editRowData.wait">
-              <el-radio :label="0">否</el-radio>
-              <el-radio :label="1">是</el-radio>
+          <!-- <el-form-item label="是否等待">
+            <el-radio-group v-model="editRowData.wait_user">
+              <el-radio :label="false">否</el-radio>
+              <el-radio :label="true">是</el-radio>
             </el-radio-group>
           </el-form-item>
           <el-form-item label="待用户确认照片">
-            <el-radio-group v-model="editRowData.confirmPhoto">
-              <el-radio :label="0">否</el-radio>
-              <el-radio :label="1">是</el-radio>
+            <el-radio-group v-model="editRowData.confirm_photo">
+              <el-radio :label="false">否</el-radio>
+              <el-radio :label="true">是</el-radio>
             </el-radio-group>
-          </el-form-item>
+          </el-form-item> -->
         </el-form>
         <template #footer>
           <div class="btn-row">
-            <div class="normal-btn" @click="dialogVisible = false">后退</div>
-            <div class="primary-btn" @click="testShoesFlip">拍照测试</div>
-            <div class="primary-btn" @click="saveRow">保存并后退</div>
+            <div class="normal-btn" @click="dialogVisible = false">关闭</div>
+            <!-- <div class="primary-btn" @click="testShoesFlip">拍照测试</div> -->
+            <div class="primary-btn" @click="saveRow">保存并关闭</div>
           </div>
         </template>
       </el-dialog>
@@ -312,15 +312,19 @@
 import { ref, reactive } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 import { onMounted, watch } from 'vue';
+import socket from "@/stores/modules/socket";
 
 import client from "@/stores/modules/client";
 import icpList from '@/utils/ipc'
 const clientStore = client();
+import { ElMessage ,ElMessageBox } from 'element-plus'
 
 const route = useRoute();
 const router = useRouter();
 const folderPath = ref('');
 const activeIndex = ref(0);
+
+const socketStore = socket()
 const formData = reactive({
   captureOneFolder: '',
   mainImageSize: '',
@@ -418,22 +422,16 @@ const downList = ref([
   { label: '左右移', value: '3' },
 ]);
 const lefttableData = ref([
-  { id: 1, name: '步骤1', value: 1, order: 1, operation: 1, confirmPhoto: 0, wait: 0, photoDelay: 0, photoAfterDelay: 0, focusTimes: 0, ledLight: 0, shoesFlip: 0, position: 0, angle: 0, cameraHeight: 0, cameraAngle: 0, isDefault: false },
-  { id: 2, name: '步骤2', value: 1, order: 2, operation: 1, confirmPhoto: 0, wait: 0, photoDelay: 0, photoAfterDelay: 0, focusTimes: 0, ledLight: 0, shoesFlip: 0, position: 0, angle: 0, cameraHeight: 0, cameraAngle: 0, isDefault: false  },
-  { id: 3, name: '步骤3', value: 1, order: 3, operation: 1, confirmPhoto: 0, wait: 0, photoDelay: 0, photoAfterDelay: 0, focusTimes: 0, ledLight: 0, shoesFlip: 0, position: 0, angle: 0, cameraHeight: 0, cameraAngle: 0, isDefault: false },
-  { id: 4, name: '步骤4', value: 1, order: 4, operation: 1, confirmPhoto: 0, wait: 0, photoDelay: 0, photoAfterDelay: 0, focusTimes: 0, ledLight: 0, shoesFlip: 0, position: 0, angle: 0, cameraHeight: 0, cameraAngle: 0, isDefault: false },
+ 
 ]);
 const righttableData = ref([
-  { id: 1, name: '步骤1', value: 1, order: 1, operation: 1, confirmPhoto: 0, wait: 0, photoDelay: 0, photoAfterDelay: 0, focusTimes: 0, ledLight: 0, shoesFlip: 0, position: 0, angle: 0, cameraHeight: 0, cameraAngle: 0, isDefault: false },
-  { id: 2, name: '步骤2', value: 1, order: 2, operation: 1, confirmPhoto: 0, wait: 0, photoDelay: 0, photoAfterDelay: 0, focusTimes: 0, ledLight: 0, shoesFlip: 0, position: 0, angle: 0, cameraHeight: 0, cameraAngle: 0, isDefault: false },
-  { id: 3, name: '步骤3', value: 1, order: 3, operation: 1, confirmPhoto: 0, wait: 0, photoDelay: 0, photoAfterDelay: 0, focusTimes: 0, ledLight: 0, shoesFlip: 0, position: 0, angle: 0, cameraHeight: 0, cameraAngle: 0, isDefault: false },
-  { id: 4, name: '步骤4', value: 1, order: 4, operation: 1, confirmPhoto: 0, wait: 0, photoDelay: 0, photoAfterDelay: 0, focusTimes: 0, ledLight: 0, shoesFlip: 0, position: 0, angle: 0, cameraHeight: 0, cameraAngle: 0, isDefault: false },
 ]);
 const dialogVisible = ref(false);
 const editTitle = ref('');
 const editRowData = ref({});
 const activeTab = ref('left');
 const editIndex = ref(0);
+const isDefault = ref(false);
 // Watch for changes in the route query parameter 'type'
 watch(() => route.query.type, (newType) => {
   if (newType) {
@@ -443,17 +441,39 @@ watch(() => route.query.type, (newType) => {
       activeIndex.value = typeValue;
     }
     if(newType === '4'){
-      console.log(1)
+      activeTab.value = 'left';
       clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigList);
-      clientStore.ipc.send(icpList.setting.getDeviceConfigList);
+      clientStore.ipc.send(icpList.setting.getDeviceConfigList, {
+        mode_type:'执行左脚程序'
+      });
       clientStore.ipc.on(icpList.setting.getDeviceConfigList, (event, result) => {
-        console.log(result);
+        lefttableData.value = result.data.list;
         clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigList);
       });
     }
   }
 }, { immediate: true });
-
+watch(() => activeTab.value, (newTab) => {
+  if(newTab === 'left'){
+      clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigList);
+      clientStore.ipc.send(icpList.setting.getDeviceConfigList, {
+        mode_type:'执行左脚程序'
+      });
+      clientStore.ipc.on(icpList.setting.getDeviceConfigList, (event, result) => {
+        lefttableData.value = result.data.list;
+        clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigList);
+      });
+    }else{
+      clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigList);
+      clientStore.ipc.send(icpList.setting.getDeviceConfigList, {
+        mode_type:'执行右脚程序'
+      });
+      clientStore.ipc.on(icpList.setting.getDeviceConfigList, (event, result) => {
+        righttableData.value = result.data.list;
+        clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigList);
+      });
+  }
+});
 // Update the URL when activeIndex changes
 watch(() => activeIndex.value, (newIndex) => {
   router.push({
@@ -487,66 +507,158 @@ const saveSetting = () => {
 }
 const addRow = () => {
   if (activeTab.value === 'left') {
-    lefttableData.value.push({ id: lefttableData.value.length + 1, name: '步骤' + (lefttableData.value.length + 1), value: 1, order: lefttableData.value.length + 1, operation: 1 });
-  } else {
-    righttableData.value.push({ id: righttableData.value.length + 1, name: '步骤' + (righttableData.value.length + 1), value: 1, order: righttableData.value.length + 1, operation: 1 });
-  }
-}
-const upRow = (row) => {
-  if (activeTab.value === 'left') {
-    const index = lefttableData.value.indexOf(row);
-    if (index > 0) {
-      const temp = lefttableData.value[index - 1];
-      lefttableData.value[index - 1] = row;
-      lefttableData.value[index] = temp;
+    editRowData.value = {
+      mode_type:'执行左脚程序',
+      action_name:'',
+      take_picture:false,
+      camera_height:0,
+      camera_angle:0,
+      turntable_position:0,
+      turntable_angle:0,
+      shoe_upturn:false,
+      led_switch:false,
+      number_focus:0,
+      pre_delay:0,
+      after_delay:0,
     }
+    dialogVisible.value = true;
+    editTitle.value = '新增步骤';
   } else {
-    const index = righttableData.value.indexOf(row);
-    if (index > 0) {
-      const temp = righttableData.value[index - 1];
-      righttableData.value[index - 1] = row;
-      righttableData.value[index] = temp;
+    editRowData.value = {
+      mode_type:'执行右脚程序',
+      action_name:'',
+      take_picture:false,
+      camera_height:0,
+      camera_angle:0,
+      turntable_position:0,
+      turntable_angle:0,
+      shoe_upturn:false,
+      led_switch:false,
+      number_focus:0,
+      pre_delay:0,
+      after_delay:0,
     }
+    dialogVisible.value = true;
+    editTitle.value = '新增步骤';
   }
 }
-const downRow = (row) => {
-  if (activeTab.value === 'left') {
-    const index = lefttableData.value.indexOf(row);
-    if (index < lefttableData.value.length - 1) {
-      const temp = lefttableData.value[index + 1];
-      lefttableData.value[index + 1] = row;
-      lefttableData.value[index] = temp;
-    }
-  } else {
-    const index = righttableData.value.indexOf(row);
-    if (index < righttableData.value.length - 1) {
-      const temp = righttableData.value[index + 1];
-      righttableData.value[index + 1] = row;
-      righttableData.value[index] = temp;
+const getList = () => {
+  console.log(1)
+  clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigList);
+  clientStore.ipc.send(icpList.setting.getDeviceConfigList, {
+    mode_type: activeTab.value === 'left' ? '执行左脚程序' : '执行右脚程序'
+  });
+  clientStore.ipc.on(icpList.setting.getDeviceConfigList, (event, result) => {
+    if(result.code==0){
+      if(activeTab.value === 'left'){
+        lefttableData.value = result.data.list;
+      }else{
+        righttableData.value = result.data.list;
+      }
+    }else{
+      ElMessage.error('获取列表失败');
     }
-  }
+    clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigList);
+  });
+}
+const upRow = (row) => {
+  
+}
+const downRow = (row) => {
+
 }
 const editRow = (row, index) => {
   dialogVisible.value = true;
-  editTitle.value = row.name+'编辑';
-  editRowData.value = row;
+  editTitle.value = row.action_name+'编辑';
+  clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigDetail);
+  clientStore.ipc.send(icpList.setting.getDeviceConfigDetail, {
+    id: row.id
+  });
+  clientStore.ipc.on(icpList.setting.getDeviceConfigDetail, (event, result) => {
+    editRowData.value = result.data;
+    clientStore.ipc.removeAllListeners(icpList.setting.getDeviceConfigDetail);
+  });
   editIndex.value = index;
 }
 const deleteRow = (row, index) => {
-  if (activeTab.value === 'left') {
-    lefttableData.value = lefttableData.value.filter(item => item.id !== row.id);
-  } else {
-    righttableData.value = righttableData.value.filter(item => item.id !== row.id);
-  }
+  ElMessageBox.confirm('确定删除该步骤吗?', '提示', {
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+    type: 'warning'
+  }).then(() => {
+    clientStore.ipc.send(icpList.setting.removeDeviceConfig, {
+      id: row.id
+    });
+    clientStore.ipc.on(icpList.setting.removeDeviceConfig, (event, result) => {
+      console.log(result);
+      if(result.code==0){
+        getList();
+        ElMessage.success('删除成功');
+      }else{
+        ElMessage.error('删除失败');
+      }
+      clientStore.ipc.removeAllListeners(icpList.setting.removeDeviceConfig);
+    });
+  })
 }
 const saveRow = () => {
-  if (activeTab.value === 'left') {
-    lefttableData.value[editIndex.value] = editRowData.value;
-  } else {
-    righttableData.value[editIndex.value] = editRowData.value;
+  clientStore.ipc.send(icpList.setting.saveDeviceConfig, {
+    ...editRowData.value
+  });
+  clientStore.ipc.on(icpList.setting.saveDeviceConfig, (event, result) => {
+    if(result.code==0){
+      getList();
+      ElMessage.success('保存成功');
+      dialogVisible.value = false;
+      clientStore.ipc.removeAllListeners(icpList.setting.saveDeviceConfig);
+    }else{
+      ElMessage.error('保存失败');
+    }
+  });
+}
+const resetConfig = () => {
+  ElMessageBox.confirm(`确定初始化执行${activeTab.value === 'left' ? '左脚' : '右脚'}程序吗?`, '提示', {
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+    type: 'warning'
+  }).then(() => {
+    clientStore.ipc.send(icpList.setting.resetDeviceConfig,{
+      mode_type: activeTab.value === 'left' ? '执行左脚程序' : '执行右脚程序'
+    });
+    clientStore.ipc.on(icpList.setting.resetDeviceConfig, (event, result) => {
+      if(result.code==0){
+      getList();
+      ElMessage.success('重置成功');
+    }else{
+      ElMessage.error('重置失败');
+    }
+      clientStore.ipc.removeAllListeners(icpList.setting.resetDeviceConfig);
+    });
+  })
+}
+
+async function changeNum(type){
+  if(isDefault.value){
+    let socketValue = {
+      'camera_high_motor':'camera_height',  
+      'turntable_steering':'turntable_angle',
+      'turntable_position_motor':'turntable_position',
+      'camera_steering':'camera_angle',
+      'shoe_upturn':'shoe_upturn',
+      'laser_position':'led_switch',
+      'take_picture':'number_focus',
+    }
+    await socketStore.connectSocket();
+     socketStore.sendMessage({
+      type: 'control_mcu',
+       data:{
+        device_name: type,
+        value:type=='laser_position'?(editRowData.led_switch?1:0): editRowData.value[socketValue[type]]
+       }
+    })
   }
-  dialogVisible.value = false;
 }
+
 </script>
 
 <style lang="scss" scoped>
@@ -698,6 +810,7 @@ body {
   align-items: center;
   justify-content: center;
   padding: 30px 0;
+  height: 100px;
 }
 .form-table{
   margin-top: 10px;
@@ -815,7 +928,7 @@ body {
   :deep(.el-form-item) {
     margin-bottom: 0;
     .el-form-item__label {
-      width: 105px !important;
+      width: 120px !important;
       padding-right: 0 !important;
         background: #FBFCFF;
         border: 1px solid #EEEEEE;