From 9eb8ad6786668e7f83373daa723c623de89f1625 Mon Sep 17 00:00:00 2001 From: CaIon <1808837298@qq.com> Date: Wed, 1 Nov 2023 02:50:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BB=A4=E7=89=8C=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/TokensTable.js | 42 +++- web/src/pages/Token/EditToken.js | 350 +++++++++++++++++------------- 2 files changed, 229 insertions(+), 163 deletions(-) diff --git a/web/src/components/TokensTable.js b/web/src/components/TokensTable.js index 584834b..aef94cc 100644 --- a/web/src/components/TokensTable.js +++ b/web/src/components/TokensTable.js @@ -5,6 +5,7 @@ import {API, copy, isAdmin, showError, showSuccess, showWarning, timestamp2strin import {ITEMS_PER_PAGE} from '../constants'; import {renderQuota, stringToColor} from '../helpers/render'; import {Avatar, Tag, Table, Button, Popover, Form, Modal, Popconfirm} from "@douyinfe/semi-ui"; +import EditToken from "../pages/Token/EditToken"; const {Column} = Table; @@ -77,7 +78,7 @@ const TokensTable = () => { render: (text, record, index) => { return (
- {renderQuota(parseInt(text))} + {record.unlimited_quota ? 无限制 : {renderQuota(parseInt(text))}}
); }, @@ -95,11 +96,11 @@ const TokensTable = () => { }, { title: '过期时间', - dataIndex: 'accessed_time', + dataIndex: 'expired_time', render: (text, record, index) => { return (
- {renderTimestamp(text)} + {record.expired_time === -1 ? "永不过期" : renderTimestamp(text)}
); }, @@ -159,12 +160,18 @@ const TokensTable = () => { } }>启用 } - + ), }, ]; + const [showEdit, setShowEdit] = useState(false); const [tokens, setTokens] = useState([]); const [selectedKeys, setSelectedKeys] = useState([]); const [tokenCount, setTokenCount] = useState(ITEMS_PER_PAGE); @@ -174,6 +181,16 @@ const TokensTable = () => { const [searching, setSearching] = useState(false); const [showTopUpModal, setShowTopUpModal] = useState(false); const [targetTokenIdx, setTargetTokenIdx] = useState(0); + const [editingToken, setEditingToken] = useState({ + id: undefined, + }); + + const closeEdit = () => { + setShowEdit(false); + setEditingToken({ + id: undefined, + }); + } const setTokensFormat = (tokens) => { setTokens(tokens); @@ -409,19 +426,17 @@ const TokensTable = () => { const rowSelection = { onSelect: (record, selected) => { - // console.log(`select row: ${selected}`, record); }, onSelectAll: (selected, selectedRows) => { - // console.log(`select all rows: ${selected}`, selectedRows); }, onChange: (selectedRowKeys, selectedRows) => { - // console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); setSelectedKeys(selectedRows); }, }; return ( <> +
{ onPageChange: handlePageChange, }} loading={loading} rowSelection={rowSelection}> - + - - - - - - 注意,令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制。 - - - - - - - - - - ); + + return ( + <> + {isEdit ? '更新令牌信息' : '创建新的令牌'}} + headerStyle={{borderBottom: '1px solid var(--semi-color-border)'}} + bodyStyle={{borderBottom: '1px solid var(--semi-color-border)'}} + visible={props.visiable} + footer={ +
+ + + + +
+ } + closeIcon={null} + onCancel={() => handleCancel()} + width={isMobile() ? '100%' : 600} + > + + handleInputChange('name', value)} + value={name} + autoComplete='new-password' + required={!isEdit} + /> + + handleInputChange('expired_time', value)} + value={expired_time} + autoComplete='new-password' + type='dateTime' + /> +
+ + + + + + +
+ + + +
+ {`额度${renderQuotaWithPrompt(remain_quota)}`} +
+ handleInputChange('remain_quota', value)} + value={remain_quota} + autoComplete='new-password' + type='number' + position={'top'} + data={[ + {value: 500000, label: '1$'}, + {value: 5000000, label: '10$'}, + {value: 25000000, label: '50$'}, + {value: 50000000, label: '100$'}, + {value: 250000000, label: '500$'}, + {value: 500000000, label: '1000$'}, + ]} + disabled={unlimited_quota} + /> +
+ +
+
+
+ + ); }; export default EditToken;