diff --git a/pages/time.js b/pages/time.js index edad8c3..505a10c 100644 --- a/pages/time.js +++ b/pages/time.js @@ -4,6 +4,9 @@ import { Alert, Snackbar, Button, + FormGroup, + FormControlLabel, + Checkbox, Stack, Dialog, DialogTitle, @@ -36,6 +39,8 @@ export default function Time(props) { const [token, setToken] = useState(""); const [stats, setStats] = useState({}); + const [onlyShowAvaliable, setOnlyShowAvaliable] = useState(true); + const [modifyTime, setModifyTime] = useState({}); const router = useRouter(); @@ -136,8 +141,6 @@ export default function Time(props) { }; const refreshRanges = () => { - getLimit(); - getStats(); fetch(`${prefix}/api/time/ranges`) .then((res) => res.json()) .then((res) => { @@ -219,11 +222,17 @@ export default function Time(props) { useEffect(() => { refreshRanges(); + getLimit(); + getStats(); const interval = setInterval(() => { - refreshRanges(); + getLimit(); + getStats(); + if (!onlyShowAvaliable) { + refreshRanges(); + } }, 1000); return () => clearInterval(interval); - }, []); + }, [onlyShowAvaliable]); /* useEffect(() => { @@ -324,6 +333,17 @@ export default function Time(props) { > Refresh + + setOnlyShowAvaliable(e.target.checked)} + /> + } + label="仅显示空余" + /> + 当前每人数量上限: {limit}
@@ -340,43 +360,48 @@ export default function Time(props) { - {ranges.map((range) => ( - - {range.name} - {range.range} - - - {isAdmin() && ( - <> - - - - )} - - - ))} + {ranges.map((range) => { + if (onlyShowAvaliable && range.username !== "") { + return; + } + return ( + + {range.name} + {range.range} + + + {isAdmin() && ( + <> + + + + )} + + + ); + })}