diff --git a/app/subscribe/GatewaySubscribe.php b/app/subscribe/GatewaySubscribe.php index 159e64b..86fb7ad 100644 --- a/app/subscribe/GatewaySubscribe.php +++ b/app/subscribe/GatewaySubscribe.php @@ -108,18 +108,18 @@ class GatewaySubscribe 'lock_password'=>$lock_password, 'lock_time'=>date('Y-m-d H:i:s') ]); - // 保存锁屏日志 - SysUserClientLog::create([ - 'event' => "{$put->type->value}.{$put->event->value}", - 'message'=> "A. 锁定客户端", - 'data' => json_encode(['inputPass'=> $lock_password]), - 'create_time' => date('Y-m-d H:i:s'), - 'client_data_id' => $client['id'] - ]); - // 通知客户端锁定屏幕 - GatewayClientService::sendToClient($put->wsClientId,new OutMessage( - SystemEnum::Lock_Client - )); +// // 保存锁屏日志 +// SysUserClientLog::create([ +// 'event' => "{$put->type->value}.{$put->event->value}", +// 'message'=> "A. 锁定客户端", +// 'data' => json_encode(['inputPass'=> $lock_password]), +// 'create_time' => date('Y-m-d H:i:s'), +// 'client_data_id' => $client['id'] +// ]); +// // 通知客户端锁定屏幕 +// GatewayClientService::sendToClient($put->wsClientId,new OutMessage( +// SystemEnum::Lock_Client +// )); } } diff --git a/z_ele/src/plugins/websocket/core/event.ts b/z_ele/src/plugins/websocket/core/event.ts new file mode 100644 index 0000000..afcb07c --- /dev/null +++ b/z_ele/src/plugins/websocket/core/event.ts @@ -0,0 +1,24 @@ +import { ElNotification } from 'element-plus'; +import Swal from 'sweetalert2'; +class ScriptEvent { + ElNotification(options = {}) { + ElNotification(options); + } + Swal(options = {}) { + Swal.fire(options); + } + trigger(name, data) { + console.debug('ws.trigger#script', name, data); + this[name]?.(data); + } +} + +export const scriptEvent: ScriptEvent = new ScriptEvent(); + +class SystemEvent { + trigger(name, data) { + console.debug('ws.trigger#system', name, data); + this[name]?.(data); + } +} +export const systemEvent: SystemEvent = new SystemEvent(); diff --git a/z_ele/src/plugins/websocket/core/instance.ts b/z_ele/src/plugins/websocket/core/instance.ts index 51a7a0d..f890e76 100644 --- a/z_ele/src/plugins/websocket/core/instance.ts +++ b/z_ele/src/plugins/websocket/core/instance.ts @@ -9,7 +9,7 @@ import { } from '../types'; import {computed, ref} from 'vue'; import {wsEventManager} from './event-manager'; -import {systemEvent} from '@/plugins/websocket/core/event'; +import {scriptEvent, systemEvent} from '@/plugins/websocket/core/event'; // 创建WebSocket实例 export function createWsInstance(config: WsConfig): WsInstance { @@ -51,13 +51,17 @@ export function createWsInstance(config: WsConfig): WsInstance { /* * 解析后数据格式应该统一为 @{type: "system", event: "事件名称", data: {}} */ - if (jsonData.type == WsMessageType.SYSTEM) { - systemEvent.trigger(jsonData.event, jsonData.data); + switch (jsonData.type) { + case WsMessageType.SCRIPT: + scriptEvent.trigger(jsonData.event, jsonData.data); + break; + case WsMessageType.SYSTEM: + systemEvent.trigger(jsonData.event, jsonData.data); + break; + default: + console.debug('ws.default#' + jsonData.type, jsonData.data); + break; } - // if (jsonData.event == WsEvent.LOCK_CLIENT_SCREEN) { - // // 锁屏 - // wsEventManager.emit(WsEvent.LOCK_CLIENT_SCREEN, e); - // } }; const handleError = (e: Event) => { diff --git a/z_ele/src/plugins/websocket/types.ts b/z_ele/src/plugins/websocket/types.ts index 3e32750..a4e1e14 100644 --- a/z_ele/src/plugins/websocket/types.ts +++ b/z_ele/src/plugins/websocket/types.ts @@ -25,7 +25,8 @@ export enum WsConnectionStatus { export enum WsMessageType { INCOMING = 'incoming', OUTGOING = 'outgoing', - SYSTEM = 'system' + SYSTEM = 'system', + SCRIPT = 'script' } export interface WsMessage {