import { getAccessToken } from '@/access'; import clock from '@/assets/img/clock.png'; import creatByImg from '@/assets/img/creatBy.png'; import deleteIcon from '@/assets/img/delete-icon.png'; import KFIcon from '@/components/KFIcon'; import { addModel, deleteModel, getAssetIcon, getModelList } from '@/services/dataset/index.js'; import { modalConfirm } from '@/utils/ui'; import { UploadOutlined } from '@ant-design/icons'; import { Button, Form, Input, Modal, Pagination, Select, Upload, message } from 'antd'; import moment from 'moment'; import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import Styles from './index.less'; const { Search } = Input; const leftdataList = [1, 2, 3]; const PublicData = () => { const props = { action: '/api/mmp/dataset/upload', // headers: { // 'X-Requested-With': null // }, headers: { Authorization: getAccessToken(), 'X-Requested-With': null, }, onChange({ file, fileList }) { if (file.status !== 'uploading') { console.log(file, fileList); form.setFieldsValue({ models_version_vos: fileList.map((item) => { const data = item.response.data[0]; return { file_name: data.fileName, file_size: data.fileSize, url: data.url, }; }), }); } }, defaultFileList: [], }; const [queryFlow, setQueryFlow] = useState({ page: 0, size: 20, name: null, available_range: 0, }); const navgite = useNavigate(); const [iconParams, setIconParams] = useState({ name: null, page: 0, size: 10000, }); const [activeType, setActiveType] = useState(null); const [activeTag, setActiveTag] = useState(null); const [modelTypeList, setmodelTypeList] = useState([]); const [modelDirectionList, setmodelDirectionList] = useState([]); const [isModalOpen, setIsModalOpen] = useState(false); const [datasetList, setDatasetList] = useState([]); const [total, setTotal] = useState(0); const [form] = Form.useForm(); const [dialogTitle, setDialogTitle] = useState('新建模型'); const [uuid, setUuid] = useState(Date.now()); const getModelLists = (queryFlow) => { getModelList(queryFlow).then((ret) => { console.log(ret); if (ret.code == 200) { setDatasetList(ret.data.content); setTotal(ret.data.totalElements); } }); }; const showModal = () => { form.resetFields(); setDialogTitle('新建模型'); setUuid(Date.now()); setIsModalOpen(true); }; const getAssetIconList = (params) => { getAssetIcon(params).then((ret) => { console.log(ret); if (ret.code == 200 && ret.data.content && ret.data.content.length > 0) { setmodelTypeList(ret.data.content.filter((item) => item.category_id == 3)); setmodelDirectionList(ret.data.content.filter((item) => item.category_id == 4)); } else { setmodelTypeList([]); setmodelDirectionList([]); } }); }; const onSearch = (values) => { console.log(values); getAssetIconList({ ...iconParams, name: values }); }; const nameSearch = (values) => { console.log(values); getModelLists({ ...queryFlow, name: values }); }; const handleOk = () => { console.log(1111); setIsModalOpen(false); }; const handleCancel = () => { setIsModalOpen(false); }; const onFinish = (values) => { const params = { ...values, available_range: 0, }; addModel(values).then((ret) => { console.log(ret); getModelLists(queryFlow); setIsModalOpen(false); }); }; const chooseModelType = (val, item) => { console.log(val, item); if (item.id == queryFlow.model_type) { setActiveType(''); setQueryFlow({ ...queryFlow, model_type: null }); getModelLists({ ...queryFlow, model_type: null }); } else { setActiveType(item.id); setQueryFlow({ ...queryFlow, model_type: item.id }); getModelLists({ ...queryFlow, model_type: item.id }); } // setQueryFlow({...queryFlow,data_type:item.path},()=>{ // getDatasetlist() // }) }; const chooseModelTag = (val, item) => { if (item.id == queryFlow.model_tag) { setActiveTag(''); setQueryFlow({ ...queryFlow, model_tag: null }); getModelLists({ ...queryFlow, model_tag: null }); } else { setActiveTag(item.id); setQueryFlow({ ...queryFlow, model_tag: item.id }); getModelLists({ ...queryFlow, model_tag: item.id }); } // setQueryFlow({...queryFlow,data_type:item.path},()=>{ // getDatasetlist() // }) }; const routeToIntro = (e, record) => { e.stopPropagation(); console.log(record); navgite({ pathname: `/dataset/modelIntro/${record.id}` }); }; const onFinishFailed = (errorInfo) => { console.log('Failed:', errorInfo); }; const onPageChange = (pageNum, pageSize) => { console.log(pageNum, pageSize); setQueryFlow({ ...queryFlow, page: pageNum - 1, size: pageSize }); getModelLists({ ...queryFlow, page: pageNum - 1, size: pageSize }); }; useEffect(() => { getAssetIconList(iconParams); getModelLists(queryFlow); return () => {}; }, []); return ( <>
模型框架
{modelTypeList && modelTypeList.length > 0 ? modelTypeList.map((item) => { return (
{ chooseModelType(e, item); }} > { chooseModelTag(e, item); }} > {item.name}
); }) : ''}
模型能力
{modelDirectionList && modelDirectionList.length > 0 ? modelDirectionList.map((item) => { return (
{ chooseModelTag(e, item); }} > {item.name}
); }) : ''}
数据总数:{total}个
{datasetList && datasetList.length > 0 ? datasetList.map((item) => { return (
{ routeToIntro(e, item); }} > {item.name} { e.stopPropagation(); modalConfirm({ title: '确定删除该条模型实例吗?', onOk: () => { deleteModel(item.id).then((ret) => { if (ret.code === 200) { message.success('删除成功'); getModelLists(queryFlow); } else { message.error(ret.msg); } }); }, }); }} className={Styles.dropdown} style={{ width: '17px', marginRight: '6px' }} src={deleteIcon} alt="" /> {/* { console.log(e); if (e.key === 'detail') { routeToIntro(e, item); } else if (e.key === 'delete') { modalConfirm({ title: '确定删除该条模型实例吗?', onOk: () => { deleteModel(item.id).then((ret) => { if (ret.code === 200) { message.success('删除成功'); getModelLists(queryFlow); } else { message.error(ret.msg); } }); }, }); } }, }} >
*/} ,
{item.description}
{item.create_by}
最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
); }) : ''} {/* Demo */}
{dialogTitle} } open={isModalOpen} className={Styles.modal} okButtonProps={{ htmlType: 'submit', form: 'form', }} onCancel={handleCancel} >
{/* 仅自己可见 工作空间可见 */} { return { value: item.id, label: item.name }; })} />
); }; export default PublicData;