diff --git a/src/components/cards/PluginCard.vue b/src/components/cards/PluginCard.vue index 91f35ace..41ffdb61 100644 --- a/src/components/cards/PluginCard.vue +++ b/src/components/cards/PluginCard.vue @@ -307,7 +307,7 @@ async function resetPlugin() { } // 更新插件 -async function updatePlugin(releaseVersion?: string) { +async function updatePlugin(releaseVersion?: string, repoUrl?: string) { if (!releaseVersion && props.plugin?.system_version_compatible === false) { $toast.error(props.plugin?.system_version_message || t('plugin.incompatibleSystemVersion')) return @@ -338,6 +338,7 @@ async function updatePlugin(releaseVersion?: string) { params: { release_version: releaseVersion, force: true, + ...(repoUrl ? { repo_url: repoUrl } : {}), }, }) diff --git a/src/components/cards/__tests__/PluginCard.spec.ts b/src/components/cards/__tests__/PluginCard.spec.ts index 29607bdf..ab9110b6 100644 --- a/src/components/cards/__tests__/PluginCard.spec.ts +++ b/src/components/cards/__tests__/PluginCard.spec.ts @@ -189,6 +189,7 @@ describe('PluginCard lifecycle actions', () => { params: { force: true, release_version: '0.9.0', + repo_url: 'https://github.com/example/releases', }, }) expect(mocks.confirm).toHaveBeenCalledWith(expect.objectContaining({ content: expect.stringContaining('v0.9.0') })) diff --git a/src/components/dialog/PluginMarketDetailDialog.vue b/src/components/dialog/PluginMarketDetailDialog.vue index 52704d50..3b11ab84 100644 --- a/src/components/dialog/PluginMarketDetailDialog.vue +++ b/src/components/dialog/PluginMarketDetailDialog.vue @@ -369,6 +369,7 @@ async function installPlugin(releaseVersion?: string, repoUrl?: string) { params: { release_version: releaseVersion, force: isInstalled.value || props.plugin?.has_update || Boolean(releaseVersion), + ...(selectedRepoUrl ? { repo_url: selectedRepoUrl } : {}), }, feedback: 'silent', }) diff --git a/src/components/dialog/__tests__/PluginMarketDetailDialog.spec.ts b/src/components/dialog/__tests__/PluginMarketDetailDialog.spec.ts index e73105fd..88b52863 100644 --- a/src/components/dialog/__tests__/PluginMarketDetailDialog.spec.ts +++ b/src/components/dialog/__tests__/PluginMarketDetailDialog.spec.ts @@ -655,6 +655,7 @@ describe('PluginMarketDetailDialog', () => { params: { force: true, release_version: undefined, + repo_url: 'https://github.com/example/releases', }, }) expect(mocks.toastSuccess).toHaveBeenCalledWith('插件 演示插件 更新成功!')