diff --git a/package.json b/package.json index fc861e2..3ffe4d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "azon-seeker", - "displayName": "Azon Seeker v0.7.1.10-beta", + "displayName": "Azon Seeker v0.7.1.11-beta", "version": "0.7.2", "private": true, "description": "Starter modify by honestfox101 and PetrichorFun", diff --git a/src/options/views/AmazonResultTable.vue b/src/options/views/AmazonResultTable.vue index e21732b..25d740a 100644 --- a/src/options/views/AmazonResultTable.vue +++ b/src/options/views/AmazonResultTable.vue @@ -210,13 +210,57 @@ const filteredData = computed(() => { return data; }); +/** 本地导出:将「关于」拆成「要点1…要点n」多列,云端导出仍为单列「关于」 */ +function prepareLocalExportItemsWithAboutPoints( + headers: Header[], + items: AmazonItem[], +): { headers: Header[]; items: Record[] } { + const aboutLines = (item: AmazonItem) => { + const raw = item.abouts; + if (!raw?.length) return []; + return raw + .flatMap((line) => line.split(/\r?\n/)) + .map((s) => s.trim()) + .filter(Boolean); + }; + + const nextHeaders = headers.filter((h) => h.prop !== 'abouts'); + const lineArrays = items.map(aboutLines); + const maxN = Math.max(1, ...lineArrays.map((l) => l.length)); + + for (let i = 0; i < maxN; i++) { + nextHeaders.push({ + label: `要点${i + 1}`, + prop: `aboutPoint${i + 1}`, + }); + } + + const nextItems = items.map((item, idx) => { + const row: Record = { ...item }; + const lines = lineArrays[idx]; + for (let i = 0; i < maxN; i++) { + row[`aboutPoint${i + 1}`] = lines[i] ?? ''; + } + return row; + }); + + return { headers: nextHeaders, items: nextItems }; +} + const handleExport = async (opt: 'local' | 'cloud') => { - const headers = getItemHeaders(); - const items = toRaw(filteredData.value); + let headers = getItemHeaders(); + let items: Record[] | AmazonItem[] = toRaw(filteredData.value); + + if (opt === 'local') { + const prepared = prepareLocalExportItemsWithAboutPoints(headers, items as AmazonItem[]); + headers = prepared.headers; + items = prepared.items; + } + const fragments = [ { data: items, - headers: headers, + headers, imageColumn: ['A+截图', '商品图片链接'], name: 'items', },