Ethanfly 13 часов назад
Родитель
Сommit
32bb9cf857

+ 0 - 9
client/src/components.d.ts

@@ -15,13 +15,9 @@ declare module 'vue' {
     ElBadge: typeof import('element-plus/es')['ElBadge']
     ElButton: typeof import('element-plus/es')['ElButton']
     ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
-    ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
-    ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     ElContainer: typeof import('element-plus/es')['ElContainer']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
-    ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
-    ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
     ElDialog: typeof import('element-plus/es')['ElDialog']
     ElDivider: typeof import('element-plus/es')['ElDivider']
     ElDrawer: typeof import('element-plus/es')['ElDrawer']
@@ -29,12 +25,9 @@ declare module 'vue' {
     ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
     ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
     ElEmpty: typeof import('element-plus/es')['ElEmpty']
-    ElForm: typeof import('element-plus/es')['ElForm']
-    ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElImage: typeof import('element-plus/es')['ElImage']
     ElInput: typeof import('element-plus/es')['ElInput']
-    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
     ElMain: typeof import('element-plus/es')['ElMain']
     ElMenu: typeof import('element-plus/es')['ElMenu']
     ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
@@ -51,8 +44,6 @@ declare module 'vue' {
     ElTabPane: typeof import('element-plus/es')['ElTabPane']
     ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
-    ElText: typeof import('element-plus/es')['ElText']
-    ElUpload: typeof import('element-plus/es')['ElUpload']
     Icons: typeof import('./components/icons/index.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']

+ 4 - 0
client/src/views/Analytics/Overview/index.vue

@@ -210,6 +210,7 @@ const accounts = ref<AccountData[]>([]);
 // 汇总统计
 interface SummaryData {
   totalAccounts: number;
+  totalWorks: number;
   // totalIncome: number;
   // yesterdayIncome: number;
   totalViews: number;
@@ -222,6 +223,7 @@ interface SummaryData {
 
 const summaryData = ref<SummaryData>({
   totalAccounts: 0,
+  totalWorks: 0,
   // totalIncome: 0,
   // yesterdayIncome: 0,
   totalViews: 0,
@@ -235,6 +237,7 @@ const summaryData = ref<SummaryData>({
 // 统计卡片数据(使用后端返回的汇总数据)
 const summaryStats = computed(() => [
   { label: '账号总数', value: summaryData.value.totalAccounts },
+  { label: '总作品数', value: summaryData.value.totalWorks },
   // { label: '总收益(元)', value: summaryData.value.totalIncome || 0 },
   // { label: '昨日收益(元)', value: summaryData.value.yesterdayIncome || 0 },
   { label: '总播放(阅读)', value: formatNumber(summaryData.value.totalViews || 0) },
@@ -335,6 +338,7 @@ async function loadData() {
       if (data.summary) {
         summaryData.value = {
           totalAccounts: data.summary.totalAccounts || 0,
+          totalWorks: data.summary.totalWorks || 0,
           // totalIncome: data.summary.totalIncome || 0,
           // yesterdayIncome: data.summary.yesterdayIncome || 0,
           totalViews: data.summary.totalViews || 0,

+ 1 - 1
client/src/views/Dashboard/index.vue

@@ -141,7 +141,7 @@ let resizeObserver: ResizeObserver | null = null;
 
 const stats = ref([
   { label: '平台账号', value: 0, icon: markRaw(User), iconClass: 'blue' },
-  { label: '发布视频', value: 0, icon: markRaw(VideoPlay), iconClass: 'green' },
+  { label: '总作品数', value: 0, icon: markRaw(VideoPlay), iconClass: 'green' },
   { label: '总粉丝数', value: '0', icon: markRaw(UserFilled), iconClass: 'orange' },
   { label: '总播放量', value: '0', icon: markRaw(TrendCharts), iconClass: 'pink' },
 ]);

+ 7 - 0
server/src/services/WorkDayStatisticsService.ts

@@ -608,6 +608,7 @@ export class WorkDayStatisticsService {
       groupId: number | null;
       groupName?: string | null;
       fansCount: number;
+      worksCount: number | null;
       totalIncome: number | null;
       yesterdayIncome: number | null;
       totalViews: number | null;
@@ -620,6 +621,7 @@ export class WorkDayStatisticsService {
     }>;
     summary: {
       totalAccounts: number;
+      totalWorks: number;
       totalIncome: number;
       yesterdayIncome: number;
       totalViews: number;
@@ -703,6 +705,7 @@ export class WorkDayStatisticsService {
     // 汇总统计数据
     let totalIncome = 0;
     let yesterdayIncome = 0;
+    let totalWorks = 0;
     let totalViews = 0;
     let yesterdayViews = 0;
     let totalFans = 0;
@@ -715,6 +718,7 @@ export class WorkDayStatisticsService {
       const yesterdayUds = yesterdayUdsMap.get(account.id);
 
       const accountFansCount = account.fansCount || 0;
+      const accountWorksCount = account.worksCount || 0;
       const accountYesterdayViews = yesterdayUds?.playCount ?? 0;
       const accountYesterdayComments = yesterdayUds?.commentCount ?? 0;
       const accountYesterdayLikes = yesterdayUds?.likeCount ?? 0;
@@ -731,6 +735,7 @@ export class WorkDayStatisticsService {
         groupId: account.groupId,
         groupName: account.group?.name ?? null,
         fansCount: accountFansCount,
+        worksCount: accountWorksCount,
         totalIncome: null,
         yesterdayIncome: null,
         totalViews: accountTotalViews,
@@ -742,6 +747,7 @@ export class WorkDayStatisticsService {
         status: account.status,
       });
 
+      totalWorks += accountWorksCount;
       totalViews += accountTotalViews;
       totalFans += accountFansCount;
       yesterdayViews += accountYesterdayViews;
@@ -754,6 +760,7 @@ export class WorkDayStatisticsService {
       accounts: accountList,
       summary: {
         totalAccounts,
+        totalWorks,
         totalIncome,
         yesterdayIncome,
         totalViews,