Browse Source

为cmd上报添加success属性,微调getTxnRecord参数

feature/layout_0214
zhangjiming 6 months ago
parent
commit
4ad7daa960
  1. 9
      src/services/socket.ts
  2. 9
      src/services/txn.ts
  3. 8
      src/views/debug/debug.vue

9
src/services/socket.ts

@ -10,6 +10,7 @@ export type CmdDatagram = {
// commandName: DebugCmd;
status: CmdSuccess | CmdFailure;
message: string;
success: boolean;
};
};
@ -76,7 +77,7 @@ export type StatusDatagram = {
};
export type Datagram = CmdDatagram | WarnDatagram | StatusDatagram;
export type DatagramType = Datagram['type']
export type DatagramType = Datagram["type"];
export type SocketState = "open" | "close" | "error";
@ -130,9 +131,13 @@ class WebSocketClient {
// 接收消息的处理
this.ws.onmessage = (event: MessageEvent) => {
try {
const data = JSON.parse(event.data);
const data = JSON.parse(event.data) as Datagram;
// console.log('🚀 ~ WebSocketClient ~ bindEvents ~ data:', data)
if (data.type === "cmd") {
this.dataSub.next({ type: data.type, data: { ...data.data, success: data.data.status === "D0000" } });
} else {
this.dataSub.next(data);
}
} catch (error) {
console.error("消息解析错误:", error);
}

9
src/services/txn.ts

@ -32,11 +32,12 @@ export function addTxnRecord(val: TxnRecord) {
return txn
}
export function getTxnRecord(txn: string, del: boolean = true) {
export function getTxnRecord(txn: string, category: TxnRecord['category']) {
const record = txnCmdMap[txn];
console.log(txn,':', record)
if (del) {
// 只有属于指定category时,才返回,且返回后删除记录,节约内存
if (record.category === category) {
delete txnCmdMap[txn];
return record
}
return record;
return undefined
}

8
src/views/debug/debug.vue

@ -206,13 +206,13 @@ onMounted(() => {
const subscription = wsClient.dataOb.subscribe(data => {
console.log(data);
if (data.type === "cmd") {
const cmdInfo = getTxnRecord(data.data.commandId);
if (cmdInfo.category === "debug") {
const cmdInfo = getTxnRecord(data.data.commandId, "debug");
if (cmdInfo) {
const cmdName = CmdDescMap[cmdInfo.command];
const result = data.data.status === "D0000" ? "执行完毕" : "执行失败";
const result = data.data.success ? "执行完毕" : "执行失败";
ElMessage({
message: `${cmdName} ${result}`,
type: data.data.status === "D0000" ? "success" : "error",
type: data.data.success ? "success" : "error",
});
}
} else if (data.type === "status") {

Loading…
Cancel
Save