feat: 客服接入 订单问题修改

This commit is contained in:
2025-10-01 11:21:58 +08:00
parent ce63c1a954
commit 0efcd36aa7
9 changed files with 217 additions and 139 deletions

View File

@@ -19,9 +19,12 @@ import {
getOrderStatus,
generateOrderActions,
} from "@/utils";
import { getStorage, setStorage } from "@/store/storage";
import detailService, { GameData } from "@/services/detailService";
import { withAuth, RefundPopup } from "@/components";
import img from "@/config/images";
import CustomerIcon from "@/static/order/customer.svg";
import { handleCustomerService } from "@/services/userService";
import { DECLAIMER } from "./config";
import styles from "./index.module.scss";
@@ -65,8 +68,15 @@ function genGameNotice(order_status, start_time) {
function GameInfo(props) {
const { detail, currentLocation, orderDetail, init } = props;
const { order_status, refund_status, amount } = orderDetail;
const { latitude, longitude, location, location_name, start_time, end_time, weather } =
detail || {};
const {
latitude,
longitude,
location,
location_name,
start_time,
end_time,
weather,
} = detail || {};
const [{ iconDay, tempMax, tempMin }] = weather || [{}];
@@ -306,8 +316,9 @@ function GameInfo(props) {
</View>
{/* Action bar */}
<View className={styles.gameInfoActions}>
{orderDetail.order_id
? generateOrderActions(
{orderDetail.order_id ? (
<>
{generateOrderActions(
orderDetail,
{
handleDeleteOrder,
@@ -324,8 +335,15 @@ function GameInfo(props) {
>
{obj.text}
</Button>
))
: ""}
))}
<View className={styles.customer} onClick={handleCustomerService}>
<Image className={styles.customerIcon} src={CustomerIcon} />
<Text></Text>
</View>
</>
) : (
""
)}
</View>
<Dialog id="detailCancelOrder" />
<RefundPopup ref={refundRef} />
@@ -353,10 +371,7 @@ function OrderMsg(props) {
const { order_info: { registrant_phone } = {} } = checkOrderInfo;
const startTime = dayjs(start_time);
const endTime = dayjs(end_time);
const startYear = startTime.format("YYYY");
const startMonth = startTime.format("M");
const startDay = startTime.format("D");
const startDate = `${startYear}${startMonth}${startDay}`;
const startDate = startTime.format("YYYY年M月D日");
const gameRange = `${startTime.format("HH:mm")} - ${endTime.format("HH:mm")}`;
const summary = [
{
@@ -485,9 +500,10 @@ const OrderCheck = () => {
const [location, setLocation] = useState<number[]>([0, 0]);
const [checkOrderInfo, setCheckOrderInfo] = useState<GameOrderRes | {}>({});
const [orderDetail, setOrderDetail] = useState({});
const [paying, setPaying] = useState(false);
useDidShow(() => {
init()
init();
});
async function init() {
@@ -535,20 +551,32 @@ const OrderCheck = () => {
//TODO: get order msg from id
const handlePay = async () => {
setPaying(true);
Taro.showLoading({
title: "支付中...",
mask: true,
});
let payment_params = {}
let payment_params = {};
try {
payment_params = await getPaymentParams();
if (!id) {
setStorage("backFlag", "1");
Taro.redirectTo({
url: `/order_pages/orderDetail/index?id=${payment_params.order_id}`,
});
}
await payOrder(payment_params);
Taro.hideLoading();
Taro.showToast({
title: "支付成功",
icon: "success",
});
const backFlag = getStorage("backFlag");
if (backFlag === "1") {
setStorage("backFlag", "0");
Taro.navigateBack();
}
// Taro.navigateBack({
// delta: 1,
// });
@@ -559,14 +587,9 @@ const OrderCheck = () => {
icon: "none",
});
} finally {
await delay(1000);
if (!id) {
Taro.redirectTo({
url: `/order_pages/orderDetail/index?id=${payment_params.order_id}`,
});
} else {
init()
}
setStorage("backFlag", "0");
init();
setPaying(false);
}
};
if (!id && !gameId) {
@@ -609,7 +632,11 @@ const OrderCheck = () => {
{(!id ||
(order_status === OrderStatus.PENDING &&
cancel_type === CancelType.NONE)) && (
<Button className={styles.payButton} onClick={handlePay}>
<Button
className={styles.payButton}
disabled={paying}
onClick={handlePay}
>
{order_status === OrderStatus.PENDING ? "继续" : "确认"}
</Button>