You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

131 lines
3.3 KiB

import api from "@/api"
import MyTable from "@/components/MyTable"
import { getTime } from "@/utils"
import { EditOutlined } from "@ant-design/icons"
import { Button, Form, Input, Modal, Switch, notification } from "antd"
import React, { useEffect, useRef, useState } from "react"
const AssetsList = () => {
const [visible, setVisible] = useState(false)
const [currentItem, setCurrentItem] = useState({} as any)
const [form] = Form.useForm()
const currentType = useRef(1)
const tableRef = useRef(null)
const columns = [
{
title: '操作',
render: (row) => {
return row.status_code === 0 ? (
<div style={{ display: "flex", alignItems: 'center' }}>
<EditOutlined onClick={() => {
setCurrentItem(() => row)
setVisible(true)
}} />
</div>
) : <></>
}
},
{
title: '状态',
dataIndex: 'status',
width: 150,
},
{
title: '类型',
dataIndex: 'type',
width: 200,
},
{
title: '时间',
width: 200,
dataIndex: 'time',
render: (time) => (
<div>{getTime(time * 1000)}</div>
)
},
{
title: '用户',
dataIndex: 'email',
width: 240,
},
{
title: 'MT账号',
dataIndex: 'account',
width: 200,
},
{
title: '金额',
dataIndex: 'amount',
width: 200
},
{
title: '订单号',
dataIndex: 'order',
width: 200
},
{
title: '审核人',
dataIndex: 'review',
width: 200
},
]
useEffect(() => {
!visible && setCurrentItem({})
}, [visible])
const onFinish = async (values) => {
setVisible(false)
const res: any = await api.assets_review({
...values,
id: currentItem.id,
status_code: currentType.current
})
if (res.code === 0) {
tableRef.current.update()
form.resetFields()
notification.success({
message: currentType.current === 1 ? '已拒绝' : '已同意'
})
}
}
return (
<div>
<MyTable
apiFun={api.get_assetsList}
columns={columns}
ref={tableRef}
searchConfigList={[{
key: 'search',
name: 'search',
slot: <Input style={{ minWidth: 350 }} placeholder="请输入MT账号、邮箱搜索" />
}]}
/>
<Modal
visible={visible}
onCancel={() => setVisible(false)}
footer={() => null}
title={`审核用户:${currentItem.email}`}
>
<Form form={form} onFinish={onFinish}>
<Form.Item name="reason" label="原因" initialValue="">
<Input placeholder="请输入原因" />
</Form.Item>
<Form.Item label="邮箱通知" name="email_flag" initialValue={false} valuePropName="checked">
<Switch />
</Form.Item>
<Form.Item>
<Button onClick={() => setVisible(false)}></Button>
<Button style={{ margin: '0 10px', backgroundColor: "#FF8C00", borderColor: '#FF8C00' }} type="primary" htmlType="submit" onClick={() => currentType.current = 1}></Button>
<Button type="primary" htmlType="submit" onClick={() => currentType.current = 2}></Button>
</Form.Item>
</Form>
</Modal>
</div>
)
}
export default AssetsList