import { applyLang, avatarError, bindHeader, connectToApp, createMask, get, historyMoreUrl, isCompletedStatus, money, statusClass, statusText, t, toast } from "../bd-static/shared.js"; bindHeader("bd_list_link"); applyLang(); document.getElementById("historyButton").addEventListener("click", showHistory); init(); async function init() { try { await connectToApp(); const response = await get("/team/bd/member-bill/list?type=BDLEADER"); renderList(response.body || {}); } catch (error) { toast(error.response?.errorMsg || error.message); } } function renderList(data) { document.getElementById("billTitle").textContent = data.billTitle || ""; document.getElementById("summaryLine").textContent = `${t("number_of_bd")}: ${data.memberCount || 0} ${t("team_salary")}: $${data.totalSalary || 0}`; const list = document.getElementById("memberList"); list.innerHTML = ""; (data.memberBillList || []).forEach((item) => { const card = document.createElement("article"); card.className = "member-card"; card.innerHTML = `
${item.agentName || "-"}
${t("user_id_prefix")}${item.agentAccount || "-"}
${t("team_salary")}: $${item.teamSalaryAmount || 0}
${t("agencies")}: ${item.teamMemberCount || 0}
`; avatarError(card.querySelector("img")); list.appendChild(card); }); } async function showHistory() { try { const historyResponse = await get("/team/bd/leader/history"); const listResponse = await get("/team/bd/member-bill/list?type=BDLEADER"); const history = historyResponse.body || {}; const bill = listResponse.body || {}; if (bill.bdHistoryCO) { history.incomeDetails = history.incomeDetails || []; history.incomeDetails.unshift(bill.bdHistoryCO); } const sheet = document.createElement("section"); sheet.className = "sheet"; sheet.innerHTML = `
${t("bd_leader_history")}
${t("total_income")} $${money(history.totalIncome || 0)}
${t("previous_period_income")}: $${money(history.previousPeriodIncome || 0)}
${t("income_details_label")}
`; createMask(sheet); const holder = sheet.querySelector("#historyItems"); (history.incomeDetails || []).forEach((item) => holder.appendChild(historyItem(item))); } catch (error) { toast(error.response?.errorMsg || error.message); } } function historyItem(item) { const card = document.createElement("article"); card.className = `salary-item ${statusClass(item.statusText)}`; card.innerHTML = `
${statusText(item.statusText)}
${item.billTitle || ""}
${t("bd_number")}: ${item.bdNumber || 0} ${t("team_salary")}: $${item.teamSalaryAmount || 0}
`; if (isCompletedStatus(item.statusText)) { const more = document.createElement("button"); more.className = "more-btn"; more.type = "button"; more.textContent = t("more"); more.addEventListener("click", () => showMore(item.billBelong)); card.appendChild(more); } return card; } async function showMore(billBelong) { try { const endpoint = historyMoreUrl("/team/bd/leader/history/more", billBelong); if (!endpoint) return; const response = await get(endpoint); const data = response.body || {}; const sheet = document.createElement("section"); sheet.className = "sheet"; sheet.innerHTML = `
${data.period || ""}
${t("team_salary")}: $${data.teamSalary || 0} ${t("bd_number")}: ${data.bdNumber || 0}
`; createMask(sheet); const list = sheet.querySelector("#moreMembers"); (data.memberDetails || []).forEach((item) => { const card = document.createElement("article"); card.className = "member-card"; card.innerHTML = `
${item.bdUserName || "-"}
${t("user_id_prefix")}${item.account || "-"}
${t("salary")}: $${item.salary || 0}
${t("agencies")}: ${item.agencyCount || 0}
`; avatarError(card.querySelector("img")); list.appendChild(card); }); } catch (error) { toast(error.response?.errorMsg || error.message); } }