From 117b12348ca28f0b30847f57fc58ac4f1585f45d Mon Sep 17 00:00:00 2001 From: "hao.dai" Date: Wed, 17 Apr 2024 12:38:34 +0800 Subject: [PATCH 01/36] =?UTF-8?q?fix:=20=E4=BD=8E=E7=89=88=E6=9C=ACSafari?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E4=B8=8D=E8=83=BD=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E8=AE=A2=E9=98=85=E7=9A=84=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- src/@core/utils/formatters.ts | 45 ++++++++++++++++++++--------------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index db1fd896..50de97db 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "@vitejs/plugin-vue": "^5.0.4", "@vitejs/plugin-vue-jsx": "^3.0.0", "autoprefixer": "^10.4.14", + "dayjs": "^1.11.10", "eslint": "^9.0.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-import-resolver-typescript": "^3.5.1", @@ -112,4 +113,4 @@ "resolutions": { "postcss": "8" } -} \ No newline at end of file +} diff --git a/src/@core/utils/formatters.ts b/src/@core/utils/formatters.ts index 342de36b..f7848206 100644 --- a/src/@core/utils/formatters.ts +++ b/src/@core/utils/formatters.ts @@ -1,5 +1,12 @@ +import dayjs from 'dayjs' +import relativeTime from 'dayjs/plugin/relativeTime' +import ZH_CN from 'dayjs/locale/zh-cn' + import { isToday } from './index' +dayjs.extend(relativeTime) +dayjs.locale(ZH_CN) + export function avatarText(value: string) { if (!value) return '' @@ -19,7 +26,7 @@ export function kFormatter(num: number) { * Format and return date in Humanize format * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat - * @param {String} value date to format + * @param {string} value date to format * @param {Intl.DateTimeFormatOptions} formatting Intl object to format with */ export function formatDate(value: string, formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric', year: 'numeric' }) { @@ -32,8 +39,8 @@ export function formatDate(value: string, formatting: Intl.DateTimeFormatOptions /** * Return short human friendly month representation of date * Can also convert date to only time if date is of today (Better UX) - * @param {String} value date to format - * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current + * @param {string} value date to format + * @param {boolean} toTimeForCurrentDay Shall convert to time if day is today/current */ export function formatDateToMonthShort(value: string, toTimeForCurrentDay = true) { const date = new Date(value) @@ -107,7 +114,7 @@ export function formatBytes(bytes: number, decimals = 2) { const i = Math.floor(Math.log(bytes) / Math.log(k)) - return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}` + return `${Number.parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}` } // 格式化剧集列表 @@ -150,20 +157,20 @@ export function formatEp(nums: number[]): string { // 将yyyy-mm-dd hh:mm:ss转换为时间差,如:1小时前,1天前 export function formatDateDifference(dateString: string): string { - const date = new Date(dateString) - const currentDate = new Date() - const timeDifference = currentDate.getTime() - date.getTime() - const secondsDifference = Math.floor(timeDifference / 1000) - const minutesDifference = Math.floor(secondsDifference / 60) - const hoursDifference = Math.floor(minutesDifference / 60) - const daysDifference = Math.floor(hoursDifference / 24) + // const timeDifference = dayjs().millisecond() - dayjs(dateString).millisecond() + // const secondsDifference = Math.floor(timeDifference / 1000) + // const minutesDifference = Math.floor(secondsDifference / 60) + // const hoursDifference = Math.floor(minutesDifference / 60) + // const daysDifference = Math.floor(hoursDifference / 24) - if (daysDifference > 0) - return `${daysDifference}天前` - else if (hoursDifference > 0) - return `${hoursDifference}小时前` - else if (minutesDifference > 0) - return `${minutesDifference}分钟前` - else - return '刚刚' + // if (daysDifference > 0) + // return `${daysDifference}天前` + // else if (hoursDifference > 0) + // return `${hoursDifference}小时前` + // else if (minutesDifference > 0) + // return `${minutesDifference}分钟前` + // else + // return '刚刚' + + return dayjs(dateString).fromNow() } From 468607c8e855bf903692145cf108b19fa529f512 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 17 Apr 2024 14:38:40 +0800 Subject: [PATCH 02/36] =?UTF-8?q?feat=EF=BC=9A=E7=AB=99=E7=82=B9=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 1 + src/@core/components/StatIcon.vue | 18 +++++++++++++++ src/api/types.ts | 27 ++++++++++++++++++++++ src/components/cards/SiteCard.vue | 37 ++++++++++++++++++++++++++++--- yarn.lock | 7 ++++++ 5 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 src/@core/components/StatIcon.vue diff --git a/components.d.ts b/components.d.ts index 8f4e3f15..842ae72d 100644 --- a/components.d.ts +++ b/components.d.ts @@ -13,6 +13,7 @@ declare module 'vue' { MoreBtn: typeof import('./src/@core/components/MoreBtn.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + StatIcon: typeof import('./src/@core/components/StatIcon.vue')['default'] ThemeSwitcher: typeof import('./src/@core/components/ThemeSwitcher.vue')['default'] } } diff --git a/src/@core/components/StatIcon.vue b/src/@core/components/StatIcon.vue new file mode 100644 index 00000000..e5c82df3 --- /dev/null +++ b/src/@core/components/StatIcon.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/api/types.ts b/src/api/types.ts index 32ab43f6..1d0efbe1 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -505,6 +505,33 @@ export interface Site { is_active: boolean } +// 站点使用统计 +export interface SiteStatistic { + + // 站点主域名Key + domain?: string + + // 成功次数 + success?: number + + // 失败次数 + fail?: number + + // 平均耗时 + seconds?: number + + // 最后一次访问状态 0-成功 1-失败 + lst_state?: number + + // 最后访问时间 + lst_mod_date?: string + + // 耗时记录 JSON + note?: string + + +} + // 正在下载 export interface DownloadingInfo { diff --git a/src/components/cards/SiteCard.vue b/src/components/cards/SiteCard.vue index 2b97b415..8fd8528a 100644 --- a/src/components/cards/SiteCard.vue +++ b/src/components/cards/SiteCard.vue @@ -5,7 +5,7 @@ import SiteAddEditForm from '../form/SiteAddEditForm.vue' import SiteTorrentTable from '../table/SiteTorrentTable.vue' import { requiredValidator } from '@/@validators' import api from '@/api' -import type { Site } from '@/api/types' +import type { Site, SiteStatistic } from '@/api/types' import ExistIcon from '@core/components/ExistIcon.vue' // 输入参数 @@ -58,6 +58,9 @@ const userPwForm = ref({ code: '', }) +// 站点使用统计 +const siteStats = ref({}) + // 查询站点图标 async function getSiteIcon() { try { @@ -82,6 +85,18 @@ async function testSite() { testButtonText.value = '测试' testButtonDisable.value = false + + getSiteStats() + } + catch (error) { + console.error(error) + } +} + +// 查询站点使用统计 +async function getSiteStats() { + try { + siteStats.value = (await api.get(`site/statistic/${cardProps.site?.domain}`)) } catch (error) { console.error(error) @@ -140,9 +155,24 @@ function openSitePage() { window.open(cardProps.site?.url, '_blank') } +// 根据站点状态显示不同的状态图标 +const statColor = computed(() => { + if (siteStats.value?.lst_state == 1){ + return 'error' + } + else if (siteStats.value?.lst_state == 0){ + if (!siteStats.value?.seconds) + return 'secondary' + if (siteStats.value?.seconds >= 10) + return 'warning' + return 'success' + } +}) + // 装载时查询站点图标 onMounted(() => { getSiteIcon() + getSiteStats() }) @@ -163,16 +193,17 @@ onMounted(() => { + {{ cardProps.site?.name }} - {{ cardProps.site?.url }} + {{ cardProps.site?.url }} - + Date: Wed, 17 Apr 2024 14:41:22 +0800 Subject: [PATCH 03/36] test release --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 50de97db..4d0456e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "1.8.1-3", + "version": "1.8.2", "private": true, "bin": "dist/service.js", "scripts": { @@ -113,4 +113,4 @@ "resolutions": { "postcss": "8" } -} +} \ No newline at end of file From f1238a03b37ca8011ae9788afa23565ad12ff9d5 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 17 Apr 2024 14:51:05 +0800 Subject: [PATCH 04/36] fix --- src/components/cards/SiteCard.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/cards/SiteCard.vue b/src/components/cards/SiteCard.vue index 8fd8528a..aba7fca6 100644 --- a/src/components/cards/SiteCard.vue +++ b/src/components/cards/SiteCard.vue @@ -157,6 +157,9 @@ function openSitePage() { // 根据站点状态显示不同的状态图标 const statColor = computed(() => { + if (!siteStats.value){ + return 'secondary' + } if (siteStats.value?.lst_state == 1){ return 'error' } From b9ee6b4039b1f744c4025c7e7d5f89d5ae22d093 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 17 Apr 2024 15:30:40 +0800 Subject: [PATCH 05/36] fix ui --- src/components/cards/SiteCard.vue | 5 +++-- src/components/filebrowser/List.vue | 2 +- src/views/reorganize/TransferHistoryView.vue | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/cards/SiteCard.vue b/src/components/cards/SiteCard.vue index aba7fca6..d2c04061 100644 --- a/src/components/cards/SiteCard.vue +++ b/src/components/cards/SiteCard.vue @@ -7,6 +7,7 @@ import { requiredValidator } from '@/@validators' import api from '@/api' import type { Site, SiteStatistic } from '@/api/types' import ExistIcon from '@core/components/ExistIcon.vue' +import { isNullOrEmptyObject } from '@/@core/utils' // 输入参数 const cardProps = defineProps({ @@ -157,7 +158,7 @@ function openSitePage() { // 根据站点状态显示不同的状态图标 const statColor = computed(() => { - if (!siteStats.value){ + if (isNullOrEmptyObject(siteStats.value)){ return 'secondary' } if (siteStats.value?.lst_state == 1){ @@ -166,7 +167,7 @@ const statColor = computed(() => { else if (siteStats.value?.lst_state == 0){ if (!siteStats.value?.seconds) return 'secondary' - if (siteStats.value?.seconds >= 10) + if (siteStats.value?.seconds >= 6) return 'warning' return 'success' } diff --git a/src/components/filebrowser/List.vue b/src/components/filebrowser/List.vue index 583f1c9b..effd063c 100644 --- a/src/components/filebrowser/List.vue +++ b/src/components/filebrowser/List.vue @@ -592,7 +592,7 @@ onMounted(() => { @media (width <= 768px) { .virtual-scroll-div { - block-size: calc(100vh - 16rem); + block-size: calc(100vh - 17rem); } } diff --git a/src/views/reorganize/TransferHistoryView.vue b/src/views/reorganize/TransferHistoryView.vue index 0e871ca7..45a2eec9 100644 --- a/src/views/reorganize/TransferHistoryView.vue +++ b/src/views/reorganize/TransferHistoryView.vue @@ -534,7 +534,7 @@ onMounted(fetchData) @media (width <= 768px) { .data-table-div { - block-size: calc(100vh - 16rem); + block-size: calc(100vh - 17rem); } } From d097c1c17ce4ef170e9eaf32679bb00216158eac Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 17 Apr 2024 19:31:50 +0800 Subject: [PATCH 06/36] fix ui --- src/views/reorganize/TransferHistoryView.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/views/reorganize/TransferHistoryView.vue b/src/views/reorganize/TransferHistoryView.vue index 45a2eec9..482d8f94 100644 --- a/src/views/reorganize/TransferHistoryView.vue +++ b/src/views/reorganize/TransferHistoryView.vue @@ -378,9 +378,12 @@ onMounted(fetchData)
- + {{ item?.title }} {{ item?.seasons }}{{ item?.episodes }} + + {{ item?.title }} + {{ item?.category }}
From 6350c7e9e65ee81a474c5ee31f2949185e183e1b Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 17 Apr 2024 21:20:31 +0800 Subject: [PATCH 07/36] =?UTF-8?q?feat=EF=BC=9A=E6=8F=92=E4=BB=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=B8=B2=E6=9F=93=E5=BC=B9=E7=AA=97=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/@core/components/DialogCloseBtn.vue | 4 ++-- src/components/cards/PluginCard.vue | 4 ++-- src/main.ts | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/@core/components/DialogCloseBtn.vue b/src/@core/components/DialogCloseBtn.vue index 1bd12764..bc661431 100644 --- a/src/@core/components/DialogCloseBtn.vue +++ b/src/@core/components/DialogCloseBtn.vue @@ -1,9 +1,9 @@ diff --git a/src/components/cards/PluginCard.vue b/src/components/cards/PluginCard.vue index 20f1a3e9..51ab7438 100644 --- a/src/components/cards/PluginCard.vue +++ b/src/components/cards/PluginCard.vue @@ -482,7 +482,7 @@ watch(() => props.plugin?.has_update, (newHasUpdate, oldHasUpdate) => { :title="`${props.plugin?.plugin_name} - 配置`" class="rounded-t" > - + props.plugin?.has_update, (newHasUpdate, oldHasUpdate) => { :title="`${props.plugin?.plugin_name}`" class="rounded-t" > - + Date: Wed, 17 Apr 2024 22:55:45 +0800 Subject: [PATCH 08/36] =?UTF-8?q?feat:=20=E6=8F=92=E4=BB=B6=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=94=AF=E6=8C=81slot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/render/PageRender.vue | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/components/render/PageRender.vue b/src/components/render/PageRender.vue index 1a04e991..4436cb0d 100644 --- a/src/components/render/PageRender.vue +++ b/src/components/render/PageRender.vue @@ -7,6 +7,7 @@ interface RenderProps { text: string html: string content?: any + slots?: any props?: any } @@ -22,6 +23,7 @@ const formItem = ref(elementProps.config ?? { html: '', props: {}, content: [], + slots: {}, }) @@ -32,6 +34,15 @@ const formItem = ref(elementProps.config ?? { v-bind="formItem.props" > {{ formItem.text }} + Date: Wed, 17 Apr 2024 23:02:37 +0800 Subject: [PATCH 09/36] test release --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4d0456e7..44ff5cb1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "1.8.2", + "version": "1.8.2-1", "private": true, "bin": "dist/service.js", "scripts": { @@ -113,4 +113,4 @@ "resolutions": { "postcss": "8" } -} \ No newline at end of file +} From aff30c48a0845cdf6dbc55a4e680571fe5d5e793 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 18 Apr 2024 08:12:46 +0800 Subject: [PATCH 10/36] fix site stat --- src/components/cards/SiteCard.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/cards/SiteCard.vue b/src/components/cards/SiteCard.vue index d2c04061..d2ddeb55 100644 --- a/src/components/cards/SiteCard.vue +++ b/src/components/cards/SiteCard.vue @@ -166,8 +166,8 @@ const statColor = computed(() => { } else if (siteStats.value?.lst_state == 0){ if (!siteStats.value?.seconds) - return 'secondary' - if (siteStats.value?.seconds >= 6) + return 'success' + if (siteStats.value?.seconds >= 5) return 'warning' return 'success' } From e1ee3ef2db9f10f45fb6a9f536ee0d3670e58bb1 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 18 Apr 2024 11:13:36 +0800 Subject: [PATCH 11/36] fix #1918 --- src/components/cards/TorrentCard.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/cards/TorrentCard.vue b/src/components/cards/TorrentCard.vue index c13716c8..96ebf4dc 100644 --- a/src/components/cards/TorrentCard.vue +++ b/src/components/cards/TorrentCard.vue @@ -293,7 +293,7 @@ onMounted(() => {
- + Date: Thu, 18 Apr 2024 11:14:03 +0800 Subject: [PATCH 12/36] release --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 44ff5cb1..4d0456e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "1.8.2-1", + "version": "1.8.2", "private": true, "bin": "dist/service.js", "scripts": { @@ -113,4 +113,4 @@ "resolutions": { "postcss": "8" } -} +} \ No newline at end of file From 8cb514d70e711a0bbfbc2a3f31be55d66aae89f0 Mon Sep 17 00:00:00 2001 From: Allen Date: Thu, 18 Apr 2024 12:40:14 +0800 Subject: [PATCH 13/36] =?UTF-8?q?dashboard=E9=85=8D=E7=BD=AE=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=BF=9D=E5=AD=98=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 13 +++++++++++++ src/pages/dashboard.vue | 14 ++++++++++++-- src/pages/login.vue | 21 +++++++++++++++++++-- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/App.vue b/src/App.vue index 55cea95f..8311232f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,6 +1,7 @@ diff --git a/src/pages/dashboard.vue b/src/pages/dashboard.vue index 5dadee70..01fe2b71 100644 --- a/src/pages/dashboard.vue +++ b/src/pages/dashboard.vue @@ -9,6 +9,7 @@ import AnalyticsMemory from '@/views/dashboard/AnalyticsMemory.vue' import MediaServerLatest from '@/views/dashboard/MediaServerLatest.vue' import MediaServerLibrary from '@/views/dashboard/MediaServerLibrary.vue' import MediaServerPlaying from '@/views/dashboard/MediaServerPlaying.vue' +import api from '@/api' // 仪表盘配置 const dashboard_names = { @@ -48,8 +49,17 @@ if (Object.keys(config.value).length === 0) { // 设置项目 function setDashboardConfig() { - localStorage.setItem('MP_DASHBOARD', JSON.stringify(config.value)) - dialog.value = false + const data = JSON.stringify(config.value) + api.post('/user/config/Dashboard', data, { + headers: { + "Content-Type": "text/plain" + } + }).then((response: any) => { + if (response && response.success) { + localStorage.setItem('MP_DASHBOARD', data) + dialog.value = false + } + }) } diff --git a/src/pages/login.vue b/src/pages/login.vue index 766a84a7..6f93f357 100644 --- a/src/pages/login.vue +++ b/src/pages/login.vue @@ -66,6 +66,24 @@ async function fetchOTP() { }) } +// 加载用户监控面板配置 +async function loadDashboardConfig() { + const response = await api.get('/user/config/Dashboard') + if (response && response.data && response.data.value) { + const data = JSON.stringify(response.data.value) + if (data != localStorage.getItem("MP_DASHBOARD")) { + localStorage.setItem("MP_DASHBOARD", data) + } + } +} + +async function afterLogin() { + // 加载用户监控面板配置 + await loadDashboardConfig() + // 跳转到首页或回原始页面 + router.push(store.state.auth.originalPath ?? '/') +} + // 登录获取token事件 function login() { errorMessage.value = '' @@ -103,8 +121,7 @@ function login() { store.dispatch('auth/updateUserName', username) store.dispatch('auth/updateAvatar', avatar) - // 跳转到首页或回原始页面 - router.push(store.state.auth.originalPath ?? '/') + afterLogin() }) .catch((error: any) => { // 登录失败,显示错误提示 From 3db4d883afd8547561e391fb910da87744e4e9d3 Mon Sep 17 00:00:00 2001 From: Allen Date: Thu, 18 Apr 2024 15:19:24 +0800 Subject: [PATCH 14/36] fixbug --- src/pages/dashboard.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/dashboard.vue b/src/pages/dashboard.vue index 01fe2b71..b1e1ad5d 100644 --- a/src/pages/dashboard.vue +++ b/src/pages/dashboard.vue @@ -52,7 +52,7 @@ function setDashboardConfig() { const data = JSON.stringify(config.value) api.post('/user/config/Dashboard', data, { headers: { - "Content-Type": "text/plain" + "Content-Type": "application/json" } }).then((response: any) => { if (response && response.success) { From 62bb6de80d12850121a34dfa1747d39e6ba97a57 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 18 Apr 2024 21:00:35 +0800 Subject: [PATCH 15/36] =?UTF-8?q?feat=EF=BC=9A=E8=AE=A2=E9=98=85=E5=8E=86?= =?UTF-8?q?=E5=8F=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/types.ts | 3 + src/components/FileBrowser.vue | 9 +- .../cards/CardStatisticsHorizontal.vue | 50 --- .../cards/CardStatisticsVertical.vue | 56 --- .../cards/CardStatisticsWithImages.vue | 65 ---- .../filebrowser/{List.vue => FileList.vue} | 0 .../{Toolbar.vue => FileToolbar.vue} | 0 src/components/form/ReorganizeForm.vue | 4 +- src/components/form/SubscribeEditForm.vue | 322 +++++++++--------- src/components/misc/SubscribeHistory.vue | 197 +++++++++++ .../TmdbSelector.vue} | 0 src/views/subscribe/SubscribeListView.vue | 44 ++- 12 files changed, 403 insertions(+), 347 deletions(-) delete mode 100644 src/components/cards/CardStatisticsHorizontal.vue delete mode 100644 src/components/cards/CardStatisticsVertical.vue delete mode 100644 src/components/cards/CardStatisticsWithImages.vue rename src/components/filebrowser/{List.vue => FileList.vue} (100%) rename src/components/filebrowser/{Toolbar.vue => FileToolbar.vue} (100%) create mode 100644 src/components/misc/SubscribeHistory.vue rename src/components/{cards/TmdbSelectorCard.vue => misc/TmdbSelector.vue} (100%) diff --git a/src/api/types.ts b/src/api/types.ts index 1d0efbe1..ff6ebb33 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -88,6 +88,9 @@ export interface Subscribe { // 保存目录 save_path: string + + // 时间 + date: string } // 历史记录 diff --git a/src/components/FileBrowser.vue b/src/components/FileBrowser.vue index a3ec9e19..e4c7e9a3 100644 --- a/src/components/FileBrowser.vue +++ b/src/components/FileBrowser.vue @@ -1,9 +1,8 @@ - - diff --git a/src/components/cards/CardStatisticsVertical.vue b/src/components/cards/CardStatisticsVertical.vue deleted file mode 100644 index 67ad117a..00000000 --- a/src/components/cards/CardStatisticsVertical.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/src/components/cards/CardStatisticsWithImages.vue b/src/components/cards/CardStatisticsWithImages.vue deleted file mode 100644 index 1d2094df..00000000 --- a/src/components/cards/CardStatisticsWithImages.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/src/components/filebrowser/List.vue b/src/components/filebrowser/FileList.vue similarity index 100% rename from src/components/filebrowser/List.vue rename to src/components/filebrowser/FileList.vue diff --git a/src/components/filebrowser/Toolbar.vue b/src/components/filebrowser/FileToolbar.vue similarity index 100% rename from src/components/filebrowser/Toolbar.vue rename to src/components/filebrowser/FileToolbar.vue diff --git a/src/components/form/ReorganizeForm.vue b/src/components/form/ReorganizeForm.vue index c4fcc8f4..fa851c86 100644 --- a/src/components/form/ReorganizeForm.vue +++ b/src/components/form/ReorganizeForm.vue @@ -1,6 +1,6 @@ diff --git a/src/components/misc/SubscribeHistory.vue b/src/components/misc/SubscribeHistory.vue new file mode 100644 index 00000000..e71a6983 --- /dev/null +++ b/src/components/misc/SubscribeHistory.vue @@ -0,0 +1,197 @@ + + +