feat(agent): 에이전트-크리에이터 오류 메시지 표시 다이얼로그 추가
This commit is contained in:
@@ -317,21 +317,42 @@ export default {
|
|||||||
this.fetchList(1)
|
this.fetchList(1)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
notifyError(message) {
|
||||||
|
// vuetify-dialog 플러그인을 통해 오류 노출
|
||||||
|
if (this.$dialog && this.$dialog.notify && this.$dialog.notify.error) {
|
||||||
|
this.$dialog.notify.error(message)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getErrorMessage(e) {
|
||||||
|
const fallback = '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.'
|
||||||
|
try {
|
||||||
|
if (!e) return fallback
|
||||||
|
// axios 형태의 에러 응답을 우선 사용
|
||||||
|
const msg = (e.response && e.response.data && (e.response.data.message || e.response.data.error || e.response.data.msg))
|
||||||
|
|| e.message
|
||||||
|
return msg || fallback
|
||||||
|
} catch (_) {
|
||||||
|
return fallback
|
||||||
|
}
|
||||||
|
},
|
||||||
async fetchList(page = this.page) {
|
async fetchList(page = this.page) {
|
||||||
if (this.is_loading) return
|
if (this.is_loading) return
|
||||||
this.is_loading = true
|
this.is_loading = true
|
||||||
try {
|
try {
|
||||||
this.page = page
|
this.page = page
|
||||||
const res = await getAgentAssignedCreatorList(this.agentId, Math.max(1, this.page), this.page_size)
|
const res = await getAgentAssignedCreatorList(this.agentId, Math.max(1, this.page), this.page_size)
|
||||||
// ApiResponse<GetAdminAgentAssignedCreatorResponse>
|
if (res && res.status === 200 && res.data && res.data.success === true) {
|
||||||
let payload = res && res.data ? res.data : null
|
const data = (res.data && res.data.data) || { totalCount: 0, items: [] }
|
||||||
if (payload && payload.data) payload = payload.data
|
|
||||||
const data = payload || { totalCount: 0, items: [] }
|
|
||||||
this.totalCount = data.totalCount || 0
|
this.totalCount = data.totalCount || 0
|
||||||
this.items = Array.isArray(data.items) ? data.items : []
|
this.items = Array.isArray(data.items) ? data.items : []
|
||||||
|
} else {
|
||||||
|
const msg = res && res.data && (res.data.message || res.data.error || res.data.msg)
|
||||||
|
this.notifyError(msg || '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.totalCount = 0
|
this.totalCount = 0
|
||||||
this.items = []
|
this.items = []
|
||||||
|
this.notifyError(this.getErrorMessage(e))
|
||||||
} finally {
|
} finally {
|
||||||
this.is_loading = false
|
this.is_loading = false
|
||||||
}
|
}
|
||||||
@@ -356,12 +377,17 @@ export default {
|
|||||||
this.assignDialog.searchLoading = true
|
this.assignDialog.searchLoading = true
|
||||||
try {
|
try {
|
||||||
const res = await searchAdminAgentAssignableCreators(query)
|
const res = await searchAdminAgentAssignableCreators(query)
|
||||||
let payload = res && res.data ? res.data : null
|
if (res && res.status === 200 && res.data && res.data.success === true) {
|
||||||
if (payload && payload.data) payload = payload.data
|
const data = (res.data && res.data.data) || { totalCount: 0, items: [] }
|
||||||
const data = payload || { totalCount: 0, items: [] }
|
|
||||||
this.assignDialog.searchItems = Array.isArray(data.items) ? data.items : []
|
this.assignDialog.searchItems = Array.isArray(data.items) ? data.items : []
|
||||||
|
} else {
|
||||||
|
this.assignDialog.searchItems = []
|
||||||
|
const msg = res && res.data && (res.data.message || res.data.error || res.data.msg)
|
||||||
|
this.notifyError(msg || '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.assignDialog.searchItems = []
|
this.assignDialog.searchItems = []
|
||||||
|
this.notifyError(this.getErrorMessage(e))
|
||||||
} finally {
|
} finally {
|
||||||
this.assignDialog.searchLoading = false
|
this.assignDialog.searchLoading = false
|
||||||
}
|
}
|
||||||
@@ -371,15 +397,20 @@ export default {
|
|||||||
this.assignDialog.loading = true
|
this.assignDialog.loading = true
|
||||||
try {
|
try {
|
||||||
const assignedAt = `${this.assignDialog.assignedDate}T00:00:00`
|
const assignedAt = `${this.assignDialog.assignedDate}T00:00:00`
|
||||||
await assignAgentCreator({
|
const res = await assignAgentCreator({
|
||||||
agentId: Number(this.agentId),
|
agentId: Number(this.agentId),
|
||||||
creatorId: Number(this.assignDialog.selectedCreatorId),
|
creatorId: Number(this.assignDialog.selectedCreatorId),
|
||||||
assignedAt,
|
assignedAt,
|
||||||
})
|
})
|
||||||
|
if (res && res.status === 200 && res.data && res.data.success === true) {
|
||||||
this.closeAssignDialog()
|
this.closeAssignDialog()
|
||||||
this.fetchList(1)
|
this.fetchList(1)
|
||||||
|
} else {
|
||||||
|
const msg = res && res.data && (res.data.message || res.data.error || res.data.msg)
|
||||||
|
this.notifyError(msg || '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// noop: 에러 토스트 자리는 프로젝트 전역 플러그인 유무에 따라 추가 가능
|
this.notifyError(this.getErrorMessage(e))
|
||||||
} finally {
|
} finally {
|
||||||
this.assignDialog.loading = false
|
this.assignDialog.loading = false
|
||||||
}
|
}
|
||||||
@@ -400,14 +431,19 @@ export default {
|
|||||||
try {
|
try {
|
||||||
const time = this.unassignDialog.time || '00:00'
|
const time = this.unassignDialog.time || '00:00'
|
||||||
const unassignedAt = `${this.unassignDialog.date}T${time}:00`
|
const unassignedAt = `${this.unassignDialog.date}T${time}:00`
|
||||||
await removeAgentCreator({
|
const res = await removeAgentCreator({
|
||||||
creatorId: Number(this.unassignDialog.target.creatorId),
|
creatorId: Number(this.unassignDialog.target.creatorId),
|
||||||
unassignedAt,
|
unassignedAt,
|
||||||
})
|
})
|
||||||
|
if (res && res.status === 200 && res.data && res.data.success === true) {
|
||||||
this.closeUnassignDialog()
|
this.closeUnassignDialog()
|
||||||
this.fetchList(this.page)
|
this.fetchList(this.page)
|
||||||
|
} else {
|
||||||
|
const msg = res && res.data && (res.data.message || res.data.error || res.data.msg)
|
||||||
|
this.notifyError(msg || '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// noop
|
this.notifyError(this.getErrorMessage(e))
|
||||||
} finally {
|
} finally {
|
||||||
this.unassignDialog.loading = false
|
this.unassignDialog.loading = false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user