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

9
src/services/txn.ts

@ -32,11 +32,12 @@ export function addTxnRecord(val: TxnRecord) {
return txn return txn
} }
export function getTxnRecord(txn: string, del: boolean = true) {
export function getTxnRecord(txn: string, category: TxnRecord['category']) {
const record = txnCmdMap[txn]; const record = txnCmdMap[txn];
console.log(txn,':', record)
if (del) {
// 只有属于指定category时,才返回,且返回后删除记录,节约内存
if (record.category === category) {
delete txnCmdMap[txn]; 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 => { const subscription = wsClient.dataOb.subscribe(data => {
console.log(data); console.log(data);
if (data.type === "cmd") { 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 cmdName = CmdDescMap[cmdInfo.command];
const result = data.data.status === "D0000" ? "执行完毕" : "执行失败";
const result = data.data.success ? "执行完毕" : "执行失败";
ElMessage({ ElMessage({
message: `${cmdName} ${result}`, message: `${cmdName} ${result}`,
type: data.data.status === "D0000" ? "success" : "error",
type: data.data.success ? "success" : "error",
}); });
} }
} else if (data.type === "status") { } else if (data.type === "status") {

Loading…
Cancel
Save