3535 <template #header >회원을 삭제 하시겠습니까?</template >
3636 <template #body >삭제된 회원은 복구할 수 없습니다</template >
3737 </ModalView >
38- <ModalView
39- type =" failType"
40- :is-open =" isModalVisible.fail"
41- @close =" closeModal" >
42- <template #header >회원 삭제에 실패했습니다</template >
43- </ModalView >
44- <ModalView
45- type =" successType"
46- :is-open =" isModalVisible.success"
47- @close =" closeModal" >
48- <template #header >회원을 삭제했습니다</template >
49- </ModalView >
50-
51- <ModalView
52- type =" successType"
53- :is-open =" isModalVisible.invite"
54- @close =" closeModal" >
55- <template #header >초대 메일을 발송하였습니다</template >
56- </ModalView >
38+ <ResultModal
39+ :type =" resultModalType"
40+ :is-open =" isModalVisible.result"
41+ :message =" message"
42+ @close =" closeModal" />
5743</template >
5844
5945<script setup lang="ts">
@@ -66,6 +52,7 @@ import { ref } from 'vue'
6652import { axiosInstance } from ' @/utils/axios'
6753import { useQueryClient } from ' @tanstack/vue-query'
6854import { formatDate } from ' @/utils/date'
55+ import ResultModal from ' ../common/ResultModal.vue'
6956
7057const roleContent = (role : Role ) => {
7158 return role === ' ROLE_USER' ? ' 사용자' : role === ' ROLE_MANAGER' ? ' 담당자' : ' 관리자'
@@ -88,32 +75,44 @@ const queryClient = useQueryClient()
8875
8976const isModalVisible = ref ({
9077 delete: false ,
91- invite: false ,
92- fail: false ,
93- success: false
78+ result: false
9479})
80+ const resultModalType = ref (' ' )
81+ const message = ref (' ' )
9582const toggleModal = (key : keyof typeof isModalVisible .value ) => {
9683 isModalVisible .value = Object .fromEntries (
9784 Object .keys (isModalVisible .value ).map (k => [k , k === key ])
9885 ) as typeof isModalVisible .value
9986}
10087const closeModal = () => {
101- const prevSuccess = isModalVisible .value .success
102- isModalVisible .value = { delete: false , invite: false , fail: false , success : false }
88+ const prevSuccess = isModalVisible .value .result
89+ isModalVisible .value = { delete: false , result : false }
10390 if (prevSuccess ) queryClient .invalidateQueries ({ queryKey: [' member' ] })
10491}
10592
10693const onMemberDelete = async (memberId : number ) => {
10794 try {
108- await axiosInstance .patch (` /api/managements/members/delete ` , { memberId })
109- toggleModal (' success' )
95+ await axiosInstance .delete (` /api/managements/members ` , { data: { memberId } })
96+ resultModalType .value = ' successType'
97+ message .value = ' 회원을 삭제했습니다'
98+ toggleModal (' result' )
11099 } catch {
111- toggleModal (' fail' )
100+ resultModalType .value = ' failType'
101+ message .value = ' 회원 삭제에 실패했습니다'
102+ toggleModal (' result' )
112103 }
113104}
114105
115- const onMemberInvite = (memberId : number ) => {
116- console .log (memberId )
117- toggleModal (' invite' )
106+ const onMemberInvite = async (memberId : number ) => {
107+ try {
108+ await axiosInstance .post (' /api/managements/members/invite' , { memberId })
109+ resultModalType .value = ' successType'
110+ message .value = ' 초대 메일을 발송하였습니다'
111+ toggleModal (' result' )
112+ } catch {
113+ resultModalType .value = ' failType'
114+ message .value = ' 초대 메일 발송에 실패했습니다'
115+ toggleModal (' result' )
116+ }
118117}
119118 </script >
0 commit comments