# 功能更新日志 - 添加品名筛选 ## 📋 更新内容 ### 新增功能 ✅ **品名筛选条件** - 在价格查询页面添加了品名(partsname_name)筛选选项 ### 更新时间 2026-01-06 --- ## 🎯 功能详情 ### 品名筛选选项 新增的品名选择器包含以下选项: - 全部(默认) - 高线 - 螺纹钢 - 盘螺 - 工字钢 - 槽钢 - 角钢 - H型钢 - 钢板 - 卷板 - 中厚板 ### 查询逻辑优化 #### 1. 必填/可选条件调整 - **必填**:地区 - **可选**:材质、品名、日期 #### 2. 查询参数构建 ```javascript { region: '昆明', // 必填 material: 'HPB300', // 可选 partsname: '高线', // 可选(新增) startDate: '2026-01-01', // 可选 endDate: '2026-01-05', // 可选 pageSize: 100 } ``` #### 3. API 调用 统一使用 `searchPrices` API,支持多条件组合查询。 --- ## 📂 修改的文件 ### 1. [pages/index/index.js](pages/index/index.js) **新增数据:** ```javascript // 品名选项 partsnames: [ '全部', '高线', '螺纹钢', '盘螺', '工字钢', '槽钢', '角钢', 'H型钢', '钢板', '卷板', '中厚板' ], // 选中的品名索引 selectedPartsnameIndex: 0, ``` **新增方法:** ```javascript onPartsnameChange(e) { const index = parseInt(e.detail.value) this.setData({ selectedPartsnameIndex: index }) } ``` **更新的方法:** - `onSearch()` - 添加品名参数处理 - `onReset()` - 添加品名重置 ### 2. [pages/index/index.wxml](pages/index/index.wxml) **新增UI:** ```xml 品名 {{partsnames[selectedPartsnameIndex]}} ``` **优化:** - 材质选择器改为可选(显示"请选择材质 (可选)") - 添加品名选择器,默认"全部" --- ## 🔧 技术实现 ### 参数验证逻辑 ```javascript // 地区必填 if (selectedRegionIndex === -1) { api.showError('请选择地区') return } // 材质可选 const material = selectedMaterialIndex === -1 ? '' : materials[selectedMaterialIndex] // 品名可选(0 表示"全部") const partsname = selectedPartsnameIndex === 0 ? '' : partsnames[selectedPartsnameIndex] ``` ### API 调用示例 #### 示例 1:只筛选地区 ```javascript { region: '昆明', pageSize: 100 } ``` #### 示例 2:筛选地区 + 品名 ```javascript { region: '昆明', partsname: '高线', pageSize: 100 } ``` #### 示例 3:筛选地区 + 材质 + 品名 + 日期 ```javascript { region: '昆明', material: 'HPB300', partsname: '高线', startDate: '2026-01-01', endDate: '2026-01-05', pageSize: 100 } ``` --- ## 📊 数据字段映射 ### API 返回字段 ```javascript { partsname_name: '高线', // 品名字段 goods_material: 'HPB300', // 材质字段 price_region: '昆明', // 地区字段 // ... 其他字段 } ``` ### 查询参数字段 ```javascript { partsname: '高线', // 品名筛选参数 material: 'HPB300', // 材质筛选参数 region: '昆明' // 地区筛选参数 } ``` --- ## ✨ 用户体验优化 ### 1. 灵活的筛选组合 - 支持单独按地区查询 - 支持地区 + 品名组合查询 - 支持地区 + 材质 + 品名全条件查询 ### 2. 默认值设置 - 品名默认"全部"(索引 0) - 材质默认不选(索引 -1) - 日期默认不选 ### 3. 表单提示 - 必填项:地区 - 可选项:材质(标注"可选") - 可选项:品名(默认"全部") - 可选项:日期(标注"可选") --- ## 🚀 使用方法 ### 场景 1:查询某地区所有高线价格 1. 地区:选择"昆明" 2. 材质:不选 3. 品名:选择"高线" 4. 点击"查询价格" ### 场景 2:查询某地区特定材质的高线价格 1. 地区:选择"昆明" 2. 材质:选择"HPB300" 3. 品名:选择"高线" 4. 点击"查询价格" ### 场景 3:查询某地区所有产品 1. 地区:选择"昆明" 2. 材质:不选 3. 品名:保持"全部" 4. 点击"查询价格" --- ## 🐛 已知问题 ### API 字段不一致 - 数据返回字段:`partsname_name` - 查询参数字段:`partsname` **解决方案:** - 后端 API 应同时支持两种字段名 - 前端查询时使用 `partsname` - 如果 API 不支持,需后端添加支持 --- ## 📝 后续优化建议 1. **动态品名列表** - 从 API 获取可用的品名列表 - 根据地区动态显示不同品名 2. **级联选择** - 品名和材质的级联关系 - 选择品名后自动过滤相关材质 3. **搜索历史** - 保存用户常用的筛选组合 - 快速应用历史筛选条件 4. **批量查询** - 支持同时查询多个品名 - 对比不同品名的价格走势 --- ## ✅ 测试检查清单 - [x] 品名选择器显示正常 - [x] 默认选中"全部" - [x] 选择品名后查询参数正确 - [x] 查询结果正确过滤 - [x] 重置按钮恢复默认值 - [x] 材质改为可选 - [x] 表单验证逻辑正确 --- **更新完成!** 🎉