添加根据合同/卷宗的入口进行分类评查点列表,同时区分卷宗添加的分组属于卷宗,合同添加的分组属于合同

This commit is contained in:
2025-10-29 21:01:01 +08:00
parent e56d199c3c
commit 064f05ffa5
3 changed files with 50 additions and 19 deletions
+27 -6
View File
@@ -162,6 +162,7 @@ export async function action({ request }: ActionFunctionArgs) {
const status = formData.get("status") as string || "active";
const groupType = formData.get("groupType") as string;
const parentId = groupType === "secondary" ? formData.get("parentId") as string : null;
const reviewType = formData.get("reviewType") as string || undefined;
// 表单验证
// action是处于服务端的表单提交方法,这里再次验证表单数据也是出于安全考虑,防止客户端验证被绕过从而提交非法数据
@@ -194,7 +195,8 @@ export async function action({ request }: ActionFunctionArgs) {
code: code.trim(),
description: description?.trim() || "",
is_enabled: status === "active",
pid: parentId === null ? "0" : parentId
pid: parentId === null ? "0" : parentId,
reviewType: reviewType // 传递 reviewType
};
try {
@@ -244,12 +246,15 @@ export default function RuleGroupNew() {
const userRole = rootData?.userRole || 'common';
// 判断表单是否为只读模式
// 判断表单是否为只读模式
const isReadOnly = userRole === 'common';
// 解构数据
const { group, parentGroups, isEdit, error } = data;
// 从 sessionStorage 获取 reviewType
const [reviewType, setReviewType] = useState<string | null>(null);
// 表单状态管理 - 使用受控组件
const [formValues, setFormValues] = useState<{
groupType: "primary" | "secondary";
@@ -309,7 +314,20 @@ export default function RuleGroupNew() {
});
}
}, [group]);
// 在组件挂载时从 sessionStorage 获取 reviewType
useEffect(() => {
try {
if (typeof window !== 'undefined') {
const storedReviewType = sessionStorage.getItem('reviewType');
// console.log("从 sessionStorage 获取 reviewType:", storedReviewType);
setReviewType(storedReviewType);
}
} catch (error) {
console.error('获取 sessionStorage 中的 reviewType 失败:', error);
}
}, []);
// 验证表单字段
const validateField = (field: string, value: string) => {
switch (field) {
@@ -471,7 +489,10 @@ export default function RuleGroupNew() {
<Form method="post" id="group-form" ref={formRef} onSubmit={handleBeforeSubmit}>
{/* 如果是编辑模式,添加ID */}
{group?.id && <input type="hidden" name="id" value={group.id} />}
{/* 传递 reviewType */}
{reviewType && <input type="hidden" name="reviewType" value={reviewType} />}
{/* 基本信息区域 */}
<Card className="form-section">
<div className="form-section-header">