feat: 增加更新数据任务 (#16026)

* feat: 增加更新数据任务

* chore: 仅在立即启动时更新提示

* perf: 只解析一次 json

* feat: 按完成度优先级显示状态

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: typo

* rft: 多taskId支持 part.1

* rft: 多taskId支持 part.2

* rft: 多taskId支持 part.2.5

* rft: 多taskId支持 part.3

* fix: 错误设置标签状态

* feat: 统一命名

* chore: 注释

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
This commit is contained in:
uye
2026-03-20 02:10:38 +08:00
committed by GitHub
parent c8ad17dba0
commit d2c2989f4e
31 changed files with 750 additions and 169 deletions

View File

@@ -137,15 +137,15 @@ public class ReclamationSettingsUserControlModel : TaskSettingsViewModel, Reclam
}
}
public override (bool? IsSuccess, int TaskId) SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize)?.Serialize(baseTask, taskId) ?? (null, 0);
public override (bool? IsSuccess, IEnumerable<int> TaskId) SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize).Serialize(baseTask, taskId);
private interface ISerialize : ITaskQueueModelSerialize
{
(bool? IsSuccess, int TaskId) ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
(bool? IsSuccess, IEnumerable<int> TaskId) ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
{
if (baseTask is not ReclamationTask reclamation)
{
return (null, 0);
return (null, []);
}
var toolToCraft = !string.IsNullOrEmpty(reclamation.ToolToCraft) ? reclamation.ToolToCraft : LocalizationHelper.GetString("ReclamationToolToCraftPlaceholder", DataHelper.ClientLanguageMapper[SettingsViewModel.GameSettings.ClientType]);
@@ -159,9 +159,9 @@ public class ReclamationSettingsUserControlModel : TaskSettingsViewModel, Reclam
};
return taskId switch {
int id when id > 0 => (Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task), id),
null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Reclamation, task),
_ => (null, 0),
int id when id > 0 => (Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task), [id]),
null => FromSingle(Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Reclamation, task)),
_ => (null, []),
};
}
}