From 3ef7cefe07cb203e3131a386f74f9c7bd327af1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E8=87=AA=E8=BE=BE?= <980324341@qq.com> Date: Sun, 6 Sep 2026 23:15:07 +0800 Subject: [PATCH] =?UTF-8?q?align(tasks=C2=B7=E5=83=8F=E7=B4=A0=E5=A4=8D?= =?UTF-8?q?=E5=88=BB):=20=E8=A7=86=E9=A2=91=E4=BB=BB=E5=8A=A1=E8=AE=B0?= =?UTF-8?q?=E5=BD=95/=E5=BA=97=E9=93=BA=E6=95=B0=E6=8D=AE=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=20=E4=B8=A4=E9=A1=B5=E8=87=AA=E7=BB=98=E5=A4=8D?= =?UTF-8?q?=E5=88=BB=E6=97=A7=E7=89=88(panel-image-video-tasks/shop-data-c?= =?UTF-8?q?rawl-tasks)=E2=80=94=E2=80=94form-box=E7=AD=9B=E9=80=89[?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=90=8D/=E6=8F=90=E4=BA=A4=E8=B5=B7?= =?UTF-8?q?=E6=AD=A2]+panel-box=20toolbar[=E5=85=A8=E9=80=89/=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E4=B8=8B=E8=BD=BD/=E6=9D=83=E9=99=90=E9=85=8D?= =?UTF-8?q?=E7=BD=AE/=E6=B1=87=E6=80=BB]+=E4=BB=BB=E5=8A=A1/=E5=BA=97?= =?UTF-8?q?=E9=93=BA=E5=8D=A1=E7=89=87=E7=BD=91=E6=A0=BC+=E6=97=A7?= =?UTF-8?q?=E7=89=88=E7=8A=B6=E6=80=81=E5=BE=BD=E7=AB=A0=E6=98=A0=E5=B0=84?= =?UTF-8?q?+=E5=8E=9F=E7=94=9Fconfirm=E5=88=A0=E9=99=A4+=E6=97=A7=E5=BC=8F?= =?UTF-8?q?=E5=88=86=E9=A1=B5(=E5=BA=97=E9=93=BA=E7=BA=A7+=E5=8D=A1?= =?UTF-8?q?=E7=89=879/=E9=A1=B5)=EF=BC=9B=E7=A9=BA=E6=80=81/=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E9=93=BE=E6=8E=A5=E5=A4=8D=E5=88=B6=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=E6=97=A7=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/tasks/ImageVideoTasksPage.vue | 592 +++++++++++---- .../src/pages/tasks/ShopDataTasksPage.vue | 692 +++++++++++++----- .../tests/align-shop-data-grid.test.ts | 8 +- .../align-shop-records-row-buttons.test.ts | 12 +- .../tests/datetime-sweep.test.ts | 2 +- admin-frontend-vue/tests/task-264.test.ts | 2 +- admin-frontend-vue/tests/task-265.test.ts | 7 +- admin-frontend-vue/tests/task-267.test.ts | 7 +- 8 files changed, 997 insertions(+), 325 deletions(-) diff --git a/admin-frontend-vue/src/pages/tasks/ImageVideoTasksPage.vue b/admin-frontend-vue/src/pages/tasks/ImageVideoTasksPage.vue index 84efb346..2333c6fa 100644 --- a/admin-frontend-vue/src/pages/tasks/ImageVideoTasksPage.vue +++ b/admin-frontend-vue/src/pages/tasks/ImageVideoTasksPage.vue @@ -1,6 +1,7 @@ - -

勾选允许查看/操作视频任务的用户(仅数据范围)。当前已授权 {{ permissionGrantedCount }} 人。

+ +

勾选允许查看视频任务记录的用户(仅数据范围)。当前已授权 {{ permissionGrantedCount }} 人。

@@ -375,34 +408,315 @@ onMounted(load) diff --git a/admin-frontend-vue/src/pages/tasks/ShopDataTasksPage.vue b/admin-frontend-vue/src/pages/tasks/ShopDataTasksPage.vue index ea8f32dd..039bbb6a 100644 --- a/admin-frontend-vue/src/pages/tasks/ShopDataTasksPage.vue +++ b/admin-frontend-vue/src/pages/tasks/ShopDataTasksPage.vue @@ -1,9 +1,9 @@ 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, /]*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/, '需重置') })