From 772190e7b2e3f6ef0695ba54d9209324acdcb30a Mon Sep 17 00:00:00 2001
From: 艺术家 <10819716+q100102@user.noreply.gitee.com>
Date: 星期三, 04 六月 2025 13:57:17 +0800
Subject: [PATCH] 伸缩杆代码提交

---
 项目代码/伸缩杆/client/src/views/tts/PickAndDrop/PickAndDrop.vue |  171 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 137 insertions(+), 34 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/PickAndDrop.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/PickAndDrop.vue"
index 394ef4c..bbf06f9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/PickAndDrop.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/PickAndDrop.vue"
@@ -120,15 +120,20 @@
     <div v-if="isMobile" class="content">
       <div class="content_l">
         <div class="model">
-          <span>褰撳墠浼哥缉鏉嗕綅缃細{{ Position.right }}</span>
+          <span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              leftposition.Liftvalue ? parseInt(leftposition.Liftvalue) : 0
+            }}</span
+          >
           <span>宸︿晶浼哥缉鏉�</span>
           <span></span>
         </div>
         <div class="operate">
-          <div class="item">浼稿埌浣�</div>
-          <div class="item">缂╁埌浣�</div>
-          <div class="item">浼稿嚭閫熷害</div>
-          <div class="item">缂╁洖閫熷害</div>
+          <div class="item">浼稿埌浣�:{{ ruleForm.leftPosition }}</div>
+          <!--  ruleForm.leftPosition -->
+          <div class="item">缂╁埌浣�:{{ 0 }}</div>
+          <div class="item">浼稿嚭閫熷害:{{ ruleForm.extendSpeed }}</div>
+          <div class="item">缂╁洖閫熷害:{{ ruleForm.extendSpeed }}</div>
           <div class="open">
             <div class="city">
               <div class="dotted"></div>
@@ -143,21 +148,26 @@
             <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
               >瑙嗛鐩戞帶宸︿晶</span
             >
-            <img src="@/assets/imgs/right.png" alt="" />
+            <img src="@/assets/imgs/left.png" alt="" />
           </div>
         </div>
       </div>
       <div class="content_r">
         <div class="model">
-          <span>褰撳墠浼哥缉鏉嗕綅缃細{{ Position.right }}</span>
-          <span>宸︿晶浼哥缉鏉�</span>
+          <span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              rightposition.Rightvalue ? parseInt(rightposition.Rightvalue) : 0
+            }}</span
+          >
+          <span>鍙充晶浼哥缉鏉�</span>
           <span></span>
         </div>
         <div class="operate">
-          <div class="item">浼稿埌浣�</div>
-          <div class="item">缂╁埌浣�</div>
-          <div class="item">浼稿嚭閫熷害</div>
-          <div class="item">缂╁洖閫熷害</div>
+          <div class="item">浼稿埌浣�:{{ ruleForm.rightPosition }}</div>
+          <!-- ruleForm.rightPosition -->
+          <div class="item">缂╁埌浣�:{{ 0 }}</div>
+          <div class="item">浼稿嚭閫熷害:{{ ruleForm.retractionSpeed }}</div>
+          <div class="item">缂╁洖閫熷害:{{ ruleForm.retractionSpeed }}</div>
           <div class="open">
             <div class="city">
               <div class="dotted"></div>
@@ -172,7 +182,7 @@
             <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
               >瑙嗛鐩戞帶鍙充晶</span
             >
-            <img src="@/assets/imgs/left.png" alt="" />
+            <img src="@/assets/imgs/right.png" alt="" />
           </div>
         </div>
       </div>
@@ -180,15 +190,20 @@
     <div v-else class="content_mobile">
       <div class="content_l">
         <div class="model">
-          <span>褰撳墠浼哥缉鏉嗕綅缃細{{ Position.left }}</span>
+          <span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              leftposition.Liftvalue ? parseInt(leftposition.Liftvalue) : 0
+            }}</span
+          >
           <span>宸︿晶浼哥缉鏉�</span>
           <span></span>
         </div>
         <div class="operate">
-          <div class="item">浼稿埌浣�</div>
-          <div class="item">缂╁埌浣�</div>
-          <div class="item">浼稿嚭閫熷害</div>
-          <div class="item">缂╁洖閫熷害</div>
+          <div class="item">浼稿埌浣�:{{ ruleForm.leftPosition }}</div>
+          <!-- ruleForm.leftPosition  -->
+          <div class="item">缂╁埌浣�:{{ 0 }}</div>
+          <div class="item">浼稿嚭閫熷害:{{ ruleForm.extendSpeed }}</div>
+          <div class="item">缂╁洖閫熷害:{{ ruleForm.extendSpeed }}</div>
           <div class="open">
             <div class="city">
               <div class="dotted"></div>
@@ -203,21 +218,26 @@
             <span style="color: #fff; font-size: 2.5rem; font-weight: bold"
               >瑙嗛鐩戞帶宸︿晶</span
             >
-            <img src="@/assets/imgs/right.png" alt="" />
+            <img src="@/assets/imgs/left.png" alt="" />
           </div>
         </div>
       </div>
       <div class="content_r">
         <div class="model">
-          <span>褰撳墠浼哥缉鏉嗕綅缃細{{ Position.right }}</span>
-          <span>宸︿晶浼哥缉鏉�</span>
+          <span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              rightposition.Rightvalue ? parseInt(rightposition.Rightvalue) : 0
+            }}</span
+          >
+          <span>鍙充晶浼哥缉鏉�</span>
           <span></span>
         </div>
         <div class="operate">
-          <div class="item">浼稿埌浣�</div>
-          <div class="item">缂╁埌浣�</div>
-          <div class="item">浼稿嚭閫熷害</div>
-          <div class="item">缂╁洖閫熷害</div>
+          <div class="item">浼稿埌浣�:{{ ruleForm.rightPosition }}</div>
+          <!--  ruleForm.rightPosition -->
+          <div class="item">缂╁埌浣�:{{ 0 }}</div>
+          <div class="item">浼稿嚭閫熷害:{{ ruleForm.retractionSpeed }}</div>
+          <div class="item">缂╁洖閫熷害:{{ ruleForm.retractionSpeed }}</div>
           <div class="open">
             <div class="city">
               <div class="dotted"></div>
@@ -232,7 +252,7 @@
             <span style="color: #fff; font-size: 2.5rem; font-weight: bold"
               >瑙嗛鐩戞帶鍙充晶</span
             >
-            <img src="@/assets/imgs/left.png" alt="" />
+            <img src="@/assets/imgs/right.png" alt="" />
           </div>
         </div>
       </div>
@@ -240,22 +260,43 @@
   </div>
 </template>
 <script setup>
-import { ref, onMounted, nextTick } from "vue";
+import { ref, onMounted, nextTick, onUnmounted } from "vue";
 import { useRouter } from "vue-router";
 import { ElMessage } from "element-plus";
 import {
   AutoPickAndDrop,
   Pouse,
   GetPosition,
+  GetParameter,
 } from "@/api/newapi/Parameters.js";
 
 const router = useRouter();
 const isMobile = ref(false);
 const Position = ref({
-  left: 0,
+  lift: 0,
   right: 0,
 });
-
+const ruleForm = ref({
+  creater: "string",
+  createDate: "2025-03-27T05:48:57.698Z",
+  modifier: "string",
+  modifyDate: "2025-03-27T05:48:57.698Z",
+  id: 0,
+  extendSpeed: 0,
+  retractionSpeed: 0,
+  manualExtend: 0,
+  manualRetraction: 0,
+  // depid: userInfo.depid,
+  // account: userInfo.userName,
+  leftPosition: 0,
+  rightPosition: 0,
+});
+const rightposition = ref({});
+const leftposition = ref({});
+const tableData = ref([]);
+const isStart = ref(false); // 鏄惁寮�濮�
+const timer = ref(null);
+const client = ref(null);
 const jumpRouter = (path) => {
   router.push(path);
 };
@@ -289,13 +330,63 @@
 };
 
 //鑾峰彇褰撳墠浣嶇疆
-const getPosition = () => {
-  GetPosition().then((res) => {
+// const getPosition = () => {
+//   GetPosition().then((res) => {
+//     if (res.code == 0) {
+//       Position.value.lift = res.data.lift;
+//       Position.value.right = res.data.right;
+//     }
+//   });
+// };
+
+//鑾峰彇鍙傛暟
+const getParameter = () => {
+  GetParameter().then((res) => {
     if (res.code == 0) {
-      Position.value.left = res.data.lift;
-      Position.value.right = res.data.right;
+      ruleForm.value.extendSpeed = res.data == null ? 0 : res.data.extendSpeed;
+      ruleForm.value.retractionSpeed =
+        res.data == null ? 0 : res.data.retractionSpeed;
+      ruleForm.value.manualExtend =
+        res.data == null ? 0 : res.data.manualExtend;
+      ruleForm.value.manualRetraction =
+        res.data == null ? 0 : res.data.manualRetraction;
+      ruleForm.value.leftPosition =
+        res.data == null ? 0 : res.data.leftPosition;
+      ruleForm.value.rightPosition =
+        res.data == null ? 0 : res.data.rightPosition;
     }
   });
+};
+
+const createSocket = (url) => {
+  clearInterval(timer.value);
+  // 鍒涘缓WebSocket杩炴帴
+  //"ws://127.0.0.1:9295/admin"
+  //192.168.1.103
+  client.value = new WebSocket("ws://192.168.1.103:5173/");
+  client.value.onopen = function () {
+    console.log("WebSocket 杩炴帴鎴愬姛");
+  };
+  client.value.onmessage = function (event) {
+    let data = JSON.parse(event.data);
+    if (data.Status) {
+      tableData.value = data.Data;
+    } else if (data.device == "鍙砅lc") {
+      rightposition.value = data;
+    } else if (data.device == "宸lc") {
+      leftposition.value = data;
+    }
+
+    console.log("WebSocket 鎺ユ敹鍒版秷鎭�", data);
+  };
+  client.value.onclose = function () {
+    console.log("WebSocket 杩炴帴鍏抽棴");
+    if (isStart.value) {
+      timer.value = setTimeout(createSocket, 1000);
+    }
+  };
+
+  client.value.onerror = function () {};
 };
 onMounted(() => {
   // 鐩戝惉绐楀彛澶у皬鍙樺寲
@@ -316,7 +407,19 @@
     // 濡傛灉绐楀彛瀹藉害灏忎簬绛変簬1080px锛屾墽琛岀浉搴旂殑鎿嶄綔
     isMobile.value = false;
   }
-  getPosition();
+  isStart.value = true; // 璁剧疆涓哄紑濮嬬姸鎬�
+  createSocket();
+  // getPosition();
+  getParameter();
+});
+
+onUnmounted(() => {
+  isStart.value = false;
+  clearInterval(timer.value);
+  if (client.value) {
+    client.value.close();
+  }
+  clearInterval(timer.value);
 });
 </script>
 <style lang="scss" scoped>

--
Gitblit v1.9.3