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