태그를 관리용/일반용으로 분리하고 관리자 드래그 정렬을 추가.

댓글/회원/관리자 인증·프로필 흐름 보완과 관련 마이그레이션 및 문서를 함께 반영해 운영 동선을 안정화.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-11 18:34:23 +09:00
parent b18aca4dcc
commit cdc16c72b2
35 changed files with 1721 additions and 138 deletions

View File

@@ -23,7 +23,8 @@ const form = reactive({
slug: props.initialTag.slug || '',
description: props.initialTag.description || '',
sortOrder: props.initialTag.sortOrder ?? 0,
color: props.initialTag.color || '#15171a'
color: props.initialTag.color || '#15171a',
tagType: props.initialTag.tagType || 'managed'
})
/**
@@ -63,8 +64,9 @@ const submitTag = () => {
name: form.name.trim(),
slug: toSlug(form.slug || form.name),
description: form.description.trim(),
sortOrder: Number(form.sortOrder) || 0,
color: form.color
sortOrder: form.tagType === 'managed' ? Number(form.sortOrder) || 0 : 0,
color: form.color,
tagType: form.tagType
})
}
</script>
@@ -102,6 +104,17 @@ const submitTag = () => {
/>
</label>
<label class="admin-tag-form__field grid gap-2 text-sm">
<span class="admin-tag-form__label font-medium">태그 유형</span>
<select
v-model="form.tagType"
class="admin-tag-form__input rounded border border-line bg-white px-3 py-2"
>
<option value="managed">관리용 태그 (카테고리)</option>
<option value="general">일반 태그 (배지)</option>
</select>
</label>
<div class="admin-tag-form__display grid gap-4 md:grid-cols-2">
<label class="admin-tag-form__field grid gap-2 text-sm">
<span class="admin-tag-form__label font-medium">정렬 순서</span>
@@ -111,7 +124,11 @@ const submitTag = () => {
type="number"
min="0"
step="1"
:disabled="form.tagType !== 'managed'"
>
<span v-if="form.tagType !== 'managed'" class="text-xs text-muted">
일반 태그는 정렬 순서를 사용하지 않습니다.
</span>
</label>
<label class="admin-tag-form__field grid gap-2 text-sm">