From c27ef0847a63ef52fb586d82c029baabf68550b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=E8=99=9E=E6=B8=A0=E6=88=90=E2=80=9D?= <“yuqucheng2006@qq.com”> Date: Mon, 29 Jun 2026 14:01:49 +0800 Subject: [PATCH] =?UTF-8?q?refactor(home=20schedule):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E7=AD=9B=E9=80=89=E5=92=8C?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E9=80=BB=E8=BE=91=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=A4=9A=E8=AF=AD=E8=A8=80=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 优化密码校验正则,支持全角特殊字符 2. 更新首页无定时任务的多语言文案 3. 重构今日任务查找逻辑,仅筛选未开始任务并简化展示 --- Assets/Res/language/language.json | 4 +-- .../UI/Pages/HomePage/HomePageSchedule.cs | 31 +++++-------------- Assets/Scripts/Utils/ValidationUtils.cs | 4 +-- 3 files changed, 12 insertions(+), 27 deletions(-) diff --git a/Assets/Res/language/language.json b/Assets/Res/language/language.json index f993d7c..a33c46f 100644 --- a/Assets/Res/language/language.json +++ b/Assets/Res/language/language.json @@ -501,8 +501,8 @@ }, { "key": "100101", - "zh": "无定时任务", - "en": "No Schedule" + "zh": "今日无定时任务", + "en": "No Schedule Today" }, { "key": "100102", diff --git a/Assets/Scripts/UI/Pages/HomePage/HomePageSchedule.cs b/Assets/Scripts/UI/Pages/HomePage/HomePageSchedule.cs index 73b6f5e..d9e574e 100644 --- a/Assets/Scripts/UI/Pages/HomePage/HomePageSchedule.cs +++ b/Assets/Scripts/UI/Pages/HomePage/HomePageSchedule.cs @@ -57,7 +57,7 @@ namespace Kill.UI.Pages } /// - /// 查找今天启用的任务(返回最近的一个未结束任务) + /// 查找今天启用的任务(返回最近的一个未开始任务,排除进行中任务) /// private ScheduleTask? FindTodayTask(byte todayFlag) { @@ -83,19 +83,17 @@ namespace Kill.UI.Pages continue; int taskTime = task.StartHour * 60 + task.StartMinute; - int endTime = task.EndHour * 60 + task.EndMinute; - // 跳过已结束的任务 - if (currentTime >= endTime) + // 只保留未开始的任务 + if (currentTime >= taskTime) continue; int timeDiff = taskTime - currentTime; - // 找距离当前时间最近的任务(包括进行中的和未来未开始的) - int absTimeDiff = Math.Abs(timeDiff); - if (absTimeDiff < nearestTimeDiff) + // 找距离当前时间最近的未开始任务 + if (timeDiff < nearestTimeDiff) { - nearestTimeDiff = absTimeDiff; + nearestTimeDiff = timeDiff; nearestTask = task; } } @@ -111,23 +109,10 @@ namespace Kill.UI.Pages string modeText = GetModeText(task.Mode); string timeText = $"{task.StartHour:D2}:{task.StartMinute:D2}"; - // 判断任务是未来还是进行中 - int currentTime = DateTime.Now.Hour * 60 + DateTime.Now.Minute; - int taskTime = task.StartHour * 60 + task.StartMinute; - bool isFutureTask = taskTime > currentTime; - if (scheduleText != null) { - if (isFutureTask) - { - // 即将开始的任务 - scheduleText.text = $"{modeText}: {timeText}"; - } - else - { - // 任务进行中,显示时间段 - scheduleText.text = $"{modeText}: {timeText}~{task.EndHour:D2}:{task.EndMinute:D2}"; - } + // 经过 FindTodayTask 筛选后,只可能是未开始的任务 + scheduleText.text = $"{modeText}: {timeText}"; } } diff --git a/Assets/Scripts/Utils/ValidationUtils.cs b/Assets/Scripts/Utils/ValidationUtils.cs index df76ed9..f8aacc7 100644 --- a/Assets/Scripts/Utils/ValidationUtils.cs +++ b/Assets/Scripts/Utils/ValidationUtils.cs @@ -57,8 +57,8 @@ namespace Kill.Utils bool hasDigit = Regex.IsMatch(password, @"\d"); // 必须包含字母 bool hasLetter = Regex.IsMatch(password, @"[a-zA-Z]"); - // 必须包含特殊字符 - bool hasSpecial = Regex.IsMatch(password, @"[!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?]"); + // 必须包含特殊字符(支持半角和全角符号) + bool hasSpecial = Regex.IsMatch(password, @"[!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?]|\p{P}"); return hasDigit && hasLetter && hasSpecial; }