fix: 切换邮箱地址

2.0/email-builder
Lei OT 11 months ago
parent c0a830f47e
commit b262d88f64

@ -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')

@ -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={
<div className='w-full flex gap-6 justify-start items-center text-indigo-600'>
<Button type='primary' onClick={onHandleSend} loading={sendLoading}>
@ -317,10 +349,10 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
纯文本
</Checkbox>
</Popconfirm>
<Select
<Select labelInValue
options={emailListOption}
value={newFromEmail || fromEmail}
onChange={(val) => setNewFromEmail(val)}
value={newFromEmail}
onChange={handleSwitchEmail}
variant={'borderless'}
/>
</div>

@ -66,14 +66,14 @@ const EmailSwitcher = ({ ...props }) => {
<>{pickEmail?.email}</>
</Dropdown.Button> */}
<span>切换邮箱:</span>
{/* <span>:</span>
<Select
options={emailListOption}
labelInValue
value={pickEmail}
onChange={(val) => setPickEmail(val)}
onChange={(val) => { setPickEmail(val); setFromUser(val.opi_sn)}}
// variant={'borderless'}
/>
/> */}
<Button icon={<EditIcon />} type='primary' onClick={() => openEditor(pickEmail.key)}>
新邮件
</Button>

Loading…
Cancel
Save