feat(tag): 标签管理支持配置语义码
web-ci / build (push) Canceled after 0s

客户端按语义码判断板块归属(如推荐页「上新」横滑),标签改名或换语言
都不再影响;新增/编辑弹窗增加语义码输入并做格式校验,留空则按名称兜底。
This commit is contained in:
Vicky authored and trae-solo-agent committed 2026-10-29 15:44:42 +08:00
1 parent d13bdd5dc8
commit dea414739e
1 file changed
+25
@@ -33,6 +33,7 @@ const DEFAULT_TAG_COLOR = '#E5484D'
const emptyForm = () => ({
locales: { zh: '' },
bgColor: DEFAULT_TAG_COLOR,
code: '',
sort: 1,
status: 1
})
@@ -66,6 +67,7 @@ function openEdit(row) {
Object.assign(form, {
locales,
bgColor: row.bgColor || DEFAULT_TAG_COLOR,
code: row.code || '',
sort: row.sort ?? 0,
status: row.status ?? 1
})
@@ -83,12 +85,18 @@ async function save() {
ElMessage.warning(`请填写${languageLabel(missing)}名称`)
return
}
const code = (form.code || '').trim().toUpperCase()
if (code && !/^[A-Z][A-Z0-9_]{0,31}$/.test(code)) {
ElMessage.warning('语义码需为大写字母、数字或下划线,且以字母开头')
return
}
saving.value = true
try {
const payload = {
name: locales.zh,
locales,
bgColor: form.bgColor || DEFAULT_TAG_COLOR,
code,
sort: form.sort,
status: form.status
}
@@ -209,6 +217,16 @@ onMounted(load)
<el-form-item label="背景色">
<el-color-picker v-model="form.bgColor" color-format="hex" />
</el-form-item>
<el-form-item label="语义码">
<el-input
v-model="form.code"
maxlength="32"
placeholder="如 NEW_ARRIVAL,留空则按名称匹配"
/>
<div class="form-hint">
客户端按语义码判断板块(如「上新」横滑),改名或换语言都不受影响。
</div>
</el-form-item>
<div class="form-row">
<el-form-item label="排序">
<el-input-number v-model="form.sort" :min="0" :max="999" />
@@ -236,4 +254,11 @@ onMounted(load)
height: 16px;
border-radius: 4px;
}
.form-hint {
margin-top: 4px;
font-size: 12px;
line-height: 1.5;
color: var(--el-text-color-secondary);
}
</style>