From 567e055ca8c28a91814266d1d44c8857f2a8306f Mon Sep 17 00:00:00 2001 From: Jimmy Liow Date: Tue, 19 Mar 2024 14:54:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20ahooks;=20=E5=85=B1?= =?UTF-8?q?=E7=94=A8=E7=8A=B6=E6=80=81Options=EF=BC=9B=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=AE=BE=E7=BD=AE=E6=88=90=E5=8A=9F=E3=80=81=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - src/stores/OrderStore.js | 34 ++++++++++- .../Components/CustomerProfile.jsx | 56 ++++++++++++------- src/views/OrderFollow.jsx | 39 +++++-------- src/views/dingding/Logout.jsx | 2 +- 5 files changed, 81 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 795b872..b742b64 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,6 @@ "preview": "vite preview" }, "dependencies": { - "ahooks": "^3.7.8", "antd": "^5.14.0", "crypto-js": "^4.2.0", "dayjs": "^1.11.10", diff --git a/src/stores/OrderStore.js b/src/stores/OrderStore.js index e4bcd98..69d52d9 100644 --- a/src/stores/OrderStore.js +++ b/src/stores/OrderStore.js @@ -3,7 +3,7 @@ import { fetchJSON } from '@/utils/request' import { API_HOST } from '@/config' import { isNotEmpty, prepareUrl } from '@/utils/commons' -const useOrderStore = create((set, get) => ({ +export const useOrderStore = create((set, get) => ({ orderList: [], orderDetail: {}, @@ -80,7 +80,7 @@ const useOrderStore = create((set, get) => ({ }, setOrderPropValue: async (colisn, propName, value) => { - const json = await fetchJSON(`${API_HOST}/setorderstatus`, { colisn, stype: propName, svalue: value }) + if (propName === 'orderlabel') { set((state) => ({ orderDetail: { @@ -98,8 +98,36 @@ const useOrderStore = create((set, get) => ({ } })) } + + return fetchJSON(`${API_HOST}/setorderstatus`, { colisn, stype: propName, svalue: value }) + .then(json => { + if (json.errcode > 0) { + throw new Error(json?.errmsg + ': ' + json.errcode) + } + }) }, })) -export default useOrderStore +export const OrderLabelDefaultOptions = [ + { value: 240003, label: '重点' }, + { value: 240002, label: '次重点' }, + { value: 240001, label: '一般' } +] + +export const OrderStatusDefaultOptions = [ + { value: 1, label: '新订单' }, + { value: 2, label: '报价中' }, + { value: 3, label: '以后联系' }, + { value: 4, label: '等待付订金' }, + { value: 5, label: '成行' }, + { value: 6, label: '丢失' }, + { value: 7, label: '取消' }, + { value: 8, label: '未报价' } +] + +export const RemindStateDefaultOptions = [ + { value: '1', label: '一催' }, + { value: '2', label: '二催' }, + { value: '3', label: '三催' } +] \ No newline at end of file diff --git a/src/views/Conversations/Components/CustomerProfile.jsx b/src/views/Conversations/Components/CustomerProfile.jsx index 26a7349..5530f33 100644 --- a/src/views/Conversations/Components/CustomerProfile.jsx +++ b/src/views/Conversations/Components/CustomerProfile.jsx @@ -2,19 +2,25 @@ import { LinkOutlined, MailOutlined, PhoneOutlined, UserOutlined, WhatsAppOutlin import { App, Button, Card, Empty, Flex, Select, Spin, Typography } from 'antd' import { useEffect, useState } from 'react' +import { copy, isNotEmpty } from '@/utils/commons' import { Conditional } from '@/components/Conditional' import useConversationStore from '@/stores/ConversationStore' -import useOrderStore from '@/stores/OrderStore' +import { useOrderStore, OrderLabelDefaultOptions, OrderStatusDefaultOptions } from '@/stores/OrderStore' import QuotesHistory from './QuotesHistory' const CustomerProfile = (() => { - const { notification } = App.useApp() + const { notification, message } = App.useApp() const [loading, setLoading] = useState(false) const currentOrder = useConversationStore((state) => state.currentConversation?.coli_sn || '') const { orderDetail, customerDetail, lastQuotation, quotationList, fetchOrderDetail, setOrderPropValue } = useOrderStore() + const orderLabelOptions = copy(OrderLabelDefaultOptions) + orderLabelOptions.unshift({ value: 0, label: '未设置', disabled: true, }) + + const orderStatusOptions = copy(OrderStatusDefaultOptions) + useEffect(() => { if (currentOrder) { setLoading(true) @@ -36,7 +42,7 @@ const CustomerProfile = (() => { if (currentOrder) { return ( -
+
{ }} variant='borderless' onSelect={(value) => { - setOrderPropValue(order_sn, 'orderlabel', value) + setOrderPropValue(currentOrder, 'orderlabel', value) + .then(() => { + message.success('设置成功') + }) + .catch(reason => { + notification.error({ + message: '设置出错', + description: reason.message, + placement: 'top', + duration: 60, + }) + }) }} value={orderDetail.tags} - options={[ - { value: 0, label: '未设置', disabled: true, }, - { value: 240003, label: '重点' }, - { value: 240002, label: '次重点' }, - { value: 240001, label: '一般' } - ]} + options={orderLabelOptions} />, diff --git a/src/views/dingding/Logout.jsx b/src/views/dingding/Logout.jsx index ba32162..c76cd46 100644 --- a/src/views/dingding/Logout.jsx +++ b/src/views/dingding/Logout.jsx @@ -1,5 +1,5 @@ import useAuthStore from '@/stores/AuthStore' -import { Flex, Result, Spin, Typography } from 'antd' +import { Flex, Result, Spin } from 'antd' import { useEffect } from 'react' import { useNavigate } from 'react-router-dom'