mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-07 08:46:40 +08:00
feat: show plugin system version compatibility
This commit is contained in:
@@ -646,6 +646,12 @@ export interface Plugin {
|
|||||||
has_page?: boolean
|
has_page?: boolean
|
||||||
// 是否有新版本
|
// 是否有新版本
|
||||||
has_update?: boolean
|
has_update?: boolean
|
||||||
|
// 主系统版本是否兼容
|
||||||
|
system_version_compatible?: boolean
|
||||||
|
// 主系统版本兼容提示
|
||||||
|
system_version_message?: string
|
||||||
|
// 主系统版本限定范围
|
||||||
|
system_version?: string
|
||||||
// 是否本地插件
|
// 是否本地插件
|
||||||
is_local?: boolean
|
is_local?: boolean
|
||||||
// 插件仓库地址
|
// 插件仓库地址
|
||||||
|
|||||||
@@ -226,6 +226,11 @@ async function resetPlugin() {
|
|||||||
|
|
||||||
// 更新插件
|
// 更新插件
|
||||||
async function updatePlugin() {
|
async function updatePlugin() {
|
||||||
|
if (props.plugin?.system_version_compatible === false) {
|
||||||
|
$toast.error(props.plugin?.system_version_message || t('plugin.incompatibleSystemVersion'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 显示等待提示框
|
// 显示等待提示框
|
||||||
showPluginProgress(t('plugin.updating', { name: props.plugin?.plugin_name }))
|
showPluginProgress(t('plugin.updating', { name: props.plugin?.plugin_name }))
|
||||||
|
|||||||
@@ -98,6 +98,11 @@ function visitPluginPage() {
|
|||||||
|
|
||||||
/** 安装插件并通知父级刷新市场列表。 */
|
/** 安装插件并通知父级刷新市场列表。 */
|
||||||
async function installPlugin() {
|
async function installPlugin() {
|
||||||
|
if (props.plugin?.system_version_compatible === false) {
|
||||||
|
$toast.error(props.plugin?.system_version_message || t('plugin.incompatibleSystemVersion'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
showInstallProgress(
|
showInstallProgress(
|
||||||
t('plugin.installing', {
|
t('plugin.installing', {
|
||||||
@@ -176,9 +181,28 @@ onUnmounted(() => {
|
|||||||
</span>
|
</span>
|
||||||
</VListItemTitle>
|
</VListItemTitle>
|
||||||
</VListItem>
|
</VListItem>
|
||||||
|
<VListItem v-if="props.plugin?.system_version" class="ps-0">
|
||||||
|
<VListItemTitle class="text-center text-md-left">
|
||||||
|
<span class="font-weight-medium">{{ t('plugin.systemVersion') }}:</span>
|
||||||
|
<span class="text-body-1">{{ props.plugin?.system_version }}</span>
|
||||||
|
</VListItemTitle>
|
||||||
|
</VListItem>
|
||||||
</VList>
|
</VList>
|
||||||
|
<VAlert
|
||||||
|
v-if="props.plugin?.system_version_compatible === false"
|
||||||
|
type="warning"
|
||||||
|
variant="tonal"
|
||||||
|
density="compact"
|
||||||
|
class="mb-3"
|
||||||
|
:text="props.plugin?.system_version_message || t('plugin.incompatibleSystemVersion')"
|
||||||
|
/>
|
||||||
<div class="text-center text-md-left">
|
<div class="text-center text-md-left">
|
||||||
<VBtn color="primary" @click="installPlugin" prepend-icon="mdi-download">
|
<VBtn
|
||||||
|
color="primary"
|
||||||
|
@click="installPlugin"
|
||||||
|
prepend-icon="mdi-download"
|
||||||
|
:disabled="props.plugin?.system_version_compatible === false"
|
||||||
|
>
|
||||||
{{ t('plugin.installToLocal') }}
|
{{ t('plugin.installToLocal') }}
|
||||||
</VBtn>
|
</VBtn>
|
||||||
<div class="text-xs mt-2" v-if="props.count">
|
<div class="text-xs mt-2" v-if="props.count">
|
||||||
|
|||||||
@@ -49,7 +49,15 @@ function handleUpdate() {
|
|||||||
<template v-if="props.showUpdateAction">
|
<template v-if="props.showUpdateAction">
|
||||||
<VDivider />
|
<VDivider />
|
||||||
<VCardItem>
|
<VCardItem>
|
||||||
<VBtn @click="handleUpdate" block>
|
<VAlert
|
||||||
|
v-if="props.plugin?.system_version_compatible === false"
|
||||||
|
type="warning"
|
||||||
|
variant="tonal"
|
||||||
|
density="compact"
|
||||||
|
class="mb-3"
|
||||||
|
:text="props.plugin?.system_version_message || t('plugin.incompatibleSystemVersion')"
|
||||||
|
/>
|
||||||
|
<VBtn @click="handleUpdate" block :disabled="props.plugin?.system_version_compatible === false">
|
||||||
<template #prepend>
|
<template #prepend>
|
||||||
<VIcon icon="mdi-arrow-up-circle-outline" />
|
<VIcon icon="mdi-arrow-up-circle-outline" />
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -2842,6 +2842,8 @@ export default {
|
|||||||
projectHome: 'Project Home',
|
projectHome: 'Project Home',
|
||||||
updateHistory: 'Update History',
|
updateHistory: 'Update History',
|
||||||
local: 'Local',
|
local: 'Local',
|
||||||
|
systemVersion: 'System Version',
|
||||||
|
incompatibleSystemVersion: 'The current MoviePilot version does not meet this plugin requirement.',
|
||||||
installToLocal: 'Install to Local',
|
installToLocal: 'Install to Local',
|
||||||
totalDownloads: 'Total {count} downloads',
|
totalDownloads: 'Total {count} downloads',
|
||||||
viewData: 'View Data',
|
viewData: 'View Data',
|
||||||
|
|||||||
@@ -2795,6 +2795,8 @@ export default {
|
|||||||
projectHome: '项目主页',
|
projectHome: '项目主页',
|
||||||
updateHistory: '更新说明',
|
updateHistory: '更新说明',
|
||||||
local: '本地',
|
local: '本地',
|
||||||
|
systemVersion: '系统版本',
|
||||||
|
incompatibleSystemVersion: '当前 MoviePilot 版本不满足插件要求,无法安装',
|
||||||
installToLocal: '安装到本地',
|
installToLocal: '安装到本地',
|
||||||
totalDownloads: '共 {count} 次下载',
|
totalDownloads: '共 {count} 次下载',
|
||||||
viewData: '查看数据',
|
viewData: '查看数据',
|
||||||
|
|||||||
@@ -665,6 +665,11 @@ function closePluginProgressDialog() {
|
|||||||
|
|
||||||
// 安装插件
|
// 安装插件
|
||||||
async function installPlugin(item: Plugin) {
|
async function installPlugin(item: Plugin) {
|
||||||
|
if (item?.system_version_compatible === false) {
|
||||||
|
$toast.error(item.system_version_message || t('plugin.incompatibleSystemVersion'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 显示等待提示框
|
// 显示等待提示框
|
||||||
progressText.value = t('plugin.installing', { name: item?.plugin_name, version: item?.plugin_version })
|
progressText.value = t('plugin.installing', { name: item?.plugin_name, version: item?.plugin_version })
|
||||||
@@ -775,6 +780,9 @@ async function fetchUninstalledPlugins(force: boolean = false, context: KeepAliv
|
|||||||
data.has_update = true
|
data.has_update = true
|
||||||
data.repo_url = uninstalled.repo_url
|
data.repo_url = uninstalled.repo_url
|
||||||
data.history = uninstalled.history
|
data.history = uninstalled.history
|
||||||
|
data.system_version = uninstalled.system_version
|
||||||
|
data.system_version_compatible = uninstalled.system_version_compatible
|
||||||
|
data.system_version_message = uninstalled.system_version_message
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user