-
+
{{ isDark ? '' : '' }}
diff --git a/src/utils/sys/wsClient.ts b/src/utils/sys/wsClient.ts
index 1c98797..75c2cc6 100644
--- a/src/utils/sys/wsClient.ts
+++ b/src/utils/sys/wsClient.ts
@@ -12,6 +12,42 @@ let reconnectAttempts = 0
const maxReconnectDelayMs = 30000
const heartbeatIntervalMs = 30000
+// 生成全局唯一的 trace_id(优先使用 crypto.randomUUID)
+const generateTraceId = (): string => {
+ try {
+ // @ts-ignore
+ if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
+ // @ts-ignore
+ return `req-${crypto.randomUUID()}`
+ }
+ } catch (_) {}
+ // Fallback:基于时间戳 + 随机数
+ const timestampPart = Date.now().toString(36)
+ let randomPart = ''
+ try {
+ // @ts-ignore
+ if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
+ const buf = new Uint8Array(16)
+ // @ts-ignore
+ crypto.getRandomValues(buf)
+ randomPart = Array.from(buf)
+ .map((b) => b.toString(16).padStart(2, '0'))
+ .join('')
+ } else {
+ randomPart = Array.from({ length: 16 })
+ .map(() =>
+ Math.floor(Math.random() * 256)
+ .toString(16)
+ .padStart(2, '0')
+ )
+ .join('')
+ }
+ } catch (_) {
+ randomPart = Math.random().toString(36).slice(2)
+ }
+ return `req-${timestampPart}-${randomPart}`
+}
+
const getReconnectDelay = () => {
const base = 1000 * Math.pow(2, reconnectAttempts)
return Math.min(base, maxReconnectDelayMs)
@@ -38,7 +74,12 @@ const startHeartbeat = () => {
heartbeatTimer = setTimeout(() => {
try {
if (socket && socket.readyState === WebSocket.OPEN) {
- socket.send(JSON.stringify({ type: 'ping' }))
+ const msg = {
+ event: 'system.ping',
+ data: {},
+ trace_id: generateTraceId() // 可选,用于请求-响应匹配
+ }
+ socket.send(JSON.stringify(msg))
}
} catch (_) {}
// 下一次心跳
@@ -74,7 +115,12 @@ export const initWebSocket = (token: string) => {
startHeartbeat()
mittBus.emit('ws:open')
try {
- socket?.send(JSON.stringify({ type: 'ping' }))
+ const msg = {
+ event: 'system.ping',
+ data: {},
+ trace_id: generateTraceId() // 可选,用于请求-响应匹配
+ }
+ socket?.send(JSON.stringify(msg))
} catch (_) {}
}
diff --git a/src/views/admin/customer/customeraudit.vue b/src/views/admin/customer/customeraudit.vue
index d3887bb..fab2ae6 100644
--- a/src/views/admin/customer/customeraudit.vue
+++ b/src/views/admin/customer/customeraudit.vue
@@ -22,14 +22,31 @@
lass="customer-table"
>
-
+
-
+
+
+
+ WhatsApp:{{
+ scope.row.WhatsApp == '' ? ' --' : '【' + scope.row.WhatsApp + ' 】'
+ }}
+ 电话:{{ scope.row.phone == '' ? ' --' : '【' + scope.row.phone + ' 】' }}
+ 邮箱:{{ scope.row.email == '' ? ' --' : '【' + scope.row.email + ' 】' }}
+
+
diff --git a/src/views/admin/customer/highseas.vue b/src/views/admin/customer/highseas.vue
index 02d4a4e..4a4ac70 100644
--- a/src/views/admin/customer/highseas.vue
+++ b/src/views/admin/customer/highseas.vue
@@ -32,14 +32,31 @@
>
-
+
-
+
+
+
+ WhatsApp:{{
+ scope.row.WhatsApp == '' ? ' --' : '【' + scope.row.WhatsApp + ' 】'
+ }}
+ 电话:{{ scope.row.phone == '' ? ' --' : '【' + scope.row.phone + ' 】' }}
+ 邮箱:{{ scope.row.email == '' ? ' --' : '【' + scope.row.email + ' 】' }}
+
+
diff --git a/src/views/admin/customer/index.vue b/src/views/admin/customer/index.vue
index 07ab280..9ea45d7 100644
--- a/src/views/admin/customer/index.vue
+++ b/src/views/admin/customer/index.vue
@@ -108,14 +108,31 @@
>
-
+
-
+
+
+
+ WhatsApp:{{
+ scope.row.WhatsApp == '' ? ' --' : '【' + scope.row.WhatsApp + ' 】'
+ }}
+ 电话:{{ scope.row.phone == '' ? ' --' : '【' + scope.row.phone + ' 】' }}
+ 邮箱:{{ scope.row.email == '' ? ' --' : '【' + scope.row.email + ' 】' }}
+
+
@@ -126,6 +143,7 @@
+
diff --git a/src/views/admin/user/index.vue b/src/views/admin/user/index.vue
index d25f586..1d1d761 100644
--- a/src/views/admin/user/index.vue
+++ b/src/views/admin/user/index.vue
@@ -128,9 +128,20 @@
-
-
-
+
+
+
+
+
+ WhatsApp:{{
+ scope.row.WhatsApp == '' ? ' --' : '【' + scope.row.WhatsApp + ' 】'
+ }}
+ 电话:{{ scope.row.phone == '' ? ' --' : '【' + scope.row.phone + ' 】' }}
+ 邮箱:{{ scope.row.email == '' ? ' --' : '【' + scope.row.email + ' 】' }}
+
+
diff --git a/src/views/crmpc/customer/Add.vue b/src/views/crmpc/customer/Add.vue
index 708a1c3..cbe9c66 100644
--- a/src/views/crmpc/customer/Add.vue
+++ b/src/views/crmpc/customer/Add.vue
@@ -81,12 +81,7 @@
-
+
diff --git a/src/views/crmpc/customer/index.vue b/src/views/crmpc/customer/index.vue
index abe17d8..d01c2a7 100644
--- a/src/views/crmpc/customer/index.vue
+++ b/src/views/crmpc/customer/index.vue
@@ -89,12 +89,23 @@