From 27cd042df9aca0383a49f3514bc21958dd890912 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 29 六月 2026 15:42:23 +0800
Subject: [PATCH] 银川 1.联调产品维护页面 2.添加IM即时通讯模块

---
 src/views/im/manager/utils/format.ts |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/src/views/im/manager/utils/format.ts b/src/views/im/manager/utils/format.ts
new file mode 100644
index 0000000..d98df1a
--- /dev/null
+++ b/src/views/im/manager/utils/format.ts
@@ -0,0 +1,55 @@
+import { formatDateTime } from '#/packages/utils/src';
+
+/** 灞曠ず鐢ㄦ埛鍚嶇О */
+export function formatUserLabel(
+  nickname: string | undefined,
+  userId: number | undefined,
+) {
+  if (!userId) {
+    return '-';
+  }
+  return `${nickname || '-'} (${userId})`;
+}
+
+/** 灞曠ず缇ゅ悕绉� */
+export function formatGroupLabel(
+  name: string | undefined,
+  groupId: number | undefined,
+) {
+  if (!groupId) {
+    return '-';
+  }
+  return `${name || '-'} (${groupId})`;
+}
+
+/** 灞曠ず鏃ユ湡鏃堕棿 */
+export function formatDateTimeText(value?: Date | number | string) {
+  return value ? (formatDateTime(value) as string) : '-';
+}
+
+/** 鏍煎紡鍖� JSON */
+export function formatJsonText(content?: string) {
+  if (!content) {
+    return '';
+  }
+  try {
+    return JSON.stringify(JSON.parse(content), null, 2);
+  } catch {
+    return content;
+  }
+}
+
+/** 鎺㈡祴鍥剧墖灏哄 */
+export function probeImageSize(url: string) {
+  return new Promise<{ height: number; width: number }>((resolve, reject) => {
+    const img = new Image();
+    img.addEventListener('load', () => {
+      resolve({
+        width: img.naturalWidth || img.width,
+        height: img.naturalHeight || img.height,
+      });
+    });
+    img.addEventListener('error', reject);
+    img.src = url;
+  });
+}

--
Gitblit v1.9.3