From f510a88e5653b28fbb9ce30b5c5ab441dce90539 Mon Sep 17 00:00:00 2001
From: zenn
Date: Thu, 23 Jul 2026 17:55:30 +0900
Subject: [PATCH] =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=84=A0=ED=83=9D=20?=
=?UTF-8?q?=EC=9E=85=EB=A0=A5=20=EA=B3=B5=ED=86=B5=ED=99=94?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/todo.md | 3 -
docs/update.md | 5 +
package-lock.json | 4 +-
package.json | 2 +-
pages/admin/settings/index.vue | 286 ++++++++++++++++-----------------
5 files changed, 148 insertions(+), 152 deletions(-)
diff --git a/docs/todo.md b/docs/todo.md
index 3ee5eb8..32468a0 100644
--- a/docs/todo.md
+++ b/docs/todo.md
@@ -8,8 +8,6 @@
- `components/content/ContentMarkdownRenderer.vue`: 파싱·블록 렌더링·라이브 편집 중개·라이트박스·광고 삽입 책임을 분리.
- `components/admin/AdminPostForm.vue`: 태그 입력, 대표 이미지 선택, 발행/초안 저장 상태, 우측 설정 패널 책임을 분리.
- `pages/admin/media/index.vue`: 미디어 목록, 폴더 트리, 상세 모달, 재생성 액션을 작은 단위로 분리.
-- 관리자 UI 공통 컴포넌트 정리.
- - 설정 화면 select 입력의 공통 컴포넌트 적용 범위 검토.
- 최근 브라우저 회귀 테스트 추가.
- 태그 추천 선택 후 다음 태그 후보가 포커스 해제 없이 유지되는지 확인.
- 관리자 미디어 대표 이미지/본문 이미지 탭 전환 중 역할 배지가 노출되지 않는지 확인.
@@ -24,7 +22,6 @@
## 1차 관리자 개발
-
## 2차 관리자 개발
## 프론트엔드 개발
diff --git a/docs/update.md b/docs/update.md
index 496dcbf..d164c60 100644
--- a/docs/update.md
+++ b/docs/update.md
@@ -1,5 +1,10 @@
# 업데이트 이력
+## v1.11.15
+
+- 관리자 설정 화면의 업로드 제한·SNS 아이콘·공개 표시개수·게시물 내보내기 범위 select를 공용 `AdminSelectInput`으로 정리.
+- 설정 화면 select 옵션을 `{ value, label }` 구조로 모아 반복 마크업과 chevron SVG 중복 제거.
+
## v1.11.14
- 관리자 멤버 고급 필터의 필드·조건·상태 선택 입력을 공용 `AdminSelectInput` 기준으로 정리.
diff --git a/package-lock.json b/package-lock.json
index 5585d2d..8a5a3a7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "sori.studio",
- "version": "1.11.14",
+ "version": "1.11.15",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "sori.studio",
- "version": "1.11.14",
+ "version": "1.11.15",
"hasInstallScript": true,
"dependencies": {
"@nuxtjs/tailwindcss": "^6.14.0",
diff --git a/package.json b/package.json
index 1ff91b8..f02e34f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "sori.studio",
- "version": "1.11.14",
+ "version": "1.11.15",
"private": true,
"type": "module",
"imports": {
diff --git a/pages/admin/settings/index.vue b/pages/admin/settings/index.vue
index 83c622a..6b1f0cd 100644
--- a/pages/admin/settings/index.vue
+++ b/pages/admin/settings/index.vue
@@ -94,6 +94,33 @@ const {
} = useImeSearchInput(navSearchQuery)
const activeSectionId = ref('admin-settings-section-title')
const scrollSpySuspended = ref(false)
+
+const uploadFileCountSelectOptions = UPLOAD_FILE_COUNT_OPTIONS.map((option) => ({
+ value: option,
+ label: `${option}개`
+}))
+const uploadTotalSizeSelectOptions = UPLOAD_TOTAL_SIZE_OPTIONS.map((option) => ({
+ value: option,
+ label: formatUploadSizeLimit(option)
+}))
+const postListCountSelectOptions = POST_LIST_COUNT_OPTIONS.map((option) => ({
+ value: option,
+ label: `${option}개`
+}))
+const displayCountSelectOptions = DISPLAY_COUNT_OPTIONS.map((option) => ({
+ value: option,
+ label: `${option}개`
+}))
+const socialIconSelectOptions = SOCIAL_ICON_PRESETS.map((preset) => ({
+ value: preset.icon,
+ label: preset.label
+}))
+const postExportDateRangeModeOptions = [
+ { value: 'all', label: '전체' },
+ { value: 'year', label: '특정년' },
+ { value: 'month', label: '특정월' },
+ { value: 'custom', label: '직접 지정' }
+]
/** 블로그 제목·설명 카드 편집 모드 여부 */
const editTitleDesc = ref(false)
/** 사이트 정보 카드 편집 모드 여부 */
@@ -370,12 +397,22 @@ const postExportYearOptions = computed(() => {
return Array.from({ length: 10 }, (_, index) => currentYear - index)
})
+const postExportYearSelectOptions = computed(() => postExportYearOptions.value.map((year) => ({
+ value: year,
+ label: String(year)
+})))
+
/**
* Export 월 선택지
* @type {ReadonlyArray}
*/
const postExportMonthOptions = Array.from({ length: 12 }, (_, index) => index + 1)
+const postExportMonthSelectOptions = postExportMonthOptions.map((month) => ({
+ value: month,
+ label: `${month}월`
+}))
+
/**
* 게시물 export 요청 버튼 활성 가능 여부
* @returns {boolean} 활성 가능 여부
@@ -2356,30 +2393,26 @@ onBeforeUnmount(() => {
-
@@ -2655,25 +2688,17 @@ onBeforeUnmount(() => {
:key="item.id || index"
class="grid gap-3 rounded-lg border border-[#edf0f2] bg-[#fafafa] p-3 md:grid-cols-[220px_minmax(0,1fr)_auto] md:items-start"
>
-
+
아이콘
-
-
-
-
-
+
updateSocialLinkIcon(index, icon)"
+ />
+
주소
{
-
+
Latest
-
-
-
-
-
-
+
+
+
Posts
-
-
-
-
-
-
+
+
+
태그 게시물
-
-
-
-
-
-
+
+
+
Featured
-
-
-
-
-
-
+
+
+
Pages 섹션
-
-
-
-
-
+
+
@@ -3652,63 +3667,42 @@ onBeforeUnmount(() => {
-
- 범위
-
-
-
-
-
-
+ 범위
+
+
+
- 연도
-
-
-
-
-
-
연도
+
+
+
- 월
-
-
-
-
-
+
월
+
+