refactor: 중간 점검을 상단 상태/담당/마감 카드에 통합 + 상태 항목 제거
별도 중간 점검 카드 제거 → 상단 카드의 마감기한 아래로 이동. 해당 카드에서 '상태' 항목 제거(상태는 상단 헤더 배지로 확인). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1109,7 +1109,7 @@ function goBack() {
|
||||
</li>
|
||||
</ul>
|
||||
<p class="cp-hint">
|
||||
담당자가 점검일 당일에 진행 상태를 보고서로 보낼 수 있습니다. (지나면 누락)
|
||||
담당자가 점검일 당일에 진행 상태를 보고서로 보낼 수 있습니다.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1174,15 +1174,6 @@ function badgeFor(name: string | undefined): { label: string; cls: string } {
|
||||
</div>
|
||||
|
||||
<div class="card side-card">
|
||||
<div class="side-field">
|
||||
<div class="side-label">
|
||||
상태
|
||||
</div>
|
||||
<span
|
||||
class="status-badge"
|
||||
:class="task.status"
|
||||
><span class="dot" />{{ task.statusLabel }}</span>
|
||||
</div>
|
||||
<div class="side-field">
|
||||
<div class="side-label">
|
||||
담당자 · {{ task.assignees.length }}명
|
||||
@@ -1227,6 +1218,49 @@ function badgeFor(name: string | undefined): { label: string; cls: string } {
|
||||
>{{ task.dday }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 중간 점검 — 점검일/보고(상태/담당/마감 카드에 통합) -->
|
||||
<div
|
||||
v-if="task.checkpoints.length || task.checkpointReports.length"
|
||||
class="side-field"
|
||||
>
|
||||
<div class="side-label">
|
||||
중간 점검
|
||||
</div>
|
||||
<ul
|
||||
v-if="task.checkpoints.length"
|
||||
class="cp-d-list"
|
||||
>
|
||||
<li
|
||||
v-for="cp in task.checkpoints"
|
||||
:key="cp.id"
|
||||
class="cp-d-item"
|
||||
>
|
||||
<span class="cp-d-date">{{ cp.dateLabel }}</span>
|
||||
<button
|
||||
v-if="checkpointState(cp) === 'today' && isAssignee"
|
||||
class="cp-report-btn"
|
||||
type="button"
|
||||
@click="openReportForm(cp)"
|
||||
>
|
||||
보고서 작성
|
||||
</button>
|
||||
<button
|
||||
v-else-if="checkpointState(cp) === 'reported' && canViewReports"
|
||||
class="cp-state reported clickable"
|
||||
type="button"
|
||||
title="보고 내용 보기"
|
||||
@click="openReportModal(cp)"
|
||||
>
|
||||
보고 완료
|
||||
</button>
|
||||
<span
|
||||
v-else
|
||||
class="cp-state"
|
||||
:class="checkpointState(cp)"
|
||||
>{{ CP_STATE_LABEL[checkpointState(cp)] }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card side-card">
|
||||
@@ -1267,54 +1301,6 @@ function badgeFor(name: string | undefined): { label: string; cls: string } {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 중간 점검 — 점검일/보고 -->
|
||||
<div
|
||||
v-if="task.checkpoints.length || task.checkpointReports.length"
|
||||
class="card side-card"
|
||||
>
|
||||
<div class="side-field">
|
||||
<div class="side-label">
|
||||
중간 점검
|
||||
</div>
|
||||
<!-- 점검일 목록 + 상태(예정/오늘/완료/누락) -->
|
||||
<ul
|
||||
v-if="task.checkpoints.length"
|
||||
class="cp-d-list"
|
||||
>
|
||||
<li
|
||||
v-for="cp in task.checkpoints"
|
||||
:key="cp.id"
|
||||
class="cp-d-item"
|
||||
>
|
||||
<span class="cp-d-date">{{ cp.dateLabel }}</span>
|
||||
<!-- 당일 + 담당자만 보고서 작성(모달) -->
|
||||
<button
|
||||
v-if="checkpointState(cp) === 'today' && isAssignee"
|
||||
class="cp-report-btn"
|
||||
type="button"
|
||||
@click="openReportForm(cp)"
|
||||
>
|
||||
보고서 작성
|
||||
</button>
|
||||
<button
|
||||
v-else-if="checkpointState(cp) === 'reported' && canViewReports"
|
||||
class="cp-state reported clickable"
|
||||
type="button"
|
||||
title="보고 내용 보기"
|
||||
@click="openReportModal(cp)"
|
||||
>
|
||||
보고 완료
|
||||
</button>
|
||||
<span
|
||||
v-else
|
||||
class="cp-state"
|
||||
:class="checkpointState(cp)"
|
||||
>{{ CP_STATE_LABEL[checkpointState(cp)] }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card side-card">
|
||||
<div class="side-field bare">
|
||||
<div class="side-head">
|
||||
|
||||
Reference in New Issue
Block a user