feat(agent): 에이전트 정산 비율 페이지 작성
- 에이전트 정산 비율 API 추가 (목록/등록/수정/닉네임 검색) - AgentSettlementRatio.vue 구현 — 목록 테이블, "에이전트 비율 추가" 버튼, 수정 버튼 및 등록/수정 공용 팝업 추가 - UX: 닉네임 검색(v-autocomplete), 숫자/범위(0~100) 검증, datetime-local 입력값 LocalDateTime 문자열 변환 처리 - 에러/로딩 상태 기본 처리 및 목록 새로고침 흐름 반영
This commit is contained in:
@@ -7,6 +7,42 @@ async function getAgentList() {
|
||||
return Vue.axios.get('/admin/partner/agent/list')
|
||||
}
|
||||
|
||||
export {
|
||||
getAgentList
|
||||
// 에이전트 정산 비율 목록 조회
|
||||
async function getAgentSettlementRatioList() {
|
||||
return Vue.axios.get('/admin/partner/agent/ratio')
|
||||
}
|
||||
|
||||
// 에이전트 정산 비율 등록
|
||||
// payload: { memberId: number, settlementRatio: number, effectiveFrom: string(yyyy-MM-ddTHH:mm:ss) }
|
||||
async function createAgentSettlementRatio(payload) {
|
||||
return Vue.axios.post('/admin/partner/agent/ratio', payload)
|
||||
}
|
||||
|
||||
// 에이전트 정산 비율 수정
|
||||
// payload: { memberId: number, settlementRatio: number, effectiveFrom: string(yyyy-MM-ddTHH:mm:ss) }
|
||||
async function updateAgentSettlementRatio(payload) {
|
||||
return Vue.axios.post('/admin/partner/agent/ratio/update', payload)
|
||||
}
|
||||
|
||||
// 에이전트 닉네임 검색
|
||||
// 반환: [{ id, nickname }]
|
||||
async function searchAgentByNickname(query) {
|
||||
try {
|
||||
const res = await Vue.axios.get('/admin/partner/agent/search-by-nickname', {
|
||||
params: { nickname: query, search_word: query }
|
||||
})
|
||||
if (res && Array.isArray(res.data)) return res.data
|
||||
if (res && res.data && Array.isArray(res.data.data)) return res.data.data
|
||||
return []
|
||||
} catch (e) {
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
getAgentList,
|
||||
getAgentSettlementRatioList,
|
||||
createAgentSettlementRatio,
|
||||
updateAgentSettlementRatio,
|
||||
searchAgentByNickname,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user