오디션 지원 취소기능 적용 #52
@@ -48,7 +48,12 @@ async function getAuditionApplicantList(id, page) {
 | 
				
			|||||||
    return Vue.axios.get("/admin/audition/role/" + id + "/applicant?page=" + (page - 1) + "&size=20");
 | 
					    return Vue.axios.get("/admin/audition/role/" + id + "/applicant?page=" + (page - 1) + "&size=20");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function deleteAuditionApplicant(id) {
 | 
				
			||||||
 | 
					    return Vue.axios.delete("/admin/audition/applicant/" + id);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export {
 | 
					export {
 | 
				
			||||||
    getAuditionList, createAudition, updateAudition, getAuditionDetail,
 | 
					    getAuditionList, createAudition, updateAudition, getAuditionDetail,
 | 
				
			||||||
    createAuditionRole, updateAuditionRole, getAuditionRoleDetail, getAuditionApplicantList
 | 
					    createAuditionRole, updateAuditionRole, getAuditionRoleDetail, getAuditionApplicantList,
 | 
				
			||||||
 | 
					    deleteAuditionApplicant
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,6 +63,9 @@
 | 
				
			|||||||
                      <th class="text-center">
 | 
					                      <th class="text-center">
 | 
				
			||||||
                        추천수
 | 
					                        추천수
 | 
				
			||||||
                      </th>
 | 
					                      </th>
 | 
				
			||||||
 | 
					                      <th class="text-center">
 | 
				
			||||||
 | 
					                        관리
 | 
				
			||||||
 | 
					                      </th>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                  </thead>
 | 
					                  </thead>
 | 
				
			||||||
                  <tbody>
 | 
					                  <tbody>
 | 
				
			||||||
@@ -95,6 +98,14 @@
 | 
				
			|||||||
                        />
 | 
					                        />
 | 
				
			||||||
                      </td>
 | 
					                      </td>
 | 
				
			||||||
                      <td>{{ item.voteCount }}</td>
 | 
					                      <td>{{ item.voteCount }}</td>
 | 
				
			||||||
 | 
					                      <td>
 | 
				
			||||||
 | 
					                        <v-btn
 | 
				
			||||||
 | 
					                          :disabled="is_loading"
 | 
				
			||||||
 | 
					                          @click="deleteConfirm(item)"
 | 
				
			||||||
 | 
					                        >
 | 
				
			||||||
 | 
					                          삭제
 | 
				
			||||||
 | 
					                        </v-btn>
 | 
				
			||||||
 | 
					                      </td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                  </tbody>
 | 
					                  </tbody>
 | 
				
			||||||
                </template>
 | 
					                </template>
 | 
				
			||||||
@@ -114,6 +125,36 @@
 | 
				
			|||||||
        </v-col>
 | 
					        </v-col>
 | 
				
			||||||
      </v-row>
 | 
					      </v-row>
 | 
				
			||||||
    </v-container>
 | 
					    </v-container>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <v-dialog
 | 
				
			||||||
 | 
					      v-model="show_delete_confirm_dialog"
 | 
				
			||||||
 | 
					      max-width="400px"
 | 
				
			||||||
 | 
					      persistent
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
 | 
					      <v-card>
 | 
				
			||||||
 | 
					        <v-card-text />
 | 
				
			||||||
 | 
					        <v-card-text>
 | 
				
			||||||
 | 
					          "{{ selected_audition_role_applicant.nickname }}"님의 오디션지원을 취소하시겠습니까?
 | 
				
			||||||
 | 
					        </v-card-text>
 | 
				
			||||||
 | 
					        <v-card-actions v-show="!is_loading">
 | 
				
			||||||
 | 
					          <v-spacer />
 | 
				
			||||||
 | 
					          <v-btn
 | 
				
			||||||
 | 
					            color="blue darken-1"
 | 
				
			||||||
 | 
					            text
 | 
				
			||||||
 | 
					            @click="deleteCancel"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
 | 
					            취소
 | 
				
			||||||
 | 
					          </v-btn>
 | 
				
			||||||
 | 
					          <v-btn
 | 
				
			||||||
 | 
					            color="blue darken-1"
 | 
				
			||||||
 | 
					            text
 | 
				
			||||||
 | 
					            @click="deleteAuditionApplicant"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
 | 
					            확인
 | 
				
			||||||
 | 
					          </v-btn>
 | 
				
			||||||
 | 
					        </v-card-actions>
 | 
				
			||||||
 | 
					      </v-card>
 | 
				
			||||||
 | 
					    </v-dialog>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -138,6 +179,9 @@ export default {
 | 
				
			|||||||
      audition_role_detail: {},
 | 
					      audition_role_detail: {},
 | 
				
			||||||
      audition_role_applicant_list: [],
 | 
					      audition_role_applicant_list: [],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      selected_audition_role_applicant: {},
 | 
				
			||||||
 | 
					      show_delete_confirm_dialog: false,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      page: 1,
 | 
					      page: 1,
 | 
				
			||||||
      total_page: 0,
 | 
					      total_page: 0,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -164,6 +208,16 @@ export default {
 | 
				
			|||||||
      this.$dialog.notify.success(message)
 | 
					      this.$dialog.notify.success(message)
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    deleteConfirm(item) {
 | 
				
			||||||
 | 
					      this.selected_audition_role_applicant = item
 | 
				
			||||||
 | 
					      this.show_delete_confirm_dialog = true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    deleteCancel() {
 | 
				
			||||||
 | 
					      this.selected_audition_role_applicant = {}
 | 
				
			||||||
 | 
					      this.show_delete_confirm_dialog = false
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    isValidUrl(string) {
 | 
					    isValidUrl(string) {
 | 
				
			||||||
      try {
 | 
					      try {
 | 
				
			||||||
        new URL(string); // URL 생성 시 예외가 발생하면 유효하지 않은 URL
 | 
					        new URL(string); // URL 생성 시 예외가 발생하면 유효하지 않은 URL
 | 
				
			||||||
@@ -236,6 +290,29 @@ export default {
 | 
				
			|||||||
    async next() {
 | 
					    async next() {
 | 
				
			||||||
      await this.getAuditionRoleApplicant()
 | 
					      await this.getAuditionRoleApplicant()
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    async deleteAuditionApplicant() {
 | 
				
			||||||
 | 
					      if (this.is_loading) return;
 | 
				
			||||||
 | 
					      this.is_loading = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        const res = await api.deleteAuditionApplicant(this.selected_audition_role_applicant.applicantId)
 | 
				
			||||||
 | 
					        if (res.status === 200 && res.data.success === true) {
 | 
				
			||||||
 | 
					          this.show_delete_confirm_dialog = false
 | 
				
			||||||
 | 
					          this.notifySuccess(res.data.message || '오디션 지원이 취소 되었습니다.')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          this.audition_role_applicant_list = []
 | 
				
			||||||
 | 
					          this.page = 1
 | 
				
			||||||
 | 
					          await this.getAuditionRoleApplicant()
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.notifyError(res.data.message || '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      } catch (e) {
 | 
				
			||||||
 | 
					        this.notifyError('알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
 | 
				
			||||||
 | 
					      } finally {
 | 
				
			||||||
 | 
					        this.is_loading = false
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user