From 19f2771c5e5512d687c15f0603ff60b8236beb26 Mon Sep 17 00:00:00 2001 From: yan Date: Fri, 23 Jan 2026 09:39:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(auto-tools):=20=E6=B7=BB=E5=8A=A0=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E5=B1=82=E7=BA=A7=E5=8A=A0=E8=BD=BD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在配置中新增 the_layer 复选框选项用于控制是否只加载指定层级 - 优化路径查找逻辑,通过预建 levelName 映射提升性能 - 修改过滤条件以支持层级加载功能 - 在两个配置文件中同步添加 the_layer 设置项 --- .../FullyAutoAndSemiAutoTools/config/settings.json | 6 ++++++ repo/js/FullyAutoAndSemiAutoTools/main.js | 14 ++++++++++++-- repo/js/FullyAutoAndSemiAutoTools/settings.json | 6 ++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/repo/js/FullyAutoAndSemiAutoTools/config/settings.json b/repo/js/FullyAutoAndSemiAutoTools/config/settings.json index 6f1298cb2..1bebad90f 100644 --- a/repo/js/FullyAutoAndSemiAutoTools/config/settings.json +++ b/repo/js/FullyAutoAndSemiAutoTools/config/settings.json @@ -50,6 +50,12 @@ "label": "加载路径层级(不可小于1)<配置模式 刷新||加载 生效>", "default": "2" }, + { + "name": "the_layer", + "type": "checkbox", + "label": "只加载指定层级<配置模式 加载 生效>", + "default": false + }, { "name": "order_rules", "type": "input-text", diff --git a/repo/js/FullyAutoAndSemiAutoTools/main.js b/repo/js/FullyAutoAndSemiAutoTools/main.js index a3ffe1d56..ab16c8df6 100644 --- a/repo/js/FullyAutoAndSemiAutoTools/main.js +++ b/repo/js/FullyAutoAndSemiAutoTools/main.js @@ -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) } diff --git a/repo/js/FullyAutoAndSemiAutoTools/settings.json b/repo/js/FullyAutoAndSemiAutoTools/settings.json index 6f1298cb2..1bebad90f 100644 --- a/repo/js/FullyAutoAndSemiAutoTools/settings.json +++ b/repo/js/FullyAutoAndSemiAutoTools/settings.json @@ -50,6 +50,12 @@ "label": "加载路径层级(不可小于1)<配置模式 刷新||加载 生效>", "default": "2" }, + { + "name": "the_layer", + "type": "checkbox", + "label": "只加载指定层级<配置模式 加载 生效>", + "default": false + }, { "name": "order_rules", "type": "input-text",