diff --git a/design/uiux/prototype/02-대시보드.html b/design/uiux/prototype/02-대시보드.html index 8fe6934..cd00362 100644 --- a/design/uiux/prototype/02-대시보드.html +++ b/design/uiux/prototype/02-대시보드.html @@ -150,6 +150,7 @@ } /* 회의 카드 */ + /* 최근 회의는 최대 3개만 표시하므로 3열로 제한 */ .meeting-grid { display: grid; gap: var(--space-md); @@ -168,12 +169,6 @@ } } - @media (min-width: 1440px) { - .meeting-grid { - grid-template-columns: repeat(4, 1fr); - } - } - .meeting-card { background: var(--white); border-radius: var(--radius-lg); @@ -689,8 +684,17 @@ const statusInfo = getMeetingStatusInfo(meeting); const isCreator = meeting.participants.some(p => p.id === currentUser.id && p.role === 'creator'); + // 버튼 표시 규칙 + // - ongoing: 참여하기 버튼 표시 + // - scheduled: 버튼 없음 (카드 클릭으로 수정 화면 이동) + // - draft/complete: 버튼 없음 (카드 클릭으로 상세조회 이동) + let actionButton = ''; + if (meeting.status === 'ongoing') { + actionButton = ``; + } + return ` -
+
${createBadge(statusInfo.badgeText, statusInfo.badgeType)}

${meeting.title}${isCreator ? ' 👑' : ''}

@@ -699,14 +703,7 @@
📅 ${formatDate(meeting.date)} ${formatTime(meeting.time)} 👥 ${meeting.participants.length}명
📍 ${meeting.location}
-
- ${meeting.status === 'ongoing' - ? `` - : meeting.status === 'scheduled' && isCreator - ? `` - : `` - } -
+ ${actionButton ? `
${actionButton}
` : ''}
`; }).join(''); @@ -716,12 +713,14 @@ card.addEventListener('click', (e) => { if (e.target.tagName !== 'BUTTON') { const meetingId = card.dataset.id; - const meeting = SAMPLE_MEETINGS.find(m => m.id === meetingId); - if (meeting.status === 'ongoing') { + const meetingStatus = card.dataset.status; + + // 상태에 따른 이동 처리 + if (meetingStatus === 'ongoing') { navigateTo('05-회의진행.html'); - } else if (meeting.status === 'completed') { + } else if (meetingStatus === 'draft' || meetingStatus === 'complete' || meetingStatus === 'completed') { navigateTo('10-회의록상세조회.html'); - } else { + } else if (meetingStatus === 'scheduled') { navigateTo('03-회의예약.html'); } } diff --git a/design/uiux/prototype/common.js b/design/uiux/prototype/common.js index 6e57a0a..c4b9010 100644 --- a/design/uiux/prototype/common.js +++ b/design/uiux/prototype/common.js @@ -31,7 +31,7 @@ const SAMPLE_MEETINGS = [ time: '14:00', duration: 90, location: '본사 2층 대회의실', - status: 'scheduled', // ongoing, scheduled, completed + status: 'draft', // ongoing, scheduled, completed, draft(작성중), complete(확정완료) participants: [ { id: 'user-001', name: '김민준', avatar: '김', avatarColor: 'green' }, { id: 'user-002', name: '박서연', avatar: '박', avatarColor: 'blue' }, @@ -39,7 +39,8 @@ const SAMPLE_MEETINGS = [ { id: 'user-004', name: '최유진', avatar: '최', avatarColor: 'pink' } ], sections: 3, - todos: 5 + todos: 5, + minutesId: 'minutes-001' // 회의록 ID 연결 }, { id: 'meeting-002', @@ -1083,6 +1084,12 @@ function getMeetingStatusInfo(meeting) { if (meeting.status === 'ongoing') { return { badgeType: 'ongoing', badgeText: '진행중' }; } + if (meeting.status === 'draft') { + return { badgeType: 'draft', badgeText: '작성중' }; + } + if (meeting.status === 'complete') { + return { badgeType: 'complete', badgeText: '확정완료' }; + } if (meeting.status === 'completed') { return { badgeType: 'complete', badgeText: '확정완료' }; }