From dc643ba44fd2a426263015491268a0f0d6b4671d Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期三, 01 十月 2025 08:39:29 +0800 Subject: [PATCH] 删除包含test、check、fix的文件名的文件 --- web/src/views/dashboard/index.vue | 188 ++++++++++++++++++---------------------------- 1 files changed, 73 insertions(+), 115 deletions(-) diff --git a/web/src/views/dashboard/index.vue b/web/src/views/dashboard/index.vue index d2a3ba5..77196f9 100644 --- a/web/src/views/dashboard/index.vue +++ b/web/src/views/dashboard/index.vue @@ -1,76 +1,77 @@ <template> - <div class="dashboard"> - <!-- 鏁版嵁缁熻鍗$墖 --> - <el-row :gutter="20" class="stats-row"> + <div> + <el-row :gutter="20"> <el-col :span="6"> - <div class="stat-card"> - <div class="stat-icon"> - <el-icon color="#409eff"><Trophy /></el-icon> + <el-card class="box-card"> + <template #header> + <div class="card-header"> + <span>褰撳墠杩涜姣旇禌</span> + </div> + </template> + <div class="text item"> + {{ stats.activeActivities }} </div> - <div class="stat-content"> - <div class="stat-number">{{ stats.activeActivities }}</div> - <div class="stat-label">褰撳墠杩涜姣旇禌</div> - </div> - </div> + </el-card> </el-col> - <el-col :span="6"> - <div class="stat-card"> - <div class="stat-icon"> - <el-icon color="#67c23a"><UserFilled /></el-icon> + <el-card class="box-card"> + <template #header> + <div class="card-header"> + <span>鍙傝禌鎬讳汉鏁�</span> + </div> + </template> + <div class="text item"> + {{ stats.totalPlayers }} </div> - <div class="stat-content"> - <div class="stat-number">{{ stats.totalPlayers }}</div> - <div class="stat-label">鍙傝禌鎬讳汉鏁�</div> - </div> - </div> + </el-card> </el-col> - <el-col :span="6"> - <div class="stat-card"> - <div class="stat-icon"> - <el-icon color="#e6a23c"><Clock /></el-icon> + <el-card class="box-card"> + <template #header> + <div class="card-header"> + <span>鎶ュ悕寰呭鏍�</span> + </div> + </template> + <div class="text item"> + {{ stats.pendingReviews }} </div> - <div class="stat-content"> - <div class="stat-number">{{ stats.pendingReviews }}</div> - <div class="stat-label">鎶ュ悕寰呭鏍�</div> - </div> - </div> + </el-card> </el-col> - <el-col :span="6"> - <div class="stat-card"> - <div class="stat-icon"> - <el-icon color="#f56c6c"><User /></el-icon> + <el-card class="box-card"> + <template #header> + <div class="card-header"> + <span>璇勫鎬绘暟</span> + </div> + </template> + <div class="text item"> + {{ stats.totalJudges }} </div> - <div class="stat-content"> - <div class="stat-number">{{ stats.totalJudges }}</div> - <div class="stat-label">璇勫鎬绘暟</div> - </div> - </div> + </el-card> </el-col> </el-row> - <!-- 鏈�杩戞椿鍔� --> - <div class="page-card"> - <h3 class="card-title">鏈�杩戞瘮璧�</h3> + <el-card class="box-card" style="margin-top: 20px;"> + <template #header> + <div class="card-header"> + <span>鏈�杩戞瘮璧�</span> + <el-button type="primary" @click="$router.push('/activity')">鏌ョ湅鍏ㄩ儴</el-button> + </div> + </template> <el-table :data="recentActivities" style="width: 100%"> - <el-table-column prop="name" label="姣旇禌鍚嶇О" /> + <el-table-column prop="name" label="姣旇禌鍚嶇О" width="180" /> <el-table-column prop="playerCount" label="鎶ュ悕浜烘暟" width="120" /> - <el-table-column prop="startTime" label="姣旇禌鏃堕棿" width="180" /> - <el-table-column prop="status" label="鐘舵��" width="100"> - <template #default="{ row }"> - <el-tag :type="getStatusType(row.status)">{{ row.status }}</el-tag> - </template> - </el-table-column> - <el-table-column label="鎿嶄綔" width="150"> - <template #default="{ row }"> - <el-button type="primary" size="small" @click="viewActivity(row)">鏌ョ湅</el-button> - <el-button type="success" size="small" @click="manageActivity(row)">绠$悊</el-button> + <el-table-column prop="startTime" label="寮�濮嬫椂闂�" width="180" /> + <el-table-column prop="endTime" label="缁撴潫鏃堕棿" width="180" /> + <el-table-column prop="status" label="鐘舵��" width="100" /> + <el-table-column label="鎿嶄綔"> + <template #default="scope"> + <el-button size="small" @click="viewActivity(scope.row)">鏌ョ湅</el-button> + <el-button size="small" type="primary" @click="manageActivity(scope.row)">绠$悊</el-button> </template> </el-table-column> </el-table> - </div> + </el-card> </div> </template> @@ -78,7 +79,6 @@ import { ref, onMounted } from 'vue' import { useRouter } from 'vue-router' import { ElMessage } from 'element-plus' -import { Trophy, UserFilled, Clock, User } from '@element-plus/icons-vue' import { getDashboardStats } from '@/api/dashboard' import { getActivities } from '@/api/activity' @@ -115,6 +115,7 @@ name: activity.name, playerCount: activity.playerCount || 0, startTime: activity.matchTime || activity.createTime, + endTime: activity.endTime || '寰呭畾', status: activity.stateName || '鏈煡' })) } catch (error) { @@ -129,17 +130,6 @@ loadRecentActivities() }) -// 鑾峰彇鐘舵�佹爣绛剧被鍨� -const getStatusType = (status: string) => { - const typeMap: Record<string, string> = { - '杩涜涓�': 'success', - '鎶ュ悕涓�': 'warning', - '寰呭紑濮�': 'info', - '宸茬粨鏉�': 'info' - } - return typeMap[status] || 'info' -} - // 鏌ョ湅姣旇禌 const viewActivity = (activity: any) => { router.push(`/activity/${activity.id}`) @@ -151,55 +141,23 @@ } </script> -<style lang="scss" scoped> -.dashboard { - .stats-row { - margin-bottom: 20px; - } - - .stat-card { - background: white; - border-radius: 8px; - padding: 20px; - display: flex; - align-items: center; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - - .stat-icon { - font-size: 40px; - margin-right: 16px; - } - - .stat-content { - .stat-number { - font-size: 24px; - font-weight: bold; - color: #303133; - margin-bottom: 4px; - } - - .stat-label { - font-size: 14px; - color: #909399; - } - } - } - - .card-title { - margin-bottom: 20px; - color: #303133; - font-size: 16px; - font-weight: 500; - } - - .quick-btn { - width: 100%; - height: 60px; - font-size: 14px; - - .el-icon { - margin-right: 8px; - } - } +<style scoped> +.card-header { + display: flex; + justify-content: space-between; + align-items: center; +} + +.text { + font-size: 24px; + font-weight: bold; +} + +.item { + margin-bottom: 18px; +} + +.box-card { + width: 100%; } </style> \ No newline at end of file -- Gitblit v1.8.0