README-px-fields.md
2.63 KB
品项字段优化说明
概述
已成功按照提供的字段规范优化了品项相关的数据结构和方法,支持更完善的品项管理功能。
字段结构
新的品项字段
{
px: '', // 品项id
pxmc: '', // 品项名称
pxjg: 0, // 单价通过总价除以数量自动计算
actualPrice: 0, // 总价
projectNumber: 1, // 数量
sourceType: '', // 类型选择(购买,体验,赠送)
jksList: [], // 健康师列表
kjbList: [] // 科技部人员列表
}
功能特性
1. 自动计算功能
- 单价计算: 总价 ÷ 数量 = 单价
- 总价计算: 单价 × 数量 = 总价
- 实时更新: 修改总价或数量时自动重新计算单价
2. 类型选择
- 购买: 正常购买类型
- 体验: 体验类型
- 赠送: 赠送类型
3. 界面布局
- 第一行: 品项选择 + 总价输入 + 删除按钮
- 第二行: 数量输入 + 类型选择
- 第三行: 单价显示
- 第四行: 健康师和科技部人员选择
- 第五行: 已选择的人员列表
方法说明
数据更新方法
// 更新品项总价
updatePxActualPrice(index, value)
// 更新品项数量
updatePxProjectNumber(index, value)
// 计算品项单价(总价除以数量)
calculatePxUnitPrice(index)
// 计算品项总价(单价乘以数量)
calculatePxTotalPrice(index)
类型选择方法
// 打开类型选择器
openSourceTypePicker(index)
// 关闭类型选择器
closeSourceTypePicker()
// 确认类型选择
onSourceTypeConfirm(e)
样式优化
新增样式类
.px-type-select: 类型选择器样式.px-unit-price: 单价显示区域样式.price-label: 价格标签样式.price-value: 价格数值样式.px-row-fifth: 第五行布局样式
响应式支持
- 在小屏幕设备上,所有行都会垂直排列
- 保持良好的移动端体验
使用示例
添加品项
// 添加新的品项行
this.addPxRow();
选择品项
// 选择品项后会自动设置ID、名称和单价
// 并自动计算总价
修改价格
// 修改总价会自动计算单价
this.updatePxActualPrice(0, '1000');
// 修改数量会自动计算单价
this.updatePxProjectNumber(0, '5');
注意事项
- 数据验证: 数量必须大于0,否则默认为1
- 价格计算: 所有价格计算都保留2位小数
- 类型必选: 建议用户选择品项类型
- 实时更新: 价格和数量修改会实时触发计算
- 兼容性: 保持了原有的健康师和科技部人员选择功能