feat(admin): Phase 4 质量词 Admin(平台单层) — QualityWord + 生成侧读配置(无配置回落) + 质量词页
后端:apps/ai QualityWord(stage/slot/text/sort/enabled)+ migration;services.py quality_words/quality_suffix, 4 个 builder 接入(person/model_tryon/storyboard/video)无配置回落原写死值零回归;adminpanel CRUD + 审计。 前端:adminApi quality 系列;Admin 质量词页(按 stage 分组卡 + 编辑模式开关 + 行内增改删 chip)。 测试:adminpanel 23 + accounts 22 = 45 单测过(CRUD/权限/生成读配置+回落/停用词不取); 无头 e2e _admin-p4.mjs 4 断言过 + 0 console error + live 库零残留;tsc+build 绿。 注:apps.ai 3 个 image_edit 路由测试失败为进场前既有(已 stash 比对 HEAD 同样失败),非本 Phase 引入。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6560633959
commit
01d4f235ed
@@ -144,3 +144,54 @@
|
||||
.admin-detail-meta .v { font-size: 14px; color: var(--accent-black); }
|
||||
.admin-detail-subhead { font-size: 13px; font-weight: 500; color: var(--accent-black); margin: 8px 0 10px; }
|
||||
.admin-inline-pill { margin-left: 8px; }
|
||||
|
||||
/* ── 质量词:按 stage 分组 + 编辑模式 chip ── */
|
||||
.qw-stages { display: flex; flex-direction: column; gap: 16px; }
|
||||
.qw-stage { padding: 18px 20px; }
|
||||
.qw-stage-h { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; }
|
||||
.qw-stage-title { font-size: 14px; font-weight: 500; color: var(--accent-black); }
|
||||
.qw-stage-hint { font-size: 11px; color: var(--black-alpha-48); }
|
||||
.qw-empty { font-size: 12px; color: var(--black-alpha-48); }
|
||||
.qw-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
|
||||
.qw-chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
height: 28px;
|
||||
padding: 0 12px;
|
||||
background: var(--heat-12);
|
||||
border: 1px solid var(--heat-20);
|
||||
border-radius: var(--r-pill);
|
||||
font-size: 12.5px;
|
||||
color: var(--heat);
|
||||
}
|
||||
.qw-chip.editing { background: var(--surface); border-color: var(--border-faint); padding: 0 6px 0 10px; }
|
||||
.qw-chip-input {
|
||||
border: 0;
|
||||
background: transparent;
|
||||
outline: none;
|
||||
font: inherit;
|
||||
color: var(--accent-black);
|
||||
width: 110px;
|
||||
height: 26px;
|
||||
font-size: 12.5px;
|
||||
}
|
||||
.qw-add .qw-chip-input {
|
||||
width: 150px;
|
||||
border: 1px dashed var(--black-alpha-24);
|
||||
border-radius: var(--r-pill);
|
||||
padding: 0 12px;
|
||||
height: 28px;
|
||||
}
|
||||
.qw-del {
|
||||
display: inline-grid;
|
||||
place-items: center;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
color: var(--black-alpha-48);
|
||||
cursor: pointer;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.qw-del:hover { color: var(--accent-crimson); background: var(--black-alpha-4); }
|
||||
|
||||
Reference in New Issue
Block a user