You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
4 months ago
|
<script setup lang="ts">
|
||
|
import ZMQWorker from '@/composables/useZMQJsonWorker'
|
||
|
import type { ZmqStatus } from './utils/zmq'
|
||
|
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
||
|
import { ElNotification, type NotificationHandle } from 'element-plus'
|
||
|
const worker = ZMQWorker.getInstance()
|
||
|
const zmqStatus = ref<ZmqStatus>('connected')
|
||
|
|
||
|
worker.setStatusCallback((status: string) => {
|
||
|
zmqStatus.value = status as ZmqStatus
|
||
|
})
|
||
|
|
||
|
provide('zmqStatus', zmqStatus)
|
||
|
onMounted(() => {
|
||
|
worker.start()
|
||
|
})
|
||
|
|
||
|
onBeforeUnmount(() => {
|
||
|
worker.stop()
|
||
|
})
|
||
|
const notification = ref<NotificationHandle>()
|
||
|
|
||
|
watch(zmqStatus, status => {
|
||
|
if (status === 'disconnected') {
|
||
|
notification.value?.close()
|
||
|
notification.value = ElNotification({
|
||
|
title: '通讯异常',
|
||
|
message: '请检查通讯连接',
|
||
|
type: 'error',
|
||
|
duration: 0,
|
||
|
})
|
||
|
} else {
|
||
|
notification.value?.close()
|
||
|
notification.value = ElNotification({
|
||
|
title: '通讯正常',
|
||
|
message: '通讯正常',
|
||
|
type: 'success',
|
||
|
duration: 3000,
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
</script>
|
||
|
|
||
|
<template>
|
||
|
<el-config-provider :locale="zhCn">
|
||
|
<RouterView />
|
||
|
</el-config-provider>
|
||
|
</template>
|
||
|
|
||
|
<style scoped lang="scss"></style>
|