1. 开启交叉评查的显示/隐藏(开启生产环境的配置),优化不同端口的显示/隐藏交叉评查入口的效果。
2. 优化评查结果的AI建议修改的文本输入框的显示效果。 3. 提交17正式环境的api-config.ts,备份一个wafIP的配置api-config-wafIP.ts。
This commit is contained in:
+13
-4
@@ -75,7 +75,15 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
}
|
||||
|
||||
// 检查是否存在顶级路由 '/cross-checking'
|
||||
hasCrossCheckingAccess = routesResult.data.some(route => route.path === '/cross-checking');
|
||||
// 🔒 交叉评查访问控制:
|
||||
// - CROSS_CHECKING_ONLY_MODE=false 时,所有端口都可访问(根据后端权限)
|
||||
// - CROSS_CHECKING_ONLY_MODE=true 时,只有 51707 端口可访问
|
||||
const currentPort = getCurrentPort();
|
||||
if (!CROSS_CHECKING_ONLY_MODE || currentPort === CROSS_CHECKING_ONLY_PORT) {
|
||||
hasCrossCheckingAccess = routesResult.data.some(route => route.path === '/cross-checking');
|
||||
} else {
|
||||
hasCrossCheckingAccess = false; // CROSS_CHECKING_ONLY_MODE=true 且非51707端口不显示交叉评查入口
|
||||
}
|
||||
|
||||
// 检查是否存在顶级路由 '/chat-with-llm'
|
||||
hasChatLLMAccess = routesResult.data.some(route => route.path === '/chat-with-llm');
|
||||
@@ -89,11 +97,12 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
|
||||
// 🔑 判断是否启用交叉评查专属模式
|
||||
// 条件:CROSS_CHECKING_ONLY_MODE=true 且 当前端口为 51707
|
||||
const currentPort = getCurrentPort();
|
||||
const isCrossCheckingOnlyMode = CROSS_CHECKING_ONLY_MODE && currentPort === CROSS_CHECKING_ONLY_PORT;
|
||||
// 注意:currentPort 已在上面的权限检查中获取,这里复用(如果在 if 块外需要则重新获取)
|
||||
const currentPortForMode = getCurrentPort();
|
||||
const isCrossCheckingOnlyMode = CROSS_CHECKING_ONLY_MODE && currentPortForMode === CROSS_CHECKING_ONLY_PORT;
|
||||
|
||||
if (isCrossCheckingOnlyMode) {
|
||||
console.log(`🔒 [Index Loader] 交叉评查专属模式已启用 (端口: ${currentPort})`);
|
||||
console.log(`🔒 [Index Loader] 交叉评查专属模式已启用 (端口: ${currentPortForMode})`);
|
||||
}
|
||||
|
||||
// 返回用户信息、入口模块和权限给客户端
|
||||
|
||||
@@ -253,20 +253,42 @@ type LoaderData = {
|
||||
// 添加 loader 函数
|
||||
export async function loader({ request }: LoaderFunctionArgs) {
|
||||
try {
|
||||
const loaderStart = Date.now();
|
||||
|
||||
// 获取用户会话信息
|
||||
const sessionStart = Date.now();
|
||||
const { getUserSession } = await import("~/api/login/auth.server");
|
||||
const { userInfo, frontendJWT } = await getUserSession(request);
|
||||
|
||||
// console.log(`[loader 耗时] getUserSession: ${Date.now() - sessionStart}ms`);
|
||||
|
||||
// console.log('loader: 开始加载数据...');
|
||||
const url = new URL(request.url);
|
||||
const mode = url.searchParams.get("mode") || "create";
|
||||
|
||||
|
||||
// 我们不能在服务器端访问 sessionStorage,所以在客户端组件中处理 documentTypeIds 过滤
|
||||
// 并行加载文档和文档类型
|
||||
// 并行加载文档和文档类型(分别计时)
|
||||
const apiStart = Date.now();
|
||||
|
||||
const documentsPromise = (async () => {
|
||||
const start = Date.now();
|
||||
const result = await getTodayDocuments(userInfo, frontendJWT);
|
||||
// console.log(`[loader 耗时] getTodayDocuments API: ${Date.now() - start}ms`);
|
||||
return result;
|
||||
})();
|
||||
|
||||
const typesPromise = (async () => {
|
||||
const start = Date.now();
|
||||
const result = await getDocumentTypes(frontendJWT);
|
||||
// console.log(`[loader 耗时] getDocumentTypes API: ${Date.now() - start}ms`);
|
||||
return result;
|
||||
})();
|
||||
|
||||
const [documentsResponse, typesResponse] = await Promise.all([
|
||||
getTodayDocuments(userInfo, frontendJWT),
|
||||
getDocumentTypes(frontendJWT)
|
||||
documentsPromise,
|
||||
typesPromise
|
||||
]);
|
||||
// console.log(`[loader 耗时] 并行API调用总耗时: ${Date.now() - apiStart}ms`);
|
||||
console.log(`[loader 耗时] loader总耗时: ${(Date.now() - loaderStart)/1000}s`);
|
||||
|
||||
// console.log('loader: 文档加载结果:', documentsResponse);
|
||||
// console.log('loader: 文档类型加载结果:', typesResponse);
|
||||
|
||||
Reference in New Issue
Block a user