feat: 支持角色身份自定义名称全链路配置与动态展示

这个提交包含在:
chen
2026-09-17 15:40:47 +08:00
父节点 06e98c57e0
当前提交 f8179706b3
共有 24 个文件被更改,包括 508 次插入 和 110 次删除

查看文件

@@ -199,6 +199,8 @@ class Config extends Common
'partner_maker_overtaken_rate', 'partner_team_total', 'partner_venue_split',
'partner_county_full', 'partner_venue_share_per_order', 'partner_county_share_per_order',
'partner_venue_peer_rate', 'partner_county_peer_rate',
'partner_role_name_taster', 'partner_role_name_maker', 'partner_role_name_venue',
'partner_role_name_county', 'partner_role_name_partner',
];
if ('GET' === $this->request->method()) {
$all = ShoproConfig::getConfigs('shop.commission', false) ?: [];
@@ -228,6 +230,11 @@ class Config extends Common
'partner_county_share_per_order' => 50,
'partner_venue_peer_rate' => 0.10,
'partner_county_peer_rate' => 0.10,
'partner_role_name_taster' => '品酒师',
'partner_role_name_maker' => '创客',
'partner_role_name_venue' => '酒道馆',
'partner_role_name_county' => '区县代理',
'partner_role_name_partner' => '合伙股东',
];
foreach ($defaults as $key => $value) {
if ($configs[$key] === null || $configs[$key] === '') {
@@ -243,6 +250,11 @@ class Config extends Common
$save[$key] = $params[$key];
}
}
foreach (['partner_role_name_taster', 'partner_role_name_maker', 'partner_role_name_venue', 'partner_role_name_county', 'partner_role_name_partner'] as $roleKey) {
if (isset($save[$roleKey])) {
$save[$roleKey] = trim((string) $save[$roleKey]);
}
}
if (isset($save['partner_active_days']) && intval($save['partner_active_days']) < 1) {
$this->error('领取窗口天数须 ≥ 1');
}

查看文件

@@ -169,7 +169,7 @@ class Dashboard extends Common
'available_voucher' => number_format($availableVoucher, 2, '.', ''),
];
// 7. 合伙股东网络与全角色身份矩阵 (收益按角色专属类型归集,杜绝重复统计)
// 7. 收益中心网络与全角色身份矩阵 (收益按角色专属类型归集,杜绝重复统计)
$totalRegisteredUsers = (int) User::count();
$totalAgents = (int) Agent::count();
$normalUserCount = max(0, $totalRegisteredUsers - $totalAgents);
@@ -194,7 +194,7 @@ class Dashboard extends Common
$activeUserIds = $activeService->activeUserIds($activeWindowStart, $now);
$activeUserMap = array_flip($activeUserIds);
// 全量合伙股东基础信息
// 全量成员档案基础信息
$allAgents = Agent::field('user_id, level, is_venue, is_county, madow, last_self_order_time')->select();
// 收益明细按 (user_id + reward_type) 聚合,精确归集各角色产出收益
@@ -284,18 +284,25 @@ class Dashboard extends Common
];
};
$roleNames = PartnerConfig::roleNames();
$tasterTitle = $roleNames['taster'];
$makerTitle = $roleNames['maker'];
$venueTitle = $roleNames['venue'];
$countyTitle = $roleNames['county'];
$partnerTitle = $roleNames['partner'];
// 统计各角色身份详细指标
$roleList = [
$calcRoleStats(function($a) { return (int)$a->level == 1; }, 'taster', '品酒师', '基础身份', '人', '品', '#806af6', 1, '', $roleRewardTypeFilter['taster']),
$calcRoleStats(function($a) { return (int)$a->level == 2; }, 'maker_v1', '创客V1', '创客梯队', '人', 'V1', '#13c2c2', 2, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 3; }, 'maker_v2', '创客V2', '创客梯队', '人', 'V2', '#13c2c2', 3, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 4; }, 'maker_v3', '创客V3', '创客梯队', '人', 'V3', '#13c2c2', 4, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 5; }, 'maker_v4', '创客V4', '创客梯队', '人', 'V4', '#13c2c2', 5, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 6; }, 'maker_v5', '创客V5', '创客梯队', '人', 'V5', '#13c2c2', 6, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 7; }, 'maker_v6', '创客V6', '创客梯队', '人', 'V6', '#13c2c2', 7, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level >= 2; }, 'maker_total', '创客队伍小计', '创客梯队', '人', '创', '#13c2c2', 'maker', '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->is_venue == 1; }, 'venue', '实体酒道馆', '渠道授权', '家', '馆', '#fa8c16', '', 'venue', $roleRewardTypeFilter['venue']),
$calcRoleStats(function($a) { return (int)$a->is_county == 1; }, 'county', '区县代理', '渠道授权', '个', '县', '#722ed1', '', 'county', $roleRewardTypeFilter['county']),
$calcRoleStats(function($a) { return (int)$a->level == 1; }, 'taster', $tasterTitle, '基础身份', '人', mb_substr($tasterTitle, 0, 1), '#806af6', 1, '', $roleRewardTypeFilter['taster']),
$calcRoleStats(function($a) { return (int)$a->level == 2; }, 'maker_v1', $makerTitle . 'V1', $makerTitle . '梯队', '人', 'V1', '#13c2c2', 2, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 3; }, 'maker_v2', $makerTitle . 'V2', $makerTitle . '梯队', '人', 'V2', '#13c2c2', 3, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 4; }, 'maker_v3', $makerTitle . 'V3', $makerTitle . '梯队', '人', 'V3', '#13c2c2', 4, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 5; }, 'maker_v4', $makerTitle . 'V4', $makerTitle . '梯队', '人', 'V4', '#13c2c2', 5, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 6; }, 'maker_v5', $makerTitle . 'V5', $makerTitle . '梯队', '人', 'V5', '#13c2c2', 6, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level == 7; }, 'maker_v6', $makerTitle . 'V6', $makerTitle . '梯队', '人', 'V6', '#13c2c2', 7, '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->level >= 2; }, 'maker_total', $makerTitle . '队伍小计', $makerTitle . '梯队', '人', mb_substr($makerTitle, 0, 1), '#13c2c2', 'maker', '', $roleRewardTypeFilter['maker']),
$calcRoleStats(function($a) { return (int)$a->is_venue == 1; }, 'venue', $venueTitle, '渠道授权', '家', mb_substr($venueTitle, 0, 1), '#fa8c16', '', 'venue', $roleRewardTypeFilter['venue']),
$calcRoleStats(function($a) { return (int)$a->is_county == 1; }, 'county', $countyTitle, '渠道授权', '个', mb_substr($countyTitle, 0, 1), '#722ed1', '', 'county', $roleRewardTypeFilter['county']),
];
// 增加普通注册会员行 (明确标明无需自购考核)
@@ -365,6 +372,8 @@ class Dashboard extends Common
'active_rate' => $activeRate,
'role_list' => $roleList,
'role_stats' => $roleStats,
'role_names' => $roleNames,
'custom_role_names' => $roleNames,
];
// 8. CFO 视角:平台资金池结余、刚性法币流动负债与提现风控
@@ -408,7 +417,7 @@ class Dashboard extends Common
'pending_voucher_quota' => number_format($pendingVoucher, 2, '.', ''),
];
// 9. COO 视角:转化复购漏斗、合伙股东自购续期雷达、供应链库存与实时待办看板
// 9. COO 视角:转化复购漏斗、进阶成员自购续期雷达、供应链库存与实时待办看板
$paidOrderUsers = Order::whereIn('status', [Order::STATUS_PAID, Order::STATUS_COMPLETED])
->group('user_id')
->field('user_id, count(*) as buy_count')
@@ -428,7 +437,7 @@ class Dashboard extends Common
$repeatPurchaseRate = $paidUsersCount > 0 ? round(($repeatBuyCount / $paidUsersCount) * 100, 1) : 0.0;
$arpu = $paidUsersCount > 0 ? round($netGmv / $paidUsersCount, 2) : 0.0;
// 9.2 合伙股东 30 天自购续期雷达 (仅统计具备合伙股东身份的会员,避免恐慌误判)
// 9.2 进阶成员 30 天自购续期雷达 (仅统计具备进阶角色的会员,避免恐慌误判)
$activePartnersCount = 0;
$warningPartnersCount = 0;
$pendingRenewCount = 0;
@@ -506,7 +515,7 @@ class Dashboard extends Common
}
}
// 股东专属自购达标率(分子为在保合格股东,分母为合伙股东总人数)
// 进阶成员自购达标率(分子为在保合格进阶成员,分母为进阶角色总人数)
$partnerActiveRate = $partnerShareholderCount > 0
? round((($activePartnersCount + $warningPartnersCount) / $partnerShareholderCount) * 100, 1)
: 0.0;
@@ -634,6 +643,8 @@ class Dashboard extends Common
'partner_network' => $partnerNetwork,
'finance_overview' => $financeOverview,
'operation_overview' => $operationOverview,
'custom_role_names' => $roleNames,
'role_names' => $roleNames,
]);
}
@@ -887,7 +898,7 @@ class Dashboard extends Common
$searchHistory = new SearchHistory();
$hotSearch = $searchHistory->hotSearch();
// 3. 合伙股东收益排行 TOP 5
// 3. 收益中心收益排行 TOP 5
$partnerRanking = [];
$rankingRows = Reward::field('user_id, sum(amount) as total_income, count(*) as reward_count')
->where('status', 1)

查看文件

@@ -61,14 +61,16 @@ class Agent extends Common
$identityInfo = \addons\shopro\service\partner\IdentityService::build($detail);
$isPartner = !empty($identityInfo['is_partner']);
$isAdvanced = !empty($identityInfo['is_advanced']);
$detail->is_partner = $isPartner ? 1 : 0;
$detail->is_advanced = $isAdvanced ? 1 : 0;
$detail->next_push3_amount = number_format((float) $next, 2, '.', '');
$detail->next_push3_text = '第 ' . ($seq + 1) . ' 单将返 ' . $detail->next_push3_amount;
$detail->last_self_order_text = $last ? date('Y-m-d H:i:s', $last) : '从未下单';
// 业务核心规范:合伙股东仅是会员专属进阶身份,普通会员与品酒师免自购考核
if (!$isPartner) {
// 业务核心规范:进阶角色(创客V1~V6、酒道馆、区县代理、合伙股东)需自购考核;基础会员及品酒师免自购考核
if (!$isAdvanced) {
$detail->active_status_text = '免自购考核 (基础会员/品酒师)';
} else {
$detail->active_status_text = !empty($detail->active_30d)
@@ -98,6 +100,8 @@ class Agent extends Common
$detail->partner_mode = \addons\shopro\service\partner\PartnerConfig::isPartnerMode() ? 1 : 0;
$rate = (new \addons\shopro\service\partner\RateService())->currentRate();
$detail->madow_value = \addons\shopro\service\partner\IdentityService::formatMoney((float) ($detail->madow ?? 0) * (float) $rate);
$detail->custom_role_names = \addons\shopro\service\partner\PartnerConfig::roleNames();
$detail->role_names = $detail->custom_role_names;
$this->success('分销商详情', null, $detail);
}

查看文件

@@ -48,7 +48,7 @@ class Reward extends Common
'buyer_nickname' => '买家',
'order_id' => '订单',
'reward_type_text' => '奖励类型',
'role_text' => '合伙身份',
'role_text' => '受益身份',
'amount' => '结算金额',
'madow' => '马豆',
'base_amount' => '基数',
@@ -61,7 +61,7 @@ class Reward extends Common
}
$export = new \addons\shopro\library\Export();
$params = [
'file_name' => '合伙人服务收益结算台账',
'file_name' => '收益中心结算台账',
'cell_titles' => $cellTitles,
'total' => $total,
'is_sub_cell' => false,

查看文件

@@ -23,7 +23,10 @@ class Agent extends Common
'identity_text',
'identities',
'is_partner',
'is_advanced',
'maker_level_name',
'role_names',
'custom_role_names',
'voucher_available',
'active_30d',
'madow_value',
@@ -93,11 +96,26 @@ class Agent extends Common
return \addons\shopro\service\partner\IdentityService::build($data)['is_partner'];
}
public function getIsAdvancedAttr($value, $data)
{
return \addons\shopro\service\partner\IdentityService::build($data)['is_advanced'] ?? false;
}
public function getMakerLevelNameAttr($value, $data)
{
return \addons\shopro\service\partner\IdentityService::build($data)['maker_level_name'];
}
public function getRoleNamesAttr($value, $data)
{
return \addons\shopro\service\partner\IdentityService::build($data)['role_names'] ?? \addons\shopro\service\partner\PartnerConfig::roleNames();
}
public function getCustomRoleNamesAttr($value, $data)
{
return $this->getRoleNamesAttr($value, $data);
}
public function getVoucherAvailableAttr($value, $data)
{
$released = (float) ($data['voucher_released'] ?? 0);

查看文件

@@ -314,26 +314,36 @@
</el-form-item>
<div style="font-weight: 600; font-size: 13px; color: var(--sa-title); margin: 16px 0 10px; padding-bottom: 4px; border-bottom: 1px solid var(--sa-border);" class="sa-flex sa-row-between">
<span>合伙股东身份(会员进阶身份)</span>
<span>角色身份与进阶权益</span>
{if $auth->check('shopro/commission/agent/edit')}
<el-button type="primary" size="small" link @click="onOpenIdentity">开通 / 调整身份</el-button>
{/if}
</div>
<template v-if="state.data.is_partner">
<el-form-item label="合伙股东身份:">
<template v-if="state.data.is_advanced">
<el-form-item label="身份标签:">
<el-tag type="warning" effect="dark" size="small">{{ state.data.identity_text }}</el-tag>
</el-form-item>
<el-form-item label="酒道馆:">
<el-form-item :label="(state.data.custom_role_names?.maker || '创客') + '等级:'">
<el-tag size="small" :type="Number(state.data.level) >= 2 ? 'primary' : 'info'">
{{ Number(state.data.level) >= 2 ? (state.data.maker_level_name || (state.data.custom_role_names?.maker || '创客') + 'V' + (Number(state.data.level) - 1)) : '未升级' + (state.data.custom_role_names?.maker || '创客') }}
</el-tag>
</el-form-item>
<el-form-item :label="(state.data.custom_role_names?.venue || '酒道馆') + ':'">
<el-tag size="small" :type="state.data.is_venue ? 'success' : 'info'">
{{ state.data.is_venue ? '已开通' : '未开通' }}
</el-tag>
</el-form-item>
<el-form-item label="区县代理:">
<el-form-item :label="(state.data.custom_role_names?.county || '区县代理') + ':'">
<el-tag size="small" :type="state.data.is_county ? 'warning' : 'info'">
{{ state.data.is_county ? '已开通' + (state.data.county_code ? ' (' + state.data.county_code + ')' : '') : '未开通' }}
</el-tag>
</el-form-item>
<el-form-item :label="(state.data.custom_role_names?.partner || '合伙股东') + ':'">
<el-tag size="small" :type="state.data.is_partner ? 'danger' : 'info'">
{{ state.data.is_partner ? '已授予' + (state.data.custom_role_names?.partner || '合伙股东') : '未开通' }}
</el-tag>
</el-form-item>
<el-form-item label="30天自购考核:">
<span v-if="state.data.active_30d" style="color: #52c41a; font-weight: 500;">
🟢 正常领取
@@ -358,17 +368,17 @@
</template>
<template v-else>
<el-form-item label="进阶身份:">
<el-tag type="info" effect="plain" size="small">基础会员 · 品酒师(暂未开通合伙股东)</el-tag>
<el-form-item label="当前身份:">
<el-tag type="info" effect="plain" size="small">{{ state.data.identity_text || ('基础会员 · ' + (state.data.custom_role_names?.taster || '品酒师')) }}</el-tag>
</el-form-item>
<div style="font-size: 12px; color: var(--sa-subfont); line-height: 1.6; background: #f8fafc; border: 1px dashed var(--sa-border); border-radius: 4px; padding: 8px 12px; margin: 4px 0 10px;">
💡 <strong>「合伙股东」是会员专属进阶身份</strong>:当会员升级创客(V1~V6)或开通酒道馆、区县代理时自动附加合伙股东身份标签,并享有团队分润与平台日结分红。当前会员为基础会员,享有推三返一,<strong>免自购考核</strong>。
💡 <strong>进阶角色体系说明</strong>:系统拥有{{ state.data.custom_role_names?.maker || '创客' }}(V1~V6)、{{ state.data.custom_role_names?.venue || '酒道馆' }}、{{ state.data.custom_role_names?.county || '区县代理' }}、{{ state.data.custom_role_names?.partner || '合伙股东' }}等独立进阶角色,享有团队分润与平台日结分红。当前会员为基础会员,享有推三返一,<strong>免自购考核</strong>。
</div>
<el-form-item label="自购考核要求:">
<el-tag size="small" type="info">免自购考核 (基础会员/品酒师)</el-tag>
<el-tag size="small" type="info">免自购考核 (基础会员/{{ state.data.custom_role_names?.taster || '品酒师' }})</el-tag>
</el-form-item>
<el-form-item label="合伙股东权益:">
<span style="color: var(--sa-subfont);">晋升创客或开通馆/县后即可享有团队奖、极差奖与马豆分红</span>
<el-form-item label="进阶权益:">
<span style="color: var(--sa-subfont);">升级创客或开通馆/县/股东后即可享有团队奖、极差奖与马豆分红</span>
</el-form-item>
</template>

查看文件

@@ -61,14 +61,15 @@
<template #default="scope">
<div>{{ scope.row.identity_text || '-' }}</div>
<div>
<el-tag v-if="scope.row.is_venue" size="small" type="success">酒道馆</el-tag>
<el-tag v-if="scope.row.is_county" size="small" type="warning">区县</el-tag>
<el-tag v-if="scope.row.is_venue" size="small" type="success">{{ scope.row.role_names?.venue || '酒道馆' }}</el-tag>
<el-tag v-if="scope.row.is_county" size="small" type="warning">{{ scope.row.role_names?.county || '区县代理' }}</el-tag>
<el-tag v-if="scope.row.is_partner" size="small" type="danger">{{ scope.row.role_names?.partner || '合伙股东' }}</el-tag>
</div>
</template>
</el-table-column>
<el-table-column label="30日活跃" min-width="100">
<template #default="scope">
<template v-if="scope.row.is_partner">
<template v-if="scope.row.is_advanced">
<span class="sa-flex sa-col-center">
<i class="active-dot" :class="scope.row.active_30d ? 'is-on' : 'is-off'"></i>
{{ scope.row.active_30d ? '有自购' : '已暂停' }}

查看文件

@@ -885,6 +885,23 @@
<div class="tip">partner_mode=1 时新单不再写百分比佣金</div>
</div>
</el-form-item>
<div class="sa-title is-line">角色身份自定义名称</div>
<el-form-item label="品酒师自定义名称">
<el-input class="sa-w-360" v-model="form.model.partner_role_name_taster" placeholder="默认:品酒师"></el-input>
<div class="tip">基础会员身份名称,如自定义为「品鉴官」,为空时恢复默认「品酒师」</div>
</el-form-item>
<el-form-item label="创客自定义基础名称">
<el-input class="sa-w-360" v-model="form.model.partner_role_name_maker" placeholder="默认:创客"></el-input>
<div class="tip">创客基础称谓,系统自动衍生各等级(如输入「服务商」,将展示为 服务商V1 ~ 服务商V6)</div>
</el-form-item>
<el-form-item label="酒道馆自定义名称">
<el-input class="sa-w-360" v-model="form.model.partner_role_name_venue" placeholder="默认:酒道馆"></el-input>
<div class="tip">实体枢纽身份名称,如自定义为「星级体验馆」,为空时恢复默认「酒道馆」</div>
</el-form-item>
<el-form-item label="区县代理自定义名称">
<el-input class="sa-w-360" v-model="form.model.partner_role_name_county" placeholder="默认:区县代理"></el-input>
<div class="tip">区域渠道领头人身份名称,如自定义为「城市合伙人」,为空时恢复默认「区县代理」</div>
</el-form-item>
<div class="sa-title is-line">计单 / 活跃</div>
<el-form-item label="合格订单口径">
<el-radio-group v-model="form.model.partner_count_type">

查看文件

@@ -528,8 +528,8 @@
<div class="network-card card">
<div class="sa-flex sa-row-between mb-2">
<div class="sa-flex">
<span class="network-badge bg-primary mr-2">品</span>
<span class="font-bold text-dark" style="font-size: 14px;">品酒师会员</span>
<span class="network-badge bg-primary mr-2">{{ (state.partner.role_names?.taster || '品').substr(0, 1) }}</span>
<span class="font-bold text-dark" style="font-size: 14px;">{{ state.partner.role_names?.taster || '品酒师' }}会员</span>
</div>
<span class="text-primary font-bold cursor-pointer" style="font-size: 18px;" @click="onOpenAgent(1)">
{{ state.partner.taster_count }} <span style="font-size: 12px; color: var(--sa-subfont);">人</span>
@@ -552,8 +552,8 @@
<div class="network-card card">
<div class="sa-flex sa-row-between mb-2">
<div class="sa-flex">
<span class="network-badge bg-cyan mr-2">创</span>
<span class="font-bold text-dark" style="font-size: 14px;">创客骨干梯队 (V1~V6)</span>
<span class="network-badge bg-cyan mr-2">{{ (state.partner.role_names?.maker || '创').substr(0, 1) }}</span>
<span class="font-bold text-dark" style="font-size: 14px;">{{ state.partner.role_names?.maker || '创客' }}骨干梯队 (V1~V6)</span>
</div>
<span class="text-cyan font-bold cursor-pointer" style="font-size: 18px;" @click="onOpenAgent('')">
{{ state.partner.maker_count }} <span style="font-size: 12px; color: var(--sa-subfont);">人</span>
@@ -584,15 +584,15 @@
<span class="font-bold text-dark" style="font-size: 14px;">实体与区域渠道</span>
</div>
<div class="sa-flex">
<span class="text-orange font-bold mr-2" style="font-size: 14px;">馆 {{ state.partner.venue_count }} 家</span>
<span class="text-purple font-bold" style="font-size: 14px;">县 {{ state.partner.county_count }} 个</span>
<span class="text-orange font-bold mr-2" style="font-size: 14px;">{{ (state.partner.role_names?.venue || '馆').substr(0, 1) }} {{ state.partner.venue_count }} 家</span>
<span class="text-purple font-bold" style="font-size: 14px;">{{ (state.partner.role_names?.county || '县').substr(0, 1) }} {{ state.partner.county_count }} 个</span>
</div>
</div>
<div class="sa-flex sa-row-between text-muted" style="font-size: 12px;">
<span>酒道馆:持豆 <strong class="text-purple">{{ state.partner.role_stats?.venue?.madow_total || '0.00' }}</strong> / 收益 <strong class="text-warning">¥{{ state.partner.role_stats?.venue?.reward_amount || '0.00' }}</strong></span>
<span>{{ state.partner.role_names?.venue || '酒道馆' }}:持豆 <strong class="text-purple">{{ state.partner.role_stats?.venue?.madow_total || '0.00' }}</strong> / 收益 <strong class="text-warning">¥{{ state.partner.role_stats?.venue?.reward_amount || '0.00' }}</strong></span>
</div>
<div class="sa-flex sa-row-between text-muted" style="font-size: 12px; margin-top: 6px;">
<span>区县代理:持豆 <strong class="text-purple">{{ state.partner.role_stats?.county?.madow_total || '0.00' }}</strong> / 收益 <strong class="text-warning">¥{{ state.partner.role_stats?.county?.reward_amount || '0.00' }}</strong></span>
<span>{{ state.partner.role_names?.county || '区县代理' }}:持豆 <strong class="text-purple">{{ state.partner.role_stats?.county?.madow_total || '0.00' }}</strong> / 收益 <strong class="text-warning">¥{{ state.partner.role_stats?.county?.reward_amount || '0.00' }}</strong></span>
</div>
<div class="sa-flex sa-row-between text-muted" style="font-size: 12px; margin-top: 6px;">
<span>享团队级差分润 + 平台日结均分池</span>

查看文件

@@ -48,7 +48,7 @@
</template>
</el-table-column>
<el-table-column prop="reward_type_text" label="奖励类型" min-width="120"></el-table-column>
<el-table-column prop="role_text" label="合伙身份" min-width="80"></el-table-column>
<el-table-column prop="role_text" label="受益身份" min-width="80"></el-table-column>
<el-table-column label="结算金额" min-width="90">
<template #default="scope"> {{ scope.row.amount }} </template>
</el-table-column>