feat(admin): 完善站点设置、内容回收站与后台菜单分组
新增站点设置与内容管理(含已删除恢复/清除),用户页改用独有运营指标,并按概览/内容/成员与经济/站点重组侧栏。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,7 +4,7 @@ import { useState, useEffect } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
import Link from "next/link";
|
||||
import { UserPlus } from "lucide-react";
|
||||
import { apiRegister, apiMe } from "@/lib/api";
|
||||
import { apiRegister, apiMe, apiGetSettings } from "@/lib/api";
|
||||
import { hasAuthCookieHint } from "@/lib/cookies";
|
||||
|
||||
export default function RegisterPage() {
|
||||
@@ -14,6 +14,7 @@ export default function RegisterPage() {
|
||||
const [password, setPassword] = useState("");
|
||||
const [error, setError] = useState("");
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [registerClosed, setRegisterClosed] = useState(false);
|
||||
|
||||
// 已登录用户不必再注册,直接回首页
|
||||
useEffect(() => {
|
||||
@@ -25,6 +26,14 @@ export default function RegisterPage() {
|
||||
.catch(() => {});
|
||||
}, [router]);
|
||||
|
||||
useEffect(() => {
|
||||
apiGetSettings()
|
||||
.then((s) => {
|
||||
if (!s.allow_register) setRegisterClosed(true);
|
||||
})
|
||||
.catch(() => {});
|
||||
}, []);
|
||||
|
||||
const handleSubmit = async (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
setError("");
|
||||
@@ -39,13 +48,31 @@ export default function RegisterPage() {
|
||||
// 极端情况:注册成功但自动签发失败,引导去登录
|
||||
router.push("/login");
|
||||
} else {
|
||||
setError(res.error || "注册失败");
|
||||
const msg = res.error || "注册失败";
|
||||
if (msg.includes("关闭注册")) setRegisterClosed(true);
|
||||
setError(msg);
|
||||
}
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
if (registerClosed) {
|
||||
return (
|
||||
<div className="max-w-md mx-auto pt-8 sm:pt-14">
|
||||
<div className="panel p-8 text-center">
|
||||
<h1 className="text-lg font-extrabold" style={{ color: "var(--ink)" }}>
|
||||
暂不开放注册
|
||||
</h1>
|
||||
<p className="meta mt-2 text-[13px]">站点当前已关闭新用户注册,已有账号可直接登录。</p>
|
||||
<Link href="/login" className="btn btn-primary mt-6">
|
||||
去登录
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="max-w-md mx-auto pt-8 sm:pt-14">
|
||||
<div className="mb-7 text-center">
|
||||
@@ -59,7 +86,7 @@ export default function RegisterPage() {
|
||||
创建账号
|
||||
</h1>
|
||||
<p className="text-sm mt-2" style={{ color: "var(--ink-2)" }}>
|
||||
加入姜十三,开始你的第一帖
|
||||
加入社区,开始你的第一帖
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user