import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { connect, useNavigate, useLocation } from 'umi' import { Space, Table, Tag, Input, Button, Switch, Popover, Dropdown, } from 'antd'; import type { MenuProps } from 'antd'; import { PlusOutlined, DownOutlined } from '@ant-design/icons' import { debounce } from 'lodash'; import type { ColumnsType } from 'antd/es/table'; import UploadFile from './upload' import CreateEPModal from './createEFileModal' import SegmentSetModal from './segmentSetModal' import styles from './index.less' interface DataType { name: string; chunk_num: string; token_num: number; update_date: string; size: string; status: string; id: string; parser_id: string } const Index: React.FC = ({ kFModel, dispatch, id }) => { const { data, loading } = kFModel const [inputValue, setInputValue] = useState('') const [doc_id, setDocId] = useState('0') const [parser_id, setParserId] = useState('0') const changeValue = (value: string) => { { console.log(value) } } const getKfList = () => { dispatch({ type: 'kFModel/getKfList', payload: { kb_id: id } }); } useEffect(() => { if (id) { getKfList() } }, [id]) const debounceChange = debounce(changeValue, 300) const debounceCallback = useCallback((value: string) => debounceChange(value), []) const handleInputChange = (e: React.ChangeEvent) => { const value = e.target.value setInputValue(value) debounceCallback(e.target.value) } const onChangeStatus = (e: boolean, doc_id: string) => { dispatch({ type: 'kFModel/updateDocumentStatus', payload: { doc_id, status: Number(e) }, callback() { getKfList() } }); } const onRmDocument = () => { dispatch({ type: 'kFModel/document_rm', payload: { doc_id }, callback() { getKfList() } }); } const showCEFModal = () => { dispatch({ type: 'kFModel/updateState', payload: { isShowCEFwModal: true } }); }; const showSegmentSetModal = () => { dispatch({ type: 'kFModel/updateState', payload: { isShowSegmentSetModal: true } }); }; const actionItems: MenuProps['items'] = useMemo(() => { return [ { key: '1', label: (
), }, { key: '2', label: (
), // disabled: true, }, ] }, [id]); const chunkItems: MenuProps['items'] = [ { key: '1', label: (
), }, { key: '2', label: (
), // disabled: true, }, ] const columns: ColumnsType = [ { title: '名称', dataIndex: 'name', key: 'name', render: (text) => {text}, className: `${styles.column}` }, { title: '数据总量', dataIndex: 'chunk_num', key: 'chunk_num', className: `${styles.column}` }, { title: 'Tokens', dataIndex: 'token_num', key: 'token_num', className: `${styles.column}` }, { title: '文件大小', dataIndex: 'size', key: 'size', className: `${styles.column}` }, { title: '状态', key: 'status', dataIndex: 'status', className: `${styles.column}`, render: (_, { status: string, id }) => ( <> { onChangeStatus(e, id) }} /> ), }, { title: 'Action', key: 'action', className: `${styles.column}`, render: (_, record) => ( { setDocId(record.id) setParserId(record.parser_id) }}> 分段设置 ), }, ]; return <>
导入文件
}; export default connect(({ kFModel, loading }) => ({ kFModel, loading }))(Index);