实现商品列表页面的筛选功能区,包括 Tab 导航、筛选表单和操作按钮。
文件: product-list.component.ts
新增属性:
// Active tab index
activeTabIndex = 0;
// Filter form data
filterForm = {
keyword: '',
category: '',
priceMin: null as number | null,
priceMax: null as number | null
};
// Category options
categories = [
'电子产品', '服装鞋包', '食品饮料', '家居用品',
'图书音像', '运动户外', '美妆个护', '母婴用品'
];
新增方法:
onTabChange(index: number): 处理 Tab 切换onQuery(): 处理查询按钮点击onReset(): 处理重置按钮点击resetFilterForm(): 重置表单到初始状态新增导入:
FormsModule - 用于表单双向绑定MatTabsModule - Tab 导航组件MatCardModule - 卡片容器MatFormFieldModule - 表单字段MatInputModule - 输入框MatSelectModule - 下拉选择器文件: product-list.component.html
添加筛选卡片区域,包含:
文件: product-list.component.scss
新增样式:
.filter-card - 筛选卡片容器样式.filter-tabs - Tab 导航样式.filter-form - 表单容器样式.filter-row - 表单行布局.filter-field - 表单字段样式.price-range - 价格区间布局.filter-actions - 操作按钮样式✅ 无 TypeScript 编译错误 ✅ 无 HTML 模板错误
✅ 所有单元测试通过(274/274 SUCCESS) ✅ 组件正确渲染 ✅ 筛选逻辑正常工作
| 需求 ID | 描述 | 状态 |
|---|---|---|
| 6.1 | Tab 导航(全部/出售中/已下架/库存预警) | ✅ 完成 |
| 6.2 | Tab 切换重置筛选 | ✅ 完成 |
| 6.3 | 筛选表单(名称/类目/价格区间) | ✅ 完成 |
| 6.4 | 查询按钮逻辑 | ✅ 完成 |
| 6.5 | 重置按钮逻辑 | ✅ 完成 |
任务 7.2 已完成,可以继续执行:
成功实现了商品筛选区的所有功能,包括 Tab 导航、筛选表单和操作按钮。筛选逻辑正确处理了 Tab 状态和表单条件的组合,重置功能保留了 Tab 状态。所有需求均已满足,测试全部通过。