From e73839c1d0bbd33b8102fe6946219aeb3f4435cf Mon Sep 17 00:00:00 2001 From: Lei OT Date: Fri, 29 Nov 2024 16:05:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=82=AE=E4=BB=B6=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E5=9B=9E=E5=A4=8D,=20=E5=88=87=E6=8D=A2=E5=85=A8=E6=96=87?= =?UTF-8?q?=E5=A1=AB=E5=85=85=E8=8D=89=E7=A8=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Online/Input/EmailComposer.jsx | 19 +++++++++++++------ .../Online/Input/EmailEditorPopup.jsx | 6 ++++-- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/views/Conversations/Online/Input/EmailComposer.jsx b/src/views/Conversations/Online/Input/EmailComposer.jsx index c05b455..f295455 100644 --- a/src/views/Conversations/Online/Input/EmailComposer.jsx +++ b/src/views/Conversations/Online/Input/EmailComposer.jsx @@ -50,11 +50,6 @@ const EmailComposer = ({ ...props }) => { const [open, setOpen] = useState(false) const [fromEmail, setFromEmail] = useState('') const [toEmail, setToEmail] = useState('') - const openEditor = (email_addr) => { - setOpen(true) - setFromEmail(email_addr) - setToEmail(currentConversation?.channels?.email || customerDetail?.email || '') - } const lastFocusedFieldRef = useRef(null); @@ -63,11 +58,12 @@ const EmailComposer = ({ ...props }) => { const talkabled = !isEmpty(currentConversation.sn) && websocketOpened const [sendLoading, setSendLoading] = useState(false) + const [quickData, setQuickData] = useState({ suject: '', content: ''}); + const handleFocus = (field) => { lastFocusedFieldRef.current = field; } - const addEmoji = (emoji) => { const _field = lastFocusedFieldRef.current || 'mailcontent'; // if (focusedField) { @@ -80,6 +76,16 @@ const EmailComposer = ({ ...props }) => { } + const openEditor = (email_addr) => { + setOpen(true) + setFromEmail(email_addr) + setToEmail(currentConversation?.channels?.email || customerDetail?.email || '') + setQuickData({ + subject: form.getFieldValue('subject'), + content: form.getFieldValue('mailcontent'), + }) + } + /** * 保存成功, 推一个气泡 * 再从异步通知更新消息发送状态 @@ -252,6 +258,7 @@ const EmailComposer = ({ ...props }) => { fromOrder={currentConversation.coli_sn} conversationid={currentConversation.sn} toEmail={toEmail} + quickData={quickData} action='new' key={'email-new-editor-popup'} /> diff --git a/src/views/Conversations/Online/Input/EmailEditorPopup.jsx b/src/views/Conversations/Online/Input/EmailEditorPopup.jsx index 09b75b8..ae0963c 100644 --- a/src/views/Conversations/Online/Input/EmailEditorPopup.jsx +++ b/src/views/Conversations/Online/Input/EmailEditorPopup.jsx @@ -72,8 +72,9 @@ const generateMailContent = (mailData) => ` * @property {string} toEmail - 收件人邮箱 * @property {string} conversationid - 会话ID * @property {string} quoteid - 引用邮件ID + * @property {object} quickData - 纯文本输入的草稿. 仅在从快速窗口打开时传递 */ -const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, fromOrder, toEmail, conversationid, quoteid, initial = {}, mailData: _mailData, action = 'reply', ...props }) => { +const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, fromOrder, toEmail, conversationid, quoteid, initial = {}, mailData: _mailData, action = 'reply', quickData = {}, ...props }) => { const { notification, message } = App.useApp(); const [form] = Form.useForm(); @@ -225,9 +226,10 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, fromOrder, toEma setInitialContent(thisBody) } else if (action === 'new') { - const newEmail = { to: newToEmail, } + const newEmail = { to: newToEmail, subject: quickData?.subject || '' } form.setFieldsValue(newEmail); setInitialForm(newEmail); + setInitialContent(quickData?.content || ''); } return () => {};