From 3aef704fa55cf430ea806ceb44f89499dbee6e21 Mon Sep 17 00:00:00 2001 From: johnathan <952508490@qq.com> Date: Sat, 28 Jun 2025 13:51:44 +0800 Subject: [PATCH] Adjust page worker struture --- package.json | 2 +- src/components/ExportPanel.vue | 88 ++++++ src/components/amazon/AmazonReviewPreview.vue | 2 +- src/composables/useExcelHelper.ts | 82 ++++++ src/logic/excel.ts | 11 +- src/logic/execute-script.ts | 9 +- src/options/Options.vue | 13 +- src/options/views/AmazonResultTable.vue | 13 +- src/options/views/AmazonReviews.vue | 35 +++ src/options/views/HomedepotResultTable.vue | 9 +- src/page-worker/amazon.ts | 2 +- src/page-worker/composables/amazon.ts | 157 ++++++++++ src/page-worker/composables/homedepot.ts | 85 ++++++ src/page-worker/homedepot.ts | 2 +- src/page-worker/index.ts | 267 +----------------- .../web-injectors/amazon.ts | 0 .../web-injectors/base.ts | 0 .../web-injectors/homedepot.ts | 18 +- .../web-injectors/lowes.ts | 0 src/router/index.ts | 3 +- src/sidepanel/App.vue | 2 +- .../views/AmazonEntries/DetailPageEntry.vue | 4 +- .../views/AmazonEntries/ReviewPageEntry.vue | 4 +- .../views/AmazonEntries/SearchPageEntry.vue | 5 +- src/sidepanel/views/HomedepotSidepanel.vue | 3 +- src/{logic => }/storages/amazon.ts | 26 ++ src/{logic => }/storages/global.ts | 0 src/{logic => }/storages/homedepot.ts | 3 + 28 files changed, 549 insertions(+), 296 deletions(-) create mode 100644 src/components/ExportPanel.vue create mode 100644 src/composables/useExcelHelper.ts create mode 100644 src/page-worker/composables/amazon.ts create mode 100644 src/page-worker/composables/homedepot.ts rename src/{logic => page-worker}/web-injectors/amazon.ts (100%) rename src/{logic => page-worker}/web-injectors/base.ts (100%) rename src/{logic => page-worker}/web-injectors/homedepot.ts (82%) rename src/{logic => page-worker}/web-injectors/lowes.ts (100%) rename src/{logic => }/storages/amazon.ts (81%) rename src/{logic => }/storages/global.ts (100%) rename src/{logic => }/storages/homedepot.ts (84%) diff --git a/package.json b/package.json index 7267f85..ddfa1b9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "azon-seeker", "displayName": "Azon Seeker", - "version": "0.4.1", + "version": "0.5.0", "private": true, "description": "Starter modify by honestfox101", "scripts": { diff --git a/src/components/ExportPanel.vue b/src/components/ExportPanel.vue new file mode 100644 index 0000000..7480079 --- /dev/null +++ b/src/components/ExportPanel.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/components/amazon/AmazonReviewPreview.vue b/src/components/amazon/AmazonReviewPreview.vue index 9b49d51..c972ad0 100644 --- a/src/components/amazon/AmazonReviewPreview.vue +++ b/src/components/amazon/AmazonReviewPreview.vue @@ -1,7 +1,7 @@ diff --git a/src/options/views/AmazonResultTable.vue b/src/options/views/AmazonResultTable.vue index 90caad9..fd6ea3e 100644 --- a/src/options/views/AmazonResultTable.vue +++ b/src/options/views/AmazonResultTable.vue @@ -2,8 +2,8 @@ import { NButton, NSpace } from 'naive-ui'; import type { TableColumn } from '~/components/ResultTable.vue'; import { useCloudExporter } from '~/composables/useCloudExporter'; -import { castRecordsByHeaders, createWorkbook, Header, importFromXLSX } from '~/logic/excel'; -import { allItems, itemColumnSettings, reviewItems } from '~/logic/storages/amazon'; +import { formatRecords, createWorkbook, Header, importFromXLSX } from '~/logic/excel'; +import { allItems, itemColumnSettings, reviewItems } from '~/storages/amazon'; const message = useMessage(); const modal = useModal(); @@ -138,7 +138,6 @@ const extraHeaders: Header[] = [ { prop: 'category1.rank', label: '大类排行' }, { prop: 'category2.name', label: '小类' }, { prop: 'category2.rank', label: '小类排行' }, - { prop: 'timestamp', label: '获取日期(详情页)' }, { prop: 'imageUrls', label: '商品图片链接', @@ -249,8 +248,8 @@ const handleCloudExport = async () => { a.push(...reviews.map((r) => ({ asin, ...r }))); return a; }, []); - const mappedData1 = await castRecordsByHeaders(items, itemHeaders); - const mappedData2 = await castRecordsByHeaders(reviews, reviewHeaders); + const mappedData1 = await formatRecords(items, itemHeaders); + const mappedData2 = await formatRecords(reviews, reviewHeaders); const fragments = [ { data: mappedData1, imageColumn: ['A+截图', '商品图片链接'], name: 'items' }, { data: mappedData2, imageColumn: '图片链接', name: 'reviews' }, @@ -393,10 +392,10 @@ const handleClearData = async () => { v-model:value="filter.detailDateRange" /> - + diff --git a/src/options/views/AmazonReviews.vue b/src/options/views/AmazonReviews.vue index e69de29..93b2b27 100644 --- a/src/options/views/AmazonReviews.vue +++ b/src/options/views/AmazonReviews.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/options/views/HomedepotResultTable.vue b/src/options/views/HomedepotResultTable.vue index 62784dd..4b538bf 100644 --- a/src/options/views/HomedepotResultTable.vue +++ b/src/options/views/HomedepotResultTable.vue @@ -1,8 +1,8 @@