From 339e79455353a64ffc8d2d8b2129c5f3374e8358 Mon Sep 17 00:00:00 2001 From: Jimmy Liow Date: Wed, 21 Feb 2024 15:45:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/OrderStore.js | 3 + src/views/AuthApp.jsx | 2 +- .../Components/CustomerProfile.jsx | 31 +++++++-- src/views/OrderFollow.jsx | 65 ++++++++++--------- 4 files changed, 64 insertions(+), 37 deletions(-) diff --git a/src/stores/OrderStore.js b/src/stores/OrderStore.js index a8963a0..c85ef28 100644 --- a/src/stores/OrderStore.js +++ b/src/stores/OrderStore.js @@ -12,6 +12,8 @@ const useOrderStore = create((set, get) => ({ lastQuotation: {}, + quotationList: [], + fetchOrderDetail: async (colisn) => { const json = await fetchJSON(`${API_HOST}/getorderinfo`, { colisn }) if (json.errcode === 0 && json.result.length > 0) { @@ -20,6 +22,7 @@ const useOrderStore = create((set, get) => ({ orderDetail: orderResult, customerDetail: orderResult.contact.length > 0 ? orderResult.contact[0] : {}, lastQuotation: orderResult.quotes.length > 0 ? orderResult.quotes[0] : {}, + quotationList: orderResult.quotes, })) } }, diff --git a/src/views/AuthApp.jsx b/src/views/AuthApp.jsx index 1bffdea..5ec5a9e 100644 --- a/src/views/AuthApp.jsx +++ b/src/views/AuthApp.jsx @@ -77,7 +77,7 @@ function AuthApp() { selectedKeys={[defaultPath]} items={[ { key: '/order/follow', label: 订单跟踪 }, - { key: '/order/chat', label: 销售聊天 }, + { key: '/order/chat', label: 在线聊天 }, { key: '/chat/history', label: 聊天历史 }, { key: '/sales/management', label: 销售管理 } ]} diff --git a/src/views/Conversations/Components/CustomerProfile.jsx b/src/views/Conversations/Components/CustomerProfile.jsx index 957a0c3..bb95be1 100644 --- a/src/views/Conversations/Components/CustomerProfile.jsx +++ b/src/views/Conversations/Components/CustomerProfile.jsx @@ -1,6 +1,6 @@ import { useEffect } from 'react' import { useLocation, useParams } from 'react-router-dom' -import { Card, Flex, Select, Typography, Radio, Button, Table } from 'antd' +import { Card, Flex, Select, Typography, List, Button, Table } from 'antd' import { useAuthContext } from '@/stores/AuthContext.js' import { UserOutlined, LinkOutlined, EllipsisOutlined, SmileOutlined, SyncOutlined, PhoneOutlined, MailOutlined, WhatsAppOutlined, SmileTwoTone } from '@ant-design/icons' @@ -10,7 +10,7 @@ import useOrderStore from '@/stores/OrderStore' const CustomerProfile = (() => { const { order_sn: order_sn } = useParams() - const { orderDetail, customerDetail, lastQuotation, + const { orderDetail, customerDetail, lastQuotation, quotationList, fetchOrderDetail, setOrderPropValue } = useOrderStore() @@ -18,6 +18,14 @@ const CustomerProfile = (() => { fetchOrderDetail(order_sn) }, [order_sn]) + const paginationProps = { + showLessItems: true, + showTotal: (total) => { return `总数:${total}` } + } + + let regularText = '' + if (orderDetail.buytime > 0) regularText = '(R' + orderDetail.buytime + ')' + return (
{ > - {customerDetail.name} + {customerDetail.name + regularText} {customerDetail.phone} {customerDetail.email} {customerDetail.whatsapp_phone_number} @@ -76,9 +84,24 @@ const CustomerProfile = (() => { 最新报价

{lastQuotation.lettertitle}

- + + ( + + {item.lettertitle}} + description={item.letterdate} + /> + + )} + />

diff --git a/src/views/OrderFollow.jsx b/src/views/OrderFollow.jsx index a4ae66e..0dbb4b4 100644 --- a/src/views/OrderFollow.jsx +++ b/src/views/OrderFollow.jsx @@ -276,46 +276,46 @@ function OrderList({ formValues }) { const deptMap = new Map([ ['1', 'CH直销组'], - ['2','CH大客户组'], - ['7','市场推广'], - ['8','德语市场'], - ['9','日语市场'], - ['10', '商旅市场'], - ['11', '法语市场'], - ['12', '西语市场'], - ['13', '英文在线组'], - ['14', '商务Biztravel'], - ['15', 'CH产品'], - ['16', 'APP移动项目组'], - ['17', 'ChinaTravel组'], - ['18', 'CT市场'], - ['20', '俄语市场'], - ['21', '意语市场'], - ['22', '爱游网'], - ['23', '三峡站'], - ['24', '桂林站'], - ['25', '上海站'], - ['26', '北京站'], - ['27', '西藏站'], - ['28', 'AH亚洲项目组'], - ['29', 'DMC地接组'], - ['30', 'Trippest项目组'], - ['31', '花梨鹰'], - ['32', 'Daytours板块'], - ['33', 'GH项目组'], - ['34', 'trippest网站'], - ['35', 'newsletter营销'], + ['2', 'CH大客户组'], + ['7', '市场推广'], + ['8', '德语市场'], + ['9', '日语市场'], + ['10', '商旅市场'], + ['11', '法语市场'], + ['12', '西语市场'], + ['13', '英文在线组'], + ['14', '商务Biztravel'], + ['15', 'CH产品'], + ['16', 'APP移动项目组'], + ['17', 'ChinaTravel组'], + ['18', 'CT市场'], + ['20', '俄语市场'], + ['21', '意语市场'], + ['22', '爱游网'], + ['23', '三峡站'], + ['24', '桂林站'], + ['25', '上海站'], + ['26', '北京站'], + ['27', '西藏站'], + ['28', 'AH亚洲项目组'], + ['29', 'DMC地接组'], + ['30', 'Trippest项目组'], + ['31', '花梨鹰'], + ['32', 'Daytours板块'], + ['33', 'GH项目组'], + ['34', 'trippest网站'], + ['35', 'newsletter营销'], ]) const groupOrderData = groupByParam(orderData, 'OPI_DEI_SN') const deptKeys = Object.keys(groupOrderData) const collapseItems = [] - deptKeys.forEach(deptNo => { + deptKeys.forEach((deptNo, index) => { const deptOrderList = groupOrderData[deptNo] collapseItems.push( { - key: deptNo, + key: index, label: deptMap.get(deptNo) + '订单', children: ) + return () } + function OrderFollow() { const [advanceChecked, toggleAdvance] = useState(false) From b9552d8e79e8c58fc6c37f15a43dcf0af4d01270 Mon Sep 17 00:00:00 2001 From: Jimmy Liow Date: Wed, 21 Feb 2024 16:30:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E4=B8=80=E6=9C=9F?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E8=B0=83=E6=95=B4=E5=AF=BC=E8=88=AA=E8=8F=9C?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AuthApp.jsx | 1 - src/views/ChatHistory.jsx | 32 ++++++++++++++++---------------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/views/AuthApp.jsx b/src/views/AuthApp.jsx index 5ec5a9e..ad59010 100644 --- a/src/views/AuthApp.jsx +++ b/src/views/AuthApp.jsx @@ -79,7 +79,6 @@ function AuthApp() { { key: '/order/follow', label: 订单跟踪 }, { key: '/order/chat', label: 在线聊天 }, { key: '/chat/history', label: 聊天历史 }, - { key: '/sales/management', label: 销售管理 } ]} /> diff --git a/src/views/ChatHistory.jsx b/src/views/ChatHistory.jsx index 96dd59d..dc608c9 100644 --- a/src/views/ChatHistory.jsx +++ b/src/views/ChatHistory.jsx @@ -44,48 +44,48 @@ const SearchForm = memo(function ({ onSubmit }) { maxWidth: 'none', }} > - + (option?.label ?? '').toLowerCase().includes(input.toLowerCase())} options={[ { - value: 'Coco', - label: 'Coco', + value: 'jack', + label: 'Jack', }, { - value: 'Ann', - label: 'Ann', + value: 'lucy', + label: 'Lucy', }, { - value: 'Lora', - label: 'Lora', + value: 'tom', + label: 'Tom', }, ]} />