|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- import React, { useEffect, useState, } from 'react';
- import { useNavigate, connect, Dispatch } from 'umi'
- import { Card, List, Popconfirm, message, FloatButton, Row, Col } from 'antd';
- import { MinusSquareOutlined, DeleteOutlined, PlusOutlined } from '@ant-design/icons';
- import styles from './index.less'
- import { formatDate } from '@/utils/date'
- import type { knowledgeModelState } from './model'
- interface KnowledgeProps {
- dispatch: Dispatch;
- knowledgeModel: knowledgeModelState
- }
- const Index: React.FC<KnowledgeProps> = ({ knowledgeModel, dispatch }) => {
- const navigate = useNavigate()
- // const [datas, setDatas] = useState(data)
- const { data = [] } = knowledgeModel
- console.log(knowledgeModel)
- const confirm = (id: string) => {
- dispatch({
- type: 'knowledgeModel/rmKb',
- payload: {
- kb_id: id
- },
- callback: () => {
- dispatch({
- type: 'knowledgeModel/getList',
- payload: {
-
- }
- });
- }
- });
- };
- const handleAddKnowledge = () => {
- navigate(`add/setting?activeKey=setting`);
- }
- const handleEditKnowledge = (id: string) => {
- navigate(`add/setting?activeKey=file&id=${id}`);
- }
- useEffect(() => {
- dispatch({
- type: 'knowledgeModel/getList',
- payload: {
-
- }
- });
- }, [])
- return (<>
- <div className={styles.knowledge}>
- <FloatButton onClick={handleAddKnowledge} icon={<PlusOutlined />} type="primary" style={{ right: 24, top: 100 }} />
- <Row gutter={{ xs: 8, sm: 16, md: 24, lg: 32 }}>
- {
- data.map((item: any) => {
- return (<Col className="gutter-row" key={item.name} xs={24} sm={12} md={8} lg={6}>
- <Card className={styles.card}
- onClick={() => { handleEditKnowledge(item.id) }}
- >
- <div className={styles.container}>
- <div className={styles.content}>
- <span className={styles.context}>
- {item.name}
- </span>
- <span className={styles.delete}>
- <Popconfirm
- title="Delete the task"
- description="Are you sure to delete this task?"
- onConfirm={(e: any) => {
- e.stopPropagation();
- e.nativeEvent.stopImmediatePropagation()
- confirm(item.id)
-
- }}
- okText="Yes"
- cancelText="No"
- >
- <DeleteOutlined onClick={(e) => {
- e.stopPropagation();
- e.nativeEvent.stopImmediatePropagation()
- }} />
- </Popconfirm>
-
- </span>
- </div>
- <div className={styles.footer}>
- <span className={styles.text}>
- <MinusSquareOutlined />{item.doc_num}文档
- </span>
- <span className={styles.text}>
- <MinusSquareOutlined />{item.chunk_num}个
- </span>
- <span className={styles.text}>
- <MinusSquareOutlined />{item.token_num}千字符
- </span>
- <span style={{ float: 'right' }}>
- {formatDate(item.update_date)}
- </span>
- </div>
-
- </div>
- </Card>
- </Col>)
- })
- }
- </Row>
- </div>
- </>
- )
- };
-
- export default connect(({ knowledgeModel, loading }) => ({ knowledgeModel, loading }))(Index);
|