From 5066b09af6d10ff1aacb671fa3033898b3adf6a0 Mon Sep 17 00:00:00 2001 From: jingrow Date: Fri, 21 Nov 2025 22:44:17 +0800 Subject: [PATCH] resolve installation progress bar jitter in marketplace pages --- apps/jingrow/frontend/src/views/dev/AppDetail.vue | 12 ++++-------- .../frontend/src/views/dev/AppMarketplace.vue | 12 ++++-------- apps/jingrow/frontend/src/views/dev/NodeDetail.vue | 12 ++++-------- .../frontend/src/views/dev/NodeMarketplace.vue | 12 ++++-------- apps/jingrow/frontend/src/views/dev/ToolDetail.vue | 12 ++++-------- .../frontend/src/views/dev/ToolMarketplace.vue | 12 ++++-------- 6 files changed, 24 insertions(+), 48 deletions(-) diff --git a/apps/jingrow/frontend/src/views/dev/AppDetail.vue b/apps/jingrow/frontend/src/views/dev/AppDetail.vue index ceaa800..79074b0 100644 --- a/apps/jingrow/frontend/src/views/dev/AppDetail.vue +++ b/apps/jingrow/frontend/src/views/dev/AppDetail.vue @@ -266,12 +266,10 @@ async function performInstall() { // 优先使用文件URL,否则使用git仓库 if (app.value.file_url) { installMessage.value = t('正在下载应用包...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('正在安装应用...') + installProgress.value = 30 response = await axios.post('/jingrow/install-from-url', new URLSearchParams({ url: app.value.file_url @@ -283,12 +281,10 @@ async function performInstall() { }) } else if (app.value.repository_url) { installMessage.value = t('正在克隆仓库...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('正在安装应用...') + installProgress.value = 30 const params = new URLSearchParams({ repo_url: app.value.repository_url diff --git a/apps/jingrow/frontend/src/views/dev/AppMarketplace.vue b/apps/jingrow/frontend/src/views/dev/AppMarketplace.vue index 544f7fa..a78987b 100644 --- a/apps/jingrow/frontend/src/views/dev/AppMarketplace.vue +++ b/apps/jingrow/frontend/src/views/dev/AppMarketplace.vue @@ -294,12 +294,10 @@ async function performInstall(app: any) { // 优先使用文件URL,否则使用git仓库 if (app.file_url) { installMessage.value = t('正在下载应用包...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('正在安装应用...') + installProgress.value = 30 response = await axios.post('/jingrow/install-from-url', new URLSearchParams({ url: app.file_url @@ -311,12 +309,10 @@ async function performInstall(app: any) { }) } else if (app.repository_url) { installMessage.value = t('正在克隆仓库...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('正在安装应用...') + installProgress.value = 30 const params = new URLSearchParams({ repo_url: app.repository_url diff --git a/apps/jingrow/frontend/src/views/dev/NodeDetail.vue b/apps/jingrow/frontend/src/views/dev/NodeDetail.vue index 70a0603..6ef1199 100644 --- a/apps/jingrow/frontend/src/views/dev/NodeDetail.vue +++ b/apps/jingrow/frontend/src/views/dev/NodeDetail.vue @@ -258,12 +258,10 @@ async function performInstall() { // 优先使用文件URL,否则使用git仓库 if (node.value.file_url) { installMessage.value = t('Downloading node package...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('Installing node...') + installProgress.value = 30 response = await axios.post('/jingrow/install-node-from-url', new URLSearchParams({ url: node.value.file_url @@ -275,12 +273,10 @@ async function performInstall() { }) } else if (node.value.repository_url) { installMessage.value = t('Cloning repository...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('Installing node...') + installProgress.value = 30 const params = new URLSearchParams({ repo_url: node.value.repository_url diff --git a/apps/jingrow/frontend/src/views/dev/NodeMarketplace.vue b/apps/jingrow/frontend/src/views/dev/NodeMarketplace.vue index 0859f7c..dc7ee02 100644 --- a/apps/jingrow/frontend/src/views/dev/NodeMarketplace.vue +++ b/apps/jingrow/frontend/src/views/dev/NodeMarketplace.vue @@ -287,12 +287,10 @@ async function performInstall(node: any) { // 优先使用文件URL,否则使用git仓库 if (node.file_url) { installMessage.value = t('Downloading node package...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('Installing node...') + installProgress.value = 30 response = await axios.post('/jingrow/install-node-from-url', new URLSearchParams({ url: node.file_url @@ -304,12 +302,10 @@ async function performInstall(node: any) { }) } else if (node.repository_url) { installMessage.value = t('Cloning repository...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('Installing node...') + installProgress.value = 30 const params = new URLSearchParams({ repo_url: node.repository_url diff --git a/apps/jingrow/frontend/src/views/dev/ToolDetail.vue b/apps/jingrow/frontend/src/views/dev/ToolDetail.vue index 8fbeaca..39e90d0 100644 --- a/apps/jingrow/frontend/src/views/dev/ToolDetail.vue +++ b/apps/jingrow/frontend/src/views/dev/ToolDetail.vue @@ -259,12 +259,10 @@ async function performInstall() { // 优先使用文件URL,否则使用git仓库 if (tool.value.file_url) { installMessage.value = t('正在下载工具包...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('正在安装工具...') + installProgress.value = 30 response = await axios.post('/jingrow/install-tool-from-url', new URLSearchParams({ tool_name: tool.value.name || tool.value.tool_name, @@ -277,12 +275,10 @@ async function performInstall() { }) } else if (tool.value.repository_url) { installMessage.value = t('正在克隆仓库...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('正在安装工具...') + installProgress.value = 30 // 注意:目前后端可能还没有 install-tool-from-git API,需要检查 message.warning(t('从Git仓库安装工具功能暂未实现')) diff --git a/apps/jingrow/frontend/src/views/dev/ToolMarketplace.vue b/apps/jingrow/frontend/src/views/dev/ToolMarketplace.vue index b494507..3111251 100644 --- a/apps/jingrow/frontend/src/views/dev/ToolMarketplace.vue +++ b/apps/jingrow/frontend/src/views/dev/ToolMarketplace.vue @@ -272,12 +272,10 @@ async function performInstall(tool: any) { // 优先使用文件URL,否则使用git仓库 if (tool.file_url) { installMessage.value = t('正在下载工具包...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('正在安装工具...') + installProgress.value = 30 response = await axios.post('/jingrow/install-tool-from-url', new URLSearchParams({ url: tool.file_url, @@ -290,12 +288,10 @@ async function performInstall(tool: any) { }) } else if (tool.repository_url) { installMessage.value = t('正在克隆仓库...') - setTimeout(() => { - installProgress.value = 20 - }, 300) + installProgress.value = 20 - installProgress.value = 30 installMessage.value = t('正在安装工具...') + installProgress.value = 30 // 注意:目前后端可能还没有 install-tool-from-git API,需要检查 message.warning(t('从Git仓库安装工具功能暂未实现'))