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" > -