|
|
@@ -1,6 +1,6 @@
|
|
|
import * as React from 'react';
|
|
|
import { observer } from 'mobx-react';
|
|
|
-import { useParams } from 'react-router-dom';
|
|
|
+import { generatePath, useLocation, useParams } from 'react-router-dom';
|
|
|
import { List, Button, Divider, Empty, Modal, Form, Input, message } from 'antd';
|
|
|
import { SettingOutlined, DeleteOutlined, ArrowLeftOutlined, PlusOutlined } from '@ant-design/icons';
|
|
|
import { apis } from '@/apis';
|
|
|
@@ -29,6 +29,7 @@ const SliceList: React.FC = () => {
|
|
|
total: number,
|
|
|
};
|
|
|
|
|
|
+ const location = useLocation();
|
|
|
const [listLoading, setListLoading] = React.useState(false);
|
|
|
const [list, setList] = React.useState<Item[]>([]);
|
|
|
const [page, setPage] = React.useState<PageInfo>({
|
|
|
@@ -53,7 +54,6 @@ const SliceList: React.FC = () => {
|
|
|
pageSize: page.pageSize,
|
|
|
pageNum: page.pageNum
|
|
|
})
|
|
|
- console.log('fetchTakaiSliceList', res);
|
|
|
const list = res.rows.map((item: any) => {
|
|
|
return {
|
|
|
slice_id: item.sliceId,
|
|
|
@@ -74,7 +74,6 @@ const SliceList: React.FC = () => {
|
|
|
setListLoading(false);
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
};
|
|
|
|
|
|
const handleClickSearch = () => {
|
|
|
@@ -102,8 +101,23 @@ const SliceList: React.FC = () => {
|
|
|
}
|
|
|
|
|
|
const init = async () => {
|
|
|
- console.log('params', params.knowledgeId);
|
|
|
- await appApi.fetchList({ searchText: '' });
|
|
|
+ if (location.state) {
|
|
|
+ const { text, page } = location.state;
|
|
|
+ if (text) {
|
|
|
+ form.setFieldsValue({
|
|
|
+ text: text,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (page && page.pageNum && page.pageSize) {
|
|
|
+ setPage(page);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const values = form.getFieldsValue();
|
|
|
+
|
|
|
+ const searchText = values.text ? values.text : '';
|
|
|
+
|
|
|
+ await appApi.fetchList({ searchText: searchText });
|
|
|
}
|
|
|
|
|
|
React.useEffect(() => {
|
|
|
@@ -116,7 +130,7 @@ const SliceList: React.FC = () => {
|
|
|
setUpdateFlag(tFlag);
|
|
|
const lFlag = LocalStorage.getStatusFlag('deepseek:slice:list');
|
|
|
setListFlag(lFlag);
|
|
|
- }, [page.pageSize, page.pageNum])
|
|
|
+ }, [])
|
|
|
|
|
|
const paginationConfig: PaginationConfig = {
|
|
|
// 显示数据总量
|
|
|
@@ -126,24 +140,27 @@ const SliceList: React.FC = () => {
|
|
|
// 展示分页条数切换
|
|
|
showSizeChanger: true,
|
|
|
// 指定每页显示条数
|
|
|
- // pageSizeOptions: ['2', '20', '50', '100'],
|
|
|
+ pageSizeOptions: ['10', '20', '50', '100'],
|
|
|
// 快速跳转至某页
|
|
|
showQuickJumper: true,
|
|
|
current: page.pageNum,
|
|
|
pageSize: page.pageSize,
|
|
|
total: page.total,
|
|
|
- onChange: (pageNum, pageSize) => {
|
|
|
+ onChange: async (pageNum, pageSize) => {
|
|
|
setPage({
|
|
|
pageNum: pageNum,
|
|
|
pageSize: pageSize,
|
|
|
total: page.total,
|
|
|
});
|
|
|
+ const values = form.getFieldsValue();
|
|
|
+ const searchText = values.text ? values.text : '';
|
|
|
+ await appApi.fetchList({ searchText: searchText });
|
|
|
},
|
|
|
};
|
|
|
|
|
|
return (
|
|
|
<div>
|
|
|
- <div className='dataExport-search'>
|
|
|
+ <div className='slice-search'>
|
|
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
|
|
<Form form={form} layout='inline' colon={false}>
|
|
|
<FormItem label='切片' name='text'>
|
|
|
@@ -162,21 +179,34 @@ const SliceList: React.FC = () => {
|
|
|
</Button>
|
|
|
</FormItem>
|
|
|
</Form>
|
|
|
-
|
|
|
- <div >
|
|
|
+ <div>
|
|
|
{
|
|
|
createFlag &&
|
|
|
- <Button style={{ marginRight: 16 }} type='primary' icon={<PlusOutlined />} onClick={() => {
|
|
|
- router.navigate({
|
|
|
- pathname: '/deepseek/knowledgeLib/slice/detail/' + null + '/' + params.knowledgeId + '/' + params.documentId + '/'
|
|
|
- + params.embeddingId
|
|
|
- });
|
|
|
- }}>新增切片</Button>
|
|
|
+ <Button
|
|
|
+ style={{ marginRight: 16 }}
|
|
|
+ type='primary'
|
|
|
+ icon={<PlusOutlined />}
|
|
|
+ onClick={() => {
|
|
|
+ const path = generatePath('/deepseek/knowledgeLib/:knowledgeId/slice/:documentId/:embeddingId/:sliceId', {
|
|
|
+ knowledgeId: params.knowledgeId as string,
|
|
|
+ documentId: params.documentId as string,
|
|
|
+ embeddingId: params.embeddingId as string,
|
|
|
+ sliceId: 'new',
|
|
|
+ });
|
|
|
+ const { text } = form.getFieldsValue();
|
|
|
+ router.navigate({ pathname: path }, { state: { text: text, page } });
|
|
|
+ }}>
|
|
|
+ 新增切片
|
|
|
+ </Button>
|
|
|
}
|
|
|
-
|
|
|
<Button type='primary' icon={<ArrowLeftOutlined />} onClick={() => {
|
|
|
- router.navigate(-1);
|
|
|
- }}>返回</Button>
|
|
|
+ const path = generatePath('/deepseek/knowledgeLib/:knowledgeId', {
|
|
|
+ knowledgeId: params.knowledgeId as string,
|
|
|
+ });
|
|
|
+ router.navigate({ pathname: path });
|
|
|
+ }}>
|
|
|
+ 返回
|
|
|
+ </Button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -186,7 +216,9 @@ const SliceList: React.FC = () => {
|
|
|
<div className='questionAnswerList'>
|
|
|
|
|
|
<div className='applicationList'>
|
|
|
- <List style={{ height: 400 }}
|
|
|
+ <List
|
|
|
+ style={{ height: 400 }}
|
|
|
+ loading={listLoading}
|
|
|
grid={{
|
|
|
gutter: 16,
|
|
|
xs: 1,
|
|
|
@@ -212,12 +244,18 @@ const SliceList: React.FC = () => {
|
|
|
<div style={{ overflow: 'auto' }}>
|
|
|
{
|
|
|
updateFlag &&
|
|
|
- <a style={{ marginRight: 20 }} onClick={() => {
|
|
|
- router.navigate({
|
|
|
- pathname: '/deepseek/knowledgeLib/slice/detail/' + item.slice_id + '/' + params.knowledgeId + '/' + params.documentId + '/'
|
|
|
- + params.embeddingId
|
|
|
- });
|
|
|
- }}>
|
|
|
+ <a
|
|
|
+ style={{ marginRight: 20 }}
|
|
|
+ onClick={() => {
|
|
|
+ const path = generatePath('/deepseek/knowledgeLib/:knowledgeId/slice/:documentId/:embeddingId/:sliceId', {
|
|
|
+ knowledgeId: params.knowledgeId as string,
|
|
|
+ documentId: params.documentId as string,
|
|
|
+ embeddingId: params.embeddingId as string,
|
|
|
+ sliceId: item.slice_id,
|
|
|
+ });
|
|
|
+ const { text } = form.getFieldsValue();
|
|
|
+ router.navigate({ pathname: path }, { state: { text: text, page } });
|
|
|
+ }}>
|
|
|
<SettingOutlined /> 编辑
|
|
|
</a>
|
|
|
}
|