fix: 修复 "baseTask": "#none",以及相关文档

This commit is contained in:
zzyyyl
2023-09-22 19:23:32 +08:00
parent 7a1a476c09
commit 12aebc6612
5 changed files with 40 additions and 19 deletions

View File

@@ -79,13 +79,19 @@ bool asst::TaskData::parse(const json::value& json)
std::unordered_map<std::string_view, TaskStatus> task_status;
for (const auto& [name, task_json] : json.as_object()) {
std::string_view name_view = task_name_view(name);
if (task_json.get("baseTask", "") == "#none") {
// 不继承同名任务参数
m_json_all_tasks_info[name] = task_json.as_object();
m_json_all_tasks_info[name_view] = task_json.as_object();
m_json_all_tasks_info[name_view].erase("baseTask");
continue;
}
if (m_json_all_tasks_info.find(name_view) == m_json_all_tasks_info.cend()) {
m_json_all_tasks_info.emplace(name_view, task_json.as_object());
continue;
}
for (const auto& [key, value] : task_json.as_object()) {
m_json_all_tasks_info[task_name_view(name)][key] = value;
m_json_all_tasks_info[name_view][key] = value;
}
}