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)<配置模式 刷新||加载 生效>",
"default": "2"
},
{
"name": "the_layer",
"type": "checkbox",
"label": "只加载指定层级<配置模式 加载 生效>",
"default": false
},
{
"name": "order_rules",
"type": "input-text",

View File

@@ -518,21 +518,31 @@ async function loadUidSettingsMap(uidSettingsMap) {
// const key = keys[keys.size - 1]
// 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("\\")
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) {
//只加载指定目录
return (settings_level.path.includes(dir_key))
}
return false
})
const theLayer = settings.the_layer || false
const levelSettings = filterSettings.filter(item => {
const level_all = item.name.replaceAll(levelName, "");
// 获取级别
const level = level_all.split("_").filter(item => item?.trim() !== "").map(parseInt)[0]
if (theLayer && loadingLevel === level + 1) {
if (theLayer) {
//只加载指定级别的设置
return (loadingLevel === level + 1)
}

View File

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