diff --git a/src/App.vue b/src/App.vue index d7c5166..640db32 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,8 +6,24 @@ import { onMounted } from "vue"; import { getConfig, getContainerList } from "./services/sysConfig/sysConfig"; import { useSettingStore } from "./stores/setting"; import { getLiquidList } from "./services/liquid/liquidManage"; +import { useStatusStore } from "./stores/status"; +import { ElMessage } from "element-plus"; const router = useRouter(); const settingStore = useSettingStore(); +const statusStore = useStatusStore(); + +const wsClient = createWebSocket(sharedWsUrl); +wsClient.dataOb.subscribe(data => { + if (data.type === "status") { + statusStore.setStatus(data.data); + } else if (data.type === "warn") { + ElMessage({ + message: data.data.message, + type: "warning", + }); + } +}); +wsClient.connect(); exceptionOb.subscribe(exp => { if (exp === "invalidToken") { @@ -23,7 +39,7 @@ onMounted(() => { }); getLiquidList({ pageNum: 1, pageSize: 9999 }).then(res => { if (res.success) { - settingStore.setLiquidList(res.data.list) + settingStore.setLiquidList(res.data.list); } }); getContainerList().then(res => { diff --git a/src/stores/status.ts b/src/stores/status.ts index 5e12eed..525527a 100644 --- a/src/stores/status.ts +++ b/src/stores/status.ts @@ -1,12 +1,16 @@ -import { ref, computed } from 'vue' -import { defineStore } from 'pinia' -import type { StatusDatagram } from '@/services/socket' +import { ref, computed } from "vue"; +import { defineStore } from "pinia"; +import * as R from "ramda"; +import type { StatusDatagram } from "@/services/socket"; -export const useStatusStore = defineStore('status', () => { - const status = ref() - const setStatus = (data: StatusDatagram['data']) => { - status.value = data - } +export const useStatusStore = defineStore("status", () => { + const status = ref(); + const setStatus = (data: StatusDatagram["data"]) => { + if (!R.equals(status.value, data)) { + console.log("status: ", data); + status.value = data; + } + }; - return { status, setStatus } -}) + return { status, setStatus }; +}); diff --git a/src/views/debug/debug.vue b/src/views/debug/debug.vue index e7e8330..2d348ef 100644 --- a/src/views/debug/debug.vue +++ b/src/views/debug/debug.vue @@ -29,12 +29,12 @@ v-model="y" class="rounded-sm px-1 w-16" /> Z: - + @@ -212,7 +212,6 @@ const shakeUpSpeed = ref(5); onMounted(() => { const wsClient = createWebSocket(sharedWsUrl); const subscription = wsClient.dataOb.subscribe(data => { - console.log(data); if (data.type === "cmd") { const cmdInfo = getTxnRecord(data.data.commandId, "debug"); if (cmdInfo) { @@ -224,13 +223,6 @@ onMounted(() => { type: data.data.success ? "success" : "error", }); } - } else if (data.type === "status") { - statusStore.setStatus(data.data); - } else if (data.type === "warn") { - ElMessage({ - message: data.data.message, - type: "warning", - }); } }); wsClient.connect(); diff --git a/src/views/graphite/index.vue b/src/views/graphite/index.vue index 18d8c2d..c1ecdb3 100644 --- a/src/views/graphite/index.vue +++ b/src/views/graphite/index.vue @@ -147,13 +147,6 @@ onMounted(() => { type: data.data.success ? "success" : "error", }); } - } else if (data.type === "status") { - statusStore.setStatus(data.data); - } else if (data.type === "warn") { - ElMessage({ - message: data.data.message, - type: "warning", - }); } }); wsClient.connect();