添加交叉评查菜单页面,添加单点登录相关逻辑(待完善)

This commit is contained in:
2025-07-15 20:17:51 +08:00
20 changed files with 14402 additions and 306 deletions
+45 -4
View File
@@ -1,9 +1,9 @@
import { useEffect } from "react";
import { useSearchParams } from "@remix-run/react";
import { type MetaFunction, type LoaderFunctionArgs, redirect } from "@remix-run/node";
import { useSearchParams, Form } from "@remix-run/react";
import { type MetaFunction, type LoaderFunctionArgs, type ActionFunctionArgs, redirect } from "@remix-run/node";
import { OAuthClient } from "~/utils/oauth-client";
import { OAUTH_CONFIG } from "~/config/api-config";
import { getUserSession, getSession } from "~/root";
import { getUserSession, getSession, createUserSession } from "~/root";
import styles from "~/styles/pages/login.css?url";
export const links = () => [
@@ -39,6 +39,23 @@ export async function loader({ request }: LoaderFunctionArgs) {
});
}
// 处理表单提交的action函数
export async function action({ request }: ActionFunctionArgs) {
const formData = await request.formData();
const intent = formData.get("intent");
if (intent === "temp_admin_login") {
// 获取重定向目标
const session = await getSession(request);
const redirectTo = session.get("redirectTo") || "/";
// 创建管理员会话
return createUserSession(true, 'developer', redirectTo);
}
return null;
}
export default function Login() {
const [searchParams] = useSearchParams();
const error = searchParams.get("error");
@@ -131,10 +148,34 @@ export default function Login() {
</p>
</div>
</div>
{/* 临时管理员登录区域 */}
<div className="temp-login-section">
<div className="section-divider">
<span></span>
</div>
<Form method="post" className="temp-login-form">
<input type="hidden" name="intent" value="temp_admin_login" />
<button
type="submit"
className="temp-admin-login-button"
>
<i className="ri-admin-line"></i>
</button>
<div className="temp-login-tips">
<p>
<i className="ri-alert-line"></i>
使
</p>
</div>
</Form>
</div>
</div>
<div className="login-footer">
<p>© 2024 </p>
<p>© 2025 </p>
</div>
</div>
</div>