From bec58fa7fe4fae2deac88200d8d939e12ec8a08f Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期五, 03 十月 2025 22:26:39 +0800
Subject: [PATCH] 修复小程序WXS日期显示问题并重新设计【我的】页面
---
web/src/views/ActivityDetail.vue | 48 +++++++++++++++++++++++++++---------------------
1 files changed, 27 insertions(+), 21 deletions(-)
diff --git a/web/src/views/ActivityDetail.vue b/web/src/views/ActivityDetail.vue
index 14f60e2..886b867 100644
--- a/web/src/views/ActivityDetail.vue
+++ b/web/src/views/ActivityDetail.vue
@@ -21,8 +21,6 @@
<el-descriptions-item label="鎶ュ悕鎴鏃堕棿">{{ formatDateTime(activity.signupDeadline) }}</el-descriptions-item>
<el-descriptions-item label="姣旇禌寮�濮嬫椂闂�">{{ formatDateTime(activity.matchTime) }}</el-descriptions-item>
<el-descriptions-item label="姣旇禌鍦板潃">{{ activity.address || '-' }}</el-descriptions-item>
- <el-descriptions-item label="浜烘暟">{{ activity.playerMax || '-' }}</el-descriptions-item>
- <el-descriptions-item label="褰撳墠鎶ュ悕浜烘暟">{{ activity.playerCount || 0 }}</el-descriptions-item>
<el-descriptions-item label="璇勫垎妯℃澘">
{{ activity.ratingScheme ? activity.ratingScheme.name : '-' }}
</el-descriptions-item>
@@ -38,26 +36,17 @@
<!-- 姣旇禌闃舵 -->
<div v-if="activity.stages && activity.stages.length > 0" class="stages-section">
<h3>姣旇禌闃舵</h3>
- <el-table :data="activity.stages" style="width: 100%">
- <el-table-column prop="name" label="闃舵鍚嶇О" min-width="150" />
+ <el-table :data="sortedStages" style="width: 100%" table-layout="auto">
+ <el-table-column prop="sortOrder" label="椤哄簭" width="80" align="center" />
+ <el-table-column prop="name" label="闃舵鍚嶇О" width="200" show-overflow-tooltip />
<el-table-column prop="matchTime" label="寮�濮嬫椂闂�" width="180">
<template #default="{ row }">
{{ formatDateTime(row.matchTime) }}
</template>
</el-table-column>
- <el-table-column prop="address" label="鍦板潃" min-width="150">
+ <el-table-column prop="address" label="鍦板潃" min-width="120" show-overflow-tooltip>
<template #default="{ row }">
{{ row.address || '-' }}
- </template>
- </el-table-column>
- <el-table-column prop="playerMax" label="鏈�澶т汉鏁�" width="100">
- <template #default="{ row }">
- {{ row.playerMax || '-' }}
- </template>
- </el-table-column>
- <el-table-column prop="playerCount" label="瀹為檯浜烘暟" width="100">
- <template #default="{ row }">
- {{ row.playerCount || 0 }}
</template>
</el-table-column>
<el-table-column prop="stateName" label="鐘舵��" width="100">
@@ -65,7 +54,7 @@
<el-tag :type="getStateType(row.state)">{{ row.stateName }}</el-tag>
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" width="200">
+ <el-table-column label="鎿嶄綔" width="220" fixed="right">
<template #default="{ row }">
<el-button size="small" @click="viewStageDetail(row)">鏌ョ湅璇︽儏</el-button>
<el-button size="small" type="warning" @click="closeStage(row)" v-if="row.state === 1">鍏抽棴</el-button>
@@ -121,7 +110,6 @@
</el-descriptions-item>
<el-descriptions-item label="寮�濮嬫椂闂�">{{ formatDateTime(selectedStage.matchTime) }}</el-descriptions-item>
<el-descriptions-item label="鍦板潃">{{ selectedStage.address || '-' }}</el-descriptions-item>
- <el-descriptions-item label="浜烘暟">{{ selectedStage.playerMax || '-' }}</el-descriptions-item>
<el-descriptions-item label="璇勫垎妯℃澘">
{{ selectedStage.ratingScheme ? selectedStage.ratingScheme.name : '缁ф壙姣旇禌妯℃澘' }}
</el-descriptions-item>
@@ -137,7 +125,7 @@
</template>
<script setup>
-import { ref, onMounted } from 'vue'
+import { ref, onMounted, computed } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getActivity } from '@/api/activity'
@@ -150,6 +138,16 @@
const activity = ref(null)
const stageDialogVisible = ref(false)
const selectedStage = ref(null)
+
+// 璁$畻灞炴��
+const sortedStages = computed(() => {
+ if (!activity.value || !activity.value.stages) return []
+ return [...activity.value.stages].sort((a, b) => {
+ const orderA = a.sortOrder || 999
+ const orderB = b.sortOrder || 999
+ return orderA - orderB
+ })
+})
// 鍔犺浇姣旇禌璇︽儏
const loadActivity = async () => {
@@ -233,9 +231,17 @@
}
const getStageName = (stageId) => {
- if (!activity.value || !activity.value.stages) return '鏈煡闃舵'
- const stage = activity.value.stages.find(s => s.id === stageId)
- return stage ? stage.name : '鏈煡闃舵'
+ if (!activity.value) return '鏈煡闃舵'
+
+ // 鍙鏌ユ瘮璧涢樁娈�
+ if (activity.value.stages) {
+ const stage = activity.value.stages.find(s => s.id === stageId)
+ if (stage) {
+ return stage.name
+ }
+ }
+
+ return '鏈煡闃舵'
}
// 鐢熷懡鍛ㄦ湡
--
Gitblit v1.8.0