From 7f6a4f84d8dff230e806b949c7b663f7380e8a36 Mon Sep 17 00:00:00 2001 From: Joe Allen <49467845+LiJoeAllen@users.noreply.github.com> Date: Tue, 18 Aug 2026 14:56:00 +0800 Subject: [PATCH] feat: auto-format JSON display everywhere - Shared prettyJson/truncate/isJson utility in src/utils/format.ts - MessageStream: collapsed preview + expanded view both auto-format JSON - LogPanel: log details with JSON content auto-formatted - PresetList: payload preview auto-formatted - Deduplicated isJson/formatPayload logic --- src/components/dashboard/LogPanel.vue | 3 +- src/components/dashboard/MessageStream.vue | 23 ++++----------- src/components/presets/PresetList.vue | 3 +- src/utils/format.ts | 33 ++++++++++++++++++++++ 4 files changed, 43 insertions(+), 19 deletions(-) create mode 100644 src/utils/format.ts diff --git a/src/components/dashboard/LogPanel.vue b/src/components/dashboard/LogPanel.vue index 65ed460..db92a40 100644 --- a/src/components/dashboard/LogPanel.vue +++ b/src/components/dashboard/LogPanel.vue @@ -2,6 +2,7 @@ import { ref, computed, watch, nextTick } from 'vue' import { useLogs } from '../../stores/useLogs' import { mqttGetLogDir } from '../../stores/useMqttBridge' +import { prettyJson } from '../../utils/format' import { ElMessage } from 'element-plus' const { logs, clear } = useLogs() @@ -121,7 +122,7 @@ function eventIcon(event: string): string { {{ expandedDetails.has(log.id) ? '收起' : '详情' }}
- {{ log.details }} + {{ prettyJson(log.details) }}
diff --git a/src/components/dashboard/MessageStream.vue b/src/components/dashboard/MessageStream.vue index 351fd3d..dd74044 100644 --- a/src/components/dashboard/MessageStream.vue +++ b/src/components/dashboard/MessageStream.vue @@ -1,6 +1,7 @@