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'
/>