diff --git a/src/views/NewEmail.jsx b/src/views/NewEmail.jsx index f048c8b..6c920aa 100644 --- a/src/views/NewEmail.jsx +++ b/src/views/NewEmail.jsx @@ -1,8 +1,7 @@ import { useEffect, useState, useRef, useCallback, useMemo } from 'react' import { useParams, useNavigate, useLocation } from 'react-router-dom'; -import { App, ConfigProvider, Button, Form, Input, Flex, Checkbox, Popconfirm, Select, Space, Upload, Divider, Modal, Tabs, Radio, Typography } from 'antd' -import { UploadOutlined, LoadingOutlined, SaveOutlined, SendOutlined, CheckCircleOutlined } from '@ant-design/icons' -import '@dckj/react-better-modal/dist/index.css' +import { App, ConfigProvider, Button, Form, Input, Flex, Checkbox, Popconfirm, Select, Space, Upload, Divider, Modal, Tabs, Radio, Typography, } from 'antd' +import { UploadOutlined, LoadingOutlined, SaveOutlined, SendOutlined, CheckCircleOutlined, ExclamationCircleFilled } from '@ant-design/icons' import useStyleStore from '@/stores/StyleStore' // import useConversationStore from '@/stores/ConversationStore' import useAuthStore from '@/stores/AuthStore' @@ -23,6 +22,7 @@ import PaymentlinkBtn from '@/views/Conversations/Online/Input/PaymentlinkBtn' import { TextIcon } from '@/components/Icons'; import { EMAIL_ATTA_HOST, POPUP_FEATURES } from '@/config'; +const {confirm} = Modal; // 禁止上传的附件类型 // .application, .exe, .app const disallowedAttachmentTypes = [ @@ -69,7 +69,7 @@ const generateQuoteContent = (mailData, isRichText = true) => { return isRichText ? html : parseHTMLText(html) } -const generateMailContent = (mailData) => `

${mailData.content}


` +const generateMailContent = (mailData) => `${mailData.content}
` /** * 独立窗口编辑器 @@ -93,10 +93,14 @@ const NewEmail = () => { const emailListMatMapped = useMemo(() => emailListOption?.reduce((r, v) => ({ ...r, [v.mat_sn]: v }), {}), [emailListOption]) // console.log('emailListMapped', emailListOption, emailListAddrMapped); + const [emailAccount, setEmailAccount] = useState({}); + const [emailAccountOPI, setEmailAccountOPI] = useState(0); + const mai_sn = pageParam.quoteid // activeEdit.quoteid const { loading: quoteLoading, mailData, orderDetail, postEmailSaveOrSend } = useEmailDetail(mai_sn, null, pageParam.oid) const { loading: loadingTamplate, templateContent } = useEmailTemplate(templateKey, {coli_sn: pageParam.oid, opi_sn: orderDetail.opi_sn || mailData.info?.MAI_OPI_SN || 0, lgc: 1}); - const { signature } = useEmailSignature(orderDetail.opi_sn || mailData.info?.MAI_OPI_SN || 0) + const initOPI = useMemo(() => emailAccountOPI || orderDetail.opi_sn || mailData.info?.MAI_OPI_SN || 0, [emailAccountOPI, mailData, orderDetail]) + const { signature } = useEmailSignature(initOPI) const [initialContent, setInitialContent] = useState('') const [showQuoteContent, setShowQuoteContent] = useState(false) @@ -166,7 +170,7 @@ const NewEmail = () => { useEffect(() => { // console.log('useEffect 1---- \nform.setFieldsValue '); if (isEmpty(mailData.content) && isEmpty(orderDetail.order_no)) { - return () => {} + // return () => {} } const docTitle = mailData.info?.MAI_Subject || 'New Email-'; document.title = docTitle @@ -187,13 +191,13 @@ const NewEmail = () => { const quotedMailSender = _findMatOldE?.email || '' const sender = quotedMailSender || orderSender - const quotedMailSenderObj = sender; // { key: sender, label: sender, value: sender } + const quotedMailSenderObj = emailAccount?.email || sender; // { key: sender, label: sender, value: sender } const defaultMAT = emailListAddrMapped?.[sender]?.mat_sn || '' const _form2 = { coli_sn: Number(pageParam.oid) || info?.MAI_COLI_SN || '', - mat_sn: info?.MAI_MAT_SN || defaultMAT, - opi_sn: info?.MAI_OPI_SN || orderDetail.opi_sn || '', + mat_sn: emailAccount?.mat_sn || info?.MAI_MAT_SN || defaultMAT, + opi_sn: emailAccount?.opi_sn || info?.MAI_OPI_SN || orderDetail.opi_sn || '', } let readyToInitialContent = ''; @@ -207,6 +211,7 @@ const NewEmail = () => { // const _initialContent = isEmpty(mailData.info) ? signatureBody : signatureBody+preQuoteBody + // 排除草稿: `编辑`有id 的邮件 if (!isEmpty(mailData.info) && !['edit'].includes(pageParam.action)) { readyToInitialContent = orderPrefix + signatureBody } @@ -260,7 +265,7 @@ const NewEmail = () => { subject: `${info.MAI_Subject || templateFormValues.subject || ''}`, ..._form2, } - readyToInitialContent = generateMailContent({ content: templateContent.bodycontent || readyToInitialContent || '' }) + readyToInitialContent = generateMailContent({ content: templateContent.bodycontent || readyToInitialContent || `
${signatureBody}` || '' }) setFileList(mailData.attachments.map(ele => ({ uid: ele.ATI_SN, name: ele.ATI_Name, url: ele.ATI_ServerFile, fullPath: `${EMAIL_ATTA_HOST}${ele.ATI_ServerFile}` }))) break @@ -272,7 +277,7 @@ const NewEmail = () => { setInitialContent(readyToInitialContent); return () => {} - }, [orderDetail.order_no, quoteLoading, loadingTamplate, signature]) + }, [orderDetail.order_no, quoteLoading, loadingTamplate, emailAccount, signature]) // const readFromTemplate = () => { @@ -316,6 +321,9 @@ const NewEmail = () => { // setNewFromEmail(value) const _findMat = emailListAddrMapped?.[value] form.setFieldsValue({ mat_sn: _findMat?.mat_sn, opi_sn: _findMat?.opi_sn }) + // console.log(_findMat, 'handleSwitchEmail') + setEmailAccount(_findMat) + setEmailAccountOPI(_findMat?.opi_sn) } const [isRichText, setIsRichText] = useState(mobile === false) @@ -508,7 +516,7 @@ const NewEmail = () => { body.contenttype = isRichText ? 'text/html' : 'text/plain' try { - // console.log('postSendEmail', body, '\n', msgObj); + // console.log('postSendEmail', body, '\n'); // return; const mailSavedId = await postEmailSaveOrSend(body, isDraft) form.setFieldsValue({