From b262d88f6499e7800f1ec042d5da4e24fafa9e1f Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 7 Nov 2024 14:57:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=87=E6=8D=A2=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/AuthStore.js | 2 +- .../Online/Input/EmailEditorPopup.jsx | 54 +++++++++++++++---- .../Online/Input/EmailSwitcher.jsx | 6 +-- 3 files changed, 47 insertions(+), 15 deletions(-) diff --git a/src/stores/AuthStore.js b/src/stores/AuthStore.js index 16c06b2..44cfd86 100644 --- a/src/stores/AuthStore.js +++ b/src/stores/AuthStore.js @@ -119,7 +119,7 @@ const useAuthStore = create(devtools((set, get) => ({ let sessionData = window.sessionStorage.getItem('GLOBAL_SALES_LOGIN_USER') if (window.location.port === '4173') { - sessionData = `{"userId":"383","userIdStr":"383,609","emailList":[{"opi_sn":383,"mat_sn":760,"email":"lyj@asiahighlights.com","default":false,"backup":false},{"opi_sn":383,"mat_sn":759,"email":"lyj@chinahighlights.com","default":false,"backup":true},{"opi_sn":383,"mat_sn":758,"email":"lyj@hainatravel.com","default":true,"backup":false}],"username":"廖一军","avatarUrl":"https://static-legacy.dingtalk.com/media/lALPBDDrhXr716HNAoDNAoA_640_640.png","mobile":"+86-18777396951","email":"lyj@hainatravel.com","whatsAppBusiness":"8617458471254","openId":"iioljiPmZ4RPoOYpkFiSn7IKAiEiE","accountList":[{"OPI_SN":383,"OPI_Code":"LYJ","OPI_NameCN":"廖一军","OPI_DEI_SN":7,"OPI_NameEN":"Jimmy Liow"},{"OPI_SN":609,"OPI_Code":"LYJAH","OPI_NameCN":"廖一军(ah)","OPI_DEI_SN":28,"OPI_NameEN":"Jimmy Liow"}]}` + sessionData = `{"userId":"383","userIdStr":"383,609","emailList":[{"opi_sn":383,"mat_sn":760,"email":"lyj@asiahighlights.com","default":false,"backup":false},{"opi_sn":383,"mat_sn":759,"email":"lyj@chinahighlights.com","default":true,"backup":false},{"opi_sn":383,"mat_sn":758,"email":"lyj@hainatravel.com","default":false,"backup":false}],"username":"廖一军","avatarUrl":"https://static-legacy.dingtalk.com/media/lALPBDDrhXr716HNAoDNAoA_640_640.png","mobile":"+86-18777396951","email":"lyj@hainatravel.com","whatsAppBusiness":"8617458471254","openId":"iioljiPmZ4RPoOYpkFiSn7IKAiEiE","accountList":[{"OPI_SN":383,"OPI_Code":"LYJ","OPI_NameCN":"廖一军","OPI_DEI_SN":7,"OPI_NameEN":"Jimmy Liow"},{"OPI_SN":609,"OPI_Code":"LYJAH","OPI_NameCN":"廖一军(ah)","OPI_DEI_SN":28,"OPI_NameEN":"Jimmy Liow"}]}` } if (import.meta.env.DEV && isEmpty(sessionData)) { sessionData = window.localStorage.getItem('GLOBAL_SALES_LOGIN_USER') diff --git a/src/views/Conversations/Online/Input/EmailEditorPopup.jsx b/src/views/Conversations/Online/Input/EmailEditorPopup.jsx index 7287591..78f30ef 100644 --- a/src/views/Conversations/Online/Input/EmailEditorPopup.jsx +++ b/src/views/Conversations/Online/Input/EmailEditorPopup.jsx @@ -64,13 +64,46 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid, 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 })) || []; - const emailListMapped = emailList?.reduce((r, v) => ({ ...r, [v.opi_sn]: v })); + const emailListMapped = emailListOption?.reduce((r, v) => ({ ...r, [v.opi_sn]: v }), {}); + const emailListAddrMapped = emailListOption?.reduce((r, v) => ({ ...r, [v.email]: v }), {}); + // console.log('emailListMapped', emailListOption, emailListAddrMapped); + const mai_sn = quoteid; - const {mailData} = useEmailDetail(mai_sn, _mailData); + const { mailData } = useEmailDetail(mai_sn, _mailData) + + + const [newFromEmail, setNewFromEmail] = useState(fromEmail); + const [emailOPI, setEmailOPI] = useState(fromUser); + const [emailMat, setEmailMat] = useState(''); + useEffect(() => { + const emailUser = mailData.info?.MAI_OPI_SN || fromUser // quote.order_opi + const emailUserMat = mailData.info?.MAI_MAT_SN + + // const _default = + // emailListOption?.find((ele) => ele.opi_sn === emailUser && ele.default === true) || + // emailListOption?.find((ele) => ele.opi_sn === emailUser && ele.backup === true) || + // emailListOption?.find((ele) => ele.opi_sn === emailUser) || + // emailListOption?.find((ele) => ele.default === true) || + // emailListOption?.find((ele) => ele.backup === true) + + setNewFromEmail(fromEmail); + setEmailOPI(emailUser); + + const _findMat = emailListAddrMapped?.[fromEmail]?.mat_sn + setEmailMat(emailUserMat || _findMat) + + return () => {} + }, [fromEmail, fromUser, mailData]) + + const handleSwitchEmail = (labelValue) => { + const { value } = labelValue + setNewFromEmail(value) + const _findMat = emailListAddrMapped?.[value] + setEmailMat(_findMat?.mat_sn) + setEmailOPI(_findMat?.opi_sn) + }; - const emailUser = mailData.info?.MAI_OPI_SN || fromUser // quote.order_opi - const emailUserMat = mailData.info?.MAI_MAT_SN || emailListMapped?.[emailUser]?.mat_sn const { notification, message } = App.useApp(); const [form] = Form.useForm(); @@ -109,7 +142,6 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid, form.setFieldValue('abstract', getAbstract(textContent)); }; - const [newFromEmail, setNewFromEmail] = useState(); const [initialForm, setInitialForm] = useState({}); const [initialContent, setInitialContent] = useState(''); @@ -248,8 +280,8 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid, body.from = newFromEmail || fromEmail; // body.to = 'lyt@hainatravel.com'; // debug: 0 body.attaList = fileList; - body.opi_sn = emailUser || fromUser; - body.mat_sn = emailUserMat; + body.opi_sn = emailOPI; + body.mat_sn = emailMat; console.log('body', body); const values = await form.validateFields(); body.cc = values.cc || ''; @@ -306,7 +338,7 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid, onCancel={() => { form.resetFields(); }} - title={initialForm.subject || `${isEmpty(quoteid) ? '回复: ' : '写邮件: '} ${fromEmail || ''}`} + title={initialForm.subject || `${!isEmpty(quoteid) ? '回复: ' : '写邮件: '} ${fromEmail || ''}`} footer={