前端
Change-Id: If55994fd11ad8d1f70a52e9c3bd53eded5f37544
diff --git a/src/views/torrent/TorrentDetailView.vue b/src/views/torrent/TorrentDetailView.vue
index 8b1c8fd..046c00b 100644
--- a/src/views/torrent/TorrentDetailView.vue
+++ b/src/views/torrent/TorrentDetailView.vue
@@ -1,5 +1,4 @@
<template>
- <Navbar />
<div class="torrent-detail-page">
<div class="page-container">
<!-- 加载状态 -->
@@ -95,17 +94,17 @@
</div>
<div class="torrent-stats">
- <!-- <div class="stat-item seeders">
+ <div class="stat-item seeders">
<span class="stat-number">{{ peerStats.seeders }}</span>
<span class="stat-label">做种</span>
- </div> -->
- <!-- <div class="stat-item leechers">
+ </div>
+ <div class="stat-item leechers">
<span class="stat-number">{{ peerStats.leechers }}</span>
<span class="stat-label">下载</span>
- </div> -->
+ </div>
<div class="stat-item downloads">
- <span class="stat-number">{{ peerStats.downloads }}</span>
- <span class="stat-label">总下载</span>
+ <span class="stat-number">{{ torrentInfo.finishes }}</span>
+ <span class="stat-label">完成</span>
</div>
</div>
@@ -310,12 +309,10 @@
Like
} from '@element-plus/icons-vue'
import axios from 'axios'
-import Navbar from '@/components/Navbar.vue'
export default {
name: 'TorrentDetailView',
components: {
- Navbar,
ArrowLeft,
Download,
Star,
@@ -344,8 +341,7 @@
const torrentFiles = ref([])
const peerStats = ref({
seeders: 0,
- leechers: 0,
- downloads: 0
+ leechers: 0
})
const seedersList = ref([])
@@ -400,9 +396,6 @@
// 获取用户活动数据(如果有相关API)
await fetchPeerStats(infoHash)
- // 获取下载数
- await fetchDownloadCount(infoHash)
-
// 获取评论(如果有相关API)
await fetchComments(infoHash)
} else {
@@ -468,18 +461,6 @@
}
}
- const fetchDownloadCount = async (infoHash) => {
- try {
- const response = await axios.get(`/api/torrent/${infoHash}/downloads`)
- if (response.status === 200) {
- peerStats.value.downloads = response.data
- }
- } catch (error) {
- console.error('获取下载数失败:', error)
- peerStats.value.downloads = 0
- }
- }
-
const fetchComments = async (infoHash) => {
try {
// 这里应该调用获取评论的API
@@ -549,15 +530,6 @@
}
)
- // 检查响应类型是否为JSON(表示发生了错误)
- const contentType = response.headers['content-type'];
- if (contentType && contentType.includes('application/json')) {
- // 将blob转换为json以读取错误信息
- const errorText = await response.data.text();
- const errorData = JSON.parse(errorText);
- throw new Error(errorData.message || '下载失败');
- }
-
// 从响应头中获取文件名,如果没有则使用默认格式
let fileName = response.headers?.['content-disposition']?.split('filename=')[1]
if (!fileName) {
@@ -581,41 +553,7 @@
ElMessage.success('种子文件下载完成')
} catch (error) {
console.error('下载失败:', error)
- // 根据错误类型显示不同的错误信息
- let errorMessage = '下载失败,请稍后重试';
-
- if (error.response) {
- const status = error.response.status;
- const data = error.response.data;
-
- switch(status) {
- case 401:
- errorMessage = '认证失败,请检查登录状态或passkey是否正确';
- break;
- case 403:
- if (data.message?.includes('share ratio')) {
- errorMessage = '分享率不足,无法下载';
- } else if (data.message?.includes('torrent:download_review')) {
- errorMessage = '该种子正在审核中,您没有权限下载';
- } else {
- errorMessage = '您没有权限下载此种子';
- }
- break;
- case 404:
- if (data.message?.includes('torrent not registered')) {
- errorMessage = '该种子未在服务器注册';
- } else if (data.message?.includes('file are missing')) {
- errorMessage = '种子文件丢失,请联系管理员';
- } else {
- errorMessage = '种子不存在';
- }
- break;
- default:
- errorMessage = data.message || '下载失败,请稍后重试';
- }
- }
-
- ElMessage.error(errorMessage)
+ ElMessage.error(error.response?.data?.message || '下载失败,请稍后重试')
} finally {
downloading.value = false
}