简体中文
md.clone.after
约 361 字大约 1 分钟
2025-09-22
复制后的后置动作。
复制后置动作
- 在这个时机对即将添加的数据做处理
- dataGetter 中无法取到将要新增的数据
- 将要触发计算和ui事件
参数
| 参数 | 说明 | 类型 |
|---|---|---|
| objApiName | 当前变更数据的对象api_name | String |
| recordType | 当前变更数据的业务类型 | String |
| copyDataIndexs | 将要复制的源数据索引 | Array |
| newDatas | 将要新增的数据,已生成dataIndex,插件内可以直接修改newDatas数组的元素 | Array |
返回结果
| 参数 | 说明 | 类型 |
|---|---|---|
| consumed | true不再继续执行后续逻辑 | Boolean |
| notTriggerCalUi | 指定不要触发本次计算和UI事件(如果会触发的话) | Boolean |
| extraCalUiParams | 定制将要触发的计算和UI事件逻辑的参数(如果会触发的话)extraCalUiParams格式:{filterFields,extraFields}filterFields格式参考triggerCalAndUIEvent参数filterFields extraFields格式参考triggerCalAndUIEvent参数extraFields | Object |
代码示例
禁止复制不符合条件的数据
{
event: "md.clone.after",
functional: function (pluginExecResult, options) {
let {dataGetter,objApiName,copyDataIndexs,newDatas}=options;
let allowCloneDatas = [];
let notAllowCloneDatas = [];
newDatas.forEach(it=>{
if(it.name&&it.name.includes("可复制")){//主属性包含“可复制”时允许复制
allowCloneDatas.push(it)
}else{
notAllowCloneDatas.push(it)
}
})
newDatas.length=0;//删除全部元素
newDatas.push(...filterData);//填入过滤后的数据
if(!newDatas.length){
wx.showToast({title: '无可复制的数据',icon: 'none'});
return {consumed:true}
}
if(notAllowCloneDatas.length){
wx.showToast({title: `有${notAllowCloneDatas.length}条数据不允许复制`,icon: 'none'});
}
}
}注意
- 直接赋值newDatas本身没有意义,例如:options.newDatas=[]
