feat: 打开供应商邮件

dev/emitter
Lei OT 10 months ago
parent d705fa7e22
commit 88b6280627

@ -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: { id: -1, conversationid: '', actionId: '', order_opi: '', coli_sn: '', msgOrigin: {} },
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] })),

@ -18,7 +18,10 @@ const TagColorStyle = (tag) => {
}
}
const EmailDetail = ({ open, setOpen, emailMsg, ...props }) => {
/**
* @property {*} emailMsg - 邮件数据. { conversationid, actionId, order_opi, coli_sn, msgOrigin: { from, to, id, email: { subject, mai_sn, } } }
*/
const EmailDetail = ({ open, setOpen, emailMsg={}, ...props }) => {
// console.log('emailDetail', emailMsg);

@ -49,7 +49,7 @@ const EmailNewBtn = ({ ...props }) => {
return (
<ConfigProvider theme={{ token: { colorPrimary: '#6366f1' } }}>
<Flex gap={8} className='p-2 bg-gray-200 rounded rounded-b-none border-gray-300 border-solid border border-b-0 border-x-0' align={'center'} justify={'flex-end'}>
<Flex gap={8} className='p-2 bg-gray-200 rounded rounded-b-none border-gray-300 border-solid border-t border-b-0 border-x-0' align={'center'} justify={'flex-end'}>
{/* <span>新邮件:</span> */}
{/* <Dropdown.Button
// disabled={!talkabled}

@ -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 [emailMsg, setEmailMsg, detailPopupOpen, setDetailOpen, openDetail] = useConversationStore(state => [state.emailMsg, 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,23 @@ const CustomerProfile = () => {
const renderOtherEmailList = () => {
}
const handleEmailClick = (emailItem) => {
const emailMsg = {
conversationid: currentConversationID,
order_opi: orderDetail.opi_sn,
coli_sn: currentOrder,
id: emailItem.MAI_SN,
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) {
@ -220,9 +239,10 @@ const CustomerProfile = () => {
}
renderItem={(email) => (
<List.Item
className='hover:bg-stone-50'
className='hover:bg-stone-50 cursor-pointer'
onClick={() => {
console.info('email...')
handleEmailClick(email)
}}>
<Flex
vertical
@ -275,6 +295,8 @@ const CustomerProfile = () => {
</Button>
</Spin>
<ConversationsNewItem initialValues={newChatFormValues} open={newChatModalVisible} onCreate={handleNewChat} onCancel={() => setNewChatModalVisible(false)} />
<EmailDetail open={detailPopupOpen} setOpen={setDetailOpen} emailMsg={emailMsg} key={`supplier-email-detail-1-${emailMsg?.id}`} />
</div>
);
} else {

Loading…
Cancel
Save