perf(前端): 设置订单的催信状态

dev/voice
Lei OT 7 months ago
parent 9e6e24eecf
commit afe159a728

@ -232,8 +232,31 @@ export const OrderStatusDefaultOptionsMapped = OrderStatusDefaultOptions.reduce(
return { ...acc, [String(cur.value)]: cur }
}, {})
/**
* @useage 订单跟踪:高级搜索
*/
export const RemindStateDefaultOptions = [
{ value: '1', label: '一催' },
{ value: '2', label: '二催' },
{ value: '3', label: '三催' }
]
/**
* @useage 订单信息: 标记状态
*/
export const remindStatusOptions = [
{ value: '1', label: '已发一催' },
{ value: '2', label: '已发二催' },
{ value: '3', label: '已发三催' },
{ value: 'important', label: '重点团' },
{ value: 'sendsurvey', label: '已发 travel advisor survey' },
];
/**
* @param {Object} params { coli_sn, remindstate }
*/
export const fetchSetRemindStateAction = async (params) => {
const { errcode, result } = await fetchJSON(`${API_HOST}/SetRemindState`, params);
return errcode === 0 ? result : {};
};

@ -1,5 +1,5 @@
import { LinkOutlined, MailOutlined, PhoneOutlined, UserOutlined, WhatsAppOutlined, FieldNumberOutlined } from "@ant-design/icons";
import { App, Button, Card, Empty, Flex, Select, Spin, Typography, Divider, Modal, List, Row, Col, Tag } from "antd";
import { App, Button, Card, Empty, Flex, Select, Spin, Typography, Divider, Modal, List, Row, Col, Tag, Checkbox } from "antd";
import { useEffect, useState, useRef, useCallback } from "react";
import { useNavigate } from "react-router-dom";
import { useShallow } from 'zustand/react/shallow';
@ -7,7 +7,7 @@ import { useShallow } from 'zustand/react/shallow';
import { copy, isEmpty } from "@/utils/commons";
import { Conditional } from "@/components/Conditional";
import useConversationStore from "@/stores/ConversationStore";
import { useOrderStore, OrderLabelDefaultOptions, OrderStatusDefaultOptions } from "@/stores/OrderStore";
import { useOrderStore, OrderLabelDefaultOptions, OrderStatusDefaultOptions, remindStatusOptions, fetchSetRemindStateAction } from "@/stores/OrderStore";
import useAuthStore from "@/stores/AuthStore";
import QuotesHistory from "./QuotesHistory";
import ConversationBind from "./../ConversationBind";
@ -40,6 +40,7 @@ const CustomerProfile = () => {
const [resetOrderStore] = useOrderStore(state => [state.resetOrderStore])
const [chatOrder, setChatOrder] = useState(currentOrder);
const [orderRemindState, setOrderRemindState] = useState(orderDetail.remindstate);
const orderLabelOptions = copy(OrderLabelDefaultOptions);
orderLabelOptions.unshift({ value: 0, label: "未设置", disabled: true });
@ -76,6 +77,7 @@ const CustomerProfile = () => {
prevOrder.current = currentOrder
setOrderNumber(result.orderDetail.order_no)
setChatOrder(result.orderDetail.order_no)
setOrderRemindState(String(result.orderDetail.remindstate));
const queryEmail = result.customerDetail.email || channels?.email || '';
const queryWA = result.customerDetail.whatsapp_phone_number || result.customerDetail.phone || channels?.whatsapp_phone_number || ''
getHistoryOrder(queryEmail, queryWA)
@ -145,6 +147,24 @@ const CustomerProfile = () => {
updateCurrentConversation({ coli_sn });
};
const handleSetRemindState = async (checkedValue) => {
const state = checkedValue.filter(v => v !== orderRemindState);
const oldState = orderRemindState;
try {
if (isEmpty(state)) {
setOrderRemindState(null);
} else {
setOrderRemindState(state[0]);
}
await fetchSetRemindStateAction({ coli_sn: chatOrder, remindstate: state });
message.success('设置成功');
} catch (error) {
notification.warning({ message: '设置失败', description: error.message, placement: 'top', duration: 60 });
setOrderRemindState(oldState);
}
}
if (currentOrder) {
return (
<div className="divide-x-0 divide-y divide-dashed divide-gray-300">
@ -253,6 +273,10 @@ const CustomerProfile = () => {
</Flex>
</Flex>
</Card>
<Divider orientation="left">
<Typography.Text strong>催信:</Typography.Text>
</Divider>
<Checkbox.Group key='substatus' value={[orderRemindState]} options={remindStatusOptions} onChange={handleSetRemindState} />
<Divider orientation="left">
<Typography.Text strong>最新报价</Typography.Text>
</Divider>

Loading…
Cancel
Save