import { useState, useRef, type FC } from 'react'; import { Button, Flex, Space, type SegmentedProps, Form } from 'antd' import { useTranslation } from 'react-i18next'; import GroupModelModal from './components/GroupModelModal' import type { ModelListItem, GroupModelModalRef, CustomModelModalRef, ModelPlazaItem, BaseRef, Query } from './types' import SearchInput from '@/components/SearchInput' import PageTabs from '@/components/PageTabs' import GroupModel from './Group' import ModelList from './List' import ModelSquare from './Square' import CustomModelModal from './components/CustomModelModal' import CustomSelect from '@/components/CustomSelect' import { modelTypeUrl, modelProviderUrl } from '@/api/models' const tabKeys = ['group', 'list', 'square'] const ModelManagement: FC = () => { const { t } = useTranslation(); const [activeTab, setActiveTab] = useState('group'); const configModalRef = useRef(null) const customModelModalRef = useRef(null) const groupRef = useRef(null) const squareRef = useRef(null) const [form] = Form.useForm() const query = Form.useWatch([], form) const formatTabItems = () => { return tabKeys.map(value => ({ value, label: t(`modelNew.${value}`), })) } const handleChangeTab = (value: SegmentedProps['value']) => { setActiveTab(value as string); form.resetFields() } const handleEdit = (vo?: ModelListItem | ModelPlazaItem) => { switch(activeTab) { case 'group': configModalRef?.current?.handleOpen(vo as ModelListItem) break case 'square': customModelModalRef?.current?.handleOpen(vo as ModelPlazaItem) break } } const handleRefresh = () => { switch (activeTab) { case 'group': groupRef.current?.getList() break case 'square': squareRef.current?.getList() break } } return ( <>
{activeTab === 'list' && items.map((item) => ({ label: t(`modelNew.${item}`), value: String(item) }))} className="rb:w-30" allowClear={true} placeholder={t('modelNew.type')} /> } {(activeTab === 'list' || activeTab === 'square') && items.map((item) => ({ label: t(`modelNew.${item}`), value: String(item) }))} className="rb:w-30" allowClear={true} placeholder={t('modelNew.provider')} /> } {activeTab !== 'list' && } {activeTab === 'group' && } {activeTab === 'square' && }
{activeTab === 'group' && } {activeTab === 'list' && } {activeTab === 'square' && }
) } export default ModelManagement