perf: 回复全部

main
Lei OT 9 months ago
parent 4dd0fabc3d
commit 3dd44cf624

@ -81,17 +81,16 @@ export const postResendEmailAction = async (body) => {
const encodeEmailInfo = (info) => { const encodeEmailInfo = (info) => {
const encodeQuote = (str = '') => str.replace(/"/g, ''); //.replace(/</g,'&lt;').replace(/>/g,'&gt;') const encodeQuote = (str = '') => str.replace(/"/g, ''); //.replace(/</g,'&lt;').replace(/>/g,'&gt;')
const CSsClean = encodeQuote(info.MAI_CS).includes(',') ? encodeQuote(info.MAI_CS).split(',') : encodeQuote(info.MAI_CS).split(';'); const CSsClean = encodeQuote(info.MAI_CS.replace(';', ',')).split(',');
const tosClean = (encodeQuote(info.MAI_To).includes(',') ? encodeQuote(info.MAI_To).split(',') : encodeQuote(info.MAI_To).split(';')).concat(CSsClean).filter(s => s); const tosClean = (encodeQuote(info.MAI_To.replace(';', ',')).split(',')).map(e => e.trim()).filter(s => s);
const replyTo = info.MAI_Direction === 1 ? info.MAI_To : info.MAI_From; const replyTo = info.MAI_Direction === 1 ? info.MAI_To : info.MAI_From;
const replyToAll = (tosClean.length > 1) ? const replyToAll = [].concat([info.MAI_From], tosClean);
(info.MAI_Direction === 1 ? tosClean.join(',') : [...tosClean, info.MAI_From].join(','))
: (info.MAI_Direction === 1 ? info.MAI_To : info.MAI_From)
return { return {
...info, ...info,
MAI_From: encodeQuote(info.MAI_From), MAI_From: encodeQuote(info.MAI_From),
MAI_To: encodeQuote(info.MAI_To), MAI_To: encodeQuote(info.MAI_To),
tos: [...new Set(tosClean)], tos: [...new Set(tosClean)],
ccs: [...new Set(CSsClean)],
replyToAll, replyToAll,
replyTo, replyTo,
} }

@ -230,10 +230,11 @@ const NewEmail = () => {
} }
readyToInitialContent += generateQuoteContent(mailData, originalContentType) readyToInitialContent += generateQuoteContent(mailData, originalContentType)
break break
case 'replyall': case 'replyall': {
const tosNotMe = quotedMailSenderObj ? (info?.replyToAll || []).filter(addr => addr.indexOf(quotedMailSenderObj) === -1).join(', ') : (info?.replyToAll || []).join(', ');
_formValues = { _formValues = {
from: quotedMailSenderObj, from: quotedMailSenderObj,
to: info?.replyToAll || orderReceiver, to: isEmpty(info?.replyToAll) ? orderReceiver : tosNotMe,
cc: info?.MAI_CS || '', cc: info?.MAI_CS || '',
// bcc: quote.bcc || '', // bcc: quote.bcc || '',
subject: `Re: ${info.MAI_Subject || ''}`, subject: `Re: ${info.MAI_Subject || ''}`,
@ -241,6 +242,7 @@ const NewEmail = () => {
} }
readyToInitialContent += generateQuoteContent(mailData, originalContentType) readyToInitialContent += generateQuoteContent(mailData, originalContentType)
break break
}
case 'forward': case 'forward':
_formValues = { _formValues = {
from: quotedMailSenderObj, from: quotedMailSenderObj,
@ -641,7 +643,7 @@ const NewEmail = () => {
<Form.Item className='w-full'> <Form.Item className='w-full'>
<Space.Compact className='w-full'> <Space.Compact className='w-full'>
<Form.Item name={'to'} label='收件人' rules={[{ required: true }]} className='!flex-1'> <Form.Item name={'to'} label='收件人' rules={[{ required: true }]} className='!flex-1'>
<Input className='w-full' /> <Input.TextArea rows={1} autoSize className='w-full' />
</Form.Item> </Form.Item>
<Flex gap={4}> <Flex gap={4}>
{!showCc && ( {!showCc && (
@ -658,13 +660,13 @@ const NewEmail = () => {
</Space.Compact> </Space.Compact>
</Form.Item> </Form.Item>
<Form.Item label='抄&nbsp;&nbsp;&nbsp;&nbsp;送' name={'cc'} hidden={!showCc} className='w-full pt-1'> <Form.Item label='抄&nbsp;&nbsp;&nbsp;&nbsp;送' name={'cc'} hidden={!showCc} className='w-full pt-1'>
<Input /> <Input.TextArea rows={1} autoSize />
</Form.Item> </Form.Item>
<Form.Item label='密&nbsp;&nbsp;&nbsp;&nbsp;送' name={'bcc'} hidden={!showBcc} className='w-full pt-1'> <Form.Item label='密&nbsp;&nbsp;&nbsp;&nbsp;送' name={'bcc'} hidden={!showBcc} className='w-full pt-1'>
<Input /> <Input.TextArea rows={1} autoSize />
</Form.Item> </Form.Item>
<Form.Item label='主&nbsp;&nbsp;&nbsp;&nbsp;题' name={'subject'} rules={[{ required: true }]} className='w-full pt-1'> <Form.Item label='主&nbsp;&nbsp;&nbsp;&nbsp;题' name={'subject'} rules={[{ required: true }]} className='w-full pt-1'>
<Input /> <Input.TextArea rows={1} autoSize />
</Form.Item> </Form.Item>
<Form.Item name='atta' label='' className='w-full py-1 border-b-0' valuePropName='fileList' getValueFromEvent={normFile}> <Form.Item name='atta' label='' className='w-full py-1 border-b-0' valuePropName='fileList' getValueFromEvent={normFile}>
<Flex justify='space-between'> <Flex justify='space-between'>

Loading…
Cancel
Save