This commit is contained in:
unknown
2025-06-01 23:04:31 +07:00
parent b9b995d169
commit ab16bd8b56

View File

@ -44,6 +44,7 @@ const AgentBalance = () => {
const [dataBalance, setDataBalance] = useState([]); const [dataBalance, setDataBalance] = useState([]);
const [formData, setFormData] = useState(initBalance); const [formData, setFormData] = useState(initBalance);
const [pageIndex, setPageIndex] = useState(1); const [pageIndex, setPageIndex] = useState(1);
const [currentPage, setCurrentPage] = useState(0);
const [pageSize, setPageSize] = useState(10); const [pageSize, setPageSize] = useState(10);
const [dialogType, setDialogType] = useState(''); const [dialogType, setDialogType] = useState('');
const [dialogOpen, setDialogOpen] = useState(false); const [dialogOpen, setDialogOpen] = useState(false);
@ -52,34 +53,42 @@ const AgentBalance = () => {
// const [selectedMember, setSelectedMember] = useState(initBalance); // const [selectedMember, setSelectedMember] = useState(initBalance);
useEffect(() => { useEffect(() => {
fetchAgentBalance(); // fetchAgentBalance();
}, []); }, []);
async function fetchAgentBalance(): Promise<void> { const fetchAgentBalance = async (
setIsReloading(true); page: number,
try { limit: number,
let balances = await axios.get(`${BASE_URL}/customer/agent-balance`, { sorting: any,
params: { filter: any
limit: 20, ) => {
page: 1, filter = filter.length ? filter : {};
with_deleted: false, let balances = await axios.get(`${BASE_URL}/customer/agent-balance`, {
order_field: 'created_at', params: {
order_direction: 'DESC' limit: limit,
} page: page + 1, // +1 because your API uses 1-based pages
}); with_deleted: false,
let temp = 1; order_field: 'created_at',
let resBalance = balances.data.data.list.map((el: any) => { order_direction: 'DESC',
el.no = temp++; filter: JSON.stringify(filter),
if (!el.agent_name) el.agent_name = '' }
return el; });
}); let temp = 1;
setDataBalance(resBalance); let resBalance = balances.data.data.list.map((el: any) => {
} catch (error: any) { el.no = temp++;
alert(error.message); if (!el.agent_name) el.agent_name = ''
console.log(error); return el;
} finally { });
setIsReloading(false); return { data: resBalance, totalCount: balances?.data.data.total_count }
} // setIsReloading(true);
// try {
// // setDataBalance(resBalance);
// } catch (error: any) {
// alert(error.message);
// console.log(error);
// } finally {
// setIsReloading(false);
// }
} }
const openDialog = () => setIsDialogOpen(true); const openDialog = () => setIsDialogOpen(true);
@ -100,9 +109,11 @@ const AgentBalance = () => {
setIsDialogOpen(true); setIsDialogOpen(true);
}; };
const handleReload = () => { const handleReload = async () => {
setIsReloading(true); setIsReloading(true);
fetchAgentBalance(); await fetchAgentBalance(currentPage, pageSize, '','');
setIsReloading(false);
// fetchAgentBalance();
}; };
async function getQrCode(customerId:any): Promise<void> { async function getQrCode(customerId:any): Promise<void> {
@ -154,24 +165,28 @@ const AgentBalance = () => {
{isReloading && ( {isReloading && (
<DataGridLoader /> <DataGridLoader />
)} )}
<DataGridProvider {!isReloading && (<DataGridProvider
data={dataBalance} // data={dataBalance}
columns={getColumns(handleUpdate)} pagination={{ size: pageSize }}
pagination={{ size: 10 }} columns={getColumns(handleUpdate)}
toolbar={ layout={{ card: true }}
<ListToolBar serverSide={true}
createGroup={createGroup} onFetchData={({ pageIndex, pageSize, sorting, columnFilters }) =>
onReload={handleReload} fetchAgentBalance(pageIndex, pageSize, sorting, columnFilters)
isReloading={isReloading} }
/> toolbar={
} <ListToolBar
layout={{ card: true }} createGroup={createGroup}
serverSide={false} onReload={handleReload}
onRowSelectionChange={(selected, table: any) => { isReloading={isReloading}
const selectedRow = table.getSelectedRowModel().rows[0]; />
if (selectedRow) handleUpdate(selectedRow.original); }
}} onRowSelectionChange={(selected, table: any) => {
/> const selectedRow = table.getSelectedRowModel().rows[0];
if (selectedRow) handleUpdate(selectedRow.original);
}}
/>
)}
</div> </div>
{/* </div> */} {/* </div> */}