import React, { useState, useEffect } from "react"; import "@ant-design/compatible/assets/index.css"; import { Alert, Modal, Form, message, InputNumber } from "antd"; import { ListResult, SaveParams, saveApi, Staff } from "../api"; const FormItem = Form.Item; const maxFormProps = { labelCol: { span: 6 }, wrapperCol: { span: 14 }, }; interface Props { visible: boolean; onCancel: () => any; detail?: ListResult; } export default function ConfigModal({ visible, onCancel, detail }: Props) { const [form] = Form.useForm(); console.log("detail", detail); const [confirmLoading, setConfirmLoading] = useState(false); useEffect(() => { if (visible) { form.resetFields(); // init form values const initialValues: any = {}; detail?.userInfoVOS?.forEach((user: Staff) => { initialValues[user.staffId] = user.manHoursProp; }); form.setFieldsValue(initialValues); } }, [visible]); function handleSubmit(fieldsValue: any) { const configItems = detail!.userInfoVOS.map((user: Staff) => ({ id: user.id, staffId: user.staffId, staffName: user.staffName, manHoursProp: fieldsValue[user.staffId], })); const sum = configItems.reduce((acc: number, cur: Staff) => acc + cur.manHoursProp, 0); if (sum !== 1) { message.error("所有人员分成占比之和必须等于1"); return; } const params: SaveParams = { shopId: detail!.shopId, shopName: detail!.shopName, teamId: detail!.teamId, teamName: detail!.teamName, userInfoVOS: configItems, }; setConfirmLoading(true); saveApi(params) .then(() => { message.success("配置成功!"); setConfirmLoading(false); onCancel(); }) .catch((e) => { setConfirmLoading(false); message.error(e.message); }); } return ( form.submit()} onCancel={onCancel} >
{detail?.userInfoVOS?.map((user: Staff) => ( ))}
); }