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 |  266 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 227 insertions(+), 39 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 8e85b24..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"
@@ -1,7 +1,7 @@
 <template>
   <div class="PickAndDrop">
     <div class="button">
-      <div class="button_l">
+      <!-- <div class="button_l">
         <el-button
           @click="handleAutoPickAndDrop('浼稿嚭')"
           type="primary"
@@ -32,7 +32,7 @@
               >i</span
             >
           </div>
-          <span style="font-size: 2.25rem; text-align: center">浼稿嚭</span>
+          <span style="font-size: 2.25rem; text-align: center">瀹氫綅浼告寜閽�</span>
         </el-button>
         <el-button
           @click="handleAutoPickAndDrop('缂╁洖')"
@@ -64,9 +64,41 @@
               >i</span
             >
           </div>
-          <span style="font-size: 2.25rem; text-align: center">缂╁洖</span>
+          <span style="font-size: 2.25rem; text-align: center">瀹氫綅缂╂寜閽�</span>
         </el-button>
-      </div>
+        <el-button
+          @click="handlePouse"
+          type="primary"
+          size="small"
+          style="
+            width: 14.69rem;
+            height: 5.06rem;
+            color: rgba(64, 253, 240, 1);
+            background-color: rgba(6, 229, 231, 0.3);
+            border: none;
+            border-top: 0.25rem solid rgba(6, 229, 231, 1);
+          "
+        >
+          <div class="btnicon">
+            <span
+              style="
+                width: 1rem;
+                height: 1rem;
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                border-radius: 50% 50%;
+                border: 0.1rem solid rgb(0, 0, 0);
+                color: rgb(0, 0, 0);
+                font-size: 0.75rem;
+                margin-left: 0.1rem;
+              "
+              >i</span
+            >
+          </div>
+          <span style="font-size: 2.25rem; text-align: center">鏆傚仠</span>
+        </el-button>
+      </div> -->
       <div class="button_r">
         <el-button
           @click="jumpRouter('/Manualcontrol')"
@@ -87,12 +119,21 @@
     </div>
     <div v-if="isMobile" class="content">
       <div class="content_l">
-        <div class="model">宸︿晶浼哥缉鏉�</div>
+        <div class="model">
+          <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>
@@ -107,17 +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">鍙充晶浼哥缉鏉�</div>
+        <div class="model">
+          <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>
@@ -132,19 +182,28 @@
             <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>
     </div>
     <div v-else class="content_mobile">
       <div class="content_l">
-        <div class="model">宸︿晶浼哥缉鏉�</div>
+        <div class="model">
+          <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>
@@ -159,17 +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">鍙充晶浼哥缉鏉�</div>
+        <div class="model">
+          <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>
@@ -184,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>
@@ -192,14 +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 } from "@/api/newapi/Parameters.js";
+import {
+  AutoPickAndDrop,
+  Pouse,
+  GetPosition,
+  GetParameter,
+} from "@/api/newapi/Parameters.js";
 
 const router = useRouter();
 const isMobile = ref(false);
-
+const Position = ref({
+  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);
 };
@@ -217,6 +314,79 @@
     console.error(error);
     ElMessage.error("鎿嶄綔澶辫触");
   }
+};
+const handlePouse = async () => {
+  try {
+    const response = await Pouse();
+    if (response.code === 0) {
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+    ElMessage.error(error);
+  }
+};
+
+//鑾峰彇褰撳墠浣嶇疆
+// 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) {
+      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(() => {
   // 鐩戝惉绐楀彛澶у皬鍙樺寲
@@ -237,6 +407,19 @@
     // 濡傛灉绐楀彛瀹藉害灏忎簬绛変簬1080px锛屾墽琛岀浉搴旂殑鎿嶄綔
     isMobile.value = false;
   }
+  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>
@@ -248,7 +431,7 @@
   .button {
     height: 7.83rem;
     display: flex;
-    justify-content: space-between;
+    justify-content: center;
     .button_l {
       display: flex;
       .btnicon {
@@ -360,7 +543,9 @@
       padding: 2rem 0rem;
       .model {
         color: #fff;
-        text-align: center;
+        display: flex;
+        justify-content: space-between;
+        padding: 0rem 2rem;
         width: 100%;
         font-size: 2rem;
       }
@@ -505,7 +690,9 @@
       padding: 2rem 0rem;
       .model {
         color: #fff;
-        text-align: center;
+        display: flex;
+        justify-content: space-between;
+        padding: 0rem 2rem;
         width: 100%;
         font-size: 2rem;
       }
@@ -650,14 +837,14 @@
       box-shadow: 0rem 0.13rem 0.38rem 0rem rgba(6, 229, 231, 1);
       border: 0.06rem solid rgba(6, 229, 231, 1);
       padding: 2rem 0rem;
-
       .model {
         color: #fff;
-        text-align: center;
+        display: flex;
+        justify-content: space-between;
+        padding: 0rem 2rem;
         width: 100%;
         font-size: 2rem;
       }
-
       .operate {
         display: flex;
         flex-direction: column;
@@ -790,10 +977,11 @@
       border: 0.06rem solid rgba(6, 229, 231, 1);
       margin-top: 10%;
       padding: 2rem 0rem;
-
       .model {
         color: #fff;
-        text-align: center;
+        display: flex;
+        justify-content: space-between;
+        padding: 0rem 2rem;
         width: 100%;
         font-size: 2rem;
       }

--
Gitblit v1.9.3