diff --git a/app/command/admin/Worker.php b/app/command/admin/Worker.php index 42a0e5e..658af7e 100644 --- a/app/command/admin/Worker.php +++ b/app/command/admin/Worker.php @@ -76,6 +76,8 @@ class Worker extends Command 'client_id' => $connection->clientId, 'client_name'=> $connection->clientName ])->update(['is_lock'=>1,'lock_password'=>$lock_password,'lock_time'=>date('Y-m-d H:i:s')]); + // 锁定屏幕 + $connection->send(json_encode(['event'=>'lock_client_screen_run'])); } } } diff --git a/z_ele/src/components/LockScreenState/index.vue b/z_ele/src/components/LockScreenState/index.vue index 81c0c8e..ad3fa96 100644 --- a/z_ele/src/components/LockScreenState/index.vue +++ b/z_ele/src/components/LockScreenState/index.vue @@ -10,20 +10,19 @@ :close-on-press-escape="false" :close-on-click-modal="false" :show-close="false" + :fullscreen="true" > - + 屏幕已锁定 diff --git a/z_ele/src/layout/components/lock-dialog.vue b/z_ele/src/layout/components/lock-dialog.vue index 48c1ade..e3ba2c9 100644 --- a/z_ele/src/layout/components/lock-dialog.vue +++ b/z_ele/src/layout/components/lock-dialog.vue @@ -43,5 +43,6 @@ wsInstance.sendMessage(WsSendEventType.LOCK_CLIENT_SCREEN, { lockPassword: lockPassword.value }); + visible.value = false; }; diff --git a/z_ele/src/plugins/websocket/core/instance.ts b/z_ele/src/plugins/websocket/core/instance.ts index 709dc2f..42e7a88 100644 --- a/z_ele/src/plugins/websocket/core/instance.ts +++ b/z_ele/src/plugins/websocket/core/instance.ts @@ -45,8 +45,15 @@ export function createWsInstance(config: WsConfig): WsInstance { wsEventManager.emit(WsEvent.CONNECTED, e); }; - const handleMessage = (e: MessageEvent) => + const handleMessage = (e: MessageEvent) =>{ addMessage(e.data, WsMessageType.INCOMING); + const jsonData = JSON.parse(e.data); + if (jsonData.event == WsEvent.LOCK_CLIENT_SCREEN) { + // 锁屏 + wsEventManager.emit(WsEvent.LOCK_CLIENT_SCREEN, e); + } + } + const handleError = (e: Event) => { isConnecting.value = false; diff --git a/z_ele/src/plugins/websocket/types.ts b/z_ele/src/plugins/websocket/types.ts index 115e223..291b084 100644 --- a/z_ele/src/plugins/websocket/types.ts +++ b/z_ele/src/plugins/websocket/types.ts @@ -2,7 +2,8 @@ import type { Ref } from 'vue'; import { WsEventManager } from '@/plugins/websocket/core/event-manager'; export enum WsEvent { - CONNECTED = 'CONNECTED' + CONNECTED = 'CONNECTED', + LOCK_CLIENT_SCREEN = 'LOCK_CLIENT_SCREEN' } export enum WsSendEventType {