diff --git a/web/src/App.js b/web/src/App.js index 7f6861e3..b5ce5601 100644 --- a/web/src/App.js +++ b/web/src/App.js @@ -18,7 +18,6 @@ import { StatusContext } from './context/Status'; import Channel from './pages/Channel'; import Token from './pages/Token'; import EditToken from './pages/Token/EditToken'; -import AddToken from './pages/Token/AddToken'; import EditChannel from './pages/Channel/EditChannel'; import AddChannel from './pages/Channel/AddChannel'; @@ -116,7 +115,7 @@ function App() { path='/token/add' element={ }> - + } /> diff --git a/web/src/pages/Token/AddToken.js b/web/src/pages/Token/AddToken.js deleted file mode 100644 index c1ea6d28..00000000 --- a/web/src/pages/Token/AddToken.js +++ /dev/null @@ -1,115 +0,0 @@ -import React, { useState } from 'react'; -import { Button, Form, Header, Segment } from 'semantic-ui-react'; -import { API, showError, showSuccess, timestamp2string } from '../../helpers'; - -const AddToken = () => { - const originInputs = { - name: '', - remain_times: -1, - expired_time: -1 - }; - const [inputs, setInputs] = useState(originInputs); - const { name, remain_times, expired_time } = inputs; - - const handleInputChange = (e, { name, value }) => { - setInputs((inputs) => ({ ...inputs, [name]: value })); - }; - - const setExpiredTime = (month, day, hour, minute) => { - let now = new Date(); - let timestamp = now.getTime() / 1000; - let seconds = month * 30 * 24 * 60 * 60; - seconds += day * 24 * 60 * 60; - seconds += hour * 60 * 60; - seconds += minute * 60; - if (seconds !== 0) { - timestamp += seconds; - setInputs({ ...inputs, expired_time: timestamp2string(timestamp) }); - } else { - setInputs({ ...inputs, expired_time: -1 }); - } - }; - - const submit = async () => { - if (inputs.name === '') return; - let localInputs = inputs; - localInputs.remain_times = parseInt(localInputs.remain_times); - if (localInputs.expired_time !== -1) { - let time = Date.parse(localInputs.expired_time); - if (isNaN(time)) { - showError('过期时间格式错误!'); - return; - } - localInputs.expired_time = Math.ceil(time / 1000); - } - const res = await API.post(`/api/token/`, localInputs); - const { success, message } = res.data; - if (success) { - showSuccess('令牌创建成功!'); - setInputs(originInputs); - } else { - showError(message); - } - }; - - return ( - <> - -
创建新的令牌
-
- - - - - - - - - - - - - - - -
-
- - ); -}; - -export default AddToken; diff --git a/web/src/pages/Token/EditToken.js b/web/src/pages/Token/EditToken.js index 081f8f0e..4e6d1710 100644 --- a/web/src/pages/Token/EditToken.js +++ b/web/src/pages/Token/EditToken.js @@ -6,12 +6,14 @@ import { API, showError, showSuccess, timestamp2string } from '../../helpers'; const EditToken = () => { const params = useParams(); const tokenId = params.id; - const [loading, setLoading] = useState(true); - const [inputs, setInputs] = useState({ + const isEdit = tokenId !== undefined; + const [loading, setLoading] = useState(isEdit); + const originInputs = { name: '', remain_times: -1, expired_time: -1 - }); + }; + const [inputs, setInputs] = useState(originInputs); const { name, remain_times, expired_time } = inputs; const handleInputChange = (e, { name, value }) => { @@ -47,10 +49,13 @@ const EditToken = () => { setLoading(false); }; useEffect(() => { - loadToken().then(); + if (isEdit) { + loadToken().then(); + } }, []); const submit = async () => { + if (!isEdit && inputs.name === '') return; let localInputs = inputs; localInputs.remain_times = parseInt(localInputs.remain_times); if (localInputs.expired_time !== -1) { @@ -61,10 +66,20 @@ const EditToken = () => { } localInputs.expired_time = Math.ceil(time / 1000); } - let res = await API.put(`/api/token/`, { ...localInputs, id: parseInt(tokenId) }); + let res; + if (isEdit) { + res = await API.put(`/api/token/`, { ...localInputs, id: parseInt(tokenId) }); + } else { + res = await API.post(`/api/token/`, localInputs); + } const { success, message } = res.data; if (success) { - showSuccess('令牌更新成功!'); + if (isEdit) { + showSuccess('令牌更新成功!'); + } else { + showSuccess('令牌创建成功!'); + setInputs(originInputs); + } } else { showError(message); } @@ -73,16 +88,17 @@ const EditToken = () => { return ( <> -
更新令牌信息
+
{isEdit ? "更新令牌信息" : "创建新的令牌"}
@@ -93,6 +109,7 @@ const EditToken = () => { onChange={handleInputChange} value={remain_times} autoComplete='off' + type='number' /> @@ -103,6 +120,7 @@ const EditToken = () => { onChange={handleInputChange} value={expired_time} autoComplete='off' + type='datetime-local' />