Add: 修改
This commit is contained in:
@@ -33,9 +33,13 @@ const insertTimeRange = db.prepare(
|
|||||||
);
|
);
|
||||||
const getTimeRanges = db.prepare(`SELECT * FROM time_ranges`);
|
const getTimeRanges = db.prepare(`SELECT * FROM time_ranges`);
|
||||||
const deleteTimeRange = db.prepare(`DELETE FROM time_ranges WHERE id = ?`);
|
const deleteTimeRange = db.prepare(`DELETE FROM time_ranges WHERE id = ?`);
|
||||||
|
const update = db.prepare(
|
||||||
|
`UPDATE time_ranges SET name = ?, range = ?, username = ? WHERE id = ?`
|
||||||
|
);
|
||||||
const updateUsername = db.prepare(
|
const updateUsername = db.prepare(
|
||||||
`UPDATE time_ranges SET username = ? WHERE id = ?`
|
`UPDATE time_ranges SET username = ? WHERE id = ?`
|
||||||
);
|
);
|
||||||
|
|
||||||
const countUser = db.prepare(
|
const countUser = db.prepare(
|
||||||
`SELECT COUNT(*) as count FROM time_ranges WHERE username = ?`
|
`SELECT COUNT(*) as count FROM time_ranges WHERE username = ?`
|
||||||
);
|
);
|
||||||
@@ -88,6 +92,7 @@ export {
|
|||||||
insertTimeRange,
|
insertTimeRange,
|
||||||
getTimeRanges,
|
getTimeRanges,
|
||||||
deleteTimeRange,
|
deleteTimeRange,
|
||||||
|
update,
|
||||||
updateUsername,
|
updateUsername,
|
||||||
updateUsernameWithLimit,
|
updateUsernameWithLimit,
|
||||||
getLimit,
|
getLimit,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import {
|
|||||||
deleteTimeRange,
|
deleteTimeRange,
|
||||||
getLimit,
|
getLimit,
|
||||||
authenticate,
|
authenticate,
|
||||||
|
update,
|
||||||
updateUsername,
|
updateUsername,
|
||||||
updateUsernameWithLimit,
|
updateUsernameWithLimit,
|
||||||
} from "../../../../libs/db";
|
} from "../../../../libs/db";
|
||||||
@@ -34,26 +35,28 @@ export default function handler(req, res) {
|
|||||||
|
|
||||||
// update username
|
// update username
|
||||||
} else if (req.method === "PUT") {
|
} else if (req.method === "PUT") {
|
||||||
// check if id is valid
|
|
||||||
// check if username is valid
|
|
||||||
const { username } = req.body;
|
const { username } = req.body;
|
||||||
if (username === undefined) {
|
|
||||||
res.status(400).json({
|
|
||||||
error: `缺少参数 username`,
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// admin update username
|
// admin update username
|
||||||
const { token } = req.body;
|
const { token } = req.body;
|
||||||
if (authenticate(token)) {
|
if (authenticate(token)) {
|
||||||
updateUsername.run(username, id);
|
const { name, username, id, range } = req.body;
|
||||||
|
const result = update.run(name, range, username, id);
|
||||||
res.status(200).json({
|
res.status(200).json({
|
||||||
success: true,
|
success: true,
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if id is valid
|
||||||
|
// check if username is valid
|
||||||
|
if (username === undefined) {
|
||||||
|
res.status(400).json({
|
||||||
|
error: `缺少参数 username`,
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const limit = getLimit();
|
const limit = getLimit();
|
||||||
updateUsernameWithLimit(username, id, limit);
|
updateUsernameWithLimit(username, id, limit);
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ import {
|
|||||||
Snackbar,
|
Snackbar,
|
||||||
Button,
|
Button,
|
||||||
Stack,
|
Stack,
|
||||||
|
Dialog,
|
||||||
|
DialogTitle,
|
||||||
|
DialogContent,
|
||||||
|
DialogActions,
|
||||||
Typography,
|
Typography,
|
||||||
TextField,
|
TextField,
|
||||||
TableContainer,
|
TableContainer,
|
||||||
@@ -32,18 +36,17 @@ export default function Time(props) {
|
|||||||
const [token, setToken] = useState("");
|
const [token, setToken] = useState("");
|
||||||
const [stats, setStats] = useState({});
|
const [stats, setStats] = useState({});
|
||||||
|
|
||||||
|
const [modifyTime, setModifyTime] = useState({});
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
const updateUsernameByAdmin = (id, username) => {
|
const modifyRange = () => {
|
||||||
fetch(`${prefix}/api/time/ranges/${id}`, {
|
fetch(`${prefix}/api/time/ranges/${modifyTime.id}`, {
|
||||||
method: "PUT",
|
method: "PUT",
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
},
|
},
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({ token, ...modifyTime }),
|
||||||
username,
|
|
||||||
token,
|
|
||||||
}),
|
|
||||||
})
|
})
|
||||||
.then((res) => res.json())
|
.then((res) => res.json())
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
@@ -51,6 +54,7 @@ export default function Time(props) {
|
|||||||
setSnackbarError(true);
|
setSnackbarError(true);
|
||||||
setSnackbarErrorMessage(res.error);
|
setSnackbarErrorMessage(res.error);
|
||||||
} else {
|
} else {
|
||||||
|
setModifyTime({});
|
||||||
setSnackbarSuccess(true);
|
setSnackbarSuccess(true);
|
||||||
refreshRanges();
|
refreshRanges();
|
||||||
}
|
}
|
||||||
@@ -356,9 +360,10 @@ export default function Time(props) {
|
|||||||
<>
|
<>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
onClick={() => updateUsernameByAdmin(range.id, "")}
|
color="secondary"
|
||||||
|
onClick={() => setModifyTime(range)}
|
||||||
>
|
>
|
||||||
清空
|
修改
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
@@ -401,6 +406,44 @@ export default function Time(props) {
|
|||||||
操作成功!
|
操作成功!
|
||||||
</Alert>
|
</Alert>
|
||||||
</Snackbar>
|
</Snackbar>
|
||||||
|
<Dialog open={modifyTime.id} onClose={() => setModifyTime({})}>
|
||||||
|
<DialogTitle>修改时间段 {modifyTime.id}</DialogTitle>
|
||||||
|
<DialogContent>
|
||||||
|
<Stack
|
||||||
|
sx={{
|
||||||
|
mt: 1,
|
||||||
|
}}
|
||||||
|
spacing={2}
|
||||||
|
>
|
||||||
|
<TextField
|
||||||
|
label="名称"
|
||||||
|
value={modifyTime.name}
|
||||||
|
onChange={(e) =>
|
||||||
|
setModifyTime({ ...modifyTime, name: e.target.value })
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<TextField
|
||||||
|
label="时间段"
|
||||||
|
value={modifyTime.range}
|
||||||
|
onChange={(e) =>
|
||||||
|
setModifyTime({ ...modifyTime, range: e.target.value })
|
||||||
|
}
|
||||||
|
placeholder="2022-01-01 00:00:00"
|
||||||
|
/>
|
||||||
|
<TextField
|
||||||
|
label="姓名"
|
||||||
|
value={modifyTime.username}
|
||||||
|
onChange={(e) =>
|
||||||
|
setModifyTime({ ...modifyTime, username: e.target.value })
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</Stack>
|
||||||
|
</DialogContent>
|
||||||
|
<DialogActions>
|
||||||
|
<Button onClick={() => setModifyTime({})}>取消</Button>
|
||||||
|
<Button onClick={modifyRange}>确定</Button>
|
||||||
|
</DialogActions>
|
||||||
|
</Dialog>
|
||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user