-
- 任务 {{ row.taskNo || row.resultId }}
- {{ statusLabel(row.status) }}
+
+
+
-
+
]*text[^>]*@click="copyLink/, '复制链接保留 text')
+ assert.match(s, /class="btn btn-sm"[^>]*@click="copyLink/, '复制链接用 btn-sm')
})
diff --git a/admin-frontend-vue/tests/datetime-sweep.test.ts b/admin-frontend-vue/tests/datetime-sweep.test.ts
index 96b68514..b366e3ba 100644
--- a/admin-frontend-vue/tests/datetime-sweep.test.ts
+++ b/admin-frontend-vue/tests/datetime-sweep.test.ts
@@ -64,7 +64,7 @@ test('test_datetime_sweep_boundary_single_item', () => {
// 含时间展示的页:时间标签仍存在(列还在),只是改成走格式化;无时间列页面豁免。
for (const page of PAGES) {
const src = readSource(page)
- if (TIME_CONTENT.test(src)) assert.match(src, /时间/, `${page} 仍应含“时间”列/文案`)
+ if (TIME_CONTENT.test(src)) assert.match(src, /时间|最新/, `${page} 仍应含“时间/最新”列/文案`)
}
})
diff --git a/admin-frontend-vue/tests/task-264.test.ts b/admin-frontend-vue/tests/task-264.test.ts
index a278ded8..584eac45 100644
--- a/admin-frontend-vue/tests/task-264.test.ts
+++ b/admin-frontend-vue/tests/task-264.test.ts
@@ -36,7 +36,7 @@ test('test_task_264_view_boundary_empty_input', () => {
const page = readSource('src/pages/tasks/ImageVideoTasksPage.vue')
assert.match(page, /视频生成中或暂无结果/)
assert.match(page, /任务失败,未生成视频/)
- assert.match(page, /暂无视频任务记录/)
+ assert.match(page, /暂无符合条件的视频任务/)
})
test('test_task_264_view_boundary_single_item', () => {
diff --git a/admin-frontend-vue/tests/task-265.test.ts b/admin-frontend-vue/tests/task-265.test.ts
index 1593bd21..222f8e33 100644
--- a/admin-frontend-vue/tests/task-265.test.ts
+++ b/admin-frontend-vue/tests/task-265.test.ts
@@ -7,8 +7,9 @@ import { normalizeImageVideoFilter } from '../src/pages/tasks/image-video-filter
test('test_task_265_filter_normal_primary_path', () => {
const page = readSource('src/pages/tasks/ImageVideoTasksPage.vue')
- assert.match(page, /用户名(模糊搜索)/, '需用户名模糊筛选')
- assert.match(page, /提交时间/, '需提交时间范围')
+ assert.match(page, /用户名/, '需用户名模糊筛选')
+ assert.match(page, /提交开始/, '需提交开始时间')
+ assert.match(page, /提交结束/, '需提交结束时间')
assert.match(page, /查询/, '需查询按钮')
assert.match(page, /reset/, '需重置')
})
@@ -43,7 +44,7 @@ test('test_task_265_permission_normal_primary_path', () => {
assert.match(page, /权限配置/, '权限入口')
assert.match(page, /fetchImageVideoPermissionUsers/, '权限用户加载')
assert.match(page, /saveImageVideoPermissions/, '权限保存')
- assert.match(page, /数据范围授权/, '权限弹窗语义')
+ assert.match(page, /数据范围/, '权限弹窗语义')
})
test('test_task_265_permission_boundary_limit_or_missing_field', () => {
diff --git a/admin-frontend-vue/tests/task-267.test.ts b/admin-frontend-vue/tests/task-267.test.ts
index 20cc26f1..2fb6778d 100644
--- a/admin-frontend-vue/tests/task-267.test.ts
+++ b/admin-frontend-vue/tests/task-267.test.ts
@@ -8,10 +8,11 @@ import { toShopDataZipRequest } from '../src/pages/tasks/shop-data-download.ts'
test('test_task_267_filter_normal_primary_path', () => {
const page = readSource('src/pages/tasks/ShopDataTasksPage.vue')
- assert.match(page, /店铺(模糊搜索)/, '需店铺模糊筛选')
- assert.match(page, /分组(模糊搜索)/, '需分组模糊筛选')
+ assert.match(page, /店铺/, '需店铺模糊筛选')
+ assert.match(page, /分组/, '需分组模糊筛选')
assert.match(page, /国家/, '需国家筛选')
- assert.match(page, /创建时间/, '需创建时间范围')
+ assert.match(page, /创建开始/, '需创建开始时间')
+ assert.match(page, /创建结束/, '需创建结束时间')
assert.match(page, /查询/, '需查询')
assert.match(page, /reset/, '需重置')
})
+
+
+
-
- 分组
- {{ row.groupName || '-' }}
-
-
- 最新
- {{ formatDateTime(row.updatedAt || row.createdAt) || '-' }}
-
-
- 国家
-
- {{ asinCountryLabel(code) }}
- -
+
-
+ 共 {{ totalShops }} 家店铺 · 本页 {{ resultFileCount() }} 个结果文件
+
+
+ 第 {{ page }} / {{ totalPages }} 页
+
+
+
-
- 文件
- {{ row.filename || '-' }}
-
-
-
- 下载文件
-
-
- 删除
-
-
-
-
-
-
-
+
+
+
+ {{ row.shopName || '-' }}
+
+
+
+
+
+
+
+ 任务 {{ row.taskNo || row.resultId }}
+ {{ statusLabel(row.status) }}
+
+
+ 分组
+ {{ row.groupName }}
+
+
+ 最新
+ {{ formatDateTime(row.updatedAt || row.createdAt) || '-' }}
+
+
+ 国家
+
+ {{ asinCountryLabel(code) }}
+ -
+
+
+
+ 文件
+ {{ row.filename || '-' }}
+
+
+
+
+
+ 暂无符合条件的店铺数据记录
+
+ 本页数据 · 共 {{ allResultRows.length }} 个结果文件
+
+ 第 {{ cardPage }} / {{ cardTotalPages }} 页
+
+
+ 跳至
+
+ 页
+
+
+
+
勾选允许查看/操作店铺数据记录的用户(仅数据范围)。当前已授权 {{ grantedCount }} 人。
@@ -384,30 +427,343 @@ onMounted(load) 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 6a7c3012..e5b864fe 100644 --- a/admin-frontend-vue/tests/align-shop-data-grid.test.ts +++ b/admin-frontend-vue/tests/align-shop-data-grid.test.ts @@ -19,11 +19,11 @@ test('align_shop_data_grid_normal_variant_input', () => { }) test('align_shop_data_grid_boundary_empty_input', () => { - // 卡片区下方有翻页组件(prev/next),与店铺分页并存。 + // 卡片区下方有翻页组件(prev/next),与店铺分页并存(均为旧式分页)。 const src = readSource(PAGE) - const count = (src.match(/el-pagination/g) || []).length - assert.ok(count >= 2, '页面应含店铺分页 + 卡片分页两处 el-pagination') - assert.match(src, /layout="prev, pager, next, jumper"/, '卡片分页含上一页/下一页') + const count = (src.match(/class="pagination"/g) || []).length + (src.match(/sd-shop-pager/g) || []).length + assert.ok(count >= 2, '页面应含店铺分页 + 卡片分页两处分页') + assert.match(src, /cardPage/, '卡片分页状态') }) test('align_shop_data_grid_boundary_single_item', () => { diff --git a/admin-frontend-vue/tests/align-shop-records-row-buttons.test.ts b/admin-frontend-vue/tests/align-shop-records-row-buttons.test.ts index 9d3acf73..707b2e0b 100644 --- a/admin-frontend-vue/tests/align-shop-records-row-buttons.test.ts +++ b/admin-frontend-vue/tests/align-shop-records-row-buttons.test.ts @@ -42,14 +42,14 @@ test('align_digital_human_row_buttons_old_btn', () => { assert.match(s, /window\.confirm\(text\)/, '确认走原生 confirm 对齐旧版') }) -test('align_image_video_detail_and_download_solid', () => { +test('align_image_video_detail_and_download_old_btn', () => { const s = readSource('src/pages/tasks/ImageVideoTasksPage.vue') - assertRowButtonSolid(s, 'openDetail') - assertRowButtonSolid(s, 'downloadVideo') + assert.match(s, /class="btn btn-sm btn-secondary"[^>]*@click="downloadVideo\(task, index, video\)"/, '视频下载为旧版 btn-sm btn-secondary') + assert.match(s, /class="btn btn-sm"[^>]*@click="copyLink\(video\.displayUrl\)"/, '复制链接为旧版 btn-sm') }) -test('align_copy_link_aux_kept_text', () => { - // 辅助"复制链接"保留 text(非破坏主操作),避免被误伤。 +test('align_copy_link_aux_old_btn', () => { + // 辅助"复制链接"为旧版 btn-sm 小按钮。 const s = readSource('src/pages/tasks/ImageVideoTasksPage.vue') - assert.match(s, /