/* eslint-disable no-return-assign,no-param-reassign */ import React, { useEffect } from 'react'; import { connect } from 'umi'; import { dispatchHandle } from '@/utils/publicHandle'; import { Card, message, Button, Form, Spin } from 'antd'; import classNames from 'classnames'; import _ from 'lodash'; import utilsStyles from '@/utils/utils.less'; import WorkFLow from '../components/WorkFLow'; import style from '../index.less'; import ExportMonth from './ExportMonth'; import WorkforceForm from './schedule'; const WorkInfo = (props) => { const { match: { params }, dispatch, loading, pageLoading, opsStaff: { workforceInfo }, } = props; const { id } = params; const type = id ? 'edit' : 'add'; /** * @表单提交 */ const [form] = Form.useForm(); const handleSubmit = (e, planState = 0) => { e.preventDefault(); form .validateFields() .then((values) => { const mfVos = []; const payload = _.cloneDeep(values); const workingDay = payload?.workingDay; const holiday = payload?.holiday; if (workingDay?.length > 0) { workingDay.forEach((item) => { const holidayDate = Object.keys(item)?.[0]; const newHoliday = Object.values(item)?.[0]; newHoliday?.forEach((child) => { mfVos.push({ ...child, frequencyType: 1, frequencyDate: holidayDate }); }); }); delete payload.workingDay; } if (holiday?.length > 0) { holiday.forEach((item) => { const holidayDate = Object.keys(item)?.[0]; const newHoliday = Object.values(item)?.[0]; newHoliday?.forEach((child) => { mfVos.push({ ...child, frequencyType: 2, frequencyDate: holidayDate }); }); }); delete payload.holiday; } if (id) payload.id = parseInt(id, 10); payload.planState = planState; if (planState === 1 && !payload.auditRuleId) { message.error('请选择审批流程', 1); return; } console.log('=======', { ...payload, mfVos }); console.log('values', values); dispatchHandle( dispatch, 'opsStaff/common_service_m_schedule_plan_addEdit_patch', { ...payload, mfVos }, () => { closeCurrentPage('/ops/staff/workforce'); }, ); }) .catch(() => { message.error('请补全表单必填项'); }); }; const formRebuild = (res) => { dispatchHandle(dispatch, 'opsStaff/setModelsState', { workforceInfo: res }); }; useEffect(() => { if (id) { dispatchHandle(dispatch, 'opsStaff/common_service_m_schedule_plan_detail_id_get', { id }); } return dispatchHandle(dispatch, 'opsStaff/setModelsState', { workforceInfo: {}, holidayEditDate: undefined, }); }, [id]); useEffect(() => { dispatchHandle(dispatch, 'opsStaff/common_service_m_audit_rule_list_post', { businessType: 'schedule', }); dispatchHandle(dispatch, 'user/account_service_organization_tree_user_post'); return dispatchHandle(dispatch, 'opsStaff/setModelsState', { workforceInfo: {}, holidayEditDate: undefined, }); }, []); return ( <div className={classNames(utilsStyles.disFlexCol, utilsStyles.fullContainer)}> <div className={style.wrap_page}> <Spin spinning={pageLoading || false}> <div> <ExportMonth show={type === 'add'} resetForm={formRebuild} /> <Form style={{ flex: 1 }} form={form} initialValues={{ scheduleFrequencyNumber: 1, }} > <WorkforceForm form={form} type={type} workforceInfo={workforceInfo} /> <Card bodyStyle={{ padding: 20 }} style={{ marginTop: 10 }}> <div style={{ width: 400, marginBottom: 10 }}> <WorkFLow type={type} form={form} /> </div> <div className="pos_end"> <Button disabled={workforceInfo?.planState > 0} style={{ marginRight: 31 }} onClick={handleSubmit} >保存</Button> <Button loading={loading} type="primary" onClick={(e) => handleSubmit(e, 1)}> 发起审批 </Button> </div> </Card> </Form> </div> </Spin> </div> </div> ); }; export default connect(({ opsStaff, loading }) => ({ opsStaff, loading: loading.effects['opsStaff/common_service_m_schedule_plan_addEdit_patch'], pageLoading: loading.effects['opsStaff/common_service_m_schedule_plan_detail_id_get'], }))(WorkInfo);