From 804c2f60c6769a78b30c181c7e074ab960732b59 Mon Sep 17 00:00:00 2001 From: johnathan <952508490@qq.com> Date: Fri, 9 May 2025 15:49:23 +0800 Subject: [PATCH] Update UI & Worker --- src/components/ProgressReport.vue | 2 +- src/components/ResultTable.vue | 26 ++-- src/logic/data-io.ts | 3 + src/logic/execute-script.ts | 1 + src/logic/page-worker/index.ts | 197 +++++++++++++++++------------ src/logic/page-worker/types.d.ts | 2 +- src/logic/storage.ts | 4 +- src/options/App.vue | 21 +-- src/sidepanel/App.vue | 21 +-- src/sidepanel/DetailPageWorker.vue | 141 ++++++++++++--------- src/sidepanel/SearchPageWorker.vue | 132 +++++++++---------- src/sidepanel/Sidepanel.vue | 2 +- 12 files changed, 303 insertions(+), 249 deletions(-) diff --git a/src/components/ProgressReport.vue b/src/components/ProgressReport.vue index 8fb8573..1adc7d5 100644 --- a/src/components/ProgressReport.vue +++ b/src/components/ProgressReport.vue @@ -19,7 +19,7 @@ defineProps<{ :title="item.title" :time="item.time" > - {{ item.content }} +
{{ line }}
diff --git a/src/components/ResultTable.vue b/src/components/ResultTable.vue index 8398f7b..98e72e4 100644 --- a/src/components/ResultTable.vue +++ b/src/components/ResultTable.vue @@ -35,6 +35,7 @@ const filterFormItems = computed(() => { }, ]; }); + const onFilterReset = () => { Object.assign(filter, { keywords: null as string | null, @@ -74,7 +75,7 @@ const columns: (TableColumn & { hidden?: boolean })[] = [ minWidth: 130, }, { - title: '图片', + title: '封面图', key: 'imageSrc', hidden: true, }, @@ -84,7 +85,7 @@ const columns: (TableColumn & { hidden?: boolean })[] = [ minWidth: 160, }, { - title: '操作', + title: '链接', key: 'link', render(row) { return h( @@ -106,14 +107,15 @@ const columns: (TableColumn & { hidden?: boolean })[] = [ }, ]; -const itemView = computed<{ records: AmazonItem[]; pageCount: number }>(() => { - const { current, size } = page; - let data = filterItemData(allItems.value); // Filter Data - let pageCount = ~~(data.length / size); - pageCount += data.length % size > 0 ? 1 : 0; - data = data.slice((current - 1) * size, current * size); - return { records: data, pageCount }; -}); +const itemView = computed<{ records: AmazonItem[]; pageCount: number; origin: AmazonItem[] }>( + () => { + const { current, size } = page; + let data = filterItemData(allItems.value); // Filter Data + let pageCount = ~~(data.length / size); + pageCount += data.length % size > 0 ? 1 : 0; + return { records: data.slice((current - 1) * size, current * size), pageCount, origin: data }; + }, +); const extraHeaders: Header[] = [ { @@ -166,7 +168,7 @@ const handleExport = async () => { [] as { label: string; prop: string }[], ) .concat(extraHeaders); - const data = filterItemData(allItems.value); + const { origin: data } = itemView.value; exportToXLSX(data, { headers }); message.info('导出完成'); }; @@ -202,7 +204,7 @@ const handleClearData = async () => {