diff --git a/src/common/sse/SseClient.ts b/src/common/sse/SseClient.ts index 6ed28a0..f9f193d 100644 --- a/src/common/sse/SseClient.ts +++ b/src/common/sse/SseClient.ts @@ -1,4 +1,5 @@ import { fetchEventSource } from '@microsoft/fetch-event-source' +import { ElMessage } from 'element-plus' /** * SSE 连接客户端 @@ -89,6 +90,7 @@ export class SseClient { return } this.callbacks.onMessage(message.event, message.data) + ElMessage.success(message.event) }, onclose: () => { diff --git a/src/common/sse/sseBus.ts b/src/common/sse/sseBus.ts index c997662..bd13ba8 100644 --- a/src/common/sse/sseBus.ts +++ b/src/common/sse/sseBus.ts @@ -1,6 +1,9 @@ import mitt from 'mitt' import type { RoomItem } from '@/api/modules/game' +/** + * SSE 事件定义 + */ export type SseEvents = { connected: undefined error: { message: string; retryCount: number } @@ -10,6 +13,8 @@ export type SseEvents = { kicked: { roomId: string } game_started: { roomId: string } balance_chg: { balance: number; delta: number } + /** 自定义事件类型,用于测试或任意消息推送,数据格式由调用方决定 */ + custom: unknown } /** diff --git a/src/components/baseLayouts/TableCard.vue b/src/components/baseLayouts/TableCard.vue index b6ed638..168d3fd 100644 --- a/src/components/baseLayouts/TableCard.vue +++ b/src/components/baseLayouts/TableCard.vue @@ -72,7 +72,7 @@ @@ -350,12 +348,7 @@ function chairTooltip(idx: number): string { height: 76px; border-radius: 50%; /* 木质桌面 */ - background: linear-gradient( - 145deg, - #e8d5b0 0%, - #d4a574 40%, - #c49060 100% - ); + background: linear-gradient(145deg, #e8d5b0 0%, #d4a574 40%, #c49060 100%); box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15), inset 0 1px 2px rgba(255, 255, 255, 0.4); diff --git a/src/components/baseLayouts/UserBar.vue b/src/components/baseLayouts/UserBar.vue index f06f570..3cfee69 100644 --- a/src/components/baseLayouts/UserBar.vue +++ b/src/components/baseLayouts/UserBar.vue @@ -135,7 +135,14 @@ import { computed, ref } from 'vue' import { storeToRefs } from 'pinia' import { ElMessage } from 'element-plus' -import { Setting, EditPen, ArrowRight, Check, DocumentCopy, SwitchButton } from '@element-plus/icons-vue' +import { + Setting, + EditPen, + ArrowRight, + Check, + DocumentCopy, + SwitchButton +} from '@element-plus/icons-vue' import { useAccountStore } from '@/stores' import { UserStatus, type UserStatusType } from '@/api/modules/user' import { getAvatarUrl } from '@/utils'