From 12b8dab5f0e470dafee69c061efc5c86891e4455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Wed, 14 Oct 2026 19:34:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20WallPane=20=E9=87=8D=E7=BB=84?= =?UTF-8?q?=E4=B8=BA=E5=9C=BA=E6=99=AF=E5=8D=A1+=E9=AB=98=E7=BA=A7?= =?UTF-8?q?=E6=8A=98=E5=8F=A0=EF=BC=88Batch=202=20=E6=94=B6=E5=8F=A3?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 主面换 ConfigCard 卡壳:WALL_SCENARIOS 双状态场景卡 + no_contact 三键 白话行编辑 + cc_templates 四组封闭语言集 + 试金石面板(整块平移) - 高级区 WallAdvanced 挂载(正则/单正则/reminders,默认折叠);旧池区/ 正则区/提醒区/旧 collapse 结构与失效辅助全部删除(grep 零残留) - 保存链加模板变量保护:collectRemovedWallVariables 集差检出被删的 {intl}/{shown} 等运行期占位符 → ElMessageBox 二次确认(先于试金石) - emits 追加 navigate;index.vue WallPane 挂载处接线 @navigate - ScenarioCard 评审折入:requiredMissing 收紧(空白行保留但两池全空的 必留语言也预警);× 删除钮键盘可达(role/tabindex/enter/space); addLang 严格正则注记(异常存量语言码可显示可删不可重加) Co-Authored-By: Claude Code --- admin/src/views/config/center/WallPane.vue | 830 +++++------------- admin/src/views/config/center/index.vue | 1 + .../views/config/center/wall/ScenarioCard.vue | 13 +- 3 files changed, 250 insertions(+), 594 deletions(-) diff --git a/admin/src/views/config/center/WallPane.vue b/admin/src/views/config/center/WallPane.vue index 55f49f1..9df371d 100644 --- a/admin/src/views/config/center/WallPane.vue +++ b/admin/src/views/config/center/WallPane.vue @@ -1,40 +1,30 @@ diff --git a/admin/src/views/config/center/wall/ScenarioCard.vue b/admin/src/views/config/center/wall/ScenarioCard.vue index 3b7a983..109e7f3 100644 --- a/admin/src/views/config/center/wall/ScenarioCard.vue +++ b/admin/src/views/config/center/wall/ScenarioCard.vue @@ -21,8 +21,11 @@
@@ -84,9 +87,12 @@ { immediate: true } ) + // 必留语言预警:语言缺失,或虽在但两池该语言全为空白行(保存会被剔除→等效缺失) const requiredMissing = computed(() => POOL_REQUIRED_LANGS.filter( - (l) => !langs.value.includes(l) || props.def.pools.some((p) => !(props.model.pools[p.field][l]?.length)) + (l) => + !langs.value.includes(l) || + props.def.pools.some((p) => !(props.model.pools[p.field][l]?.some((t) => t.trim() !== ''))) ) ) @@ -117,6 +123,7 @@ } function addLang(): void { + // 正则保持严格 ^[a-z]{2,3}$——异常存量语言码可显示、可删、不可重加(Task 10 定稿注记) const code = newLang.value.trim().toLowerCase() if (!/^[a-z]{2,3}$/.test(code)) { ElMessage.warning('语言代码为 2-3 位字母(如 pt / ru / ar)')