提交 fe0c1fba 作者: yueyang.lv

feat: 新增提现功能

上级 200e7b4a
import { useEffect, useState } from "react";
import { useEffect, useState, useImperativeHandle } from "react";
import { DataGrid, GridColDef } from "@mui/x-data-grid";
import { SORT, SORT_TYPE } from "../../constants";
import { sortTypeCode2Value } from "../../utils";
import type { Pagination, Sort } from "../../types";
export type TableListTableRef = {
reload?: () => void;
};
interface TableListProps<T = any> {
columns: GridColDef<T>[];
request: (options: Pagination) => Promise<{ list: T[]; total: number }>;
tableRef?: React.MutableRefObject<TableListTableRef>;
}
export default function TableList<T>({ columns, request }: TableListProps<T>) {
const [pagination, setPagination] = useState<Pagination>({
current: 1,
pageSize: 10,
total: 0,
});
const initPagination = {
current: 1,
pageSize: 10,
total: 0,
};
export default function TableList<T>({
columns,
request,
tableRef,
}: TableListProps<T>) {
const [pagination, setPagination] = useState<Pagination>(initPagination);
const [searchForm, setSearchForm] = useState<Sort>({
sort: SORT.DESC.value,
});
......@@ -32,6 +42,18 @@ export default function TableList<T>({ columns, request }: TableListProps<T>) {
getList();
}, [pagination.current, searchForm.sort]);
useImperativeHandle(
tableRef,
() => {
return {
reload: () => {
getList();
},
};
},
[]
);
const pageChangeHandler = (current: number) => {
setPagination((state) => ({ ...state, current: current + 1 }));
};
......
import React from "react";
import React, { useRef } from "react";
import {
Card,
CardContent,
......@@ -12,15 +12,19 @@ import PageHeader from "../../../Common/PageHeader/PageHeader";
import Price from "../../components/Price";
import { useAccountMoneyInfo } from "./hooks";
import { LoadingButton } from "@mui/lab";
import { applyWithdrawal } from "../../services";
import { applyWithdrawal, getWithdrawalList } from "../../services";
import message from "../../../../../utils/message";
import TableList, { TableListTableRef } from "../../components/TableList";
import { WithdrawalItem } from "../../services/interface";
const CostWithdrawal: React.FC = () => {
const { data: info } = useAccountMoneyInfo();
const tableRef = useRef<TableListTableRef>();
const submitHandler = () => {
applyWithdrawal().then((res) => {
message.success(res.msg || "申请成功");
tableRef.current.reload?.();
});
};
......@@ -59,6 +63,43 @@ const CostWithdrawal: React.FC = () => {
</Grid>
</CardContent>
</Card>
<br />
<TableList<WithdrawalItem>
tableRef={tableRef}
columns={[
{
field: "id",
headerName: "ID",
sortable: false,
width: 250,
disableColumnMenu: true,
},
{
field: "money",
headerName: "提现金额",
width: 150,
sortable: false,
disableColumnMenu: true,
},
{
field: "status",
headerName: "提现状态",
width: 150,
sortable: false,
disableColumnMenu: true,
},
{
field: "created_at",
headerName: "申请时间",
width: 250,
sortable: false,
disableColumnMenu: true,
},
]}
request={(options) => {
return getWithdrawalList(options).then((res) => res.data);
}}
/>
</PageLayout>
</>
);
......
......@@ -6,8 +6,6 @@ import {
AccountMoneyInfo,
CreateOrderRequestBody,
CreateOrderInfo,
PersonalAuthRequestBody,
CompanyAuthRequestBody,
ApplyContractRequestBody,
ApplyInvoiceRequestBody,
InvoiceItem,
......@@ -44,7 +42,7 @@ export function applyWithdrawal(): ResultPromise<CreateOrderInfo> {
/** 提现列表 */
export function getWithdrawalList(
options?: Pagination
): ResultPromise<WithdrawalItem[]> {
): ResultListPromise<WithdrawalItem> {
return request.post("/api/user/Withdrawal/list", options2Pagination(options));
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论