实现商品发布/编辑表单的基本信息区域,包括标题输入框、副标题输入框、类目级联选择器和表单验证。
文件: src/app/pages/products/product-form/product-form.component.ts
导入 MatSelectModule
类目数据结构
interface Category {
value: string;
label: string;
children?: Category[];
}
类目数据
级联选择逻辑
onLevel1Change(): 处理一级类目变化,加载二级类目onLevel2Change(): 处理二级类目变化,加载三级类目onLevel3Change(): 处理三级类目变化updateCategoryForm(): 更新表单中的类目数据编辑模式支持
patchFormValues() 中恢复类目选择状态categoryPath 恢复各级选择文件: src/app/pages/products/product-form/product-form.component.html
标题输入框
mat-form-field 和 mat-inputmaxlength="60" 限制mat-hint 显示字符计数mat-error 显示验证错误副标题输入框
类目级联选择器
mat-select 组件分别对应三级类目*ngIf 控制二三级类目的显示文件: src/app/pages/products/product-form/product-form.component.scss
级联选择器样式
.category-cascader {
.category-row {
display: flex;
gap: 16px;
flex-wrap: wrap;
}
.category-path {
background-color: #f5f5f5;
border-radius: 4px;
// 显示选中路径
}
.category-error {
color: #f44336;
// 错误提示样式
}
}
响应式适配
文件: src/app/pages/products/product-form/product-form.component.spec.ts
添加了完整的级联选择器测试套件:
测试结果: 所有级联选择器相关测试通过 ✅
根据 Requirements 9.1 和 9.2:
直观的类目选择
实时反馈
编辑友好
下一个任务是 8.3:实现 ImageUploadComponent(图片上传组件)
2024-12-12