271 lines
5.1 KiB
Markdown
271 lines
5.1 KiB
Markdown
# 功能更新日志 - 添加品名筛选
|
||
|
||
## 📋 更新内容
|
||
|
||
### 新增功能
|
||
✅ **品名筛选条件** - 在价格查询页面添加了品名(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
|
||
<!-- 品名选择 -->
|
||
<view class="form-item">
|
||
<view class="form-label">品名</view>
|
||
<picker
|
||
class="form-picker"
|
||
mode="selector"
|
||
range="{{partsnames}}"
|
||
value="{{selectedPartsnameIndex}}"
|
||
bindchange="onPartsnameChange">
|
||
<view class="picker-text">
|
||
{{partsnames[selectedPartsnameIndex]}}
|
||
</view>
|
||
</picker>
|
||
</view>
|
||
```
|
||
|
||
**优化:**
|
||
- 材质选择器改为可选(显示"请选择材质 (可选)")
|
||
- 添加品名选择器,默认"全部"
|
||
|
||
---
|
||
|
||
## 🔧 技术实现
|
||
|
||
### 参数验证逻辑
|
||
|
||
```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] 表单验证逻辑正确
|
||
|
||
---
|
||
|
||
**更新完成!** 🎉
|