import { LinkOutlined, MailOutlined, PhoneOutlined, UserOutlined, WhatsAppOutlined } from "@ant-design/icons"; import { App, Button, Card, Empty, Flex, Select, Spin, Typography, Divider, Modal, List, Row, Col, Tag } from "antd"; import { useEffect, useState, useRef } from "react"; import { useNavigate } from "react-router-dom"; import { copy, isEmpty } from "@/utils/commons"; import { Conditional } from "@/components/Conditional"; import useConversationStore from "@/stores/ConversationStore"; import { useOrderStore, OrderLabelDefaultOptions, OrderStatusDefaultOptions } from "@/stores/OrderStore"; import useAuthStore from "@/stores/AuthStore"; 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(); const [loading, setLoading] = useState(false); const [isModalOpen, setIsModalOpen] = useState(false); const [currentOrderNumber, setOrderNumber] = useState(false); const orderCommentRef = useRef(null); 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 ] = useOrderStore(s => [ s.orderDetail, s.customerDetail, s.lastQuotation, s.quotationList, s.fetchOrderDetail, s.setOrderPropValue, s.appendOrderComment, s.fetchOtherEmail, s.otherEmailList ]); const navigate = useNavigate(); const orderLabelOptions = copy(OrderLabelDefaultOptions); orderLabelOptions.unshift({ value: 0, label: "未设置", disabled: true }); const orderStatusOptions = copy(OrderStatusDefaultOptions); useEffect(() => { if (currentOrder) { setLoading(true); fetchOrderDetail(currentOrder) .then(result => { setOrderNumber(result.orderDetail.order_no) }) .finally(() => setLoading(false)) .catch(reason => { notification.error({ message: "查询出错", description: reason.message, placement: "top", duration: 60, }); }); fetchOtherEmail(currentOrder) .then(result => { // console.info(result) }) .finally(() => setLoading(false)) .catch(reason => { notification.error({ message: "查询供应商邮件出错", description: reason.message, placement: "top", duration: 60, }); }); } }, [currentOrder]); let regularText = ""; if (orderDetail.buytime > 0) regularText = "(R" + orderDetail.buytime + ")"; const { openOrderContactConversation } = useConversationNewItem(); const [newChatModalVisible, setNewChatModalVisible] = useState(false); const [newChatFormValues, setNewChatFormValues] = useState({}); const handleNewChat = async values => { const newContact = { wa_id: values.wa_id }; openOrderContactConversation(newContact.wa_id); setNewChatModalVisible(false); }; 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) { return (