mac
5 months ago
23 changed files with 1591 additions and 86 deletions
-
BIN.DS_Store
-
196package-lock.json
-
3package.json
-
74src/api/index.ts
-
59src/pages/account-review/index.tsx
-
65src/pages/assets-manage/assets-list.tsx
-
45src/pages/assets-manage/profit-list.tsx
-
53src/pages/chart/data.ts
-
76src/pages/chart/index.tsx
-
78src/pages/google/index.tsx
-
78src/pages/review/deposit.tsx
-
102src/pages/review/withdraw.tsx
-
56src/pages/system-log/emailLog.tsx
-
56src/pages/system-log/operationLog.tsx
-
57src/pages/system-log/walletLog.tsx
-
92src/pages/system/email-list.tsx
-
109src/pages/system/notify.tsx
-
118src/pages/system/receive.tsx
-
156src/pages/system/simulation-list.tsx
-
122src/pages/system/withdraw.tsx
-
4src/pages/vip-manage/proxy-list.tsx
-
74src/route/routes.ts
-
4src/utils/axios.ts
@ -0,0 +1,45 @@ |
|||
import api from "@/api" |
|||
import MyTable from "@/components/MyTable" |
|||
import React from "react" |
|||
|
|||
const ProfitList = () => { |
|||
|
|||
const columns = [ |
|||
{ |
|||
title: '金额', |
|||
dataIndex: 'amount', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '订单号', |
|||
dataIndex: 'order', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '来源', |
|||
dataIndex: 'source', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '时间', |
|||
dataIndex: 'time', |
|||
render: (text) => new Date(text * 1000).toLocaleString(), // 将时间戳转换为人类可读的格式
|
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '类型', |
|||
dataIndex: 'type', |
|||
}, |
|||
] |
|||
|
|||
return ( |
|||
<div> |
|||
<MyTable |
|||
apiFun={api.profit_list} |
|||
columns={columns} |
|||
/> |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
export default ProfitList |
@ -1,53 +0,0 @@ |
|||
import dagre from 'dagre'; |
|||
const edgeType = 'smoothstep'; |
|||
|
|||
export const flattenTree = (tree) => { |
|||
let stack = [tree]; |
|||
let nodes = []; |
|||
let edges = []; |
|||
while (stack.length > 0) { |
|||
let node = stack.pop(); |
|||
nodes.push({ id: node.id, data: { ...node, label: `${node.name}` }, position: node.position }); |
|||
if (node.children && node.children.length > 0) { |
|||
node.children.map(item => { |
|||
edges.push({ source: node.id, target: item.id, id: item.id, type: edgeType, animated: true }); |
|||
stack.unshift(item); |
|||
}); |
|||
}; |
|||
}; |
|||
return { nodes, edges }; |
|||
}; |
|||
|
|||
export const getLayoutedElements = (nodes, edges, direction = 'TB') => { |
|||
const dagreGraph = new dagre.graphlib.Graph(); |
|||
dagreGraph.setDefaultEdgeLabel(() => ({})); |
|||
|
|||
const nodeWidth = 172; |
|||
const nodeHeight = 36; |
|||
const isHorizontal = direction === 'LR'; |
|||
dagreGraph.setGraph({ rankdir: direction }); |
|||
|
|||
nodes.forEach((node: any) => { |
|||
dagreGraph.setNode(node.id, { width: nodeWidth, height: nodeHeight }); |
|||
}); |
|||
|
|||
edges.forEach((edge: any) => { |
|||
dagreGraph.setEdge(edge.source, edge.target); |
|||
}); |
|||
|
|||
dagre.layout(dagreGraph); |
|||
|
|||
nodes.forEach((node: any) => { |
|||
const nodeWithPosition = dagreGraph.node(node.id); |
|||
node.targetPosition = isHorizontal ? 'left' : 'top'; |
|||
node.sourcePosition = isHorizontal ? 'right' : 'bottom'; |
|||
node.position = { |
|||
x: nodeWithPosition.x - nodeWidth / 2, |
|||
y: nodeWithPosition.y - nodeHeight / 2, |
|||
}; |
|||
|
|||
return node; |
|||
}); |
|||
|
|||
return { nodes, edges }; |
|||
}; |
@ -0,0 +1,78 @@ |
|||
import api from "@/api" |
|||
import { Button, Form, Input, notification } from "antd" |
|||
import React, { useRef, useState } from "react" |
|||
import QRcode from 'qrcode' |
|||
|
|||
const GoogleBind = () => { |
|||
|
|||
const password = useRef(null) |
|||
const codeRef = useRef(null) |
|||
|
|||
const [code, setCode] = useState('') |
|||
const [qrcode, setQrcode] = useState('') |
|||
|
|||
const getCode = async () => { |
|||
const pwd = password.current.input.value; |
|||
if (!pwd) return notification.error({ message: '请输入密码!' }) |
|||
const res: any = await api.get_googleBingCode({ |
|||
password: pwd |
|||
}) |
|||
if (res.code === 0) { |
|||
password.current.input.value = '' |
|||
setCode(res.data.url) |
|||
QRcode.toDataURL(res.data.url, (err, url) => { |
|||
setQrcode(url) |
|||
}) |
|||
} |
|||
} |
|||
|
|||
const bindCode = async () => { |
|||
const code = codeRef.current.input.value; |
|||
|
|||
const res: any = await api.bind_googleCode({ |
|||
code: Number(code) |
|||
}) |
|||
|
|||
if (res.code === 0) { |
|||
codeRef.current.input.value = ''; |
|||
setCode('') |
|||
setQrcode('') |
|||
notification.success({ |
|||
message: '绑定成功' |
|||
}) |
|||
} |
|||
} |
|||
|
|||
return ( |
|||
<div style={{ maxWidth: 600 }}> |
|||
<h2>第一步</h2> |
|||
<Form.Item label="登录密码"> |
|||
<Input.Password ref={password} /> |
|||
</Form.Item> |
|||
<Form.Item> |
|||
<Button type="primary" onClick={getCode}>获取二维码</Button> |
|||
</Form.Item> |
|||
|
|||
{ |
|||
qrcode && ( |
|||
<div style={{ marginTop: 30 }}> |
|||
<h2>第二步</h2> |
|||
<Form.Item label="二维码"> |
|||
<img src={qrcode} style={{ width: 200, height: 200 }} alt="" /> |
|||
</Form.Item> |
|||
|
|||
<Form.Item label="谷歌验证码"> |
|||
<Input placeholder="请输入谷歌验证码" ref={codeRef} /> |
|||
</Form.Item> |
|||
|
|||
<Form.Item> |
|||
<Button type="primary" onClick={bindCode}>绑定</Button> |
|||
</Form.Item> |
|||
</div> |
|||
) |
|||
} |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
export default GoogleBind |
@ -0,0 +1,56 @@ |
|||
import api from "@/api" |
|||
import MyTable from "@/components/MyTable" |
|||
import React from "react" |
|||
|
|||
const EmailLog = () => { |
|||
|
|||
const columns = [ |
|||
{ |
|||
title: '接受帐号', |
|||
dataIndex: 'account', |
|||
width: 200, |
|||
}, |
|||
{ |
|||
title: '详细', |
|||
dataIndex: 'detail', |
|||
width: 200, |
|||
}, |
|||
{ |
|||
title: 'ID', |
|||
width: 200, |
|||
dataIndex: 'id', |
|||
}, |
|||
{ |
|||
title: '状态', |
|||
width: 200, |
|||
dataIndex: 'status', |
|||
}, |
|||
{ |
|||
title: '时间', |
|||
width: 200, |
|||
dataIndex: 'time', |
|||
render: (text) => new Date(text * 1000).toLocaleString(), // 将时间戳转换为人类可读的格式
|
|||
}, |
|||
{ |
|||
title: '标题', |
|||
width: 200, |
|||
dataIndex: 'title', |
|||
}, |
|||
{ |
|||
title: '类型', |
|||
dataIndex: 'type', |
|||
}, |
|||
]; |
|||
|
|||
|
|||
return ( |
|||
<div> |
|||
<MyTable |
|||
apiFun={api.get_emailRecord} |
|||
columns={columns} |
|||
/> |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
export default EmailLog |
@ -0,0 +1,56 @@ |
|||
import api from "@/api" |
|||
import MyTable from "@/components/MyTable" |
|||
import React from "react" |
|||
|
|||
const OperationLog = () => { |
|||
|
|||
const columns = [ |
|||
{ |
|||
title: '接受帐号', |
|||
dataIndex: 'account', |
|||
width: 260 |
|||
}, |
|||
{ |
|||
title: '详细', |
|||
dataIndex: 'detail', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: 'ID', |
|||
dataIndex: 'id', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '状态', |
|||
dataIndex: 'status', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '时间', |
|||
dataIndex: 'time', |
|||
render: (text) => new Date(text * 1000).toLocaleString(), // 将时间戳转换为人类可读的格式
|
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '标题', |
|||
dataIndex: 'title', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '类型', |
|||
dataIndex: 'type', |
|||
}, |
|||
]; |
|||
|
|||
|
|||
return ( |
|||
<div> |
|||
<MyTable |
|||
apiFun={api.get_operationRecord} |
|||
columns={columns} |
|||
/> |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
export default OperationLog |
@ -0,0 +1,57 @@ |
|||
import api from "@/api" |
|||
import MyTable from "@/components/MyTable" |
|||
import React, { useRef } from "react" |
|||
|
|||
const WalletLog = () => { |
|||
|
|||
const tableRef = useRef(null) |
|||
const columns = [ |
|||
{ |
|||
title: '金额', |
|||
dataIndex: 'amount', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '剩余金额', |
|||
dataIndex: 'balance', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: 'MT帐号', |
|||
dataIndex: 'count', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: 'ID', |
|||
dataIndex: 'id', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '流水号', |
|||
dataIndex: 'order', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '时间', |
|||
dataIndex: 'time', |
|||
render: (text) => new Date(text * 1000).toLocaleString(), // 将时间戳转换为人类可读的格式
|
|||
}, |
|||
{ |
|||
title: '类型', |
|||
dataIndex: 'type', |
|||
}, |
|||
]; |
|||
|
|||
|
|||
return ( |
|||
<div> |
|||
<MyTable |
|||
ref={tableRef} |
|||
apiFun={api.get_walletRecord} |
|||
columns={columns} |
|||
/> |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
export default WalletLog |
@ -0,0 +1,92 @@ |
|||
import api from "@/api" |
|||
import MyTable from "@/components/MyTable" |
|||
import { EditOutlined } from "@ant-design/icons" |
|||
import { Button, Form, Modal, notification } from "antd" |
|||
import TextArea from "antd/lib/input/TextArea" |
|||
import React, { useRef, useState } from "react" |
|||
|
|||
const EmailList = () => { |
|||
|
|||
const [visible, setVisible] = useState(false) |
|||
const currentItem = useRef({} as any) |
|||
const tableRef = useRef(null) |
|||
const [form] = Form.useForm() |
|||
|
|||
const columns = [ |
|||
{ |
|||
title: '操作', |
|||
width: 100, |
|||
render: (row) => { |
|||
return ( |
|||
<div style={{ display: "flex", alignItems: 'center' }}> |
|||
<EditOutlined style={{ marginRight: 20 }} onClick={() => updateNotify(row)} /> |
|||
</div> |
|||
); |
|||
} |
|||
}, |
|||
{ |
|||
title: '标题', |
|||
dataIndex: 'title', |
|||
width: 200 |
|||
}, |
|||
{ |
|||
title: '内容', |
|||
dataIndex: 'content', |
|||
render: (content) => ( |
|||
<div style={{ maxWidth: 700 }}>{content}</div> |
|||
) |
|||
} |
|||
] |
|||
|
|||
const updateNotify = (item) => { |
|||
currentItem.current = item; |
|||
form.setFieldsValue(item) |
|||
setVisible(true) |
|||
} |
|||
|
|||
const onFinish = async (values) => { |
|||
setVisible(false) |
|||
const res: any = await api.update_emailList({ |
|||
...values, |
|||
id: currentItem.current.id |
|||
}) |
|||
if (res.code === 0) { |
|||
tableRef.current.update() |
|||
form.resetFields() |
|||
notification.success({ |
|||
message: "修改成功" |
|||
}) |
|||
} |
|||
} |
|||
|
|||
return ( |
|||
<div> |
|||
<MyTable |
|||
apiFun={api.get_emailList} |
|||
columns={columns} |
|||
ref={tableRef} |
|||
/> |
|||
<Modal |
|||
visible={visible} |
|||
onCancel={() => setVisible(false)} |
|||
title={`修改《${currentItem.current.title}》邮件模版`} |
|||
footer={() => null} |
|||
> |
|||
<Form form={form} onFinish={onFinish}> |
|||
<Form.Item label="标题" name="title"> |
|||
<TextArea /> |
|||
</Form.Item> |
|||
<Form.Item label="内容" name="content"> |
|||
<TextArea style={{ minHeight: 200 }} /> |
|||
</Form.Item> |
|||
<Form.Item style={{ display: 'flex' }} label="操作"> |
|||
<Button onClick={() => setVisible(false)}>取消</Button> |
|||
<Button style={{ marginLeft: 20 }} type="primary" htmlType="submit">确认</Button> |
|||
</Form.Item> |
|||
</Form> |
|||
</Modal> |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
export default EmailList |
@ -0,0 +1,156 @@ |
|||
import api from "@/api" |
|||
import MyTable from "@/components/MyTable" |
|||
import { EditOutlined } from "@ant-design/icons" |
|||
import { Button, Form, Input, Modal, notification } from "antd" |
|||
import React, { useRef, useState } from "react" |
|||
|
|||
const SimulationList = () => { |
|||
|
|||
const currentItem = useRef({} as any) |
|||
const [form] = Form.useForm() |
|||
const [visible, setVisible] = useState(false) |
|||
const tableRef = useRef(null) |
|||
|
|||
const columns = [ |
|||
{ |
|||
title: '操作', |
|||
width: 100, |
|||
render: (row) => { |
|||
return ( |
|||
<div style={{ display: "flex", alignItems: 'center' }}> |
|||
<EditOutlined style={{ marginRight: 20 }} onClick={() => updateNotify(row)} /> |
|||
</div> |
|||
); |
|||
} |
|||
}, |
|||
{ |
|||
title: '考核数量', |
|||
dataIndex: 'assess_num', |
|||
key: 'assess_num', |
|||
}, |
|||
{ |
|||
title: '佣金收益', |
|||
dataIndex: 'commis_income', |
|||
key: 'commis_income', |
|||
}, |
|||
{ |
|||
title: '直推考核业绩', |
|||
dataIndex: 'direct', |
|||
key: 'direct', |
|||
}, |
|||
{ |
|||
title: 'ID', |
|||
dataIndex: 'id', |
|||
key: 'id', |
|||
}, |
|||
{ |
|||
title: '级别', |
|||
dataIndex: 'level', |
|||
key: 'level', |
|||
}, |
|||
{ |
|||
title: '盈利分红', |
|||
dataIndex: 'profit_dividends', |
|||
key: 'profit_dividends', |
|||
}, |
|||
{ |
|||
title: '平级佣金', |
|||
dataIndex: 'same_commis', |
|||
key: 'same_commis', |
|||
}, |
|||
{ |
|||
title: '平级分红', |
|||
dataIndex: 'same_dividends', |
|||
key: 'same_dividends', |
|||
}, |
|||
{ |
|||
title: '团队考核级别', |
|||
dataIndex: 'team_level', |
|||
key: 'team_level', |
|||
}, |
|||
// {
|
|||
// title: '团队考核级别代码',
|
|||
// dataIndex: 'team_level_code',
|
|||
// key: 'team_level_code',
|
|||
// },
|
|||
{ |
|||
title: '团队考核级别的数量', |
|||
dataIndex: 'team_num', |
|||
key: 'team_num', |
|||
}, |
|||
]; |
|||
|
|||
const updateNotify = (item) => { |
|||
currentItem.current = item; |
|||
form.setFieldsValue(item) |
|||
setVisible(true) |
|||
} |
|||
|
|||
const onFinish = async (values) => { |
|||
setVisible(false) |
|||
const res: any = await api.set_simulationList({ |
|||
...values, |
|||
id: currentItem.current.id, |
|||
assess_num: Number(values.assess_num), |
|||
team_level_code: Number(values.team_level_code), |
|||
team_num: Number(values.team_num), |
|||
}) |
|||
if (res.code === 0) { |
|||
tableRef.current.update() |
|||
form.resetFields() |
|||
notification.success({ |
|||
message: '修改成功' |
|||
}) |
|||
} |
|||
} |
|||
|
|||
return ( |
|||
<div> |
|||
<MyTable |
|||
apiFun={api.get_simulationList} |
|||
columns={columns} |
|||
ref={tableRef} |
|||
/> |
|||
<Modal |
|||
visible={visible} |
|||
onCancel={() => setVisible(false)} |
|||
footer={() => null} |
|||
title="修改模拟参数" |
|||
> |
|||
<Form form={form} onFinish={onFinish}> |
|||
<Form.Item label="考核数量" name="assess_num" rules={[{ required: true, message: '请输入考核数量' }]}> |
|||
<Input placeholder="请输入考核数量" /> |
|||
</Form.Item> |
|||
<Form.Item label="佣金收益" name="commis_income" rules={[{ required: true, message: '请输入佣金收益' }]}> |
|||
<Input placeholder="请输入佣金收益" /> |
|||
</Form.Item> |
|||
<Form.Item label="直推考核业绩" name="direct" rules={[{ required: true, message: '请输入直推考核业绩' }]}> |
|||
<Input placeholder="请输入直推考核业绩" /> |
|||
</Form.Item> |
|||
<Form.Item label="盈利分红" name="profit_dividends" rules={[{ required: true, message: '请输入盈利分红' }]}> |
|||
<Input placeholder="请输入盈利分红" /> |
|||
</Form.Item> |
|||
<Form.Item label="平级佣金" name="same_commis" rules={[{ required: true, message: '请输入平级佣金' }]}> |
|||
<Input placeholder="请输入平级佣金" /> |
|||
</Form.Item> |
|||
<Form.Item label="平级分红" name="same_dividends" rules={[{ required: true, message: '请输入平级分红' }]}> |
|||
<Input placeholder="请输入平级分红" /> |
|||
</Form.Item> |
|||
<Form.Item label="团队考核级别的数量" name="team_num" rules={[{ required: true, message: '请输入团队考核级别的数量' }]}> |
|||
<Input placeholder="请输入团队考核级别的数量" /> |
|||
</Form.Item> |
|||
<Form.Item label="团队考核级别" name="team_level_code"> |
|||
<Input placeholder="请输入平级分红" disabled /> |
|||
</Form.Item> |
|||
|
|||
<Form.Item style={{ display: 'flex' }} label="操作"> |
|||
<Button onClick={() => setVisible(false)}>取消</Button> |
|||
<Button style={{ marginLeft: 20 }} type="primary" htmlType="submit">确认</Button> |
|||
</Form.Item> |
|||
</Form> |
|||
</Modal> |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
export default SimulationList |
@ -1,25 +1,139 @@ |
|||
import api from "@/api" |
|||
import MyTable from "@/components/MyTable" |
|||
import React from "react" |
|||
import { DeleteFilled, EditOutlined } from "@ant-design/icons" |
|||
import { Button, Form, Input, Modal, Popconfirm, Switch, notification } from "antd" |
|||
import React, { useRef, useState } from "react" |
|||
|
|||
const SystemWithdraw = () => { |
|||
|
|||
const [visible, setVisible] = useState(false) |
|||
const currentType = useRef('' as 'update' | 'add') |
|||
const currentItem = useRef({} as any) |
|||
const [form] = Form.useForm() |
|||
const tableRef = useRef(null) |
|||
|
|||
const columns = [ |
|||
{ |
|||
title: '操作', |
|||
width: 100, |
|||
render: (row) => { |
|||
return ( |
|||
<div style={{ display: "flex", alignItems: 'center' }}> |
|||
<EditOutlined style={{ marginRight: 20 }} onClick={() => updateNotify(row)} /> |
|||
<Popconfirm title={`确定删除吗?`} onConfirm={() => deleteNotify(row)}> |
|||
<DeleteFilled /> |
|||
</Popconfirm> |
|||
</div> |
|||
); |
|||
} |
|||
}, |
|||
{ "dataIndex": "fee", "title": "手续费", width: 200 }, |
|||
{ "dataIndex": "leastAmount", "title": "最小金额", width: 200 }, |
|||
{ "dataIndex": "maxAmount", "title": "最大金额", width: 200 }, |
|||
{ "dataIndex": "LeastAmount", "title": "最小金额", width: 200 }, |
|||
{ "dataIndex": "MaxAmount", "title": "最大金额", width: 200 }, |
|||
{ "dataIndex": "name", "title": "名称", width: 200 }, |
|||
{ "dataIndex": "status", "title": "状态" }, |
|||
{ "dataIndex": "status", "title": "状态", width: 200 }, |
|||
{ "dataIndex": "symbol", "title": "币符号" } |
|||
] |
|||
|
|||
const deleteNotify = async (item) => { |
|||
const res: any = await api.delete_withdrawManage({ |
|||
id: item.id |
|||
}) |
|||
if (res.code === 0) { |
|||
notification.success({ |
|||
message: '删除成功' |
|||
}) |
|||
tableRef.current.update() |
|||
} |
|||
} |
|||
|
|||
const onFinish = async (values) => { |
|||
setVisible(false) |
|||
const parmas = { |
|||
...values, |
|||
status_code: values.status_code ? 1 : 2, |
|||
google_code: Number(values.google_code) |
|||
} |
|||
let res: any = {} |
|||
|
|||
if (currentType.current === 'add') { |
|||
res = await api.add_withdrawManage({ |
|||
...parmas |
|||
}) |
|||
} else { |
|||
res = await api.update_withdrawManage({ |
|||
...parmas, |
|||
id: currentItem.current.id |
|||
}) |
|||
} |
|||
|
|||
if (res.code === 0) { |
|||
tableRef.current.update() |
|||
notification.success({ |
|||
message: currentType.current === 'add' ? '添加成功' : '修改成功' |
|||
}) |
|||
form.resetFields() |
|||
} |
|||
} |
|||
|
|||
const updateNotify = (item) => { |
|||
currentType.current = 'update'; |
|||
currentItem.current = item; |
|||
form.setFieldsValue({ |
|||
...item, |
|||
status_code: item.status_code === 1 ? true : false |
|||
}) |
|||
setVisible(true) |
|||
} |
|||
|
|||
|
|||
|
|||
return ( |
|||
<div> |
|||
<MyTable |
|||
columns={columns} |
|||
apiFun={api.get_systemWithdraw} |
|||
ref={tableRef} |
|||
header={ |
|||
<div style={{ marginBottom: 20 }}> |
|||
<Button type="primary" onClick={() => { |
|||
currentType.current = 'add'; |
|||
setVisible(true) |
|||
}}>添加取款方式</Button> |
|||
</div> |
|||
} |
|||
/> |
|||
<Modal |
|||
visible={visible} |
|||
onCancel={() => setVisible(false)} |
|||
footer={() => null} |
|||
title="添加取款方式" |
|||
> |
|||
<Form form={form} onFinish={onFinish}> |
|||
<Form.Item name="name" label="名称" rules={[{ required: true, message: '请输入名称' }]}> |
|||
<Input placeholder="请输入名称" /> |
|||
</Form.Item> |
|||
<Form.Item name="least_amount" label="最小金额" rules={[{ required: true, message: '请输入最小金额' }]}> |
|||
<Input placeholder="请输入最小金额" /> |
|||
</Form.Item> |
|||
<Form.Item name="max_amount" label="最大金额" rules={[{ required: true, message: '请输入最大金额' }]}> |
|||
<Input placeholder="请输入最大金额" /> |
|||
</Form.Item> |
|||
<Form.Item name="fee" label="手续费" rules={[{ required: true, message: '请输入手续费' }]}> |
|||
<Input placeholder="请输入手续费" /> |
|||
</Form.Item> |
|||
<Form.Item name="symbol" label="币符号" rules={[{ required: true, message: '请输入币符号' }]}> |
|||
<Input placeholder="请输入币符号" /> |
|||
</Form.Item> |
|||
<Form.Item name="status_code" label="状态" valuePropName="checked" initialValue={true}> |
|||
<Switch /> |
|||
</Form.Item> |
|||
<Form.Item style={{ display: 'flex' }}> |
|||
<Button onClick={() => setVisible(false)}>取消</Button> |
|||
<Button style={{ marginLeft: 20 }} type="primary" htmlType="submit">确认</Button> |
|||
</Form.Item> |
|||
</Form> |
|||
</Modal> |
|||
</div> |
|||
) |
|||
} |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue