import React, { useEffect, useState } from 'react'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog'; import type { Body_create_model_api_models_create_post } from '@/api/models/Body_create_model_api_models_create_post'; import type { Body_update_model_api_models__model_id__put } from '@/api/models/Body_update_model_api_models__model_id__put'; import ModelForm from './components/ModelForm'; import { api } from '@/lib/api'; import { ConfirmDialog } from '@/components/block/confirm-dialog'; interface ModelItem { id: number; tag: Record; cover_url: string; status: number; create_time: string; } const ModelPage: React.FC = () => { const [models, setModels] = useState([]); const [_, setLoading] = useState(false); const [selected, setSelected] = useState(null); const [open, setOpen] = useState(false); const [editMode, setEditMode] = useState(false); const fetchModels = async () => { setLoading(true); try { const res = await api.Service.getModelsListApiModelsListGet({}); setModels(res.data || []); } finally { setLoading(false); } }; useEffect(() => { fetchModels(); }, []); const handleAdd = () => { setEditMode(false); setSelected(null); setOpen(true); }; const handleEdit = (item: ModelItem) => { setEditMode(true); setSelected(item); setOpen(true); }; const handleDelete = async (id: number) => { ConfirmDialog.confirm({ content: '确定要删除该模特吗?', onConfirm: async () => { await api.Service.deleteModelApiModelsModelIdDelete({ modelId: id }); fetchModels(); }, }); }; const handleFormSubmit = async (data: Body_create_model_api_models_create_post | Body_update_model_api_models__model_id__put, id?: number) => { console.log(data); if (editMode && id) { await api.Service.updateModelApiModelsModelIdPut({ modelId: id, formData: data as Body_update_model_api_models__model_id__put }); } else { await api.Service.createModelApiModelsCreatePost({ formData: data as Body_create_model_api_models_create_post }); } setOpen(false); fetchModels(); }; return (

模特维护

{models.map(item => (
cover
ID: {item.id}
标签: {Object.values(item.tag).join('_')}
状态: {item.status === 1 ? '启用' : '禁用'}
创建时间: {item.create_time}
))}
{editMode ? '编辑模特' : '新建模特'} setOpen(false)} editMode={editMode} />
); }; export default ModelPage;