perf: 新邮件: 自动填充收件地址

2.0/email-builder
Lei OT 11 months ago
parent 0790bd3c1f
commit 19472ca1e1

@ -199,7 +199,7 @@ const EmailDetail = ({ open, setOpen, emailMsg, ...props }) => {
initial={{ ...initialPosition, ...initialSize }}
mailData={mailData}
action={action}
key={`email-editor-inner-${action}-popup_${mailID}`}
key={`email-detail-inner-${action}-popup_${mailID}`}
/>
</>
)

@ -60,7 +60,7 @@ const generateMailContent = (mailData) => `
${mailData.content}
</p>`
const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid, quoteid, initial = {}, mailData: _mailData, action = 'reply', ...props }) => {
const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, toEmail, conversationid, quoteid, initial = {}, mailData: _mailData, action = 'reply', ...props }) => {
const [mobile] = useStyleStore((state) => [state.mobile]);
const [userId, username, emailList] = useAuthStore((state) => [state.loginUser.userId, state.loginUser.username, state.loginUser.emailList]);
const emailListOption = emailList?.map(ele => ({ ...ele, label: ele.email, key: ele.email, value: ele.email })) || [];
@ -74,6 +74,7 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
const [newFromEmail, setNewFromEmail] = useState(fromEmail);
const [newToEmail, setNewToEmail] = useState(toEmail);
const [emailOPI, setEmailOPI] = useState(fromUser);
const [emailMat, setEmailMat] = useState('');
useEffect(() => {
@ -89,12 +90,13 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
setNewFromEmail(fromEmail);
setEmailOPI(emailUser);
setNewToEmail(toEmail);
const _findMat = emailListAddrMapped?.[fromEmail]?.mat_sn
setEmailMat(emailUserMat || _findMat)
return () => {}
}, [fromEmail, fromUser, mailData])
}, [fromEmail, fromUser, toEmail, mailData])
const handleSwitchEmail = (labelValue) => {
const { value } = labelValue
@ -151,7 +153,7 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
useEffect(() => {
// console.log('quoteid', quoteid, isEmpty(quoteid), isEmpty(mailData.info));
if (isEmpty(quoteid)) {
if (isEmpty(quoteid) && action !== 'new') {
return () => {};
}
const { info, } = mailData
@ -188,10 +190,14 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
// console.log('thisBody', thisBody);
setInitialContent(thisBody)
} else if (action === 'new') {
const newEmail = { to: newToEmail, }
form.setFieldsValue(newEmail);
setInitialForm(newEmail);
}
return () => {};
}, [open, mailData.info]);
}, [open, action, mailData.info]);
const [openPlainTextConfirm, setOpenPlainTextConfirm] = useState(false);
const handlePlainTextOpenChange = ({ target }) => {

@ -16,7 +16,7 @@ const EmailNewBtn = ({ ...props }) => {
// const websocketOpened = useConversationStore((state) => state.websocketOpened);
const currentConversation = useConversationStore((state) => state.currentConversation)
// const talkabled = !isEmpty(currentConversation.sn) && websocketOpened;
const { orderDetail } = useOrderStore()
const { orderDetail, customerDetail } = useOrderStore()
const emailListOption = emailList?.map((ele) => ({ ...ele, label: ele.email, key: ele.email, value: ele.email })) || []
@ -39,9 +39,11 @@ const EmailNewBtn = ({ ...props }) => {
const [open, setOpen] = useState(false)
const [fromEmail, setFromEmail] = useState('')
const [toEmail, setToEmail] = useState('')
const openEditor = (email_addr) => {
setOpen(true)
setFromEmail(email_addr)
setToEmail(customerDetail?.email || '')
}
return (
<ConfigProvider theme={{ token: { colorPrimary: '#6366f1' } }}>
@ -77,7 +79,7 @@ const EmailNewBtn = ({ ...props }) => {
<Button icon={<EditIcon />} type='primary' onClick={() => openEditor(pickEmail.key)}>
新邮件
</Button>
<EmailEditorPopup {...{ open, setOpen }} fromEmail={fromEmail} fromUser={fromUser} conversationid={currentConversation.sn} key={'email-editor-popup'} />
<EmailEditorPopup {...{ open, setOpen }} fromEmail={fromEmail} fromUser={fromUser} conversationid={currentConversation.sn} toEmail={toEmail} action='new' key={'email-new-editor-popup'} />
</Flex>
</ConfigProvider>
)

@ -213,7 +213,7 @@ const MessagesWrapper = ({ updateRead = true, forceGetMessages }) => {
fromUser={Number(orderDetail?.opi_sn || userId)}
quoteid={ReferEmailMsg.mai_sn || ReferEmailMsg.id}
conversationid={currentConversation.sn}
key={`email-editor-reply-top-popup_${ReferEmailMsg.id}`}
key={`email-msg-reply-top-popup_${ReferEmailMsg.id}`}
/>
<EmailDetail open={openEmailDetail} setOpen={setOpenEmailDetail} emailMsg={emailDetail} key={`email-detail-${emailDetail.id}`} />
</>

Loading…
Cancel
Save