Skip to content

Commit 0cd7e13

Browse files
committed
♻️ [refactor] : 작업수정에서 에러에 따른 입력란 경고표시
1 parent 5c32cf1 commit 0cd7e13

File tree

3 files changed

+30
-13
lines changed

3 files changed

+30
-13
lines changed

src/components/request-task/RequestTask.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ const handleCancel = () => {
104104
router.back()
105105
}
106106
107-
108107
const handleSubmit = async () => {
109108
if (isSubmitting.value || isModalVisible.value) return
110109

src/components/user-manage/UserRegistration.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ import RequestTaskInput from '../request-task/RequestTaskInput.vue'
6969
import DepartmentDropDown from './DepartmentDropDown.vue'
7070
7171
const router = useRouter()
72+
7273
const isModalVisible = ref(false)
7374
const userRegistrationForm = ref(INITIAL_USER_REGISTRATION)
7475
const isInvalidate = ref('')

src/components/user-manage/UserUpdate.vue

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
v-model="userRegistrationForm.nickname"
1515
:placeholderText="'회원의 아이디를 입력해주세요'"
1616
:isEdit="true"
17+
:is-invalidate="isInvalidate"
1718
:labelName="'아이디'" />
1819
<div class="flex w-full gap-2">
1920
<RequestTaskInput
@@ -28,10 +29,14 @@
2829
:is-edit="true"
2930
:is-not-required="false" />
3031
</div>
32+
<DepartmentDropDown
33+
v-model="userRegistrationForm.departmentId"
34+
:is-invalidate="isInvalidate" />
3135
<RequestTaskDropdown
3236
v-model="userRegistrationForm.role"
3337
:options="RoleKeys"
3438
:label-name="'역할'"
39+
:is-invalidate="isInvalidate"
3540
:placeholderText="'회원의 역할을 선택해주세요'" />
3641
<FormCheckbox
3742
v-if="isManager"
@@ -40,7 +45,6 @@
4045
:checkButtonName="'허용'"
4146
:isDisabled="!isManager"
4247
:isChecked="userRegistrationForm.isReviewer" />
43-
<DepartmentDropDown v-model="userRegistrationForm.departmentId" />
4448
<RequestTaskInput
4549
v-model="userRegistrationForm.departmentRole"
4650
:placeholderText="'회원의 직무를 입력해주세요'"
@@ -67,19 +71,22 @@ import { computed, onMounted, ref, watch } from 'vue'
6771
import { useRoute, useRouter } from 'vue-router'
6872
import FormButtonContainer from '../common/FormButtonContainer.vue'
6973
import FormCheckbox from '../common/FormCheckbox.vue'
74+
import ModalView from '../common/ModalView.vue'
7075
import RequestTaskDropdown from '../request-task/RequestTaskDropdown.vue'
7176
import RequestTaskInput from '../request-task/RequestTaskInput.vue'
7277
import DepartmentDropDown from './DepartmentDropDown.vue'
73-
import ModalView from '../common/ModalView.vue'
7478
7579
const route = useRoute()
7680
const router = useRouter()
7781
7882
const userRegistrationForm = ref(INITIAL_USER_REGISTRATION)
79-
const isManager = computed(() => userRegistrationForm.value.role === '담당자')
83+
const isInvalidate = ref('')
8084
const userId = ref(route.query.id)
8185
const userData = ref<UserRegistrationProps | null>(null)
8286
const isModalVisible = ref(false)
87+
const isError = ref(false)
88+
89+
const isManager = computed(() => userRegistrationForm.value.role === '담당자')
8390
8491
watch(
8592
() => router.currentRoute.value.query.id,
@@ -108,16 +115,26 @@ const handleCancel = async () => {
108115
}
109116
110117
const handleSubmit = async () => {
111-
if (typeof userId.value === 'string') {
112-
const userData = {
113-
role: RoleTypeMapping[userRegistrationForm.value.role],
114-
name: userRegistrationForm.value.name,
115-
isReviewer: isManager.value ? userRegistrationForm.value.isReviewer : false,
116-
departmentId: userRegistrationForm.value.departmentId,
117-
departmentRole: userRegistrationForm.value.departmentRole
118+
try {
119+
if (typeof userId.value === 'string') {
120+
const userData = {
121+
role: RoleTypeMapping[userRegistrationForm.value.role],
122+
name: userRegistrationForm.value.name,
123+
isReviewer: isManager.value ? userRegistrationForm.value.isReviewer : false,
124+
departmentId: userRegistrationForm.value.departmentId,
125+
departmentRole: userRegistrationForm.value.departmentRole
126+
}
127+
await updateMemberAdmin(userId.value, userData)
128+
isModalVisible.value = true
129+
}
130+
} catch (error) {
131+
if (error instanceof Error && error.message === 'MEMBER_DUPLICATED') {
132+
isInvalidate.value = 'duplicate'
133+
} else if (error instanceof Error && error.message === 'MEMBER_REVIEWER') {
134+
isInvalidate.value = 'reviewer'
135+
} else {
136+
isError.value = true
118137
}
119-
await updateMemberAdmin(userId.value, userData)
120-
isModalVisible.value = true
121138
}
122139
}
123140
</script>

0 commit comments

Comments
 (0)