From b7af9330c4ccdd1b8e9944b597a2c3aa0a288fb8 Mon Sep 17 00:00:00 2001 From: lkddi Date: Sat, 25 Apr 2026 13:36:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E8=8A=82=E6=97=A5=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E8=A1=A8=E5=8D=95=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js/admin/holiday-event-form.js | 32 +++++++++++++++++++ resources/js/app.js | 1 + .../holiday-events/partials/form.blade.php | 19 ----------- 3 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 resources/js/admin/holiday-event-form.js diff --git a/resources/js/admin/holiday-event-form.js b/resources/js/admin/holiday-event-form.js new file mode 100644 index 0000000..e350597 --- /dev/null +++ b/resources/js/admin/holiday-event-form.js @@ -0,0 +1,32 @@ +// 节日福利表单 Alpine 工厂,提供周期、分配和目标范围的联动状态。 + +/** + * 创建节日福利表单状态对象。 + * + * @param {object} config + * @returns {object} + */ +function createHolidayEventForm(config = {}) { + return { + repeatType: config.repeatType ?? "once", + distributeType: config.distributeType ?? "random", + targetType: config.targetType ?? "all", + scheduleMonth: config.scheduleMonth ?? "1", + scheduleDay: config.scheduleDay ?? "1", + scheduleTime: config.scheduleTime ?? "20:00", + durationDays: config.durationDays ?? "1", + dailyOccurrences: config.dailyOccurrences ?? "1", + occurrenceIntervalMinutes: config.occurrenceIntervalMinutes ?? "60", + + /** + * 生成年节日循环计划摘要,供表单实时预览。 + * + * @returns {string} + */ + yearlySummary() { + return `每年 ${this.scheduleMonth} 月 ${this.scheduleDay} 日 ${this.scheduleTime},连续 ${this.durationDays} 天,每天 ${this.dailyOccurrences} 次 / ${this.occurrenceIntervalMinutes} 分钟`; + }, + }; +} + +window.holidayEventForm = createHolidayEventForm; diff --git a/resources/js/app.js b/resources/js/app.js index 37f4fe9..6122509 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -4,6 +4,7 @@ import { bindAdminAutoactControls } from './admin/autoact.js'; import { bindAdminFishingEventsControls } from './admin/fishing-events.js'; import { bindAdminFormConfirmations } from './admin/form-confirmations.js'; import { bindAdminGameConfigControls } from './admin/game-configs.js'; +import './admin/holiday-event-form.js'; import { bindAdminHolidayEventsControls } from './admin/holiday-events.js'; import { bindAdminInputSelection } from './admin/input-selection.js'; import { bindAdminOpsControls } from './admin/ops.js'; diff --git a/resources/views/admin/holiday-events/partials/form.blade.php b/resources/views/admin/holiday-events/partials/form.blade.php index 55175e2..ecdd2b9 100644 --- a/resources/views/admin/holiday-events/partials/form.blade.php +++ b/resources/views/admin/holiday-events/partials/form.blade.php @@ -306,22 +306,3 @@ - -