feat(dashboard): 完善全角色身份会员数量、马豆存量、分佣及市值统计矩阵
这个提交包含在:
@@ -110,6 +110,13 @@
|
||||
.dashboard-index .bg-primary { background: #806af6; }
|
||||
.dashboard-index .bg-cyan { background: #13c2c2; }
|
||||
.dashboard-index .bg-orange { background: #fa8c16; }
|
||||
.dashboard-index .bg-purple { background: #722ed1; }
|
||||
|
||||
.dashboard-index .role-table-card {
|
||||
padding: 16px 20px;
|
||||
margin-top: 14px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.dashboard-index #userTotal,
|
||||
.dashboard-index #agentTotal,
|
||||
@@ -336,7 +343,8 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- ================= 2. 合伙股东网络与活力矩阵 ================= -->
|
||||
<!-- ================= 2. 全角色身份会员资产与收益统计全景透视 ================= -->
|
||||
<!-- 2.1 三大核心板块快速指标卡 -->
|
||||
<el-row :gutter="16">
|
||||
<!-- 品酒师基础会员 -->
|
||||
<el-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
|
||||
@@ -344,17 +352,21 @@
|
||||
<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="font-bold text-dark" style="font-size: 14px;">品酒师队伍</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>
|
||||
</span>
|
||||
</div>
|
||||
<div class="sa-flex sa-row-between text-muted" style="font-size: 12px;">
|
||||
<span>30日自购活跃率:<strong class="text-success">{{ state.partner.active_rate }}%</strong></span>
|
||||
<span>正常:<strong class="text-success">{{ state.partner.active_count }}</strong> 人 / 暂停:<strong class="text-muted">{{ state.partner.inactive_count }}</strong> 人</span>
|
||||
<span>持豆:<strong class="text-purple">{{ state.partner.role_stats?.taster?.madow_total || '0.00000000' }}</strong> 豆</span>
|
||||
<span>分佣:<strong class="text-warning">¥{{ state.partner.role_stats?.taster?.reward_amount || '0.00' }}</strong> ({{ state.partner.role_stats?.taster?.reward_count || 0 }}笔)</span>
|
||||
</div>
|
||||
<el-progress :percentage="state.partner.active_rate" :stroke-width="5" :show-text="false" color="#52c41a" style="margin-top: 8px;"></el-progress>
|
||||
<div class="sa-flex sa-row-between text-muted" style="font-size: 12px; margin-top: 6px;">
|
||||
<span>30日活跃率:<strong class="text-success">{{ state.partner.role_stats?.taster?.active_rate || 0 }}%</strong> ({{ state.partner.role_stats?.taster?.active_count || 0 }}人)</span>
|
||||
<span>马豆现值:<strong class="text-purple">¥{{ state.partner.role_stats?.taster?.madow_cny || '0.00' }}</strong></span>
|
||||
</div>
|
||||
<el-progress :percentage="state.partner.role_stats?.taster?.active_rate || 0" :stroke-width="5" :show-text="false" color="#52c41a" style="margin-top: 8px;"></el-progress>
|
||||
</div>
|
||||
</el-col>
|
||||
|
||||
@@ -364,12 +376,20 @@
|
||||
<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="font-bold text-dark" style="font-size: 14px;">创客合伙骨干 (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>
|
||||
</span>
|
||||
</div>
|
||||
<div class="sa-flex sa-row-between text-muted" style="font-size: 12px;">
|
||||
<span>持豆:<strong class="text-purple">{{ state.partner.role_stats?.maker_total?.madow_total || '0.00000000' }}</strong> 豆</span>
|
||||
<span>分佣:<strong class="text-warning">¥{{ state.partner.role_stats?.maker_total?.reward_amount || '0.00' }}</strong> ({{ state.partner.role_stats?.maker_total?.reward_count || 0 }}笔)</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?.maker_total?.madow_cny || '0.00' }}</strong></span>
|
||||
<span>活跃率:<strong class="text-success">{{ state.partner.role_stats?.maker_total?.active_rate || 0 }}%</strong> ({{ state.partner.role_stats?.maker_total?.active_count || 0 }}人)</span>
|
||||
</div>
|
||||
<div class="sa-flex sa-flex-wrap" style="margin-top: 6px;">
|
||||
<el-tag size="small" class="mr-1 mb-1" effect="light" type="info" v-for="(cnt, lv) in state.partner.maker_levels" :key="lv">
|
||||
{{ lv }}: {{ cnt }}人
|
||||
@@ -383,21 +403,118 @@
|
||||
<div class="network-card card">
|
||||
<div class="sa-flex sa-row-between mb-2">
|
||||
<div class="sa-flex">
|
||||
<span class="network-badge bg-orange mr-2">馆</span>
|
||||
<span class="network-badge bg-orange mr-2">渠</span>
|
||||
<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: 15px;">酒道馆 {{ state.partner.venue_count }} 家</span>
|
||||
<span class="text-purple font-bold" style="font-size: 15px;">区县 {{ state.partner.county_count }} 个</span>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sa-flex sa-row-between text-muted" style="font-size: 12px; margin-top: 10px;">
|
||||
<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>
|
||||
</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>
|
||||
</div>
|
||||
<div class="sa-flex sa-row-between text-muted" style="font-size: 12px; margin-top: 6px;">
|
||||
<span>享团队拆分 (50~100元) + 平台日结均分池</span>
|
||||
<span class="cursor-pointer text-primary" @click="onOpenAgent('')">渠道档案 →</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 2.2 全角色身份资产与收益穿透数据大表 -->
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="24">
|
||||
<div class="role-table-card card">
|
||||
<div class="sa-flex sa-row-between mb-3 sa-flex-wrap">
|
||||
<div>
|
||||
<span class="font-bold text-dark" style="font-size: 15px;">全角色身份会员资产与分佣统计全景矩阵</span>
|
||||
<span style="font-size: 12px; color: var(--sa-subfont); margin-left: 12px;">
|
||||
逐一统计每一个角色身份的会员人数、持豆存量、实时市值、累计分佣金额与笔数
|
||||
</span>
|
||||
</div>
|
||||
<div class="sa-flex" style="margin-top: 4px;">
|
||||
<el-button size="small" type="primary" plain @click="onOpenAgent('')">合伙股东档案 →</el-button>
|
||||
<el-button size="small" type="success" plain @click="onOpenReward('')">全部分成流水 →</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-table class="sa-table" :data="state.partner.role_list" stripe border style="width: 100%;">
|
||||
<el-table-column label="角色身份" min-width="170">
|
||||
<template #default="scope">
|
||||
<div class="sa-flex">
|
||||
<el-tag size="small" :style="{ backgroundColor: scope.row.color, color: '#fff', borderColor: scope.row.color, marginRight: '8px', fontWeight: 'bold' }">
|
||||
{{ scope.row.badge }}
|
||||
</el-tag>
|
||||
<span :class="scope.row.role_key.includes('total') ? 'font-bold text-dark' : 'text-dark'">
|
||||
{{ scope.row.role_name }}
|
||||
</span>
|
||||
<el-tag size="mini" type="info" effect="plain" style="margin-left: 6px;">
|
||||
{{ scope.row.category }}
|
||||
</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="会员数量" width="120" align="center">
|
||||
<template #default="scope">
|
||||
<span class="font-bold text-dark" style="font-size: 15px;">{{ scope.row.user_count }}</span>
|
||||
<span style="font-size: 12px; color: var(--sa-subfont); margin-left: 2px;">{{ scope.row.unit }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="持豆总量 (马豆)" min-width="160" align="right">
|
||||
<template #default="scope">
|
||||
<span class="text-purple font-bold">{{ scope.row.madow_total }}</span>
|
||||
<span style="font-size: 11px; color: var(--sa-subfont); margin-left: 2px;">豆</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="马豆折合市值 (CNY)" min-width="150" align="right">
|
||||
<template #default="scope">
|
||||
<span class="font-bold text-purple">¥{{ scope.row.madow_cny }}</span>
|
||||
<div v-if="scope.row.madow_cny === '0.00' && scope.row.madow_cny_raw > 0" style="font-size: 10px; color: #999;">
|
||||
(精算值约 ¥{{ scope.row.madow_cny_raw }})
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="累计现金分佣" min-width="140" align="right">
|
||||
<template #default="scope">
|
||||
<span class="font-bold text-warning" style="font-size: 14px;">¥{{ scope.row.reward_amount }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="分佣笔数" width="100" align="center">
|
||||
<template #default="scope">
|
||||
<span class="font-bold">{{ scope.row.reward_count }}</span>
|
||||
<span style="font-size: 11px; color: var(--sa-subfont);"> 笔</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="30天自购活跃度" min-width="170">
|
||||
<template #default="scope">
|
||||
<div class="sa-flex sa-row-between" style="font-size: 12px; margin-bottom: 3px;">
|
||||
<span>{{ scope.row.active_count }} {{ scope.row.unit }} 达标</span>
|
||||
<strong :class="scope.row.active_rate >= 60 ? 'text-success' : 'text-warning'">{{ scope.row.active_rate }}%</strong>
|
||||
</div>
|
||||
<el-progress :percentage="scope.row.active_rate" :stroke-width="4" :show-text="false" :color="scope.row.active_rate >= 60 ? '#52c41a' : '#fa8c16'"></el-progress>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="穿透操作" width="140" align="center">
|
||||
<template #default="scope">
|
||||
<el-button size="small" type="primary" link @click="onOpenRoleAgent(scope.row)">档案</el-button>
|
||||
<el-button size="small" type="warning" link @click="onOpenRoleReward(scope.row)">收益</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
{/if}
|
||||
|
||||
{if $auth->check('shopro/dashboard/chart')}
|
||||
|
||||
在新工单中引用
屏蔽一个用户