feat(auto-tools): 添加指定层级加载功能

- 在配置中新增 the_layer 复选框选项用于控制是否只加载指定层级
- 优化路径查找逻辑,通过预建 levelName 映射提升性能
- 修改过滤条件以支持层级加载功能
- 在两个配置文件中同步添加 the_layer 设置项
This commit is contained in:
yan
2026-01-23 09:39:41 +08:00
parent 63470cdf59
commit 19f2771c5e
3 changed files with 24 additions and 2 deletions

View File

@@ -50,6 +50,12 @@
"label": "加载路径层级(不可小于1)<配置模式 刷新||加载 生效>", "label": "加载路径层级(不可小于1)<配置模式 刷新||加载 生效>",
"default": "2" "default": "2"
}, },
{
"name": "the_layer",
"type": "checkbox",
"label": "只加载指定层级<配置模式 加载 生效>",
"default": false
},
{ {
"name": "order_rules", "name": "order_rules",
"type": "input-text", "type": "input-text",

View File

@@ -518,21 +518,31 @@ async function loadUidSettingsMap(uidSettingsMap) {
// const key = keys[keys.size - 1] // const key = keys[keys.size - 1]
// PATH_JSON_LIST.filter(item => item.level > 0) // PATH_JSON_LIST.filter(item => item.level > 0)
// 预先建立 levelName 到路径信息的映射
const levelNameMap = new Map();
PATH_JSON_LIST.forEach(item => {
if (item.levelName) {
levelNameMap.set(item.levelName, item);
}
});
//中间一段路径名称 //中间一段路径名称
const dir_key = keys.join("\\") const dir_key = keys.join("\\")
filterSettings = filterUidSettings.filter(item => { filterSettings = filterUidSettings.filter(item => {
const settings_level = PATH_JSON_LIST.filter(list_item => list_item.levelName === item.name).find(); // const settings_level = PATH_JSON_LIST.filter(list_item => list_item.levelName === item.name).find();
const settings_level = levelNameMap.get(item.name);
if (settings_level) { if (settings_level) {
//只加载指定目录 //只加载指定目录
return (settings_level.path.includes(dir_key)) return (settings_level.path.includes(dir_key))
} }
return false
}) })
const theLayer = settings.the_layer || false const theLayer = settings.the_layer || false
const levelSettings = filterSettings.filter(item => { const levelSettings = filterSettings.filter(item => {
const level_all = item.name.replaceAll(levelName, ""); const level_all = item.name.replaceAll(levelName, "");
// 获取级别 // 获取级别
const level = level_all.split("_").filter(item => item?.trim() !== "").map(parseInt)[0] const level = level_all.split("_").filter(item => item?.trim() !== "").map(parseInt)[0]
if (theLayer && loadingLevel === level + 1) { if (theLayer) {
//只加载指定级别的设置 //只加载指定级别的设置
return (loadingLevel === level + 1) return (loadingLevel === level + 1)
} }

View File

@@ -50,6 +50,12 @@
"label": "加载路径层级(不可小于1)<配置模式 刷新||加载 生效>", "label": "加载路径层级(不可小于1)<配置模式 刷新||加载 生效>",
"default": "2" "default": "2"
}, },
{
"name": "the_layer",
"type": "checkbox",
"label": "只加载指定层级<配置模式 加载 生效>",
"default": false
},
{ {
"name": "order_rules", "name": "order_rules",
"type": "input-text", "type": "input-text",