From dd23d9fe9063b5c6c7769c8cfbe900b5623e2c6d Mon Sep 17 00:00:00 2001 From: zhangzijienbplus <17738440858@163.com> Date: Thu, 13 Nov 2025 15:33:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(amazon):=E4=BC=98=E5=8C=96=E5=95=86?= =?UTF-8?q?=E6=A0=87=E7=AD=9B=E6=9F=A5=E9=9D=A2=E6=9D=BF=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=8C=87=E7=A4=BA=E5=99=A8=E4=B8=8E=E8=BF=9B=E5=BA=A6=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 SVG 图标替换为 PNG 图片以提升渲染性能 - 调整状态图标动画效果及连接线样式- 修改任务进度初始值以即时反映进行中状态 - 动态计算配置步骤总数并更新显示逻辑- 移除开发模式下的调试快捷键与相关日志- 微调 CSS 样式以改善界面布局与视觉效果 --- electron-vue-template/public/icon/waiting.png | Bin 0 -> 533 bytes electron-vue-template/src/main/main.ts | 33 +-------- .../components/amazon/AmazonDashboard.vue | 66 +++++------------- .../components/amazon/TrademarkCheckPanel.vue | 15 ++-- 4 files changed, 28 insertions(+), 86 deletions(-) create mode 100644 electron-vue-template/public/icon/waiting.png diff --git a/electron-vue-template/public/icon/waiting.png b/electron-vue-template/public/icon/waiting.png new file mode 100644 index 0000000000000000000000000000000000000000..7a65c10ccfa75de3ad4a30d6e0464528991c622a GIT binary patch literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(Fy8TWaSW-5dpoVs_ppJ0t2LAG z5xIrZ7X)uGxV>O|%a+P~qd`zYQ8}fhkD>hOx~+bNvdh2ADn9j`wnG2s|9uXnEO3_n z;o0FQ(pM|KurJ*5b>)O}akHKut=L$qk@92OjQ6>B58YP2tF(z@`u9vhzGolJW{B2o z{VKwF;CxZX+`70mm94WZJ(BmdZ{N1=!>P;0d)cNvyQ|l9(<6EMX9dMYwQimD<$q0& z>^gdxicRx&ZP@H%C+{Ed1Vp|{~x896HG`)G{ z)%DA+J-E-lf^{vwxx?$jycd2IFqi)=ux|10^Ataz@#j-V!fQkO1E;)Z#&>Ug5OUn8 RUL6?S44$rjF6*2UngG{q_vQcq literal 0 HcmV?d00001 diff --git a/electron-vue-template/src/main/main.ts b/electron-vue-template/src/main/main.ts index 070f26e..4ac6a56 100644 --- a/electron-vue-template/src/main/main.ts +++ b/electron-vue-template/src/main/main.ts @@ -434,19 +434,6 @@ app.whenReady().then(() => { createWindow(); createTray(mainWindow); - - // 开发模式快捷键 - if (isDev && mainWindow) { - mainWindow.webContents.on('before-input-event', (event, input) => { - if (input.control && input.shift && input.key.toLowerCase() === 'd') { - console.log('[开发模式] 手动跳过后端启动'); - openAppIfNotOpened(); - } else if (input.control && input.shift && input.key.toLowerCase() === 's') { - console.log('[开发模式] 手动启动后端服务'); - startSpringBoot(); - } - }); - } // 只有在不需要最小化启动时才显示 splash 窗口 if (!shouldMinimize) { @@ -488,23 +475,9 @@ app.whenReady().then(() => { splashWindow.once('ready-to-show', () => splashWindow?.show()); } - console.log('[启动流程] 准备启动 Spring Boot...'); - - // 开发模式:添加快捷键跳过后端启动 - if (isDev) { - console.log('[开发模式] 按 Ctrl+Shift+D 跳过后端启动,直接进入应用'); - console.log('[开发模式] 按 Ctrl+Shift+S 手动启动后端服务'); - - // 5秒后自动跳过,避免卡死 - setTimeout(() => { - console.log('[开发模式] 自动跳过后端启动,直接进入应用'); - openAppIfNotOpened(); - }, 5000); - } - - // setTimeout(() => { - // startSpringBoot(); - // }, 200); + setTimeout(() => { + startSpringBoot(); + }, 200); app.on('activate', () => { if (mainWindow && !mainWindow.isDestroyed()) { diff --git a/electron-vue-template/src/renderer/components/amazon/AmazonDashboard.vue b/electron-vue-template/src/renderer/components/amazon/AmazonDashboard.vue index dd2e320..40e988f 100644 --- a/electron-vue-template/src/renderer/components/amazon/AmazonDashboard.vue +++ b/electron-vue-template/src/renderer/components/amazon/AmazonDashboard.vue @@ -332,21 +332,8 @@ function handleExportData() { - - - - - - - - - - - - - - - + 进行中 + 等待中
@@ -365,21 +352,8 @@ function handleExportData() { - - - - - - - - - - - - - - - + 进行中 + 等待中
@@ -398,22 +372,10 @@ function handleExportData() { - - - - - - - - - - - - - - - + 进行中 + 等待中 +
@@ -1061,7 +1023,7 @@ function handleExportData() { } .status-item { display: flex; - align-items: center; + align-items: flex-start; justify-content: center; width: 24px; height: 24px; @@ -1075,12 +1037,15 @@ function handleExportData() { .status-indicator-icon.spinning { animation: spin 1.5s linear infinite; } +@keyframes spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} .status-connector { - width: 2px; - flex: 1; + width: 1px; + height: 114px; background: #e5e7eb; - margin: 6px 0; - min-height: 50px; + margin: 8px 0; } /* 任务内容列 */ @@ -1096,6 +1061,7 @@ function handleExportData() { padding: 0; padding-bottom: 16px; border-bottom: 1px solid rgba(0, 0, 0, 0.06); + min-height: 76px; } .task-item:first-child { padding-top: 0; diff --git a/electron-vue-template/src/renderer/components/amazon/TrademarkCheckPanel.vue b/electron-vue-template/src/renderer/components/amazon/TrademarkCheckPanel.vue index fa67cd4..bff7e75 100644 --- a/electron-vue-template/src/renderer/components/amazon/TrademarkCheckPanel.vue +++ b/electron-vue-template/src/renderer/components/amazon/TrademarkCheckPanel.vue @@ -94,16 +94,20 @@ const regionOptions = [ // 查询类型多选(默认全部勾选) const queryTypes = ref(['product', 'brand']) -// 计算已完成的配置步骤数 +// 计算已完成的配置步骤数(不包括已隐藏的账号选择) const completedSteps = computed(() => { let count = 0 if (trademarkFileName.value) count++ - if (selectedAccount.value) count++ if (region.value) count++ if (queryTypes.value.length > 0) count++ return count }) +// 计算总步骤数(动态) +const totalConfigSteps = computed(() => { + return 3 // 1.导入表格 2.选择地区 3.选择查询类型 +}) + const showTrialExpiredDialog = ref(false) const trialExpiredType = ref<'device' | 'account' | 'both' | 'subscribe'>('account') const showExcelExample = ref(false) @@ -463,8 +467,9 @@ async function startTrademarkQuery() { if (brandList.length > 0) { const brandData = taskProgress.value.brand brandData.total = brandList.length - brandData.current = 0 + brandData.current = 1 // 立即显示进行中状态 brandData.completed = 0 + isBrandTaskRealData.value = true // 立即标记为真实数据 // 生成任务ID并立即开始轮询 brandTaskId.value = `task_${Date.now()}` @@ -490,7 +495,6 @@ async function startTrademarkQuery() { brandData.total = brandResult.data.checked || brandResult.data.total || brandData.total brandData.current = brandData.total brandData.completed = brandResult.data.unregistered || 0 - isBrandTaskRealData.value = true await processBrandResult(brandResult) } else { throw new Error(brandResult.msg || '品牌筛查失败') @@ -514,7 +518,6 @@ async function startTrademarkQuery() { // 更新统计:显示过滤出的实际行数(而不是品牌数) const brandData = taskProgress.value.brand brandData.completed = filterResult.data.filteredRows.length - isBrandTaskRealData.value = true // 将品牌筛查结果作为展示数据 const brandItems = filterResult.data.filteredRows.map((row: any) => ({ @@ -856,7 +859,7 @@ defineExpose({
- {{ completedSteps }}/3 + {{ completedSteps }}/{{ totalConfigSteps }} 开始筛查