import { api, useStaff } from "@nice/client"; import { useMainContext } from "../../layout/MainProvider"; import toast from "react-hot-toast"; import { Button, Form, Input, Modal, Select } from "antd"; import DepartmentSelect from "@web/src/components/models/department/department-select"; import { useEffect } from "react"; export default function StaffModal() { const { data: traincontents} = api.trainSituation.findMany.useQuery({ select:{ id: true, trainContent:{ select:{ id: true, title: true, type: true, } }, } }); useEffect(() => { traincontents?.forEach((situation)=>{ console.log(situation.trainContent.title); }); }, [traincontents]); const { form, formValue, setVisible, visible, editingRecord } = useMainContext() const { create, update } = useStaff(); const handleOk = async () => { const values = await form.getFieldsValue(); console.log(values.username); try { if (editingRecord && editingRecord.id) { const result = await update.mutateAsync( { where: { id: editingRecord.id, }, data: { username: values.username, deptId: values.deptId, position: values.position, absent: values.absent, trainSituations: values.trainSituations ? { upsert: values.trainSituations.map((situation) => ({ where: { id: situation.id || "" }, update: { mustTrainTime: situation.mustTrainTime, trainContent: { connect: { id: situation.trainContentId } }, // 其他字段... }, })) } : undefined, updatedAt: new Date() } as any } ); // console.log(result); } else { await create.mutateAsync( { data: { username: values.username, deptId: values.deptId, createdAt: new Date(), showname: values.username, absent: values.absent, trainSituations: { create: values.trainSituations.map((situation) => ({ trainContent: { connect: { id: situation.trainContentId } }, mustTrainTime: situation.mustTrainTime, // 其他必填字段... })) } } } ); } toast.success("保存成功"); setVisible(false); } catch (error) { toast.error("保存失败"); throw error; } }; const handleCancel = () => { setVisible(false); }; return ( <> {/* 模态框样式更新 */} 否 是 {(fields, { add, remove }) => ( <> {fields.map(({ key, name, ...restField }) => ( {/* 动态渲染培训内容选项 */} {traincontents?.map((situation) => ( {situation.trainContentId} ))} remove(name)}>删除 ))} add()}>添加培训 > )} {console.log(traincontents);}}>TEST > ) }