/* * @Author: donghao donghao@supervision.ltd * @Date: 2024-04-08 10:36:06 * @LastEditors: donghao donghao@supervision.ltd * @LastEditTime: 2024-06-06 15:13:25 * @FilePath: \general-ai-manage\src\pages\Model\ModelRuntimeLib\index.tsx * @Description: 模型运行库 * @交互说明 * 1. 运行库列表分页展示、关键词检索 * 2. 新增、编辑、删除(模型运行库)功能 * */ import { apiModelHubDelete, apiModelHubInfo, apiModelHubList } from '@/services/business/model'; import { isSuccessApi } from '@/utils/forApi'; import { CommButton } from '@/components/Button'; import TableActionCard from '@/components/TableActionCard'; import IsDelete from '@/components/TableActionCard/isDelete'; import { SearchOutlined } from '@ant-design/icons'; import type { ActionType, ProColumns } from '@ant-design/pro-components'; import { ProCard, ProForm, ProFormText, ProTable } from '@ant-design/pro-components'; import { Access, FormattedMessage, history, useAccess, useIntl } from '@umijs/max'; import { Button, message } from 'antd'; import React, { useEffect, useRef, useState } from 'react'; import { proTableCommonOptions, proTablePaginationOptions } from '../../../../config/defaultTable'; import CreateForm from './components/createForm'; import UpdateForm from './components/updateForm'; import { ReactComponent as ResetIcon } from '/public/home/reset_icon.svg'; import { ReactComponent as SearchIcon } from '/public/home/search_icon.svg'; const ModelRuntimeLib: React.FC = () => { const access = useAccess(); const intl = useIntl(); const actionRef = useRef(); const [querysData, setQuerysData] = useState>({}); // 列表查询参数 const [createModalOpen, setCreateModalOpen] = useState(false); // const [categoryFkIdIds, setCategoryFkIdIds] = useState([]); // 动态设置每页数量 const [currentPageSize, setCurrentPageSize] = useState(10); const [currentRow, setCurrentRow] = useState>({}); const [form] = ProForm.useForm(); // form 对象 const [updateModalOpen, setUpdateModalOpen] = useState(false); // const [showDetail, setShowDetail] = useState(false); /**新增 编辑 删除 */ // 新增 const handleCreateModal = () => { setCreateModalOpen(!createModalOpen); }; // 编辑 const handleUpdateModal = () => { setUpdateModalOpen(!updateModalOpen); }; // 设备节点信息 async function loadDetail(record) { const resp = await apiModelHubInfo({ id: record?.id }); if (isSuccessApi(resp) && resp?.data) { setCurrentRow({ ...resp?.data, id: record?.id }); } } function reloadList() { actionRef.current?.reload(); } // 筛选查询 useEffect(() => { if (actionRef) { reloadList(); } }, [actionRef, querysData]); const columns: ProColumns>[] = [ { title: , dataIndex: 'name', hideInSearch: true, key: 'fixedName', fixed: 'left', }, { title: , dataIndex: 'path', hideInSearch: true, }, { title: ( ), dataIndex: 'create_time', hideInSearch: true, valueType: 'dateTime', }, { title: ( ), dataIndex: 'update_time', hideInSearch: true, valueType: 'dateTime', }, { title: , dataIndex: 'option', valueType: 'option', fixed: 'right', key: 'option', render: (_, record) => [ { loadDetail(record); setUpdateModalOpen(true); }} > ), }, { key: 'destroy', renderDom: ( { console.log('删除成功'); apiModelHubDelete({ id: record.id }).then(() => { message.success( intl.formatMessage({ id: 'common.action.success', defaultMessage: '$$$', }), ); reloadList(); }); }} > ), }, ]} >, ], }, ]; return (
(
} buttonLabel={ } > } buttonLabel={ } onClick={() => { form.resetFields(); // 点击重置按钮时重置表单数据 setQuerysData(() => {}); // 清空筛选项 }} >
), }} onFinish={async (values) => { console.log(values, 'filter_finish_values'); setQuerysData(() => values); return true; }} > } labelClassName="label_set_1" fieldProps={{ style: { width: 280, }, prefix: , }} name="name" placeholder="请输入运行库名称" />
} extra={ } > {/* // TODO 需要控制表格溢出滚动高度 */} { console.log(data, 'onDataSourceChange_data'); // let CategoryFkIdIds: any = data.map((v) => { // return v.categoryFkId; // }); // setCategoryFkIdIds(CategoryFkIdIds); }} pagination={{ ...proTablePaginationOptions, pageSize: currentPageSize, onChange: (pageNo, pageSize) => setCurrentPageSize(pageSize), }} columnsState={{ persistenceKey: 'algorithm_model_list', persistenceType: 'localStorage', }} request={async (params = {}) => { const { current, ...rest } = params; const reqParams = { pageNo: current, ...rest, }; let resp = await apiModelHubList({ ...reqParams, ...querysData }); if (!isSuccessApi(resp)) { return { data: [], success: true }; } console.log(resp, 'apiEntityNodesDeviceList_resp'); return { data: resp.data?.data, success: resp.success, total: resp.data.count, current: current, pageSize: currentPageSize, }; }} columns={columns} /> ); }; export default ModelRuntimeLib;