feat(admin,api,player): 结算预览分页、统计图表与返水限额

完善结算计算与预览 API(含后端分页),加强管理端结算/返水/权限,并优化玩家端投注单与队徽展示。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-05 13:54:33 +08:00
parent 6264b8806c
commit efff7c27e6
40 changed files with 3560 additions and 578 deletions

View File

@@ -1,7 +1,7 @@
<script setup lang="ts">
import { computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { teamFlagUrl } from '../utils/teamFlag';
import TeamEmblem from './TeamEmblem.vue';
const props = defineProps<{
match: {
@@ -31,12 +31,6 @@ const kickoff = computed(() => {
});
});
const homeFlag = computed(() =>
teamFlagUrl(props.match.homeTeamCode, props.match.homeTeamName, props.match.homeTeamLogoUrl),
);
const awayFlag = computed(() =>
teamFlagUrl(props.match.awayTeamCode, props.match.awayTeamName, props.match.awayTeamLogoUrl),
);
</script>
<template>
@@ -44,12 +38,22 @@ const awayFlag = computed(() =>
<div class="kickoff">{{ kickoff }}</div>
<div class="teams-stack">
<div class="side">
<img v-if="homeFlag" :src="homeFlag" alt="" class="flag" />
<TeamEmblem
size="sm"
:team-code="match.homeTeamCode"
:team-name="match.homeTeamName"
:logo-url="match.homeTeamLogoUrl"
/>
<span class="name">{{ match.homeTeamName }}</span>
</div>
<span class="vs">VS</span>
<div class="side">
<img v-if="awayFlag" :src="awayFlag" alt="" class="flag" />
<TeamEmblem
size="sm"
:team-code="match.awayTeamCode"
:team-name="match.awayTeamName"
:logo-url="match.awayTeamLogoUrl"
/>
<span class="name">{{ match.awayTeamName }}</span>
</div>
</div>
@@ -98,14 +102,6 @@ const awayFlag = computed(() =>
min-width: 0;
}
.flag {
width: 22px;
height: 15px;
object-fit: cover;
border-radius: 2px;
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.name {
width: 100%;
font-size: 10px;