feat: 邮件窗口: 保留会话ID;

2.0/email-builder
Lei OT 11 months ago
parent 5f7eb960bf
commit 70890dfb43

@ -26,7 +26,7 @@ export const postSendEmail = async (body) => {
attaList.forEach(function (item) { attaList.forEach(function (item) {
formData.append('attachment', item); formData.append('attachment', item);
}); });
const result = await postForm(`${EMAIL_HOST}/sendmail`, formData); const {result} = await postForm(`${EMAIL_HOST}/sendmail`, formData);
return result; return result;
}; };

@ -229,6 +229,9 @@ export const sentMsgTypeMapped = {
msgtext: { msgtext: {
...msg, ...msg,
}, },
msgOrigin: {
...msg,
},
}), }),
}, },
}; };

@ -20,7 +20,7 @@ const TagColorStyle = (tag) => {
const EmailDetail = ({ open, setOpen, emailMsg, ...props }) => { const EmailDetail = ({ open, setOpen, emailMsg, ...props }) => {
let { conversationid, order_opi } = emailMsg let { conversationid, order_opi } = emailMsg
const { mai_sn, id } = emailMsg.msgOrigin?.email || emailMsg.msgOrigin || {} const { mai_sn, id } = emailMsg.msgOrigin?.email || emailMsg.msgOrigin || {} // todo: , id,
const mailID = mai_sn || id const mailID = mai_sn || id
const [initialPosition, setInitialPosition] = useState({}) const [initialPosition, setInitialPosition] = useState({})
const [initialSize, setInitialSize] = useState({}) const [initialSize, setInitialSize] = useState({})

@ -76,7 +76,7 @@ const EmailComposer = ({ ...props }) => {
</Button> </Button>
))} */} ))} */}
{/* <EmailEditor {...{ open, setOpen }} fromEmail={fromEmail} key={'email-editor'} /> */} {/* <EmailEditor {...{ open, setOpen }} fromEmail={fromEmail} key={'email-editor'} /> */}
<EmailEditorPopup {...{ open, setOpen }} fromEmail={fromEmail} fromUser={fromUser} key={'email-editor-popup'} /> <EmailEditorPopup {...{ open, setOpen }} fromEmail={fromEmail} fromUser={fromUser} conversationid={currentConversation.sn} key={'email-editor-popup'} />
{/* <EmailEditorPopup2 {...{ open, setOpen }} fromEmail={fromEmail} key={'email-editor-popup2'} /> */} {/* <EmailEditorPopup2 {...{ open, setOpen }} fromEmail={fromEmail} key={'email-editor-popup2'} /> */}
</Flex> </Flex>
); );

@ -67,6 +67,17 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
const { notification, message } = App.useApp(); const { notification, message } = App.useApp();
const [form] = Form.useForm(); const [form] = Form.useForm();
// ID,
// , 使focus, ID
// , , ID,
const [stickToCid, setStickToCid] = useState(conversationid);
useEffect(() => {
setStickToCid(conversationid)
return () => {}
}, [])
const [isRichText, setIsRichText] = useState(mobile === false); const [isRichText, setIsRichText] = useState(mobile === false);
// const [isRichText, setIsRichText] = useState(false); // // const [isRichText, setIsRichText] = useState(false); //
const [htmlContent, setHtmlContent] = useState(''); const [htmlContent, setHtmlContent] = useState('');
@ -198,7 +209,7 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
status: 'waiting', status: 'waiting',
...msgObj, ...msgObj,
// id: `${currentConversation.sn}.${msgObj.id}`, // id: `${currentConversation.sn}.${msgObj.id}`,
id: `${conversationid}.${msgObj.id}`, // id: `${stickToCid}.${msgObj.id}`,
}; };
// olog('invoke upload', msgObjMerge) // olog('invoke upload', msgObjMerge)
const contentToRender = sentMsgTypeMapped[msgObjMerge.type].contentToRender(msgObjMerge); const contentToRender = sentMsgTypeMapped[msgObjMerge.type].contentToRender(msgObjMerge);
@ -220,24 +231,31 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
body.mat_sn = 278; // todo: body.mat_sn = 278; // todo:
console.log('body', body); console.log('body', body);
const values = await form.validateFields(); const values = await form.validateFields();
body.cc = values.cc || '';
body.bcc = values.bcc || '';
const msgObj = { const msgObj = {
type: 'email', type: 'email',
id: uuid(), id: uuid(),
from: body.from, from: body.from,
to: values.to, to: values.to,
cc: values.cc, cc: values.cc || '',
bcc: values.bcc, bcc: values.bcc || '',
subject: values.subject,
content: body.mailcontent,
email: { email: {
subject: values.subject, subject: values.subject,
content: body.mailcontent, content: body.mailcontent,
}, },
} }
setSendLoading(true); setSendLoading(true);
body.externalID = conversationid; body.externalID = stickToCid;
body.actionID = `${conversationid}.${msgObj.id}`; body.actionID = `${stickToCid}.${msgObj.id}`;
try { try {
const result = await postSendEmail(body); const result = await postSendEmail(body); // todo: id,
setSendLoading(false); setSendLoading(false);
const mailSavedId = result.id || '';
msgObj.id = mailSavedId
msgObj.email.mai_sn = mailSavedId;
invokeEmailMessage(msgObj); invokeEmailMessage(msgObj);
setOpen(false); setOpen(false);
@ -296,9 +314,9 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
requiredMark={false} requiredMark={false}
// labelCol={{ span: 3 }} // labelCol={{ span: 3 }}
> >
<Form.Item label='收件人' className='w-full'> <Form.Item className='w-full'>
<Space.Compact className='w-full'> <Space.Compact className='w-full'>
<Form.Item name={'to'} rules={[{ required: true }]} className='!flex-1'> <Form.Item name={'to'} label='收件人' rules={[{ required: true }]} className='!flex-1'>
<Input className='w-full' /> <Input className='w-full' />
</Form.Item> </Form.Item>
<Flex gap={4}> <Flex gap={4}>

@ -206,7 +206,7 @@ const MessagesWrapper = ({ updateRead = true, forceGetMessages }) => {
onCancel={() => setNewChatModalVisible(false)} onCancel={() => setNewChatModalVisible(false)}
/> />
{/* <EmailEditor open ={openEmailEditor} setOpen={setOpenEmailEditor} reference={ReferEmailMsg} setRefernce={setReferEmailMsg} {...{ fromEmail, }} key={'email-editor-reply'} /> */} {/* <EmailEditor open ={openEmailEditor} setOpen={setOpenEmailEditor} reference={ReferEmailMsg} setRefernce={setReferEmailMsg} {...{ fromEmail, }} key={'email-editor-reply'} /> */}
<EmailEditorPopup open={openEmailEditor} setOpen={setOpenEmailEditor} fromEmail={fromEmail} quoteid={ReferEmailMsg.mai_sn || ReferEmailMsg.id} key={`email-editor-reply-top-popup_${ReferEmailMsg.id}`} /> <EmailEditorPopup open={openEmailEditor} setOpen={setOpenEmailEditor} fromEmail={fromEmail} quoteid={ReferEmailMsg.mai_sn || ReferEmailMsg.id} conversationid={currentConversation.sn} key={`email-editor-reply-top-popup_${ReferEmailMsg.id}`} />
<EmailDetail open={openEmailDetail} setOpen={setOpenEmailDetail} emailMsg={emailDetail} key={`email-detail-${emailDetail.id}`} /> <EmailDetail open={openEmailDetail} setOpen={setOpenEmailDetail} emailMsg={emailDetail} key={`email-detail-${emailDetail.id}`} />
</> </>
); );

Loading…
Cancel
Save