feat(statistics): 添加统计分析模块:天医币、实物、培训班。

- 新增天医币、实物和培训班报表页面
- 添加统计相关API接口
- 配置统计分析路由
- 优化SheetFooter和DialogFooter组件样式
This commit is contained in:
2026-01-14 09:24:24 +08:00
parent 77c1b37f2e
commit dff302aae8
11 changed files with 511 additions and 60 deletions

View File

@@ -2,14 +2,7 @@
import type { Props } from './types';
import { preferences } from '@vben-core/preferences';
import {
Card,
Separator,
Tabs,
TabsList,
TabsTrigger,
VbenAvatar,
} from '@vben-core/shadcn-ui';
import { Card, Separator, Tabs, TabsList, TabsTrigger, VbenAvatar } from '@vben-core/shadcn-ui';
import { Page } from '../../components';
@@ -29,15 +22,12 @@ const tabsValue = defineModel<string>('modelValue');
<div class="flex h-full w-full">
<Card class="w-1/6 flex-none">
<div class="mt-4 flex h-40 flex-col items-center justify-center gap-4">
<VbenAvatar
:src="userInfo?.avatar ?? preferences.app.defaultAvatar"
class="size-20"
/>
<VbenAvatar :src="userInfo?.avatar ?? preferences.app.defaultAvatar" class="size-20" />
<span class="text-lg font-semibold">
{{ userInfo?.realName ?? '' }}
{{ userInfo?.name ?? '' }}
</span>
<span class="text-foreground/80 text-sm">
{{ userInfo?.username ?? '' }}
{{ userInfo?.name ?? '' }}
</span>
</div>
<Separator class="my-4" />

View File

@@ -219,10 +219,16 @@ const headerSlots = computed(() => {
:z-index="preferences.app.zIndex"
@side-mouse-leave="handleSideMouseLeave"
@toggle-sidebar="toggleSidebar"
@update:sidebar-collapse="(value: boolean) => updatePreferences({ sidebar: { collapsed: value } })"
@update:sidebar-collapse="
(value: boolean) => updatePreferences({ sidebar: { collapsed: value } })
"
@update:sidebar-enable="(value: boolean) => updatePreferences({ sidebar: { enable: value } })"
@update:sidebar-expand-on-hover="(value: boolean) => updatePreferences({ sidebar: { expandOnHover: value } })"
@update:sidebar-extra-collapse="(value: boolean) => updatePreferences({ sidebar: { extraCollapse: value } })"
@update:sidebar-expand-on-hover="
(value: boolean) => updatePreferences({ sidebar: { expandOnHover: value } })
"
@update:sidebar-extra-collapse="
(value: boolean) => updatePreferences({ sidebar: { extraCollapse: value } })
"
>
<!-- logo -->
<template #logo>
@@ -330,7 +336,11 @@ const headerSlots = computed(() => {
</template>
<template #tabbar>
<LayoutTabbar v-if="preferences.tabbar.enable" :show-icon="preferences.tabbar.showIcon" :theme="theme" />
<LayoutTabbar
v-if="preferences.tabbar.enable"
:show-icon="preferences.tabbar.showIcon"
:theme="theme"
/>
</template>
<!-- 主体内容 -->
@@ -361,7 +371,10 @@ const headerSlots = computed(() => {
</Transition>
<template v-if="preferencesButtonPosition.fixed">
<Preferences class="z-100 fixed bottom-20 right-0" @clear-preferences-and-logout="clearPreferencesAndLogout" />
<Preferences
class="z-100 fixed bottom-20 right-0"
@clear-preferences-and-logout="clearPreferencesAndLogout"
/>
</template>
<VbenBackTop />
</template>