feat:下载状态标记

This commit is contained in:
jxxghp
2024-04-13 09:01:18 +08:00
parent 2401f38e9f
commit 193e3085a9
3 changed files with 20 additions and 8 deletions

View File

@@ -5,7 +5,7 @@ import { useConfirm } from 'vuetify-use-dialog'
import { formatFileSize } from '@/@core/utils/formatters'
import api from '@/api'
import { doneNProgress, startNProgress } from '@/api/nprogress'
import type { Context } from '@/api/types'
import type { Context, MediaInfo, TorrentInfo } from '@/api/types'
// 输入参数
const props = defineProps({
@@ -36,6 +36,9 @@ const meta = ref(props.torrent?.meta_info)
// 站点图标
const siteIcon = ref('')
// 存储是否已经下载过的记录
const downloaded = ref<String[]>([])
// 查询站点图标
async function getSiteIcon() {
try {
@@ -76,7 +79,7 @@ async function handleAddDownload(_site: any = undefined,
}
// 添加下载
async function addDownload(_media: any, _torrent: any) {
async function addDownload(_media: MediaInfo, _torrent: TorrentInfo) {
startNProgress()
try {
const result: { [key: string]: any } = await api.post('download/', {
@@ -87,6 +90,7 @@ async function addDownload(_media: any, _torrent: any) {
if (result.success) {
// 添加下载成功
$toast.success(`${_torrent?.site_name} ${_torrent?.title} 添加下载成功!`)
downloaded.value.push(_torrent?.enclosure || '')
}
else {
// 添加下载失败
@@ -131,6 +135,7 @@ onMounted(() => {
<VCard
:width="props.width"
:height="props.height"
:variant="downloaded.includes(torrent?.enclosure || '') ? 'tonal' : 'elevated'"
@click="handleAddDownload"
>
<template

View File

@@ -5,7 +5,7 @@ import { useConfirm } from 'vuetify-use-dialog'
import { formatFileSize } from '@/@core/utils/formatters'
import api from '@/api'
import { doneNProgress, startNProgress } from '@/api/nprogress'
import type { Context } from '@/api/types'
import type { Context, MediaInfo, TorrentInfo } from '@/api/types'
// 输入参数
const props = defineProps({
@@ -33,6 +33,9 @@ const meta = ref(props.torrent?.meta_info)
// 站点图标
const siteIcon = ref('')
// 存储是否已经下载过的记录
const downloaded = ref<String[]>([])
// 查询站点图标
async function getSiteIcon() {
try {
@@ -73,7 +76,7 @@ async function handleAddDownload(_site: any = undefined,
}
// 添加下载
async function addDownload(_media: any, _torrent: any) {
async function addDownload(_media: MediaInfo, _torrent: TorrentInfo) {
startNProgress()
try {
const result: { [key: string]: any } = await api.post('download/', {
@@ -84,6 +87,7 @@ async function addDownload(_media: any, _torrent: any) {
if (result.success) {
// 添加下载成功
$toast.success(`${_torrent?.site_name} ${_torrent?.title} 添加下载成功!`)
downloaded.value.push(_torrent?.enclosure || '')
}
else {
// 添加下载失败
@@ -125,7 +129,10 @@ onMounted(() => {
</script>
<template>
<VListItem @click="handleAddDownload">
<VListItem
@click="handleAddDownload"
:variant="downloaded.includes(torrent?.enclosure || '') ? 'tonal' : 'flat'"
>
<template
v-if="!showMoreTorrents"
#prepend