modify:新增小程序

This commit is contained in:
ECRZ
2026-01-06 18:00:43 +08:00
parent 498fa0e915
commit da4a055c1c
47 changed files with 7321 additions and 61 deletions

View 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] 表单验证逻辑正确
---
**更新完成!** 🎉