| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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 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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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); |
| | | }; |
| | |
| | | }; |
| | | |
| | | //è·åå½åä½ç½® |
| | | 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 == "å³Plc") { |
| | | rightposition.value = data; |
| | | } else if (data.device == "å·¦Plc") { |
| | | 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(() => { |
| | | // çå¬çªå£å¤§å°åå |
| | |
| | | // 妿çªå£å®½åº¦å°äºçäº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> |