index修改

This commit is contained in:
Kunagisa 2025-06-06 15:31:11 +08:00
parent b5c9aa67bf
commit 5aca74e056
4 changed files with 91 additions and 0 deletions

View File

@ -36,6 +36,11 @@ const routes = [
name: 'MapDetail', name: 'MapDetail',
component: () => import('@/views/index/MapDetail.vue') component: () => import('@/views/index/MapDetail.vue')
}, },
{
path: 'author',
name: 'ActiveAuthor',
component: () => import('@/views/index/ActiveAuthor.vue')
},
{ {
path: 'weapon-match', path: 'weapon-match',
name: 'WeaponMatch', name: 'WeaponMatch',

View File

@ -62,6 +62,7 @@ onMounted(() => {
<div class="nav-left" :class="{ active: showMobileMenu }"> <div class="nav-left" :class="{ active: showMobileMenu }">
<router-link to="/maps" class="nav-link">最近上传地图</router-link> <router-link to="/maps" class="nav-link">最近上传地图</router-link>
<router-link to="/weekly" class="nav-link">热门下载地图</router-link> <router-link to="/weekly" class="nav-link">热门下载地图</router-link>
<router-link to="/author" class="nav-link">活跃作者推荐</router-link>
<router-link v-if="isLoggedIn" to="/weapon-match" class="nav-link">Weapon 匹配</router-link> <router-link v-if="isLoggedIn" to="/weapon-match" class="nav-link">Weapon 匹配</router-link>
<router-link v-if="isLoggedIn" to="/competition" class="nav-link">赛程信息</router-link> <router-link v-if="isLoggedIn" to="/competition" class="nav-link">赛程信息</router-link>
<router-link v-if="isLoggedIn" to="/demands" class="nav-link">办事大厅</router-link> <router-link v-if="isLoggedIn" to="/demands" class="nav-link">办事大厅</router-link>

View File

@ -0,0 +1,61 @@
<template>
<div class="weekly-recommend">
<div class="page-header">
<h1>活跃作者推荐</h1>
<div class="header-subtitle">
<span class="date-range">{{ currentWeekRange }}</span>
</div>
</div>
<div class="table-container">
<table class="maps-table">
<thead>
<tr>
<th>序号</th>
<th>预览图</th>
<th>地图名称</th>
<th>作者</th>
<th>下载次数</th>
<th>收藏次数</th>
<th>玩家数量</th>
<th>创建时间</th>
<th>标签</th>
</tr>
</thead>
<tbody>
<tr v-for="(map, index) in recommendedMaps" :key="map.id" @click="goToMapDetail(map.id)" class="table-row">
<td class="rank-number">{{ index + 1 }}</td>
<td class="preview-cell">
<img :src="map.thumbnail" :alt="map.chinese_name">
</td>
<td class="map-name">{{ map.chinese_name }}</td>
<td>{{ map.user }}</td>
<td>{{ map.download_count }}</td>
<td>{{ map.favourite_count }}</td>
<td>{{ map.player_count }}</td>
<td>{{ formatDate(map.create_time) }}</td>
<td>
<div class="tags">
<span v-for="tag in map.tags" :key="tag" class="tag">{{ tag }}</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script setup>
</script>
<style scoped>
.rank-number {
font-weight: bold;
color: #1a237e;
text-align: center;
width: 50px;
font-size: 1.1em;
}
</style>

View File

@ -44,6 +44,7 @@
<div class="actions"> <div class="actions">
<a :href="map.zip_file" class="download-btn" download>下载地图</a> <a :href="map.zip_file" class="download-btn" download>下载地图</a>
<a class="score-btn">地图评分</a>
</div> </div>
</div> </div>
</div> </div>
@ -226,6 +227,29 @@ onMounted(() => {
background: #0056b3; background: #0056b3;
} }
.score-btn {
display: inline-block;
width: 100%;
padding: 12px;
background: #a8d1fb;
color: white;
text-align: center;
text-decoration: none;
border-radius: 5px;
transition: background 0.2s;
font-size: 1rem;
}
.score-btn:hover {
background: #6c8bb9;
}
.actions {
display: flex;
flex-direction: column;
gap: 12px;
}
@media (max-width: 480px) { @media (max-width: 480px) {
.info-grid { .info-grid {
grid-template-columns: 1fr; grid-template-columns: 1fr;