refactor(admin-web): 用户详情页术语统一为"引荐"

- "直推" → "引荐"
- "推荐人" → "引荐人"
- "推荐关系" → "引荐关系"

涉及修改:
- 统计卡片:直推人数 → 引荐人数,活跃直推 → 活跃引荐
- 引荐人信息区域标签
- Tab 标签名称
- 引荐关系树标题和节点标签
- 空状态提示文案

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-07 20:56:32 -08:00
parent 5f6ecf9670
commit 59469055c7
1 changed files with 15 additions and 15 deletions

View File

@ -32,7 +32,7 @@ import styles from './user-detail.module.scss';
type TabType = 'referral' | 'planting' | 'wallet' | 'authorization';
const tabs: { key: TabType; label: string }[] = [
{ key: 'referral', label: '荐关系' },
{ key: 'referral', label: '荐关系' },
{ key: 'planting', label: '认种信息' },
{ key: 'wallet', label: '钱包信息' },
{ key: 'authorization', label: '授权信息' },
@ -248,23 +248,23 @@ export default function UserDetailPage() {
</span>
</div>
<div className={styles.userDetail__statCard}>
<span className={styles.userDetail__statLabel}></span>
<span className={styles.userDetail__statLabel}></span>
<span className={styles.userDetail__statValue}>
{formatNumber(userDetail.referralInfo.directReferralCount)}
</span>
</div>
<div className={styles.userDetail__statCard}>
<span className={styles.userDetail__statLabel}></span>
<span className={styles.userDetail__statLabel}></span>
<span className={styles.userDetail__statValue}>
{formatNumber(userDetail.referralInfo.activeDirectCount)}
</span>
</div>
</div>
{/* 荐人信息 */}
{/* 荐人信息 */}
{userDetail.referralInfo.referrerSequence && (
<div className={styles.userDetail__referrerInfo}>
<span className={styles.userDetail__referrerLabel}>:</span>
<span className={styles.userDetail__referrerLabel}>:</span>
<Link
href={`/users/${userDetail.referralInfo.referrerSequence}`}
className={styles.userDetail__referrerLink}
@ -300,11 +300,11 @@ export default function UserDetailPage() {
{/* Tab 内容 */}
<div className={styles.userDetail__tabContent}>
{/* 荐关系 Tab */}
{/* 荐关系 Tab */}
{activeTab === 'referral' && (
<div className={styles.referralTab}>
<div className={styles.referralTab__header}>
<h3></h3>
<h3></h3>
{treeRootUser !== accountSequence && (
<Button
variant="outline"
@ -320,10 +320,10 @@ export default function UserDetailPage() {
<div className={styles.referralTab__loading}>...</div>
) : referralTree ? (
<div className={styles.referralTree}>
{/* 向上的荐人链 */}
{/* 向上的荐人链 */}
{referralTree.ancestors.length > 0 && (
<div className={styles.referralTree__ancestors}>
<div className={styles.referralTree__label}> ()</div>
<div className={styles.referralTree__label}> ()</div>
<div className={styles.referralTree__nodeList}>
{referralTree.ancestors.map((ancestor, index) => (
<div key={ancestor.accountSequence} className={styles.referralTree__nodeWrapper}>
@ -369,17 +369,17 @@ export default function UserDetailPage() {
: {formatNumber(referralTree.currentUser.personalAdoptions)}
</span>
<span className={styles.referralTree__nodeCount}>
: {formatNumber(referralTree.currentUser.directReferralCount)}
: {formatNumber(referralTree.currentUser.directReferralCount)}
</span>
</div>
</div>
{/* 直推用户 */}
{/* 引荐用户 */}
{referralTree.directReferrals.length > 0 && (
<div className={styles.referralTree__directReferrals}>
<div className={styles.referralTree__connector}></div>
<div className={styles.referralTree__label}>
({referralTree.directReferrals.length})
({referralTree.directReferrals.length})
</div>
<div className={styles.referralTree__nodeGrid}>
{referralTree.directReferrals.map((referral) => (
@ -397,7 +397,7 @@ export default function UserDetailPage() {
</span>
{referral.directReferralCount > 0 && (
<span className={styles.referralTree__nodeCount}>
: {formatNumber(referral.directReferralCount)}
: {formatNumber(referral.directReferralCount)}
</span>
)}
</button>
@ -407,11 +407,11 @@ export default function UserDetailPage() {
)}
{referralTree.directReferrals.length === 0 && referralTree.ancestors.length === 0 && (
<div className={styles.referralTree__empty}></div>
<div className={styles.referralTree__empty}></div>
)}
</div>
) : (
<div className={styles.referralTab__empty}></div>
<div className={styles.referralTab__empty}></div>
)}
</div>
)}