Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -36,17 +36,17 @@
|
||||
<!-- 队伍信息 -->
|
||||
<view class="rank-team">
|
||||
<view class="team-info">
|
||||
<image class="team-avatar" :src="team.avatar || '/static/team-avatar.png'" mode="aspectFill"></image>
|
||||
<!-- <image class="team-avatar" :src="team.avatar || '/static/team-avatar.png'" mode="aspectFill"></image>-->
|
||||
<view class="team-detail">
|
||||
<view class="team-name-row">
|
||||
<text class="team-name">{{ team.teamName }}</text>
|
||||
<text class="team-name">{{ team.groupName }}</text>
|
||||
<t-tag v-if="team.isMyTeam" theme="primary" variant="light" size="small" class="my-team-tag">我的队伍</t-tag>
|
||||
</view>
|
||||
<view class="progress-bar">
|
||||
<view class="progress-bar-bg"></view>
|
||||
<view
|
||||
class="progress-bar-fill"
|
||||
:style="{width: `${(team.score / 100) * 100}%`}"
|
||||
:style="{width: `${(team.totalScore / 100) * 100}%`}"
|
||||
></view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
<!-- 得分 -->
|
||||
<view class="rank-score">
|
||||
<view class="score-value">{{ team.score }}</view>
|
||||
<view class="score-value">{{ team.totalScore }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="empty-container" v-if="!loading && rankList.length === 0">
|
||||
@@ -78,98 +78,25 @@
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { Toast } from 'tdesign-mobile-vue';
|
||||
import { useRequest } from "@/utils/request";
|
||||
import {onLoad} from "@dcloudio/uni-app";
|
||||
|
||||
// 排行榜数据
|
||||
const rankList = ref([]);
|
||||
const activityId = ref([]);
|
||||
const loading = ref(false);
|
||||
const refresherTriggered = ref(false);
|
||||
|
||||
const generateMockData = () => {
|
||||
const teams = [
|
||||
{
|
||||
id: '1',
|
||||
teamName: '闪电队',
|
||||
score: 98,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_1.png',
|
||||
isMyTeam: true
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
teamName: '飞鹰战队',
|
||||
score: 96,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_2.png',
|
||||
isMyTeam: false
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
teamName: '猎豹小组',
|
||||
score: 90,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_3.png',
|
||||
isMyTeam: false
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
teamName: '雄狮战队',
|
||||
score: 85,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_4.png',
|
||||
isMyTeam: false
|
||||
},
|
||||
{
|
||||
id: '5',
|
||||
teamName: '飓风俱乐部',
|
||||
score: 80,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_5.png',
|
||||
isMyTeam: false
|
||||
},
|
||||
{
|
||||
id: '6',
|
||||
teamName: '钢铁战士',
|
||||
score: 78,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_1.png',
|
||||
isMyTeam: false
|
||||
},
|
||||
{
|
||||
id: '7',
|
||||
teamName: '赤焰战队',
|
||||
score: 75,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_2.png',
|
||||
isMyTeam: false
|
||||
},
|
||||
{
|
||||
id: '8',
|
||||
teamName: '金龙小组',
|
||||
score: 68,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_3.png',
|
||||
isMyTeam: false
|
||||
},
|
||||
{
|
||||
id: '9',
|
||||
teamName: '星辰队',
|
||||
score: 65,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_4.png',
|
||||
isMyTeam: false
|
||||
},
|
||||
{
|
||||
id: '10',
|
||||
teamName: '黑豹战队',
|
||||
score: 62,
|
||||
avatar: 'https://tdesign.gtimg.com/mobile/demos/avatar_5.png',
|
||||
isMyTeam: false
|
||||
}
|
||||
];
|
||||
|
||||
// 按分数排序
|
||||
return teams.sort((a, b) => b.score - a.score);
|
||||
};
|
||||
|
||||
// 获取排行榜数据
|
||||
const getRankData = async () => {
|
||||
loading.value = true;
|
||||
|
||||
// 模拟API请求延迟
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
try {
|
||||
rankList.value = generateMockData();
|
||||
const {code,data, msg} = await useRequest().post('/client/group/list-group-rank/' + activityId.value);
|
||||
if (code === 0) {
|
||||
rankList.value = data;
|
||||
} else {
|
||||
Toast({message: msg, theme: 'error'});
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('获取排行榜数据失败', error);
|
||||
Toast({ message: '获取排行榜数据失败', theme: 'error' });
|
||||
@@ -193,7 +120,11 @@ const handleRefresh = () => {
|
||||
refresherTriggered.value = true;
|
||||
getRankData();
|
||||
};
|
||||
|
||||
onLoad((option) => {
|
||||
if (option.id) {
|
||||
activityId.value=option.id
|
||||
}
|
||||
});
|
||||
// 页面加载时获取数据
|
||||
onMounted(() => {
|
||||
getRankData();
|
||||
|
||||
@@ -119,17 +119,7 @@ const isSignUp = ref(null)
|
||||
const agreementChecked = ref(false)
|
||||
const formRef = ref(null)
|
||||
const formData = ref({
|
||||
unitName: "测试",
|
||||
contactName: "测试",
|
||||
contactPhone: "18899998888",
|
||||
userList: [{
|
||||
userName: "测试",
|
||||
sex: "男",
|
||||
position: "测试",
|
||||
idCard: "421087200004040010",
|
||||
phone: "18899998888",
|
||||
isStay: true
|
||||
}]
|
||||
userList: [{}]
|
||||
})
|
||||
|
||||
onLoad((option) => {
|
||||
|
||||
@@ -25,16 +25,16 @@
|
||||
<div class="stat-item">
|
||||
<div class="stat-icon"><i class="bi bi-people"></i></div>
|
||||
<div class="stat-content">
|
||||
<div class="stat-value">{{ team.groupUsers?.length }}</div>
|
||||
<div class="stat-label">成员</div>
|
||||
<div class="stat-value">成员:{{ team.groupUsers?.length }}</div>
|
||||
<!-- <div class="stat-label">成员</div>-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="stat-divider"></div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-item" @click="queryRank">
|
||||
<div class="stat-icon"><i class="bi bi-trophy"></i></div>
|
||||
<div class="stat-content">
|
||||
<div class="stat-value">{{ team.totalRank ? team.totalRank : '--' }}</div>
|
||||
<div class="stat-label">排名</div>
|
||||
<div class="stat-value">排名:{{ team.totalRank ? team.totalRank : '--' }}</div>
|
||||
<div class="stat-label">点击查看排行榜</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -240,6 +240,11 @@ const getListAct = async () => {
|
||||
|
||||
};
|
||||
|
||||
// 点击查看成绩排名
|
||||
const queryRank=()=>{
|
||||
uni.navigateTo({url: '/pages/activity/rank/index?id=' + pageForm.actId})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
onLoad(() => {
|
||||
getListAct();
|
||||
|
||||
Reference in New Issue
Block a user