From 254940116a765d1352f93b54c916250570a6d34c Mon Sep 17 00:00:00 2001 From: Jimmy Liow Date: Mon, 2 Dec 2024 16:44:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E5=AE=A2=E4=BA=BA=E5=8E=86=E5=8F=B2=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/OrderStore.js | 12 ++++++++ .../Online/order/CustomerProfile.jsx | 29 ++++++++++--------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/stores/OrderStore.js b/src/stores/OrderStore.js index bfc3576..4ddd05f 100644 --- a/src/stores/OrderStore.js +++ b/src/stores/OrderStore.js @@ -116,6 +116,18 @@ export const useOrderStore = create(devtools((set, get) => ({ }) }, + fetchHistoryOrder: (userId, email) => { + return fetchJSON(`${API_HOST}/query_guest_order`, { opisn: userId, whatsappid: '', email: email }) + .then(json => { + if (json.errcode === 0) { + return json.result + } else { + throw new Error(json?.errmsg + ': ' + json.errcode) + } + }) + + }, + fetchOtherEmail: (coli_sn) => { return fetchJSON(`${EMAIL_HOST}/email_supplier`, { coli_sn }) .then(json => { diff --git a/src/views/Conversations/Online/order/CustomerProfile.jsx b/src/views/Conversations/Online/order/CustomerProfile.jsx index a40490e..5fa5d67 100644 --- a/src/views/Conversations/Online/order/CustomerProfile.jsx +++ b/src/views/Conversations/Online/order/CustomerProfile.jsx @@ -1,6 +1,6 @@ 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 { useEffect, useState, useRef, useCallback } from "react"; import { useNavigate } from "react-router-dom"; import { copy, isEmpty } from "@/utils/commons"; @@ -19,19 +19,20 @@ const CustomerProfile = () => { const [loading, setLoading] = useState(false); const [isModalOpen, setIsModalOpen] = useState(false); const [currentOrderNumber, setOrderNumber] = useState(false); + const [orderList, setOrderList] = useState([]); 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 + orderDetail, customerDetail, lastQuotation, quotationList, fetchOrderDetail, setOrderPropValue, appendOrderComment, fetchOtherEmail, otherEmailList, fetchHistoryOrder ] = useOrderStore(s => [ - s.orderDetail, s.customerDetail, s.lastQuotation, s.quotationList, s.fetchOrderDetail, s.setOrderPropValue, s.appendOrderComment, s.fetchOtherEmail, s.otherEmailList + s.orderDetail, s.customerDetail, s.lastQuotation, s.quotationList, s.fetchOrderDetail, s.setOrderPropValue, s.appendOrderComment, s.fetchOtherEmail, s.otherEmailList, s.fetchHistoryOrder ]); - const navigate = useNavigate(); const orderLabelOptions = copy(OrderLabelDefaultOptions); orderLabelOptions.unshift({ value: 0, label: "未设置", disabled: true }); @@ -43,6 +44,13 @@ const CustomerProfile = () => { fetchOrderDetail(currentOrder) .then(result => { setOrderNumber(result.orderDetail.order_no) + fetchHistoryOrder(result.orderDetail.order_no, result.customerDetail.email) + .then(orderList => { + const mapOrderList = orderList.map(o => { + return { value: o.coli_sn, label: o.coli_id } + }) + setOrderList(mapOrderList) + }) }) .finally(() => setLoading(false)) .catch(reason => { @@ -83,11 +91,7 @@ const CustomerProfile = () => { setNewChatModalVisible(false); }; - const renderOtherEmailList = () => { - - } - - const handleEmailClick = (emailItem) => { + const handleEmailClick = useCallback((emailItem) => { const emailMsg = { conversationid: currentConversationID, order_opi: orderDetail.opi_sn, @@ -102,7 +106,7 @@ const CustomerProfile = () => { } setEmailMsg(emailMsg); openDetail(); - } + }, []) if (currentOrder) { return ( @@ -117,10 +121,7 @@ const CustomerProfile = () => { }} variant="borderless" value={currentOrderNumber} - options={[ - { value: '-1', label: '全部' }, - { value: currentOrderNumber, label: currentOrderNumber } - ]} + options={orderList} />} actions={[