| | |
| | | <template> |
| | | <div class="AlarmReset"> |
| | | <div style="width: 100%; text-align: center; font-size: 5rem; color: #fff"> |
| | | <div |
| | | :style="{ |
| | | width: '100%', |
| | | textAlign: 'center', |
| | | fontSize: isMin ? '5rem' : '2rem', |
| | | color: '#fff', |
| | | }" |
| | | > |
| | | æ¥è¦å¤ä½ |
| | | </div> |
| | | <div style="margin-top: 3rem"> |
| | | <el-table :data="tableData" style="width: 100%" height="800"> |
| | | <el-table |
| | | empty-text="ææ æ°æ®" |
| | | :data="tableData" |
| | | style="width: 100%" |
| | | :height="isMin ? '800' : '450'" |
| | | > |
| | | <el-table-column prop="Id" label="åºå·" /> |
| | | <el-table-column prop="AlarmContent" label="æ¥è¦å
容" /> |
| | | <el-table-column prop="ResetStatus" label="å¤ä½ç¶æ" /> |
| | |
| | | /> |
| | | </div> |
| | | <div |
| | | style=" |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | margin-top: 4rem; |
| | | " |
| | | :style="{ |
| | | width: '100%', |
| | | display: 'flex', |
| | | justifyContent: 'center', |
| | | marginTop: isMin ? '4rem' : '2rem', |
| | | }" |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | style="width: 10rem; height: 3rem" |
| | | :style="{ |
| | | width: isMin ? '16rem' : '10rem', |
| | | height: isMin ? '5rem' : '2.5rem', |
| | | }" |
| | | @click="handleBecomeTrue" |
| | | >æ¥è¦å¤ä½</el-button |
| | | ><span :style="{ fontSize: isMin ? '3rem' : '1.5rem' }"> |
| | | æ¥è¦å¤ä½</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | :style="{ |
| | | width: isMin ? '20rem' : '10rem', |
| | | height: isMin ? '5rem' : '2.5rem', |
| | | }" |
| | | @click="handleClearAlarm" |
| | | ><span :style="{ fontSize: isMin ? '3rem' : '1.5rem' }"> |
| | | æ¸
餿¥è¦ä¿¡æ¯</span |
| | | ></el-button |
| | | > |
| | | </div> |
| | | </div> |
| | |
| | | <script setup> |
| | | import { ref, onMounted, onUnmounted } from "vue"; |
| | | import { ElMessage } from "element-plus"; |
| | | import { BecomeTrue } from "@/api/newapi/AlarmReset.js"; |
| | | import { BecomeTrue, ClearAlarm } from "@/api/newapi/AlarmReset.js"; |
| | | import { formatTime } from "@/utils/index.js"; |
| | | |
| | | const timer = ref(null); |
| | |
| | | const pageSize = ref(10); // æ¯é¡µæ¾ç¤ºçæ¡æ° |
| | | const currentPage = ref(0); // å½å页ç |
| | | const total = ref(0); // æ»æ¡æ° |
| | | const isStart = ref(false); // æ¯å¦å¼å§ |
| | | const positionvalue = ref({}); // ä½ç½®å¼ |
| | | |
| | | const createSocket = (url) => { |
| | | clearInterval(timer.value); |
| | | // å建WebSocketè¿æ¥ |
| | | //"ws://127.0.0.1:9295/admin" |
| | | client.value = new WebSocket("ws://192.168.2.103:5173/"); |
| | | //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); |
| | | tableData.value = data.Data.slice( |
| | | currentPage.value * pageSize.value, |
| | | (currentPage.value + 1) * pageSize.value |
| | | ); |
| | | total.value = data.Data.length; // æ´æ°æ»æ¡æ° |
| | | console.log("WebSocket æ¥æ¶å°æ¶æ¯", tableData.value); |
| | | if (data.Status) { |
| | | tableData.value = data.Data.slice( |
| | | currentPage.value * pageSize.value, |
| | | (currentPage.value + 1) * pageSize.value |
| | | ); |
| | | total.value = data.Data.length; // æ´æ°æ»æ¡æ° |
| | | } else { |
| | | positionvalue.value = data; |
| | | } |
| | | |
| | | console.log("WebSocket æ¥æ¶å°æ¶æ¯", data); |
| | | }; |
| | | client.value.onclose = function () { |
| | | console.log("WebSocket è¿æ¥å
³é"); |
| | | timer.value = setTimeout(createSocket, 1000); |
| | | if (isStart.value) { |
| | | timer.value = setTimeout(createSocket, 1000); |
| | | } |
| | | }; |
| | | |
| | | client.value.onerror = function () {}; |
| | |
| | | const handleCurrentChange = (val) => { |
| | | currentPage.value = val - 1; // æ´æ°å½å页ç |
| | | }; |
| | | const account = JSON.parse(localStorage.getItem("user")).userName; // è·åè´¦å· |
| | | // const account = JSON.parse(localStorage.getItem("user")).userName; // è·åè´¦å· |
| | | //å¤ä½æé®æ¹æ³ |
| | | const handleBecomeTrue = (val) => { |
| | | BecomeTrue({ |
| | | account: account, |
| | | }).then((res) => { |
| | | const handleBecomeTrue = () => { |
| | | BecomeTrue().then((res) => { |
| | | if (res.code == 0) { |
| | | ElMessage({ |
| | | message: "å¤ä½æå", |
| | |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | //æ¸
餿¥è¦ä¿¡æ¯æ¹æ³ |
| | | const handleClearAlarm = () => { |
| | | ClearAlarm().then((res) => { |
| | | if (res.code == 0) { |
| | | ElMessage({ |
| | | message: "æ¸
餿å", |
| | | type: "success", |
| | | }); |
| | | } |
| | | }); |
| | | }; |
| | | const isMin = ref(false); // æ¯å¦æå°å |
| | | onMounted(() => { |
| | | isMin.value = window.innerWidth <= 1080; // 夿æ¯å¦æå°å |
| | | isStart.value = true; // 设置为å¼å§ç¶æ |
| | | createSocket(); |
| | | }); |
| | | |
| | | onUnmounted(() => { |
| | | isStart.value = false; |
| | | clearInterval(timer.value); |
| | | if (client.value) { |
| | | client.value.close(); |
| | | } |
| | | clearInterval(timer.value); |
| | | }); |
| | | </script> |
| | | <style lang="scss" scoped> |