表单中进货表实现同一产品录入数量进行叠加
1. 使用场景
进销存的场景中,在进货表一次进货多种物品,如果同时填写了进购货物苹果 20 和 苹果 30,那么在库存表中希望直接展示出苹果 50。
2. 实现功能
2.1 配置页面

第一个进货详情用户可见可输入。
第二个进货详情是经过数据处理后的实际数据,可隐藏分组,无需对用户可见。

2.2 配置功能

绑定在第一个子表单的 onChange 上,注意根据实际情况修改组件的唯一标识。
export function onTableChange({ value, extra }) {
const temp = {}; // 定义一个对象
for (let i in value) {
let key = value[i].selectField_lblv886b; // 判断依据,利用对象的属性不能重复进行判断。
if (temp[key]) {
temp[key].selectField_lblv886e = value[i].selectField_lblv886b;
temp[key].numberField_lblv886f += Number(value[i].numberField_lblv886d);// 进货数量相加
} else {
temp[key] = {};
temp[key].selectField_lblv886e = value[i].selectField_lblv886b;
temp[key].numberField_lblv886f = Number(value[i].numberField_lblv886d);
}
};
const newArry = [];
for (let k in temp) {
newArry.push(temp[k]);
};
this.$("tableField_lblv886g").setValue(newArry)
}
3. 实现效果

4. 在线试玩
本文档对您是否有帮助?