fix(auto-tools): 修复锄地工具中的路径分组逻辑问题

- 移除无用的 groupByParentAndName 函数定义位置
- 修改锄地队映射逻辑,区分 root_name 存在和不存在的情况
- 更新路径排序逻辑,添加映射表处理父子路径关系
- 修复 generatedKey 调用参数传递问题
- 在 README 中添加语法风格一致性说明
This commit is contained in:
yan
2026-01-23 12:11:31 +08:00
parent 6327bd60b4
commit 20afce8f5c
2 changed files with 47 additions and 27 deletions

View File

@@ -208,6 +208,7 @@ sequenceDiagram
| team_seven_elements | 文本 | 七元素队伍(矿物,火,水,风,雷,草,冰,岩) | 按顺序填写 |
| is_debug | 复选框 | 开发者模式(详细日志) | 调试时开启 |
## 语法说明
- 语法风格请保持一致 ,否则会导致路径会出现异常运行 如使用 地产->nam=1 同时保持 地产->nam=队伍名1 则路径会出现异常运行
- order_rules 执行顺序规则
1. `rootName` 根目录下层文件夹名称,`parentName` 父目录名称,`name` 文件夹名称
2. 建议语法:`rootName->parentName->name=1,rootName->parentName->name2=2`

View File

@@ -714,23 +714,6 @@ async function initRun(config_run) {
}
function groupByParentAndName(list) {
const map = new Map();
list.forEach(item => {
// const key = `${item.parentName}->${item.name}`;
const key = generatedKey(item);
const key_parent = generatedKey(item, true);
if (!map.has(key)) map.set(key, []);
map.get(key).push(item);
if (!map.has(key_parent)) map.set(key_parent, []);
map.get(key_parent).push(item);
});
return Array.from(map.values()); // 转成二维数组 [[], []]
}
let groups = groupByParentAndName(matchedPaths);
//锄地队对应
try {
const teamHoeGroundStr = settings.team_hoe_ground || "parentName->name=key"
@@ -756,10 +739,15 @@ async function initRun(config_run) {
team_name: ""
}]
teamHoeGroundList.filter(item => item.uid === Record.uid).forEach(item => {
const key = generatedKey(item);
const key_parent = generatedKey(item, true);
team.HoeGroundMap.set(key,item.team_name);
team.HoeGroundMap.set(key_parent,item.team_name);
if (item.root_name) {
const key = generatedKey(item);
team.HoeGroundMap.set(key, item.team_name);
} else {
const key_parent = generatedKey(item, true);
team.HoeGroundMap.set(key_parent, item.team_name);
}
})
log.info(`{0}加载完成`, json_path_name.HoeGround)
} catch (e) {
@@ -792,15 +780,35 @@ async function initRun(config_run) {
order: 0
}]
orderList.filter(item => item.uid === Record.uid).forEach(item => {
const key = generatedKey(item);
const key_parent = generatedKey(item, true);
orderMap.set(key, item.order)
orderMap.set(key_parent, item.order)
if (item.root_name) {
const key = generatedKey(item);
orderMap.set(key, item.order)
} else {
const key_parent = generatedKey(item, true);
orderMap.set(key_parent, item.order)
}
})
log.info(`{0}加载完成`, json_path_name.PathOrder)
} catch (e) {
}
function groupByParentAndName(list) {
const map = new Map();
list.forEach(item => {
// const key = `${item.parentName}->${item.name}`;
const key = generatedKey(item);
// const key_parent = generatedKey(item, true);
if (!map.has(key)) map.set(key, []);
map.get(key).push(item);
// if (!map.has(key_parent)) map.set(key_parent, []);
// map.get(key_parent).push(item);
});
return Array.from(map.values()); // 转成二维数组 [[], []]
}
let groups = groupByParentAndName(matchedPaths);
groups.sort((a, b) => {
const a_key = generatedKey(a)
const b_key = generatedKey(b)
@@ -811,10 +819,21 @@ async function initRun(config_run) {
}
return orderA - orderB;
})
const asMap = new Map()
groups.forEach(group => {
const groupOne = group[0]
const groupKey = generatedKey(groupOne);
let groupKey_parent = generatedKey(groupOne, true);
if (orderMap.has(groupKey_parent) || team.HoeGroundMap.has(groupKey_parent)) {
let groupKey = generatedKey(groupOne);
asMap.set(groupKey, groupKey_parent)
}
})
groups.forEach(group => {
const groupOne = group[0]
let groupKey = generatedKey(groupOne);
if (asMap.has(groupKey)) {
groupKey = asMap.get(groupKey)
}
needRunMap.set(groupKey, {
paths: group,
parent_name: groupOne.parentName,