添加合同和卷宗数据隔离

This commit is contained in:
2025-06-03 12:16:31 +08:00
parent b02978508d
commit 0397139ad8
20 changed files with 1190 additions and 437 deletions
+22 -16
View File
@@ -1,5 +1,5 @@
import { type MetaFunction } from "@remix-run/node";
import { useLoaderData, Link, useNavigate, useSearchParams } from "@remix-run/react";
import { useLoaderData, Link, useNavigate, useSearchParams, useRouteLoaderData } from "@remix-run/react";
import { useState, useEffect } from "react";
import indexStyles from "~/styles/pages/rule-groups_index.css?url";
import { Card } from "~/components/ui/Card";
@@ -36,6 +36,7 @@ export async function loader() {
export default function RuleGroupsIndex() {
const { groups: initialGroups } = useLoaderData<typeof loader>();
const rootData = useRouteLoaderData("root") as { userRole: string };
const navigate = useNavigate();
const [searchParams, setSearchParams] = useSearchParams();
const [expandedGroups, setExpandedGroups] = useState<string[]>([]);
@@ -43,6 +44,7 @@ export default function RuleGroupsIndex() {
const [loading, setLoading] = useState<Record<string, boolean>>({});
const [filteredChildrenMap, setFilteredChildrenMap] = useState<Record<string, RuleGroup[]>>({});
const [initialLoading, setInitialLoading] = useState<boolean>(true);
const userRole = rootData?.userRole || 'common';
// 初始加载时自动加载所有子分组
useEffect(() => {
@@ -524,15 +526,17 @@ export default function RuleGroupsIndex() {
onClick={() => navigate(`/rule-groups/new?id=${record.id}`)}
className="operation-btn"
>
<i className="ri-edit-line"></i>
</button>
<button
type="button"
className="operation-btn !text-[--color-error]"
onClick={() => handleDeleteGroup(record.id)}
>
<i className="ri-delete-bin-line"></i>
<i className="ri-edit-line"></i> {userRole === 'common' ? '查看' : '编辑'}
</button>
{userRole !== 'common' && (
<button
type="button"
className="operation-btn !text-[--color-error]"
onClick={() => handleDeleteGroup(record.id)}
>
<i className="ri-delete-bin-line"></i>
</button>
)}
</div>
)
}
@@ -566,13 +570,15 @@ export default function RuleGroupsIndex() {
>
</Button>
<Button
type="primary"
icon="ri-add-line"
onClick={() => navigate("/rule-groups/new")}
>
</Button>
{userRole !== 'common' && (
<Button
type="primary"
icon="ri-add-line"
onClick={() => navigate("/rule-groups/new")}
>
</Button>
)}
</div>
</div>