TreeviewCopyright © aleen42 all right reserved, powered by aleen42
特征相关扩展开发
以采购订单为例
一、 保存前特征字段赋默认值
1、前端脚本
viewModel.on('beforeSave',args=>{
let obj = JSON.parse(args.data.data);
if(typeof(obj.purchaseOrderDefineCharacter)==undefined){
obj.purchaseOrderDefineCharacter = {};
}
obj.purchaseOrderDefineCharacter['GXG0516']='2';
args.data.data = JSON.stringify(obj);
//return false
})
2、扩展save动作
自定义规则位置在billSave前
图 1
脚本内容 注意数值类型需要+''
let AbstractTrigger = require('AbstractTrigger');
class MyTrigger extends AbstractTrigger {
execute(context, param) {
//throw new Error(JSON.stringify(param))
let data = param.data[0];
if (typeof data.purchaseOrderDefineCharacter == undefined) {
data.purchaseOrderDefineCharacter = {};
}
data.purchaseOrderDefineCharacter.set('shuzhi001', 100 + '');
return {};
}
}
exports({ entryPoint: MyTrigger });
二、表体物料自由项特征组的操作
图 3
如上图,表体的物料自由项特征组的操作重点是准确的获取model,比如给特征组中的特征字段增加值改变事件
const gridModel = viewModel.get('purchaseOrders');
gridModel.on('afterCellValueChange', (args) => {
if (args.cellName == 'product_cCode') {
// 特征组时为多行模型
debugger;
const rowModel = gridModel.getRowModel(args.rowIndex); // index是行号
// purchaseOrdersCharacteristics是当前特征组的cItemName,cName
const characteristicsModel = rowModel.get('purchaseOrdersCharacteristics');
characteristicsModel.on('afterCharacterModels', function () {
const characterModel = characteristicsModel.getCharacterModel('cyz001'); // cyz001是具体特征的cName
characterModel.on('afterValueChange', function (args) {
cb.utils.alert('212121');
});
});
}
});