优化 App.vue 中的国际化代码,调整 LoadingBanner 组件的样式,增加 SubscribeFilesDialog 组件的加载状态管理。

This commit is contained in:
jxxghp
2025-05-12 07:56:52 +08:00
parent 02cd2f1570
commit 11a2d07935
3 changed files with 9 additions and 6 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ const props = defineProps({
</script> </script>
<template> <template>
<div class="w-full text-center text-gray-500 text-sm flex flex-col items-center"> <div class="w-full text-center text-gray-500 text-sm flex flex-col items-center mb-5">
<VProgressCircular v-if="!props.text || !props.progress" class="mb-3" size="64" indeterminate color="primary" /> <VProgressCircular v-if="!props.text || !props.progress" class="mb-3" size="64" indeterminate color="primary" />
<VProgressCircular v-if="props.progress" class="mb-3" color="primary" :model-value="props.progress" size="64" /> <VProgressCircular v-if="props.progress" class="mb-3" color="primary" :model-value="props.progress" size="64" />
<span>{{ props.text }}</span> <span>{{ props.text }}</span>
-4
View File
@@ -4,13 +4,9 @@ import { checkPrefersColorSchemeIsDark } from '@/@core/utils'
import { ensureRenderComplete, removeEl } from './@core/utils/dom' import { ensureRenderComplete, removeEl } from './@core/utils/dom'
import api from '@/api' import api from '@/api'
import { useAuthStore } from '@/stores/auth' import { useAuthStore } from '@/stores/auth'
import { useI18n } from 'vue-i18n'
import { getBrowserLocale, setI18nLanguage } from './plugins/i18n' import { getBrowserLocale, setI18nLanguage } from './plugins/i18n'
import { SupportedLocale } from '@/types/i18n' import { SupportedLocale } from '@/types/i18n'
// 国际化
const { t } = useI18n()
// 生效主题 // 生效主题
const { global: globalTheme } = useTheme() const { global: globalTheme } = useTheme()
let themeValue = localStorage.getItem('theme') || 'light' let themeValue = localStorage.getItem('theme') || 'light'
@@ -23,6 +23,9 @@ const emit = defineEmits(['close'])
// 订阅文件信息 // 订阅文件信息
const subScribeInfo = ref<SubscrbieInfo>() const subScribeInfo = ref<SubscrbieInfo>()
// 是否加载中
const loading = ref(false)
// 下载文件表头 // 下载文件表头
const downloadHeaders = [ const downloadHeaders = [
{ title: t('dialog.subscribeFiles.episodeColumn'), key: 'episode_number', sortable: true }, { title: t('dialog.subscribeFiles.episodeColumn'), key: 'episode_number', sortable: true },
@@ -39,9 +42,12 @@ const libraryHeaders = [
// 调用API查询订阅文件信息 // 调用API查询订阅文件信息
async function loadSubscribeFilesInfo() { async function loadSubscribeFilesInfo() {
try { try {
loading.value = true
subScribeInfo.value = await api.get(`subscribe/files/${props.subid}`) subScribeInfo.value = await api.get(`subscribe/files/${props.subid}`)
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} finally {
loading.value = false
} }
} }
@@ -84,7 +90,8 @@ onBeforeMount(() => {
<VCardItem class="my-2"> <VCardItem class="my-2">
<VDialogCloseBtn @click="emit('close')" /> <VDialogCloseBtn @click="emit('close')" />
</VCardItem> </VCardItem>
<VCardText> <LoadingBanner v-if="loading" />
<VCardText v-else>
<div class="media-page"> <div class="media-page">
<div class="media-header"> <div class="media-header">
<div class="media-poster"> <div class="media-poster">