|
10 | 10 | v-model="category1" |
11 | 11 | :options="mainCategoryArr" |
12 | 12 | :label-name="'1차 카테고리'" |
13 | | - :isInvalidate="isInvalidate" |
| 13 | + :isInvalidate="isInvalidate === 'category1' ? 'category' : ''" |
14 | 14 | :isDisabled="false" /> |
15 | 15 | <CategoryDropDown |
16 | 16 | v-model="category2" |
17 | 17 | :options="afterSubCategoryArr" |
18 | 18 | :label-name="'2차 카테고리'" |
19 | | - :is-invalidate="isInvalidate" |
| 19 | + :isInvalidate="isInvalidate === 'category2' ? 'category' : ''" |
20 | 20 | :isDisabled="!category1" /> |
21 | 21 | <ManagerDropdown |
22 | 22 | v-model="approveData.processor" |
23 | 23 | :placeholderText="'담당자를 선택해주세요'" |
24 | | - :is-invalidate="isInvalidate" /> |
| 24 | + :is-invalidate="isInvalidate === 'manager' ? 'manager' : ''" /> |
25 | 25 | <div class="flex flex-col gap-2"> |
26 | 26 | <div class="flex gap-2"> |
27 | 27 | <p class="text-body text-xs font-semibold">마감기한</p> |
|
40 | 40 | <div class="flex w-full justify-center gap-6"> |
41 | 41 | <DueDateInput |
42 | 42 | v-model="approveData.dueDate" |
43 | | - inputType="date" /> |
| 43 | + inputType="date" |
| 44 | + :is-invalidate="isInvalidate === 'date' ? 'date' : ''" /> |
44 | 45 | <DueDateInput |
45 | 46 | v-model="approveData.dueTime" |
46 | | - inputType="time" /> |
| 47 | + inputType="time" |
| 48 | + :is-invalidate="isInvalidate === 'date' ? 'date' : ''" /> |
47 | 49 | </div> |
48 | 50 | </div> |
49 | 51 | <LabelDropdown |
@@ -141,8 +143,12 @@ const handleCancel = () => { |
141 | 143 | } |
142 | 144 |
|
143 | 145 | const handleSubmit = async () => { |
144 | | - if (!category1.value || !category2.value) { |
145 | | - isInvalidate.value = 'category' |
| 146 | + if (!category1.value) { |
| 147 | + isInvalidate.value = 'category1' |
| 148 | + return |
| 149 | + } |
| 150 | + if (!category2.value) { |
| 151 | + isInvalidate.value = 'category2' |
146 | 152 | return |
147 | 153 | } |
148 | 154 | if (!approveData.value.processor?.memberId) { |
|
0 commit comments