feat: 完成会员消息触达模块页面与交互

This commit is contained in:
2026-03-04 11:36:49 +08:00
parent 058ec9c142
commit 3056b56082
26 changed files with 3485 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
<script setup lang="ts">
import type { MessageReachStatsViewModel } from '../types';
import { Spin } from 'ant-design-vue';
import {
formatInteger,
formatPercent,
} from '../composables/message-reach-page/helpers';
defineProps<{
loading: boolean;
stats: MessageReachStatsViewModel;
}>();
</script>
<template>
<Spin :spinning="loading">
<div class="mmr-stats">
<div class="mmr-stat-card">
<div class="mmr-stat-label">本月发送</div>
<div class="mmr-stat-value">
{{ formatInteger(stats.monthlySentCount) }}
<span class="mmr-stat-unit"></span>
</div>
</div>
<div class="mmr-stat-card">
<div class="mmr-stat-label">触达人数</div>
<div class="mmr-stat-value">
{{ formatInteger(stats.reachMemberCount) }}
<span class="mmr-stat-unit"></span>
</div>
</div>
<div class="mmr-stat-card">
<div class="mmr-stat-label">打开率</div>
<div class="mmr-stat-value">
{{ formatPercent(stats.openRate) }}
</div>
</div>
<div class="mmr-stat-card">
<div class="mmr-stat-label">转化率</div>
<div class="mmr-stat-value">
{{ formatPercent(stats.conversionRate) }}
</div>
</div>
</div>
</Spin>
</template>