fix(agent): redirect to blank page when navigating home from model page

This commit is contained in:
Zhu,JW
2025-11-24 11:22:03 +08:00
parent 79ee33be7c
commit 898c0988db
6 changed files with 39 additions and 4 deletions

View File

@@ -11,6 +11,7 @@ export default {
yes: 'Yes',
no: 'No',
total: 'Total',
know: 'Known',
rename: 'Rename',
name: 'Name',
save: 'Save',
@@ -106,6 +107,7 @@ export default {
noMoreData: `That's all. Nothing more.`,
},
knowledgeDetails: {
pleaseAddEmbeddingModel: 'Please add embedding model and LLM in the model provider first, then set them in "Set Default Model".',
localUpload: 'Local Upload',
fileSize: 'File Size',
fileType: 'File Type',

View File

@@ -11,6 +11,7 @@ export default {
yes: '是',
no: '否',
total: '总共',
know: '知道了',
rename: '重命名',
name: '名称',
save: '保存',
@@ -99,6 +100,7 @@ export default {
noMoreData: '没有更多数据了',
},
knowledgeDetails: {
pleaseAddEmbeddingModel: '请先在模型提供商中添加嵌入模型和LLM然后在"设置默认模型"中设置它们。',
localUpload: '本地上传',
fileSize: '文件大小',
fileType: '文件类型',

View File

@@ -1,10 +1,14 @@
import { useState, useCallback, useEffect, useRef } from 'react';
import agentService from '@/services/agent_service';
import userService from '@/services/user_service';
import type { IAgent, IGraph } from '@/interfaces/database/agent';
import type { IAgentPaginationParams, IAgentCreateRequestBody, IAgentSettingRequestBody } from '@/interfaces/request/agent';
import logger from '@/utils/logger';
import { useTranslation } from 'react-i18next';
import { useSnackbar } from '@/hooks/useSnackbar';
import { useDialog } from '@/hooks/useDialog';
import { useNavigate } from 'react-router-dom';
import { isEmpty } from 'lodash';
export interface UseAgentListState {
agents: IAgent[];
@@ -39,6 +43,28 @@ export const useAgentList = (initialParams?: IAgentPaginationParams) => {
const [currentPage, setCurrentPage] = useState(initialParams?.page || 1);
const [pageSize, setPageSize] = useState(initialParams?.page_size || 10);
const [keywords, setKeywords] = useState(initialParams?.keywords || '');
const { showMessage } = useSnackbar();
const dialog = useDialog();
const navigate = useNavigate();
const { t } = useTranslation();
// 查询是否有默认的模型
const checkDefaultModel = useCallback(async (id: string) => {
const { data: res } = await userService.getTenantInfo();
if (res.code === 0) {
const { data } = res;
if (isEmpty(data.embd_id) || isEmpty(data.llm_id)) {
await dialog.warning({
title: t('common.warn'),
content: t('knowledgeDetails.pleaseAddEmbeddingModel'),
confirmText: t('common.know')
});
navigate(`/models`);
} else {
navigate(`/route-ragflow/agent/${id}`);
}
}
}, [dialog, navigate, showMessage]);
const fetchAgentList = useCallback(async (params?: IAgentPaginationParams) => {
setLoading(true);
@@ -81,6 +107,7 @@ export const useAgentList = (initialParams?: IAgentPaginationParams) => {
currentPage,
pageSize,
keywords,
checkDefaultModel,
fetchAgents: fetchAgentList,
setKeywords,
setCurrentPage,

View File

@@ -15,6 +15,7 @@ export default {
total: 'Total',
rename: 'Rename',
name: 'Name',
know: 'Known',
save: 'Save',
namePlaceholder: 'Please input name',
next: 'Next',
@@ -425,6 +426,7 @@ export default {
paginationInfo: 'Total {{total}} knowledge bases, page {{current}} of {{totalPages}}',
},
knowledgeDetails: {
pleaseAddEmbeddingModel: 'Please add embedding model and LLM in the model provider first, then set them in "Set Default Model".',
fileSize: 'File Size',
fileType: 'File Type',
uploadedBy: 'Uploaded by',

View File

@@ -13,6 +13,7 @@ export default {
cancel: '否',
total: '总共',
rename: '重命名',
know: '知道了',
name: '名称',
save: '保存',
namePlaceholder: '请输入名称',
@@ -423,6 +424,7 @@ export default {
paginationInfo: '共 {{total}} 个知识库,第 {{current}} 页,共 {{totalPages}} 页',
},
knowledgeDetails: {
pleaseAddEmbeddingModel: '请先在模型提供商中添加嵌入模型和LLM然后在"设置默认模型"中设置它们。',
fileSize: '文件大小',
fileType: '文件类型',
uploadedBy: '创建者',

View File

@@ -17,7 +17,6 @@ import EditAgentDialog from './components/EditAgentDialog';
import { useTranslation } from 'react-i18next';
import { useDialog } from '@/hooks/useDialog';
import { useNavigate } from 'react-router-dom';
function AgentListPage() {
const [searchValue, setSearchValue] = useState('');
const [createOpen, setCreateOpen] = useState(false);
@@ -31,6 +30,7 @@ function AgentListPage() {
pageSize,
setCurrentPage,
setKeywords,
checkDefaultModel,
refresh,
} = useAgentList({ page: 1, page_size: 10 });
@@ -40,8 +40,8 @@ function AgentListPage() {
const ops = useAgentOperations();
const totalPages = useMemo(() => {
return Math.ceil((agents?.length || 0) / pageSize) || 1;
}, [agents, pageSize]);
return Math.ceil((total || 0) / pageSize) || 1;
}, [total, pageSize]);
const currentPageData = useMemo(() => {
const startIndex = (currentPage - 1) * pageSize;
@@ -108,7 +108,7 @@ function AgentListPage() {
onCreateAgent={() => setCreateOpen(true)}
onEdit={(agent) => { setEditTarget(agent); setEditOpen(true); }}
onView={(agent) => {
navigate(`/route-ragflow/agent/${agent.id}`);
checkDefaultModel(agent.id);
}}
onDelete={async (agent) => {
const confirmed = await dialog.confirm({