From a2e0d818ea6a6ef6672df3c152d26a6442d152a3 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Tue, 24 Jun 2025 22:34:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AD=98=E6=A1=A3=E6=97=B6=E5=AD=98?= =?UTF-8?q?=E6=A1=A3=E9=94=AE=E9=80=80=E5=87=BA=EF=BC=8C=E8=AF=BB=E6=A1=A3?= =?UTF-8?q?=E6=98=AF=E8=AF=BB=E6=A1=A3=E9=94=AE=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client-modules/src/action/hotkey.ts | 5 --- .../client-modules/src/render/ui/save.tsx | 34 ++++++++++++++++--- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/packages-user/client-modules/src/action/hotkey.ts b/packages-user/client-modules/src/action/hotkey.ts index 8bca5c7..fa8ec08 100644 --- a/packages-user/client-modules/src/action/hotkey.ts +++ b/packages-user/client-modules/src/action/hotkey.ts @@ -435,11 +435,6 @@ gameKey }) // #region 存档界面 .group('@ui_save', 'save') - .register({ - id: '@save_exit', - name: '退出存档界面', - defaults: KeyCode.KeyS - }) .register({ id: '@save_pageUp', name: '存档向后翻页', diff --git a/packages-user/client-modules/src/render/ui/save.tsx b/packages-user/client-modules/src/render/ui/save.tsx index 0e83bc1..4ad659f 100644 --- a/packages-user/client-modules/src/render/ui/save.tsx +++ b/packages-user/client-modules/src/render/ui/save.tsx @@ -21,8 +21,15 @@ import { getSave, SaveData } from '../utils'; import { Thumbnail } from '../components/thumbnail'; import { adjustGrid, IGridLayoutData } from '../utils/layout'; +export const enum SaveMode { + Save, + Load, + Other +} + export interface SaveProps extends UIComponentProps, DefaultProps { loc: ElementLocator; + mode: SaveMode; } export interface SaveItemProps extends DefaultProps { @@ -43,7 +50,7 @@ export type SaveEmits = { }; const saveProps = { - props: ['loc', 'controller', 'instance'], + props: ['loc', 'controller', 'instance', 'mode'], emits: ['delete', 'emit', 'exit'] } satisfies SetupComponentOptions; @@ -271,7 +278,12 @@ export const Save = defineComponent( } }) .realize('exit', exit) - .realize('@save_exit', exit) + .realize('save', () => { + if (props.mode === SaveMode.Save) exit(); + }) + .realize('load', () => { + if (props.mode === SaveMode.Load) exit(); + }) .realize( '@save_pageUp', () => { @@ -441,6 +453,7 @@ export type SaveValidationFunction = ( export function selectSave( controller: IUIMountable, loc: ElementLocator, + mode: SaveMode, validate?: SaveValidationFunction, props?: SaveProps ) { @@ -456,6 +469,7 @@ export function selectSave( const instance = controller.open(SaveUI, { loc, ...props, + mode, onEmit: (index: number, exist: boolean) => { if (!validate) { controller.close(instance); @@ -498,7 +512,13 @@ export async function saveSave( return { message: '', valid: true }; } }; - const index = await selectSave(controller, loc, validate, props); + const index = await selectSave( + controller, + loc, + SaveMode.Save, + validate, + props + ); if (index === -2) return false; core.saves.saveIndex = index; core.doSL(index + 1, 'save'); @@ -513,7 +533,13 @@ export async function saveLoad( const validate = (_: number, exist: boolean): SaveValidation => { return { message: '无效的存档!', valid: exist }; }; - const index = await selectSave(controller, loc, validate, props); + const index = await selectSave( + controller, + loc, + SaveMode.Load, + validate, + props + ); if (index === -2) return false; if (index === -1) { core.doSL('autoSave', 'load');