简体中文
price-service.getRealPriceAndCalculate.parseData
约 349 字大约 1 分钟
2026-05-08
执行时机
复制 映射 草稿箱,或者修改主对象字段走取价接口之后,可以控制是否走取价,是否提示价格变化
参数
| 参数 | 说明 | 类型 |
|---|---|---|
| data | 从对象数据 | Array/Object |
| realPriceRes | 取价服务返回结果 | Object |
| mdApiName | 元数据API名称 | String |
| param | 其他参数对象 | Object |
返回结果
| 参数 | 说明 | 类型 |
|---|---|---|
| data | 处理后的从对象数据 | Array/Object |
| noGetRealPrice | 是否跳过取价服务 | Boolean |
| noAlert | 是否不显示警告信息 | Boolean |
说明
- 该钩子在获取实际价格并计算时触发,可用于处理数据和影响后续流程。
- 可以在此钩子中对数据进行格式化、转换或补充。
- 返回的data将替换原始数据,用于后续处理。
- 如果返回的noGetRealPrice为true,则跳过取价服务。
- 如果返回的noAlert为true,则不显示警告信息。
代码示例
export default class Plugin {
apply() {
return [{
event: "price-service.getRealPriceAndCalculate.parseData",
functional: this.parseData.bind(this)
},
];
}
async parseData(context){
let { data, realPriceRes, mdApiName, param } = context;
// 确保data是数组格式
let processedData = Array.isArray(data) ? [...data] : [data];
// 处理每个数据项
processedData = processedData.map(item => {
// 根据元数据API类型进行特定处理
if(mdApiName === "xxx") {
item.currency = param.currency || "CNY";
}
return item;
});
// 决定是否需要取价
let noGetRealPrice = false;
// 决定是否显示警告
let noAlert = false;
// 返回处理结果
return {
data: Array.isArray(data) ? processedData : processedData[0],
noGetRealPrice,
noAlert
};
}
}