feat(仪表盘): 调整穿搭统计维度为公开/私密/封禁

将穿搭审核状态统计改为公开、私密、已封禁三个维度,并更新待办事项与内容概况面板展示。
This commit is contained in:
2026-09-16 02:58:58 +08:00
parent e594061534
commit de773a95cd
2 changed files with 20 additions and 13 deletions
+6 -4
View File
@@ -1,9 +1,10 @@
export interface DashboardContent {
// 业务侧公开穿搭即自动过审,不再输出审核状态分布;
// 公开/私密按 is_public 统计且均已剔除已封禁,三者互不重叠。
outfit: {
total: number
pending: number
passed: number
rejected: number
public: number
private: number
banned: number
}
clothes: {
@@ -77,7 +78,8 @@ export interface DashboardSummary {
}
todo: {
refund_pending: number
outfit_pending_audit: number
outfit_public_total: number
outfit_banned: number
goods_on_shelf: number
}
content: DashboardContent
+14 -9
View File
@@ -140,11 +140,11 @@ const outfitPieOption = computed<EChartsOption>(() => {
const o = summary.value?.content.outfit
return pieOption(
[
{ name: '待审核', value: o?.pending ?? 0 },
{ name: '已通过', value: o?.passed ?? 0 },
{ name: '未通过', value: o?.rejected ?? 0 },
{ name: '公开', value: o?.public ?? 0 },
{ name: '私密', value: o?.private ?? 0 },
{ name: '已封禁', value: o?.banned ?? 0 },
],
['#f59e0b', '#22c55e', '#ef4444'],
['#22c55e', '#9aa3c0', '#ef4444'],
)
})
@@ -209,8 +209,13 @@ const goodsTypePieOption = computed<EChartsOption>(() => {
</div>
<div class="todo-divider"></div>
<div class="todo-item">
<span class="todo-num">{{ summary?.todo.outfit_pending_audit ?? 0 }}</span>
<span class="todo-label">待审核穿搭</span>
<span class="todo-num">{{ summary?.todo.outfit_public_total ?? 0 }}</span>
<span class="todo-label">公开穿搭</span>
</div>
<div class="todo-divider"></div>
<div class="todo-item">
<span class="todo-num">{{ summary?.todo.outfit_banned ?? 0 }}</span>
<span class="todo-label">已封禁穿搭</span>
</div>
</div>
</div>
@@ -307,11 +312,11 @@ const goodsTypePieOption = computed<EChartsOption>(() => {
<!-- 内容审核概况 -->
<div class="panel dist-panel">
<div class="panel-head">
<span class="panel-title">内容审核概况</span>
<el-tag size="small" type="warning" effect="light">待审穿搭 {{ summary?.content.outfit.pending ?? 0 }}</el-tag>
<span class="panel-title">内容概况</span>
<el-tag size="small" type="danger" effect="light">已封禁 {{ summary?.content.outfit.banned ?? 0 }}</el-tag>
</div>
<div class="audit-block">
<div class="audit-title">穿搭审核</div>
<div class="audit-title">穿搭分布</div>
<BaseChart :option="outfitPieOption" height="120px" />
</div>
<div class="audit-block">