From 1a0328303d89f615488f951541da621961ea6ad4 Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 12 Jun 2025 11:28:08 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E9=82=AE=E4=BB=B6=E7=9A=84=E8=AE=A2?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useEmail.js | 7 ++++++- src/stores/EmailSlice.js | 4 ++++ .../Conversations/Online/Components/EmailDetailInline.jsx | 2 +- src/views/orders/Follow.jsx | 5 ++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/hooks/useEmail.js b/src/hooks/useEmail.js index 3d626d5..e8045fc 100644 --- a/src/hooks/useEmail.js +++ b/src/hooks/useEmail.js @@ -31,9 +31,14 @@ export const useEmailSignature = (opi_sn) => { } /** + * 邮件详情 + * * @param mai_sn 邮件编号ID * @param data 直接传递, 不重复获取 * * 在详情点击`回复`呼出编辑时 + * @param {number|boolean} oid 订单ID + * - If `number`: 直接传递, 直接获取订单详情 + * - If `false`: 不需要获取订单信息 */ export const useEmailDetail = (mai_sn, data={}, oid=0) => { const {notification} = App.useApp() @@ -54,7 +59,7 @@ export const useEmailDetail = (mai_sn, data={}, oid=0) => { const data = await getEmailDetailAction({ mai_sn }) // console.log(data) setMailData(data) - setColiSN(data.info.MAI_COLI_SN) + setColiSN(oid===false ? 0 : data.info.MAI_COLI_SN) // if (!isEmpty(data.info.MAI_COLI_SN)) { // const orderData = await getEmailOrderAction({ colisn: data.info.MAI_COLI_SN }) // setOrderDetail(orderData) diff --git a/src/stores/EmailSlice.js b/src/stores/EmailSlice.js index 5fa5ec8..fae232d 100644 --- a/src/stores/EmailSlice.js +++ b/src/stores/EmailSlice.js @@ -98,6 +98,10 @@ const emailSlice = (set, get) => ({ setMailboxActiveMAI: (mai) => { return set(() => ({ mailboxActiveMAI: mai })) }, + mailboxActiveCOLI: 0, + setMailboxActiveCOLI: (coli) => { + return set(() => ({ mailboxActiveCOLI: coli })) + }, getOPIEmailDir: async (opi_sn = 0, userIdStr='') => { // console.log('🌐requesting opi dir', opi_sn, typeof opi_sn) diff --git a/src/views/Conversations/Online/Components/EmailDetailInline.jsx b/src/views/Conversations/Online/Components/EmailDetailInline.jsx index 4a451b2..9bebb6b 100644 --- a/src/views/Conversations/Online/Components/EmailDetailInline.jsx +++ b/src/views/Conversations/Online/Components/EmailDetailInline.jsx @@ -82,7 +82,7 @@ const EmailDetailInline = ({ mailID, emailMsg = {}, disabled = false, variant, s } } - const { loading, mailData, orderDetail, postEmailResend } = useEmailDetail(mailID) + const { loading, mailData, orderDetail, postEmailResend } = useEmailDetail(mailID, null, false) const [showBindBtn, setShowBindBtn] = useState(false) useEffect(() => { setShowBindBtn(mailID ? isEmpty(mailData.info?.MAI_COLI_SN) : false) diff --git a/src/views/orders/Follow.jsx b/src/views/orders/Follow.jsx index 7b47ec1..b277957 100644 --- a/src/views/orders/Follow.jsx +++ b/src/views/orders/Follow.jsx @@ -58,6 +58,7 @@ function Follow() { const [currentMailboxOPI, setCurrentMailboxOPI] = useConversationStore(state => [state.currentMailboxOPI, state.setCurrentMailboxOPI]); const [mailboxActiveNode, setMailboxActiveNode] = useConversationStore(state => [state.mailboxActiveNode, state.setMailboxActiveNode]); const [activeEmailId, setActiveEmailId] = useConversationStore(state => [state.mailboxActiveMAI, state.setMailboxActiveMAI]); + const [mailboxActiveCOLI, setMailboxActiveCOLI] = useConversationStore(state => [state.mailboxActiveCOLI, state.setMailboxActiveCOLI]); const computedBreadcrumb = useMemo(() => { const { title, iconIndex, parentTitle, parentIconIndex } = mailboxActiveNode @@ -86,6 +87,7 @@ function Follow() { if (VKey && !(!IsTrue && !COLI_SN)) { setMailboxActiveNode({...treeNode, ...node._raw, key: treeNode.key, OPI_SN: currentMailboxOPI}); setActiveEmailId(0); + setMailboxActiveCOLI(COLI_SN); } else { const _expandTree = expandTree.includes(node.key) ? expandTree.filter(ele => ele !== node.key) : [...expandTree, ...selectedKeys] setExpandTree(_expandTree) @@ -96,6 +98,7 @@ function Follow() { const onClickEmailItem = (emailItem) => { const mai_sn = emailItem.MAI_SN; setActiveEmailId(mai_sn); + setMailboxActiveCOLI(emailItem.MAI_COLI_SN || 0) const emailMsg = { conversationid: '', order_opi: currentMailboxOPI, @@ -174,7 +177,7 @@ function Follow() { collapsedWidth={0} trigger={null} reverseArrow={true}> - +