From bdd42a3cb244e86d4cfa6fabd9e3b6c1b32c8795 Mon Sep 17 00:00:00 2001 From: ttipo Date: Wed, 4 Nov 2026 09:32:38 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat(frontend):=20=EC=95=B1=20=EB=A0=88?= =?UTF-8?q?=EC=9D=BC=EA=B3=BC=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=86=8C?= =?UTF-8?q?=EA=B0=9C=20=EA=B8=80=EC=97=90=EC=84=9C=20ERP=20=EB=A5=BC=20?= =?UTF-8?q?=EB=BA=80=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용자 요청(2026-11-04)으로 레일의 "준비 중" ERP 칸과 로그인 브랜드 패널 소개 글의 ERP 를 뺐다. 레일 테스트는 실제 목록(메일 · 캘린더 · 파일 · 주소록 · 설정)도 그대로 본다 — 다시 넣을 때 함께 고치게. Co-Authored-By: Claude Opus 5.5 --- frontend/src/components/shell/AppRail.spec.ts | 4 +++- frontend/src/pages/LoginPage.vue | 2 +- frontend/src/shared/constants/app-modules.ts | 3 +-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/shell/AppRail.spec.ts b/frontend/src/components/shell/AppRail.spec.ts index 0474762..f57e6ba 100644 --- a/frontend/src/components/shell/AppRail.spec.ts +++ b/frontend/src/components/shell/AppRail.spec.ts @@ -13,11 +13,13 @@ describe('AppRail', () => { return mount(AppRail, { props: { activeModule: 'mail' }, global: { plugins: [router] } }) } - it('모듈 목록 하나로 그린다 — 메일 · 캘린더 · 파일 · ERP · 주소록 · 설정', async () => { + it('모듈 목록 하나로 그린다 — 메일 · 캘린더 · 파일 · 주소록 · 설정', async () => { const wrapper = await mountRail() const labels = wrapper.findAll('.rail-item').map((item) => item.text().replace('(준비 중)', '').trim()) expect(labels).toEqual(APP_MODULES.map((module) => module.label)) + // 실제 목록도 그대로 본다 — ERP 칸은 2026-11-04 사용자 요청으로 뺐다(다시 넣으면 이 목록도 함께 고친다) + expect(labels).toEqual(['메일', '캘린더', '파일', '주소록', '설정']) }) it('메일 · 주소록(8단계) · 설정이 링크이고, 지금 모듈이 현재로 표시된다', async () => { diff --git a/frontend/src/pages/LoginPage.vue b/frontend/src/pages/LoginPage.vue index b25e02a..b78ff78 100644 --- a/frontend/src/pages/LoginPage.vue +++ b/frontend/src/pages/LoginPage.vue @@ -376,7 +376,7 @@ void supportContactStore.ensureLoaded() 사내 업무를
한 계정으로

diff --git a/frontend/src/shared/constants/app-modules.ts b/frontend/src/shared/constants/app-modules.ts index c392074..8ed6e15 100644 --- a/frontend/src/shared/constants/app-modules.ts +++ b/frontend/src/shared/constants/app-modules.ts @@ -7,7 +7,7 @@ import type { IconName } from '@/shared/constants/icons' -export type AppModuleId = 'mail' | 'calendar' | 'files' | 'erp' | 'contacts' | 'settings' +export type AppModuleId = 'mail' | 'calendar' | 'files' | 'contacts' | 'settings' export interface AppModule { id: AppModuleId @@ -24,7 +24,6 @@ export const APP_MODULES: readonly AppModule[] = [ { id: 'mail', label: '메일', icon: 'mail', routeName: 'mail', placement: 'main' }, { id: 'calendar', label: '캘린더', icon: 'calendar', routeName: null, placement: 'main' }, { id: 'files', label: '파일', icon: 'folder', routeName: null, placement: 'main' }, - { id: 'erp', label: 'ERP', icon: 'briefcase', routeName: null, placement: 'main' }, // 8단계 — 주소록 (첫 화면은 전체 연락처, constants/contacts.ts 의 CONTACTS_ROUTES.all) { id: 'contacts', label: '주소록', icon: 'users', routeName: 'contacts', placement: 'main' }, { id: 'settings', label: '설정', icon: 'settings', routeName: 'settings', placement: 'end' }, -- 2.52.0 From 8abcaed98e5ba6112695f43ea0edaf4715f1b072 Mon Sep 17 00:00:00 2001 From: ttipo Date: Wed, 4 Nov 2026 09:32:38 +0900 Subject: [PATCH 2/2] =?UTF-8?q?docs:=20=EC=95=B1=20=EB=A0=88=EC=9D=BC?= =?UTF-8?q?=EC=97=90=EC=84=9C=20ERP=20=EB=A5=BC=20=EB=BA=80=20=EA=B2=83?= =?UTF-8?q?=EC=9D=84=20=EB=94=94=EC=9E=90=EC=9D=B8=20README=20=C2=B7=20vue?= =?UTF-8?q?3=20=EC=8A=A4=ED=82=AC=EC=97=90=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .claude/skills/vue3/SKILL.md | 2 +- docs/design/webmail/README.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.claude/skills/vue3/SKILL.md b/.claude/skills/vue3/SKILL.md index 71cbdb9..f21bf64 100644 --- a/.claude/skills/vue3/SKILL.md +++ b/.claude/skills/vue3/SKILL.md @@ -81,7 +81,7 @@ description: Vue 3 프론트엔드(frontend/) 개발 규칙 — Composition API > 두 포트 모두 `vite.config.ts` 가 **루트 `.env.{mode}` 에서 직접 읽는다** — 프론트 쪽에 포트를 중복 작성하지 않는다. > **확장 시 따르는 규칙:** -> - **새 사내 모듈**(캘린더·파일·ERP 등): `app-modules.ts` 에 항목을 활성화하고, 라우트 + `AppShell` 안의 모듈 패널을 메일 모듈처럼 만든다. 셸을 새로 만들지 않는다. +> - **새 사내 모듈**(캘린더·파일 등): `app-modules.ts` 에 항목을 활성화하고, 라우트 + `AppShell` 안의 모듈 패널을 메일 모듈처럼 만든다. 셸을 새로 만들지 않는다. > - **새 화면**: 구현 전에 디자인 캔버스로 먼저 확인받고, 확정본을 `docs/design/` 에 둔 뒤 그 기준으로 만든다. 뱃지(안 읽음 점·개수 알약·태그)는 쓰지 않는다. > - **공통 컴포넌트**: `BaseButton` 패턴을 따라 `src/components/` 에 추가 diff --git a/docs/design/webmail/README.md b/docs/design/webmail/README.md index 4ffb152..ba61c07 100644 --- a/docs/design/webmail/README.md +++ b/docs/design/webmail/README.md @@ -29,7 +29,8 @@ ## 디자인 원칙 (사용자 확정) - 안 읽음 점·개수 알약·코드 태그 같은 **뱃지를 쓰지 않는다** — 굵은 글자와 평범한 숫자로 구분한다. -- 왼쪽 **전역 앱 레일**(메일·캘린더·파일·ERP·주소록·설정)에 모듈을 계속 붙인다. 지금은 메일만 동작한다. +- 왼쪽 **전역 앱 레일**(메일·캘린더·파일·주소록·설정)에 모듈을 계속 붙인다. 지금은 메일 · 주소록 · 설정이 동작하고 캘린더 · 파일은 "준비 중"이다. + ERP 는 2026-11-04 사용자 요청으로 레일과 로그인 소개 글에서 뺐다 — 그 전에 그린 캔버스(`*.dc.html`)에는 남아 있다. - 정보 밀도가 높은 데스크톱 화면 — 기본 13px. 목록에 본문 미리보기를 넣지 않는다. - 분할 보기 행: 2줄(보낸 사람·시간 / 제목+첨부 클립), 약 50px - 목록 보기 행: 1줄 표, 38px. 칸 = 별 32 · 보낸 사람 168 · 제목(나머지) · 날짜 84 · 크기 64 (px, 칸 사이 12). -- 2.52.0