mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-07 16:56:40 +08:00
新增插件市场手动刷新功能
This commit is contained in:
@@ -93,6 +93,9 @@ const SearchDialog = ref(false)
|
|||||||
// 插件市场设置窗口
|
// 插件市场设置窗口
|
||||||
const MarketSettingDialog = ref(false)
|
const MarketSettingDialog = ref(false)
|
||||||
|
|
||||||
|
// 插件市场刷新状态
|
||||||
|
const isMarketRefreshing = ref(false)
|
||||||
|
|
||||||
// 搜索关键字
|
// 搜索关键字
|
||||||
const keyword = ref('')
|
const keyword = ref('')
|
||||||
|
|
||||||
@@ -651,12 +654,13 @@ async function fetchInstalledPlugins() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取未安装插件列表数据
|
// 获取未安装插件列表数据
|
||||||
async function fetchUninstalledPlugins() {
|
async function fetchUninstalledPlugins(force: boolean = false) {
|
||||||
try {
|
try {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
uninstalledList.value = await api.get('plugin/', {
|
uninstalledList.value = await api.get('plugin/', {
|
||||||
params: {
|
params: {
|
||||||
state: 'market',
|
state: 'market',
|
||||||
|
force: force,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
// 设置更新状态
|
// 设置更新状态
|
||||||
@@ -762,6 +766,19 @@ function marketSettingDone() {
|
|||||||
refreshData()
|
refreshData()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 手动刷新插件市场
|
||||||
|
async function refreshMarket() {
|
||||||
|
isMarketRefreshing.value = true
|
||||||
|
try {
|
||||||
|
await fetchUninstalledPlugins(true)
|
||||||
|
await getPluginStatistics()
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error)
|
||||||
|
} finally {
|
||||||
|
isMarketRefreshing.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 处理掉github地址的前缀
|
// 处理掉github地址的前缀
|
||||||
function handleRepoUrl(url: string | undefined) {
|
function handleRepoUrl(url: string | undefined) {
|
||||||
if (!url) return ''
|
if (!url) return ''
|
||||||
@@ -1336,6 +1353,16 @@ function onDragStartPlugin(evt: any) {
|
|||||||
</VCardText>
|
</VCardText>
|
||||||
</VCard>
|
</VCard>
|
||||||
</VMenu>
|
</VMenu>
|
||||||
|
<VBtn
|
||||||
|
v-if="activeTab === 'market'"
|
||||||
|
icon="mdi-refresh"
|
||||||
|
variant="text"
|
||||||
|
color="gray"
|
||||||
|
size="default"
|
||||||
|
class="settings-icon-button"
|
||||||
|
:loading="isMarketRefreshing"
|
||||||
|
@click="refreshMarket"
|
||||||
|
/>
|
||||||
<VBtn
|
<VBtn
|
||||||
v-if="activeTab === 'market'"
|
v-if="activeTab === 'market'"
|
||||||
icon="mdi-store-cog"
|
icon="mdi-store-cog"
|
||||||
@@ -1456,10 +1483,10 @@ function onDragStartPlugin(evt: any) {
|
|||||||
<VWindowItem value="market">
|
<VWindowItem value="market">
|
||||||
<transition name="fade-slide" appear>
|
<transition name="fade-slide" appear>
|
||||||
<div>
|
<div>
|
||||||
<LoadingBanner v-if="!isAppMarketLoaded" class="mt-12" />
|
<LoadingBanner v-if="!isAppMarketLoaded || isMarketRefreshing" class="mt-12" />
|
||||||
<!-- 资源列表 -->
|
<!-- 资源列表 -->
|
||||||
<VInfiniteScroll
|
<VInfiniteScroll
|
||||||
v-if="isAppMarketLoaded"
|
v-if="isAppMarketLoaded && !isMarketRefreshing"
|
||||||
mode="intersect"
|
mode="intersect"
|
||||||
side="end"
|
side="end"
|
||||||
:items="displayUninstalledList"
|
:items="displayUninstalledList"
|
||||||
|
|||||||
Reference in New Issue
Block a user