Files
steel_prices_service/Sale/FEATURE_UPDATE_PARTSNAME.md
2026-01-06 18:00:43 +08:00

5.1 KiB
Raw Permalink Blame History

功能更新日志 - 添加品名筛选

📋 更新内容

新增功能

品名筛选条件 - 在价格查询页面添加了品名partsname_name筛选选项

更新时间

2026-01-06


🎯 功能详情

品名筛选选项

新增的品名选择器包含以下选项:

  • 全部(默认)
  • 高线
  • 螺纹钢
  • 盘螺
  • 工字钢
  • 槽钢
  • 角钢
  • H型钢
  • 钢板
  • 卷板
  • 中厚板

查询逻辑优化

1. 必填/可选条件调整

  • 必填:地区
  • 可选:材质、品名、日期

2. 查询参数构建

{
  region: '昆明',        // 必填
  material: 'HPB300',    // 可选
  partsname: '高线',     // 可选(新增)
  startDate: '2026-01-01', // 可选
  endDate: '2026-01-05',   // 可选
  pageSize: 100
}

3. API 调用

统一使用 searchPrices API支持多条件组合查询。


📂 修改的文件

1. pages/index/index.js

新增数据:

// 品名选项
partsnames: [
  '全部', '高线', '螺纹钢', '盘螺', '工字钢', '槽钢',
  '角钢', 'H型钢', '钢板', '卷板', '中厚板'
],
// 选中的品名索引
selectedPartsnameIndex: 0,

新增方法:

onPartsnameChange(e) {
  const index = parseInt(e.detail.value)
  this.setData({
    selectedPartsnameIndex: index
  })
}

更新的方法:

  • onSearch() - 添加品名参数处理
  • onReset() - 添加品名重置

2. pages/index/index.wxml

新增UI

<!-- 品名选择 -->
<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>

优化:

  • 材质选择器改为可选(显示"请选择材质 (可选)"
  • 添加品名选择器,默认"全部"

🔧 技术实现

参数验证逻辑

// 地区必填
if (selectedRegionIndex === -1) {
  api.showError('请选择地区')
  return
}

// 材质可选
const material = selectedMaterialIndex === -1
  ? ''
  : materials[selectedMaterialIndex]

// 品名可选0 表示"全部"
const partsname = selectedPartsnameIndex === 0
  ? ''
  : partsnames[selectedPartsnameIndex]

API 调用示例

示例 1只筛选地区

{ region: '昆明', pageSize: 100 }

示例 2筛选地区 + 品名

{
  region: '昆明',
  partsname: '高线',
  pageSize: 100
}

示例 3筛选地区 + 材质 + 品名 + 日期

{
  region: '昆明',
  material: 'HPB300',
  partsname: '高线',
  startDate: '2026-01-01',
  endDate: '2026-01-05',
  pageSize: 100
}

📊 数据字段映射

API 返回字段

{
  partsname_name: '高线',  // 品名字段
  goods_material: 'HPB300', // 材质字段
  price_region: '昆明',     // 地区字段
  // ... 其他字段
}

查询参数字段

{
  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. 批量查询

    • 支持同时查询多个品名
    • 对比不同品名的价格走势

测试检查清单

  • 品名选择器显示正常
  • 默认选中"全部"
  • 选择品名后查询参数正确
  • 查询结果正确过滤
  • 重置按钮恢复默认值
  • 材质改为可选
  • 表单验证逻辑正确

更新完成! 🎉