feat(需求): ①全站分页pageSize统一默认10+10/20/50/100选项(9页默认值15/20→10+6个兜底常量统一+撞款台账升级OldPagination+商品类目树顶层标准分页) ②修复6页OldPagination缺import分页器不渲染(不符合ASIN/查询ASIN/最低价ASIN/生成记录/店铺密钥/店铺管理)+查询ASIN操作列按钮间距+最低价范围筛选number类型报错 ③e2e断言对齐现状(顶栏h1/移除收起按钮后规格同步)+国家显示中文断言固化

This commit is contained in:
2026-09-07 02:36:35 +08:00
parent 056abcd473
commit 678605e9fb
44 changed files with 590 additions and 175 deletions
+13 -1
View File
@@ -10,6 +10,7 @@ import {
} from '../src/pages/asin/skip-price-model.ts'
import { ASIN_COUNTRY_CODES, asinCountryLabel } from '../src/pages/asin/asin-country.ts'
import {
normalizePriceInput,
skipPriceFilterActive,
toSkipPriceParams,
toSkipPriceQuery,
@@ -84,7 +85,7 @@ test('test_task_075_skip_price_list_boundary_empty_input', () => {
assert.deepEqual(page.items, [])
assert.equal(page.total, 0)
assert.equal(page.page, 1)
assert.equal(page.pageSize, 15)
assert.equal(page.pageSize, 10)
})
test('test_task_075_skip_price_list_boundary_single_item', () => {
@@ -136,6 +137,17 @@ test('test_task_075_skip_price_filter_normal_primary_and_price', () => {
})
})
test('test_task_075_skip_price_filter_number_input_compat', () => {
// 原生 number input v-model 会把输入值转成 numbernormalizePriceInput 需兼容(修复 "(value||'').trim is not a function")。
const state: SkipPriceFilterState = { groupId: null, shopName: '', asin: '', country: '', minimumPriceFrom: 12.34, minimumPriceTo: 56.78 }
const query = toSkipPriceQuery(toSkipPriceParams(state, 1, 15))
assert.equal(query.minimum_price_from, 12.34)
assert.equal(query.minimum_price_to, 56.78)
assert.equal(normalizePriceInput(0), 0)
assert.equal(normalizePriceInput(-5), null)
assert.equal(normalizePriceInput(null as unknown as string), null)
})
test('test_task_075_skip_price_filter_invalid_input_rejected', () => {
// 异常输入:非法价格/负数/非数值价格丢弃;success=false 抛 message;垃圾行不入列表。
const state: SkipPriceFilterState = {