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 { useEffect } from "react"; import TrainContentTreeSelect from "@web/src/components/models/trainContent/train-content-tree-select"; import DepartmentChildrenSelect from "@web/src/components/models/department/department-children-select"; 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.id); // }); // }, [traincontents]); const { form, formValue, setVisible, visible, editingRecord, setEditingRecord } = useMainContext() const { create, update } = useStaff(); const handleOk = async () => { const values = await form.getFieldsValue(); try { const staffData = { username: values.username, showname: values.username, department: values.deptId ? { connect: { id: values.deptId } } : undefined, position: values.positionId ? { connect: { id: values.positionId } } : undefined, absent: values.absent, trainSituations: values.trainSituations?.length > 0 ? { create: values.trainSituations.map((situation) => ({ trainContent: { connect: { id: situation.trainContentId } }, mustTrainTime: parseFloat(situation.mustTrainTime) || 0, alreadyTrainTime: 0, score: 0 })) } : undefined }; if (editingRecord?.id) { await update.mutateAsync({ where: { id: editingRecord.id }, data: { ...staffData, trainSituations: { deleteMany: {}, create: values.trainSituations?.map((situation) => ({ trainContent: { connect: { id: situation.trainContentId } }, mustTrainTime: parseFloat(situation.mustTrainTime) || 0, alreadyTrainTime: situation.alreadyTrainTime || 0, // score: situation.score || 0 })) || [] } } }); } else { await create.mutateAsync({ data: staffData }); } toast.success("保存成功"); setVisible(false); setEditingRecord(null); form.resetFields(); } catch (error) { console.error("保存失败:", error); toast.error("保存失败"); } }; const handleCancel = () => { setVisible(false); setEditingRecord(null); form.resetFields(); }; useEffect(() => { if (visible && editingRecord) { form.setFieldsValue(editingRecord); } }, [visible, editingRecord]); return ( <>
{(fields, { add, remove }) => ( <> {fields.map(({ key, name, ...restField }) => (
))} )}
{/* */} ) }