modify:新增小程序
This commit is contained in:
270
Sale/FEATURE_UPDATE_PARTSNAME.md
Normal file
270
Sale/FEATURE_UPDATE_PARTSNAME.md
Normal file
@@ -0,0 +1,270 @@
|
||||
# 功能更新日志 - 添加品名筛选
|
||||
|
||||
## 📋 更新内容
|
||||
|
||||
### 新增功能
|
||||
✅ **品名筛选条件** - 在价格查询页面添加了品名(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] 表单验证逻辑正确
|
||||
|
||||
---
|
||||
|
||||
**更新完成!** 🎉
|
||||
Reference in New Issue
Block a user