@@ -86,6 +86,16 @@ export default function LoginPage() {
|
||||
if (hint) setMsg(hint);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (params.get('disabled') === '1') {
|
||||
setMsg('账号已被停用或门店已关闭,请重新登录');
|
||||
const next = new URLSearchParams(params);
|
||||
next.delete('disabled');
|
||||
setSearchParams(next, { replace: true });
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isWechatEnv() || !wxAuthorize || !params.get('code')) return;
|
||||
void handleShopWechatCallbackOnce()
|
||||
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
} from '../lib/wechat-auth';
|
||||
import { isWechatEnv } from '../lib/weixin';
|
||||
import { useStorePageView } from '../lib/usePageView';
|
||||
import { useRedeemSuccessListener } from '../lib/useRedeemSuccessBus';
|
||||
|
||||
export default function MinePage() {
|
||||
useStorePageView('store_mine_view');
|
||||
@@ -43,6 +44,11 @@ export default function MinePage() {
|
||||
void loadMine();
|
||||
}, [loadMine]);
|
||||
|
||||
// v3.5.1 #2:核销成功后即时刷新门店信息(余额等)
|
||||
useRedeemSuccessListener(() => {
|
||||
void loadMine();
|
||||
}, [loadMine]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isWechatEnv() || !wxAuthorize || !searchParams.get('code')) return;
|
||||
void handleShopWechatCallbackOnce()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useEffect, useMemo } from 'react';
|
||||
import { useLocation, useNavigate } from 'react-router-dom';
|
||||
import { notifyRedeemSuccess } from '../lib/useRedeemSuccessBus';
|
||||
|
||||
function formatAmount(n: number) {
|
||||
return n.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
|
||||
@@ -29,6 +30,14 @@ export default function RedeemSuccessPage() {
|
||||
? new Date(String(result.createdAt)).toLocaleString('zh-CN')
|
||||
: new Date().toLocaleString('zh-CN');
|
||||
|
||||
// v3.5.1 #2:核销成功后广播事件,通知门店信息页 / 提现页即时刷新
|
||||
useEffect(() => {
|
||||
notifyRedeemSuccess({
|
||||
redeemNo: redeemNo !== '—' ? redeemNo : undefined,
|
||||
amount,
|
||||
});
|
||||
}, [redeemNo, amount]);
|
||||
|
||||
return (
|
||||
<div className="shop-success-page">
|
||||
<header className="shop-success-header">
|
||||
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
import PullToRefresh from '@dukang/shared-ui/PullToRefresh';
|
||||
import { request } from '../lib/api';
|
||||
import { useStorePageView } from '../lib/usePageView';
|
||||
import { useRedeemSuccessListener } from '../lib/useRedeemSuccessBus';
|
||||
|
||||
type StatusFilter = 'all' | StoreWithdrawStatus;
|
||||
|
||||
@@ -42,6 +43,11 @@ export default function WithdrawPage() {
|
||||
void load();
|
||||
}, [load]);
|
||||
|
||||
// v3.5.1 #2:核销成功后即时刷新可提余额与提现按钮状态
|
||||
useRedeemSuccessListener(() => {
|
||||
void load();
|
||||
}, [load]);
|
||||
|
||||
const filtered = useMemo(() => {
|
||||
if (statusFilter === 'all') return items;
|
||||
return items.filter((r) => r.status === statusFilter);
|
||||
|
||||
Reference in New Issue
Block a user