feat: 添加对话应用选择和知识库切换功能
- 新增对话应用管理模块(dify-chat-apps),支持获取和切换对话应用 - 优化对话应用切换后自动刷新会话列表功能 - 知识库管理页面新增下拉选择器,支持切换不同知识库 - API 层支持 app_id 参数传递,实现多应用会话隔离 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,36 +1,42 @@
|
||||
import { Tabs } from 'antd';
|
||||
import DatasetManager from "~/components/dify-dataset-manager";
|
||||
import AreaDatasetConfig from "~/components/dify-dataset-manager/area-dataset-config";
|
||||
import { Spin } from 'antd';
|
||||
import { useState, useEffect } from 'react';
|
||||
|
||||
/**
|
||||
* 知识库管理首页 - 带标签页导航
|
||||
* 标签1: 知识库列表 - 进入单个知识库管理
|
||||
* 标签2: 知识库配置管理 - 地区-知识库绑定管理
|
||||
* 知识库管理页面
|
||||
* 动态加载 DatasetManager 组件避免 SSR 问题
|
||||
*/
|
||||
export default function DatasetManagerIndex() {
|
||||
const items = [
|
||||
{
|
||||
key: 'dataset-list',
|
||||
label: '知识库列表',
|
||||
children: <DatasetManager />,
|
||||
},
|
||||
{
|
||||
key: 'area-config',
|
||||
label: '知识库配置管理',
|
||||
children: <AreaDatasetConfig />,
|
||||
},
|
||||
];
|
||||
export default function DatasetManagerPage() {
|
||||
const [DatasetManager, setDatasetManager] = useState<React.ComponentType | null>(null);
|
||||
const [mounted, setMounted] = useState(false);
|
||||
|
||||
// 使用Tabs作为顶层导航,默认选中第一个
|
||||
const defaultActiveTab = 'dataset-list';
|
||||
useEffect(() => {
|
||||
setMounted(true);
|
||||
// 只在客户端动态导入组件
|
||||
import("~/components/dify-dataset-manager").then((mod) => {
|
||||
setDatasetManager(() => mod.default);
|
||||
}).catch(err => {
|
||||
console.error('加载知识库管理组件失败:', err);
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="dataset-manager-container">
|
||||
<Tabs
|
||||
defaultActiveKey={defaultActiveTab}
|
||||
items={items}
|
||||
className="dataset-manager-tabs"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
// 服务端渲染时显示简单加载状态
|
||||
if (!mounted) {
|
||||
return (
|
||||
<div style={{ padding: '40px', textAlign: 'center' }}>
|
||||
<div>加载中...</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
// 客户端加载中
|
||||
if (!DatasetManager) {
|
||||
return (
|
||||
<div style={{ padding: '40px', textAlign: 'center' }}>
|
||||
<Spin size="large" />
|
||||
<p style={{ marginTop: 16 }}>正在加载知识库管理...</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return <DatasetManager />;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user