summaryrefslogtreecommitdiff
path: root/components/bidding/manage/bidding-schedule-editor.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'components/bidding/manage/bidding-schedule-editor.tsx')
-rw-r--r--components/bidding/manage/bidding-schedule-editor.tsx21
1 files changed, 21 insertions, 0 deletions
diff --git a/components/bidding/manage/bidding-schedule-editor.tsx b/components/bidding/manage/bidding-schedule-editor.tsx
index 4ddaee08..49659ae7 100644
--- a/components/bidding/manage/bidding-schedule-editor.tsx
+++ b/components/bidding/manage/bidding-schedule-editor.tsx
@@ -633,6 +633,9 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
value={schedule.submissionStartDate}
onChange={(e) => handleScheduleChange('submissionStartDate', e.target.value)}
className={!schedule.submissionStartDate ? 'border-red-200' : ''}
+ disabled={readonly}
+ min="1900-01-01T00:00"
+ max="2100-12-31T23:59"
/>
{!schedule.submissionStartDate && (
<p className="text-sm text-red-500">제출 시작일시는 필수입니다</p>
@@ -646,6 +649,9 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
value={schedule.submissionEndDate}
onChange={(e) => handleScheduleChange('submissionEndDate', e.target.value)}
className={!schedule.submissionEndDate ? 'border-red-200' : ''}
+ disabled={readonly}
+ min="1900-01-01T00:00"
+ max="2100-12-31T23:59"
/>
{!schedule.submissionEndDate && (
<p className="text-sm text-red-500">제출 마감일시는 필수입니다</p>
@@ -665,6 +671,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
<Switch
checked={schedule.isUrgent || false}
onCheckedChange={(checked) => handleScheduleChange('isUrgent', checked)}
+ disabled={readonly}
/>
</div>
@@ -679,6 +686,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
<Switch
checked={schedule.hasSpecificationMeeting || false}
onCheckedChange={(checked) => handleScheduleChange('hasSpecificationMeeting', checked)}
+ disabled={readonly}
/>
</div>
@@ -693,6 +701,9 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
value={specMeetingInfo.meetingDate}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, meetingDate: e.target.value }))}
className={!specMeetingInfo.meetingDate ? 'border-red-200' : ''}
+ disabled={readonly}
+ min="1900-01-01T00:00"
+ max="2100-12-31T23:59"
/>
{!specMeetingInfo.meetingDate && (
<p className="text-sm text-red-500 mt-1">회의일시는 필수입니다</p>
@@ -704,6 +715,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
placeholder="예: 14:00 ~ 16:00"
value={specMeetingInfo.meetingTime}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, meetingTime: e.target.value }))}
+ disabled={readonly}
/>
</div>
</div>
@@ -714,6 +726,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
value={specMeetingInfo.location}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, location: e.target.value }))}
className={!specMeetingInfo.location ? 'border-red-200' : ''}
+ disabled={readonly}
/>
{!specMeetingInfo.location && (
<p className="text-sm text-red-500 mt-1">회의 장소는 필수입니다</p>
@@ -725,6 +738,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
placeholder="회의 장소 주소"
value={specMeetingInfo.address}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, address: e.target.value }))}
+ disabled={readonly}
/>
</div>
<div className="grid grid-cols-3 gap-4">
@@ -735,6 +749,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
value={specMeetingInfo.contactPerson}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, contactPerson: e.target.value }))}
className={!specMeetingInfo.contactPerson ? 'border-red-200' : ''}
+ disabled={readonly}
/>
{!specMeetingInfo.contactPerson && (
<p className="text-sm text-red-500 mt-1">담당자는 필수입니다</p>
@@ -746,6 +761,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
placeholder="전화번호"
value={specMeetingInfo.contactPhone}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, contactPhone: e.target.value }))}
+ disabled={readonly}
/>
</div>
<div>
@@ -755,6 +771,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
placeholder="이메일"
value={specMeetingInfo.contactEmail}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, contactEmail: e.target.value }))}
+ disabled={readonly}
/>
</div>
</div>
@@ -765,6 +782,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
value={specMeetingInfo.agenda}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, agenda: e.target.value }))}
rows={3}
+ disabled={readonly}
/>
</div>
<div>
@@ -774,6 +792,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
value={specMeetingInfo.materials}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, materials: e.target.value }))}
rows={3}
+ disabled={readonly}
/>
</div>
<div>
@@ -783,6 +802,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
value={specMeetingInfo.notes}
onChange={(e) => setSpecMeetingInfo((prev) => ({ ...prev, notes: e.target.value }))}
rows={3}
+ disabled={readonly}
/>
</div>
</div>
@@ -799,6 +819,7 @@ export function BiddingScheduleEditor({ biddingId, readonly = false }: BiddingSc
onChange={(e) => handleScheduleChange('remarks', e.target.value)}
placeholder="일정에 대한 추가 설명이나 참고사항을 입력하세요"
rows={4}
+ disabled={readonly}
/>
</div>
</div>