React类组件需要使用Apollo做两次提交的使用方式:
import React from 'react';
import { Col, Form, Input, Modal, Row, Spin, message, Checkbox, Radio, DatePicker, Button, Select, Switch } from 'antd';
import { FormComponentProps } from 'antd/es/form';
import { Query, Mutation } from 'react-apollo';
import moment from 'moment';
import { generateFormFields } from '@/utils/utils';
import Uploader from '@/components/Uploader';
import SelectAuto from '@/components/SecurityScope';
import {
createMeeting as CREATE_MEETING,
updateMeeting as UPDATE_MEETING,
employees as QUERY_PERSON,
departments as QUERY_DEPARTMENT,
queryCheckInPeoples as QUERYCHECKINPEOPLES,
dataDictionary as DATADICTIONARY,
sendMeetingToUser as SENDMEETINGTOUSER,
} from './gqls/conferenceManage.gql';
import TreeSelectData from '../components/TreeSelectMeetingDataType';
import { connect } from 'dva';
const { Option } = Select;
const { RangePicker } = DatePicker;
export const ConferenceFormCreate = Form.create(formValue)((props: any) => {
const submit = async (createMeetingRoom: any ,sendMeetingMessage: any,input: any) =>{
let meetingData = await createMeetingRoom({
variables: {
input: {
data: {
...input,
creator: props.userId,
},
},
},
});
console.log('xxxxxxxxxxxxxxx',meetingData)
sendMeetingMessage({
variables: {
id: meetingData?.data?.createMeeting?.meeting?.id
}
});
}
return (
<Mutation mutation={CREATE_MEETING}>
{(createMeetingRoom: any, { loading }: any): any => (
<Mutation mutation={SENDMEETINGTOUSER}>
{(sendMeetingMessage: any, { loading }: any):any=>(
<Spin spinning={loading}>
<ConferenceForm {...props} submit={
async (input:any)=> {
await submit(createMeetingRoom,sendMeetingMessage,input);
}
} />
</Spin>
)}
</Mutation>
)}
</Mutation>
);
});
.gql文件:
#签到负责人默认本支部所有支委
query queryCheckInPeoples ($organization: ID!, $filter: EmployeeFilter, $pageSize: Int = 10000) {
employees(organization: $organization, filter:$filter, pageSize: $pageSize){
edges{
node{
id
name
}
}
}
}
mutation sendMeetingToUser($id:ID!){
sendMeetingToUser(id:$id)
}