refactor(home schedule): 调整定时任务筛选和展示逻辑,更新多语言文案
1. 优化密码校验正则,支持全角特殊字符 2. 更新首页无定时任务的多语言文案 3. 重构今日任务查找逻辑,仅筛选未开始任务并简化展示
This commit is contained in:
parent
cc336fd4af
commit
c27ef0847a
@ -501,8 +501,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "100101",
|
"key": "100101",
|
||||||
"zh": "无定时任务",
|
"zh": "今日无定时任务",
|
||||||
"en": "No Schedule"
|
"en": "No Schedule Today"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "100102",
|
"key": "100102",
|
||||||
|
|||||||
@ -57,7 +57,7 @@ namespace Kill.UI.Pages
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找今天启用的任务(返回最近的一个未结束任务)
|
/// 查找今天启用的任务(返回最近的一个未开始任务,排除进行中任务)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private ScheduleTask? FindTodayTask(byte todayFlag)
|
private ScheduleTask? FindTodayTask(byte todayFlag)
|
||||||
{
|
{
|
||||||
@ -83,19 +83,17 @@ namespace Kill.UI.Pages
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
int taskTime = task.StartHour * 60 + task.StartMinute;
|
int taskTime = task.StartHour * 60 + task.StartMinute;
|
||||||
int endTime = task.EndHour * 60 + task.EndMinute;
|
|
||||||
|
|
||||||
// 跳过已结束的任务
|
// 只保留未开始的任务
|
||||||
if (currentTime >= endTime)
|
if (currentTime >= taskTime)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
int timeDiff = taskTime - currentTime;
|
int timeDiff = taskTime - currentTime;
|
||||||
|
|
||||||
// 找距离当前时间最近的任务(包括进行中的和未来未开始的)
|
// 找距离当前时间最近的未开始任务
|
||||||
int absTimeDiff = Math.Abs(timeDiff);
|
if (timeDiff < nearestTimeDiff)
|
||||||
if (absTimeDiff < nearestTimeDiff)
|
|
||||||
{
|
{
|
||||||
nearestTimeDiff = absTimeDiff;
|
nearestTimeDiff = timeDiff;
|
||||||
nearestTask = task;
|
nearestTask = task;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -111,23 +109,10 @@ namespace Kill.UI.Pages
|
|||||||
string modeText = GetModeText(task.Mode);
|
string modeText = GetModeText(task.Mode);
|
||||||
string timeText = $"{task.StartHour:D2}:{task.StartMinute:D2}";
|
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 (scheduleText != null)
|
||||||
{
|
{
|
||||||
if (isFutureTask)
|
// 经过 FindTodayTask 筛选后,只可能是未开始的任务
|
||||||
{
|
scheduleText.text = $"{modeText}: {timeText}";
|
||||||
// 即将开始的任务
|
|
||||||
scheduleText.text = $"{modeText}: {timeText}";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// 任务进行中,显示时间段
|
|
||||||
scheduleText.text = $"{modeText}: {timeText}~{task.EndHour:D2}:{task.EndMinute:D2}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,8 +57,8 @@ namespace Kill.Utils
|
|||||||
bool hasDigit = Regex.IsMatch(password, @"\d");
|
bool hasDigit = Regex.IsMatch(password, @"\d");
|
||||||
// 必须包含字母
|
// 必须包含字母
|
||||||
bool hasLetter = Regex.IsMatch(password, @"[a-zA-Z]");
|
bool hasLetter = Regex.IsMatch(password, @"[a-zA-Z]");
|
||||||
// 必须包含特殊字符
|
// 必须包含特殊字符(支持半角和全角符号)
|
||||||
bool hasSpecial = Regex.IsMatch(password, @"[!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?]");
|
bool hasSpecial = Regex.IsMatch(password, @"[!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?]|\p{P}");
|
||||||
|
|
||||||
return hasDigit && hasLetter && hasSpecial;
|
return hasDigit && hasLetter && hasSpecial;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user