diff --git a/src/stores/ConversationStore.js b/src/stores/ConversationStore.js index b257ec2..e95d182 100644 --- a/src/stores/ConversationStore.js +++ b/src/stores/ConversationStore.js @@ -53,6 +53,7 @@ const initialConversationState = { totalNotify: 0, msgListLoading: false, + detailPopupOpen: false, }; const globalNotifySlice = (set) => ({ @@ -467,6 +468,18 @@ const messageSlice = (set, get) => ({ }, }); +/** + * Email + */ +const emailSlice = (set, get) => ({ + emailMsg: {}, + setEmailMsg: (emailMsg) => set({ emailMsg }), + detailPopupOpen: false, + setDetailOpen: (v) => set({ detailPopupOpen: v }), + openDetail: () => set(() => ({ detailPopupOpen: true })), + closeDetail: () => set(() => ({ detailPopupOpen: false })), +}) + export const useConversationStore = create( devtools((set, get) => ({ ...initialConversationState, @@ -479,6 +492,7 @@ export const useConversationStore = create( ...tagsSlice(set, get), ...filterSlice(set, get), ...globalNotifySlice(set, get), + ...emailSlice(set, get), // state actions addError: (error) => set((state) => ({ errors: [...state.errors, error] })), diff --git a/src/views/Conversations/Online/Components/EmailDetail.jsx b/src/views/Conversations/Online/Components/EmailDetail.jsx index 7146299..c5f397d 100644 --- a/src/views/Conversations/Online/Components/EmailDetail.jsx +++ b/src/views/Conversations/Online/Components/EmailDetail.jsx @@ -18,6 +18,9 @@ const TagColorStyle = (tag) => { } } +/** + * @property {*} emailMsg - 邮件数据. { msgOrigin: { from, to, id, email: { subject, mai_sn, } } } + */ const EmailDetail = ({ open, setOpen, emailMsg, ...props }) => { // console.log('emailDetail', emailMsg); diff --git a/src/views/Conversations/Online/order/CustomerProfile.jsx b/src/views/Conversations/Online/order/CustomerProfile.jsx index 3c5cdef..e5fb84f 100644 --- a/src/views/Conversations/Online/order/CustomerProfile.jsx +++ b/src/views/Conversations/Online/order/CustomerProfile.jsx @@ -12,6 +12,7 @@ import QuotesHistory from "./QuotesHistory"; import ConversationBind from "./../ConversationBind"; import ConversationsNewItem from "./../ConversationsNewItem"; import { useConversationNewItem } from "@/hooks/useConversation"; +import EmailDetail from './../Components/EmailDetail'; const CustomerProfile = () => { const { notification, message } = App.useApp(); @@ -22,6 +23,7 @@ const CustomerProfile = () => { const currentOrder = useConversationStore(state => state.currentConversation?.coli_sn || ""); const currentConversationID = useConversationStore(state => state.currentConversation?.sn || ""); const [updateCurrentConversation] = useConversationStore(state => [state.updateCurrentConversation]); + const [emailDetail, setEmailMsg, detailPopupOpen, setDetailOpen, openDetail] = useConversationStore(state => [state.emailDetail, state.setEmailMsg, state.detailPopupOpen, state.setDetailOpen, state.openDetail]); const loginUser = useAuthStore(state => state.loginUser); const [ orderDetail, customerDetail, lastQuotation, quotationList, fetchOrderDetail, setOrderPropValue, appendOrderComment, fetchOtherEmail, otherEmailList @@ -83,6 +85,12 @@ const CustomerProfile = () => { const renderOtherEmailList = () => { + } + + const handleEmailClick = (emailItem) => { + const emailMsg = { msgOrigin: { from: '', to: '', id: emailItem.MAI_SN, email: { mai_sn: emailItem.MAI_SN, subject: emailItem.MAI_Subject, id: emailItem.MAI_SN } } } + setEmailMsg(emailMsg); + openDetail(); } if (currentOrder) { @@ -223,6 +231,7 @@ const CustomerProfile = () => { className='hover:bg-stone-50' onClick={() => { console.info('email...') + handleEmailClick(email) }}> { setNewChatModalVisible(false)} /> + + ); } else {