feat: 1. 完善全局路由的访问权限的验证。 2. 完善接口返回的树形路由结构 3.优化评查点列表的查询,改用表连接的方式,废弃使用数据库的rpc函数,同时进行地区隔离和权限隔离。

4. 删除冗余的评查文件列表。      5.完善上传文档 页面初始化查询数据的时候 查询文件类型(改成动态指定)  6. 添加获取入口模块的查询接口。    7.完善服务端中判断token的有效性,失效则跳转到登录页。
8. 重构layout和sidebar的页面,改成由动态权限路由来渲染对应的菜单栏。       9.重构入口页面,通过动态查询根据不同地区的人返回不同的入口。
This commit is contained in:
2025-11-20 01:35:30 +08:00
parent adfb84a31d
commit 2edde8a8ab
23 changed files with 1201 additions and 2154 deletions
+12 -4
View File
@@ -56,7 +56,7 @@ export const loader = async ({ request }: LoaderFunctionArgs) => {
label: type.name
}));
// 初始返回空数据,将在客户端根据 sessionStorage 中的 reviewType 加载实际数据
// 初始返回空数据,将在客户端根据 sessionStorage 中的 documentTypeIds 加载实际数据
return Response.json({
documents: [],
total: 0,
@@ -64,6 +64,7 @@ export const loader = async ({ request }: LoaderFunctionArgs) => {
pageSize,
documentTypeOptions,
userInfo, // 传递用户信息到客户端
frontendJWT, // 传递 JWT 到客户端
initialLoad: true // 标记这是初始加载
});
};
@@ -295,16 +296,22 @@ export default function DocumentsIndex() {
throw new Error(documentsResponse.error);
}
// 🔑 从 sessionStorage 读取文档类型 IDs
const typeIdsStr = sessionStorage.getItem('documentTypeIds');
const documentTypeIds = typeIdsStr ? JSON.parse(typeIdsStr) : undefined;
// 获取经过过滤的文档类型列表(token 由 axios 拦截器自动获取)
const filteredTypesResponse = await getDocumentTypes({
pageSize: 500,
reviewType: storedReviewType || undefined
documentTypeIds: documentTypeIds // 使用动态的文档类型 IDs
});
const filteredDocumentTypes = filteredTypesResponse.data?.types || [];
const filteredOptions = filteredDocumentTypes.map(type => ({
value: type.id,
label: type.name
}));
// console.log('文档列表',documentsResponse)
// 更新状态
setDocuments(documentsResponse.data?.documents || []);
@@ -824,7 +831,8 @@ export default function DocumentsIndex() {
attachmentFiles,
attachmentMergeMode,
true, // isReprocess
attachmentRemark || undefined
attachmentRemark || undefined,
loaderData.frontendJWT
);
if (result.error) {
@@ -1153,7 +1161,7 @@ export default function DocumentsIndex() {
{record.historyCount !== undefined && record.historyCount > 0 ?
<span className="version-badge">
<i className="ri-history-line"></i>
v{record.historyCount + 1} {record.historyCount !== undefined && `(${record.historyCount}个历史版本)`}
v{record.historyCount + 1} {record.historyCount !== undefined && `(${record.historyCount}个历史版本)`}
</span> : ""
}
</div>