top-block-game-frontend/src/pages/Recharge/Withdraw/List/index.tsx

134 lines
3.3 KiB
TypeScript

import React, { useRef } from 'react';
import Table, { ProColumns, ActionType } from '@/components/Table';
import { getWithdrawList, solveWithdraw } from '@/services/recharge/withdraw';
import { fetchTableData } from '@/utils/table';
import ConfirmButton from '@/components/Table/ConfirmButton';
import moment from 'moment';
import { WithdrawType } from '@/constants/enum/withdraw';
import RejectButton from '@/components/Table/RejectButton';
import { Access, useAccess } from 'umi';
const WithdrawList = () => {
const tableRef = useRef<ActionType>();
const access = useAccess();
const handleClick = async (uuid, status) => {
await solveWithdraw({ uuid: uuid, status: status });
tableRef.current?.reload();
};
const WithdrawTypeList = [
{
label: '成功',
value: WithdrawType.SUCCESS,
status: 'Success',
},
{
label: '失败',
value: WithdrawType.FAILED,
status: 'Error',
},
{
label: '待处理',
value: WithdrawType.PENDDING,
status: 'Warning',
},
];
const columns: ProColumns<any>[] = [
{
title: '提现订单号',
dataIndex: 'uuid',
ellipsis: true,
},
{
title: '金额',
dataIndex: 'price',
width: '10%',
hideInSearch: true,
},
{
title: '接收地址',
dataIndex: 'to_address',
hideInSearch: true,
ellipsis: true,
},
{
title: '类型',
dataIndex: 'type',
hideInSearch: true,
width: '10%',
},
{
title: '状态',
dataIndex: 'status',
width: '10%',
valueEnum: () => {
const options = {};
WithdrawTypeList.forEach((item) => {
options[item.value] = { text: item.label, status: item.status };
});
return options;
},
},
{
title: '时间',
dataIndex: 'time',
valueType: 'dateRange',
ellipsis: true,
},
{
title: '操作',
valueType: 'option',
width: 150,
render: (_, row) => [
row.status === 30000 ? (
<Access accessible={access.canShowButton('提现通过')}>
<ConfirmButton
key="confirm"
title="确认通过提现?"
buttonName="通过"
onConfirm={() => {
handleClick(row.uuid, WithdrawType.SUCCESS);
}}
/>
</Access>
) : null,
row.status === 30000 ? (
<Access accessible={access.canShowButton('提现拒绝')}>
<RejectButton
key="confirm"
title="确认拒绝提现?"
buttonName="拒绝"
onConfirm={() => {
handleClick(row.uuid, WithdrawType.FAILED);
}}
/>
</Access>
) : null,
],
},
];
return (
<div>
<Table
columns={columns}
rowKey="uuid"
actionRef={tableRef}
request={async (params) => {
const res = await fetchTableData(getWithdrawList, params);
for (const key in res.data) {
if (Object.prototype.hasOwnProperty.call(res.data, key)) {
const element = res.data[key];
element.time = moment(element.time * 1000).format('YYYY-MM-DD hh:mm:ss');
}
}
return res;
}}
/>
</div>
);
};
export default WithdrawList;