Merge branch 'feat/liujie'

This commit is contained in:
2025-12-10 20:08:33 +08:00
3 changed files with 47 additions and 41 deletions

View File

@@ -46,8 +46,7 @@ function genRefundNotice(refund_policy) {
};
}
function renderCancelContent(checkOrderInfo) {
const { refund_policy = [] } = checkOrderInfo;
function renderCancelContent(refund_policy = []) {
const current = dayjs();
const policyList = [
{
@@ -65,7 +64,6 @@ function renderCancelContent(checkOrderInfo) {
};
}),
];
console.log("policyList", policyList);
const targetIndex = policyList.findIndex((item) => item.beforeCurrent);
const { notice } = genRefundNotice(refund_policy);
return (
@@ -107,7 +105,7 @@ export type RefundRef = {
export default forwardRef<RefundRef>(function RefundPopup(_props, ref) {
const [visible, setVisible] = useState(false);
const [checkOrderInfo, setCheckOrderInfo] = useState({});
const [refundPolicy, setRefundPolicy] = useState([]);
const [orderData, setOrderData] = useState({});
const onDown = useRef<((result: boolean) => void) | null>(null);
@@ -116,11 +114,10 @@ export default forwardRef<RefundRef>(function RefundPopup(_props, ref) {
}));
async function onShow(orderItem, onFinish: (result: boolean) => void) {
const { game_info } = orderItem;
const { refund_policy } = orderItem;
onDown.current = onFinish;
setOrderData(orderItem);
const res = await orderService.getCheckOrderInfo(game_info.id);
setCheckOrderInfo(res.data);
setRefundPolicy(refund_policy);
setVisible(true);
}
@@ -172,7 +169,7 @@ export default forwardRef<RefundRef>(function RefundPopup(_props, ref) {
onClick={onClose}
/>
</View>
{renderCancelContent(checkOrderInfo)}
{renderCancelContent(refundPolicy)}
<Button className={styles.action} onClick={handleConfirmQuit}>
退
</Button>

View File

@@ -380,8 +380,13 @@ function OrderMsg(props) {
wechat_contact,
price,
} = detail;
const { order_no } = orderDetail;
const { order_info: { registrant_phone } = {} } = checkOrderInfo;
const { order_no, registrant_phone: registrant_phone_from_order } =
orderDetail;
const {
order_info: { registrant_phone: registrant_phone_from_check_order } = {},
} = checkOrderInfo || {};
const registrant_phone =
registrant_phone_from_order || registrant_phone_from_check_order;
const startTime = dayjs(start_time);
const endTime = dayjs(end_time);
const startDate = startTime.format("YYYY年M月D日");
@@ -402,13 +407,11 @@ function OrderMsg(props) {
},
{
title: "报名人电话",
// content: registrant_phone,
content: registrant_phone ? (
<Text
selectable={true} // 支持长按复制
style={{
color: "#007AFF",
// textDecoration: "underline",
cursor: "pointer",
}}
onClick={() => {
@@ -427,7 +430,6 @@ function OrderMsg(props) {
},
{
title: "组织人电话",
// content: wechat_contact,
content:
wechat_contact && isPhoneNumber(wechat_contact) ? (
<Text
@@ -489,8 +491,7 @@ function OrderMsg(props) {
}
function RefundPolicy(props) {
const { checkOrderInfo } = props;
const { refund_policy = [] } = checkOrderInfo;
const { refund_policy = [] } = props;
const current = dayjs();
const policyList = [
{
@@ -563,7 +564,7 @@ const OrderCheck = () => {
const [id, gameId] = [Number(stringId), Number(stringGameId)];
const [detail, setDetail] = useState<GameData | {}>({});
const [location, setLocation] = useState<number[]>([0, 0]);
const [checkOrderInfo, setCheckOrderInfo] = useState<GameOrderRes | {}>({});
const [checkOrderInfo, setCheckOrderInfo] = useState<GameOrderRes>();
const [orderDetail, setOrderDetail] = useState({});
const { paying, setPaying } = useOrder();
@@ -584,11 +585,11 @@ const OrderCheck = () => {
if (res.code === 0) {
gameDetail = res.data;
}
checkOrder(gameId);
}
if (gameDetail.id) {
setDetail(gameDetail);
onInit(gameDetail.id);
}
const location = await getCurrentLocation();
setLocation([location.latitude, location.longitude]);
}
async function checkOrder(gid) {
@@ -596,12 +597,6 @@ const OrderCheck = () => {
setCheckOrderInfo(orderRes.data);
}
async function onInit(gid) {
checkOrder(gid);
const location = await getCurrentLocation();
setLocation([location.latitude, location.longitude]);
}
async function getPaymentParams() {
// 检查登录状态和手机号(创建订单前检查)
if (!requireLoginWithPhone()) {
@@ -706,7 +701,11 @@ const OrderCheck = () => {
checkOrderInfo={checkOrderInfo}
/>
{/* Refund policy */}
<RefundPolicy checkOrderInfo={checkOrderInfo} />
<RefundPolicy
refund_policy={
checkOrderInfo?.refund_policy || orderDetail?.refund_policy || []
}
/>
{/* Disclaimer */}
<Disclaimer />
{(!id ||

View File

@@ -6,18 +6,28 @@ export function getOrderStatus(orderData) {
if (!order_no) {
return 'none'
}
const { start_time } = game_info
const { start_time } = game_info || {}
if (!start_time) { console.log('活动开始时间未找到, start_time: ', start_time); }
const unPay = order_status === OrderStatus.PENDING && ([CancelType.NONE].includes(cancel_type));
const refund = [RefundStatus.SUCCESS].includes(refund_status);
const refunding = [RefundStatus.PENDING].includes(refund_status);
const expired =
order_status === OrderStatus.FINISHED;
const frozen = dayjs().add(2, 'h').isAfter(dayjs(start_time))
const frozen = dayjs().isAfter(dayjs(start_time))
const canceled = [CancelType.TIMEOUT, CancelType.USER].includes(cancel_type);
return unPay ? 'unpay' : refund ? 'refund' : canceled ? 'canceled' : expired ? 'expired' : refunding ? 'refunding' : frozen ? 'start' : 'progress'
// return unPay ? 'unpay' : refund ? 'refund' : canceled ? 'canceled' : expired ? 'expired' : refunding ? 'refunding' : is_substitute_order ? 'progress' : frozen ? 'start' : 'progress'
if (unPay) return 'unpay';
if (refund) return 'refund';
if (canceled) return 'canceled';
if (expired) return 'expired';
if (refunding) return 'refunding';
if (frozen) return 'start';
// if (is_substitute_order) return 'progress';
return 'progress';
}
// scene: list、detail