城市合伙人去掉订单补发功能,酒的订单如果没有配置仓库应该是看不到的
CI / verify (pull_request) Has been cancelled

This commit is contained in:
2026-07-17 08:04:53 +08:00
parent b36f2ea63a
commit 608e405468
11 changed files with 124 additions and 26 deletions
+19 -12
View File
@@ -3,7 +3,7 @@ import { Link, useNavigate } from 'react-router-dom';
import type { PartnerLeaderboardEntry } from '@dukang/shared-types';
import { isLoggedIn, request } from '../lib/api';
import { fetchPartnerLeaderboard } from '../lib/leaderboard';
import { getPartnerNavKind } from '../lib/partnerAccess';
import { getPartnerNavKind, hasWarehouseAccess } from '../lib/partnerAccess';
import { usePartnerSession } from '../contexts/PartnerSessionContext';
function fmtMoney(n: number) {
@@ -135,6 +135,7 @@ export default function HomePage() {
const navKind = getPartnerNavKind(account);
const isPrimary = navKind === 'primary';
const isWarehouse = navKind === 'warehouse_staff';
const warehouseOk = hasWarehouseAccess(account);
const [dash, setDash] = useState<Record<string, unknown> | null>(null);
const [stores, setStores] = useState<Array<Record<string, unknown>>>([]);
@@ -147,10 +148,12 @@ export default function HomePage() {
useEffect(() => {
if (!isLoggedIn()) { navigate('/login'); return; }
if (isWarehouse || isPrimary) {
if ((isWarehouse || isPrimary) && warehouseOk) {
request<{ list: Array<Record<string, unknown>> }>('PARTNER_H5', '/partner/orders')
.then((data) => setOrders(Array.isArray(data.list) ? data.list : []))
.catch(() => setOrders([]));
} else {
setOrders([]);
}
if (!isWarehouse) {
request<Record<string, unknown>>('PARTNER_H5', '/partner/dashboard').then(setDash).catch(() => {});
@@ -165,7 +168,7 @@ export default function HomePage() {
} else {
request<Record<string, unknown>>('PARTNER_H5', '/partner/dashboard').then(setDash).catch(() => {});
}
}, [navigate, isWarehouse, isPrimary]);
}, [navigate, isWarehouse, isPrimary, warehouseOk]);
const storeCount = Number(dash?.storeCount || stores.length || 0);
const orderStats = useMemo(() => summarizeOrders(orders), [orders]);
@@ -190,7 +193,6 @@ export default function HomePage() {
const orderCount = Number(dash?.orderCount || orderStats.todayCount || 0);
const revenue = orderCount * 128.45;
const profit = revenue * 0.25;
const pendingShipBadge = orderStats.pendingShip;
return (
<div className="page partner-home partner-home--flush-top">
@@ -224,13 +226,6 @@ export default function HomePage() {
</div>
<span className="partner-quick-action-label"></span>
</Link>
<Link to="/reshipments" className="partner-quick-action">
<div className="partner-quick-action-icon partner-quick-action-icon--amber">
<span className="material-symbols-outlined">assignment_return</span>
{pendingShipBadge > 0 && <span className="partner-quick-badge-count">{pendingShipBadge}</span>}
</div>
<span className="partner-quick-action-label"></span>
</Link>
<Link to="/center/settlement" className="partner-quick-action">
<div className="partner-quick-action-icon partner-quick-action-icon--green">
<span className="material-symbols-outlined">account_balance</span>
@@ -252,7 +247,7 @@ export default function HomePage() {
<p className="headline-md" style={{ marginBottom: 8 }}></p>
)}
{(isPrimary || isWarehouse) && (
{(isPrimary || isWarehouse) && warehouseOk && (
<OrderSummarySection
title={isWarehouse ? '今日订单' : undefined}
todayCount={orderStats.todayCount}
@@ -262,6 +257,18 @@ export default function HomePage() {
/>
)}
{(isPrimary || isWarehouse) && !warehouseOk && (
<section className="partner-bento-card" style={{ marginBottom: 16 }}>
<div className="partner-warehouse-denied">
<span className="material-symbols-outlined text-primary">warehouse</span>
<p className="body-md" style={{ fontWeight: 600, marginTop: 8 }}></p>
<p className="label-md text-muted" style={{ marginTop: 4, lineHeight: 1.5 }}>
</p>
</div>
</section>
)}
{!isWarehouse && (
<>
<section className="partner-bento-card" style={{ marginBottom: 16 }}>