diff --git a/admin-frontend-vue/src/pages/tasks/ShopDataTasksPage.vue b/admin-frontend-vue/src/pages/tasks/ShopDataTasksPage.vue
index b9698657..97733553 100644
--- a/admin-frontend-vue/src/pages/tasks/ShopDataTasksPage.vue
+++ b/admin-frontend-vue/src/pages/tasks/ShopDataTasksPage.vue
@@ -34,7 +34,7 @@ const totalShops = ref(0)
const page = ref(1)
// 店铺级一次全载(>200 家店铺时后端按页截断,可上调或恢复底部店铺级分页)。
const pageSize = ref(200)
-// 卡片宫格分页:一行 3 个、一页 10 张卡片(在店铺分页的结果文件内翻页)。
+// 卡片宫格分页:一行 4 个、一页 10 张卡片(在店铺分页的结果文件内翻页)。
const cardPage = ref(1)
const cardPageSize = ref(10)
const cardJump = ref('')
@@ -217,14 +217,14 @@ async function downloadBatch() {
async function removeRowByRow(row: ShopDataResultRow) {
// 对齐旧版:原生 confirm。
- if (!window.confirm(`确认删除店铺“${row.shopName}”的任务 ${row.taskNo || row.resultId} 及结果文件?`)) return
+ if (!window.confirm(`确认删除店铺“${row.shopName}”的任务 ${row.taskId || row.taskNo || row.resultId} 及结果文件?`)) return
deletingKey.value = row.resultId
try {
await deleteShopDataResultHistory(row.resultId)
ElMessage.success('删除成功')
await load()
} catch (error) {
- ElMessage.error(error instanceof Error ? error.message : `正在删除任务 ${row.taskNo || row.resultId}...`)
+ ElMessage.error(error instanceof Error ? error.message : `正在删除任务 ${row.taskId || row.taskNo || row.resultId}...`)
} finally {
deletingKey.value = ''
}
@@ -335,7 +335,7 @@ onMounted(load)
- 任务 {{ row.taskNo || row.resultId }}
+ 任务 {{ row.taskId || row.taskNo || row.resultId }}
{{ statusLabel(row.status) }}
@@ -604,7 +604,7 @@ h3 {
}
.shop-card-grid {
display: grid;
- grid-template-columns: repeat(3, 1fr);
+ grid-template-columns: repeat(4, 1fr);
gap: 14px;
}
.sd-card {
@@ -734,6 +734,11 @@ h3 {
align-items: center;
gap: 6px;
}
+@media (max-width: 1400px) {
+ .shop-card-grid {
+ grid-template-columns: repeat(3, 1fr);
+ }
+}
@media (max-width: 1100px) {
.shop-card-grid {
grid-template-columns: repeat(2, 1fr);
diff --git a/admin-frontend-vue/tests/align-shop-data-cards.test.ts b/admin-frontend-vue/tests/align-shop-data-cards.test.ts
index a1d9989e..48df14ae 100644
--- a/admin-frontend-vue/tests/align-shop-data-cards.test.ts
+++ b/admin-frontend-vue/tests/align-shop-data-cards.test.ts
@@ -9,8 +9,8 @@ test('align_shop_data_cards_per_task', () => {
// 每任务一张卡:以 resultRow 迭代渲染卡片(宫格分页后绑定 pagedResultRows),不再按店铺聚合。
assert.match(page, /v-for="row in pagedResultRows"/, '逐任务卡片渲染')
assert.doesNotMatch(page, /v-for="group in groups"/, '去掉按店铺聚合卡片')
- // 卡片结构:店铺名头 + 任务号/状态 + 分组/最新/国家/文件 信息行 + 下载文件/删除。
- assert.match(page, /任务 {{ row\.taskNo \|\| row\.resultId }}|任务 {{ row\.taskNo/, '卡片含任务号')
+ // 卡片结构:店铺名头 + 任务 id/状态 + 分组/最新/国家/文件 信息行 + 下载文件/删除。
+ assert.match(page, /任务 {{ row\.taskId \|\| row\.taskNo \|\| row\.resultId }}/, '卡片含任务 id(桌面端 taskid)')
assert.match(page, />分组, '卡片含分组行')
assert.match(page, />最新, '卡片含最新行')
assert.match(page, />国家, '卡片含国家行')
diff --git a/admin-frontend-vue/tests/align-shop-data-grid.test.ts b/admin-frontend-vue/tests/align-shop-data-grid.test.ts
index c1881dbd..1c61b815 100644
--- a/admin-frontend-vue/tests/align-shop-data-grid.test.ts
+++ b/admin-frontend-vue/tests/align-shop-data-grid.test.ts
@@ -2,13 +2,13 @@ import test from 'node:test'
import assert from 'node:assert/strict'
import { readSource } from './helpers.ts'
-// 验收反馈:店铺数据记录卡片用宫格排(一行 3 个、一页 9 张卡片)+ 分页组件翻页。
+// 验收反馈:店铺数据记录卡片用宫格排(一行 4 个、一页 9 张卡片)+ 分页组件翻页。
const PAGE = 'src/pages/tasks/ShopDataTasksPage.vue'
test('align_shop_data_grid_normal_primary_path', () => {
const src = readSource(PAGE)
- assert.match(src, /grid-template-columns:\s*repeat\(3,\s*1fr\)/, '卡片容器应为 3 列宫格')
+ assert.match(src, /grid-template-columns:\s*repeat\(4,\s*1fr\)/, '卡片容器应为 4 列宫格')
})
test('align_shop_data_grid_normal_variant_input', () => {