diff --git a/src/assets/icon_operation.svg b/src/assets/icon_operation.svg new file mode 100644 index 0000000..8068d92 --- /dev/null +++ b/src/assets/icon_operation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/services/txn.ts b/src/services/txn.ts index cd315ce..ebfa268 100644 --- a/src/services/txn.ts +++ b/src/services/txn.ts @@ -59,3 +59,12 @@ export function getTxnRecord(txn: string, category: TxnRecord["category"]) { } return undefined; } + +export function peekTxnRecord(txn: string, category: TxnRecord["category"]) { + const record = txnCmdMap[txn]; + // 只有属于指定category时,才返回,且返回后删除记录,节约内存 + if (record.category === category) { + return record; + } + return undefined; +} \ No newline at end of file diff --git a/src/stores/status.ts b/src/stores/status.ts index 525527a..8061618 100644 --- a/src/stores/status.ts +++ b/src/stores/status.ts @@ -2,6 +2,7 @@ import { ref, computed } from "vue"; import { defineStore } from "pinia"; import * as R from "ramda"; import type { StatusDatagram } from "@/services/socket"; +import { BehaviorSubject, Subject } from "rxjs"; export const useStatusStore = defineStore("status", () => { const status = ref(); @@ -14,3 +15,12 @@ export const useStatusStore = defineStore("status", () => { return { status, setStatus }; }); + +// 进行中状态 +export type OnGoingStatus = "idle" | "doorOpening" | "doorClosing" | "shaking" | "injecting" | "movingToAct" | "movingToHeat"; + +const onGoingStatusSub = new BehaviorSubject('idle'); +export const onGoingStatusOb = onGoingStatusSub.asObservable(); +export function setOnGoingStatus(status: OnGoingStatus) { + onGoingStatusSub.next(status) +} \ No newline at end of file diff --git a/src/views/components/Footer.vue b/src/views/components/Footer.vue index bc8013c..3caa6ce 100644 --- a/src/views/components/Footer.vue +++ b/src/views/components/Footer.vue @@ -1,16 +1,24 @@