From 3acec796e54dc2f5e7d93e8ca72db7da9ec46f60 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期一, 28 四月 2025 17:33:56 +0800 Subject: [PATCH] 2025.04.28 --- src/views/inspection/WorkStream.vue | 71 +++++++++++++++++++++++++++++++---- 1 files changed, 62 insertions(+), 9 deletions(-) diff --git a/src/views/inspection/WorkStream.vue b/src/views/inspection/WorkStream.vue index 0a5d41c..1f71798 100644 --- a/src/views/inspection/WorkStream.vue +++ b/src/views/inspection/WorkStream.vue @@ -1,14 +1,20 @@ <template> <!-- <div class="border-r-small m-h-2 p-h-4"> --> <BaseCard> + <!-- <div> + <input type="text" v-model="inputVal" /> + <button @click="handleSend">send</button> + <button @click="handleLink">link</button> + </div> --> + <div>涓氬姟鐘舵�佷腑鎺�</div> <el-scrollbar ref="scrollbarRef" :height="height"> <div ref="scrollContentRef"> <div v-for="item in streams" :key="item.index"> <el-text type="primary">[{{ item.time }}]: </el-text> <el-text>鐢ㄦ埛</el-text> - <el-text type="warning">{{ item.user }}</el-text> - <el-text>鍦�</el-text> - <el-text type="success">{{ item.obj }}</el-text> + <el-text type="warning">{{ item.userName }}</el-text> + <!-- <el-text>鍦�</el-text> + <el-text type="success">{{ item.obj }}</el-text> --> <el-text>{{ item.event }}</el-text> </div> </div> @@ -17,10 +23,11 @@ <!-- </div> --> </template> <script setup> -import { reactive, ref, onMounted, inject } from 'vue' +import { reactive, ref, onMounted, onUnmounted, inject } from 'vue' import dayjs from 'dayjs' import { unCalc } from '@/utils/css-util' +import { ws } from '@/api/index' const excludeMapHeight = inject('excludeMapHeight') const height = `calc(${unCalc(excludeMapHeight)} - 36px)` @@ -59,18 +66,64 @@ }, 100) } +const inputVal = ref('') + +const handleSend = () => { + if (socket) { + socket.send(inputVal.value) + } +} + +let socket +const handleLink = () => { + if (socket) { + socket.close() + } + const url = 'ws://' + ws + '/workstream' + // socket = new WebSocket(`ws://192.168.0.138:8080/workstream`) + socket = new WebSocket(url) + // 涓庢湇鍔″櫒寤虹珛杩炴帴锛氬彂閫佹秷鎭埌鏈嶅姟鍣� + socket.onopen = () => { + console.log('connect: ') + } + // 鏀跺埌鏈嶅姟鍣ㄥ彂閫佺殑娑堟伅锛歟vent澶勭悊鏈嶅姟鍣ㄨ繑鍥炵殑鏁版嵁 + socket.onmessage = (event) => { + console.log('receive: ', event.data) + putWorkStream(event.data) + } + // 杩炴帴鎴栭�氫俊杩囩▼涓彂鐢熼敊璇� + socket.onerror = (event) => { + console.log('errror: ', event.error) + } + // 涓庢湇鍔″櫒鏂紑杩炴帴 + socket.onclose = (event) => { + console.log('close: ', event.code) + } +} + +/** + * 娣诲姞涓�鏉″伐浣滄祦淇℃伅 + * @param {*} data + */ +function putWorkStream(data) { + const obj = JSON.parse(data) + streams.push(obj) + scrollToBottom() +} + onMounted(() => { - // var index = 0 + // handleLink() setInterval(() => { streams.push({ - // index: index, time: dayjs().format('YYYY-MM-DD HH:mm:ss'), - user: users[parseInt(Math.random() * users.length)], + userName: users[parseInt(Math.random() * users.length)], obj: objs[parseInt(Math.random() * objs.length)], event: events[parseInt(Math.random() * events.length)] }) scrollToBottom() - // index++ - }, 10000) + }, 5000) +}) +onUnmounted(() => { + socket.close() }) </script> -- Gitblit v1.9.3