这几天在二开(造轮子)的一个项目中,有个功能是对TreeView进行改造,增加了一个代码输入框(一般是扫码枪扫描条形码),输入代码后调用python进行处理。为了让操作人员能直观地看到扫码的记录处理结果,所以扫完一个码之后就要把这笔记录显示在列表中。
界面改造如下:
在包裹单号输入框中输入(或扫码)包裹号,然后调用函数 do_move_location 通过RPC调用Python处理,处理结束后,查询该笔记录添加到列表中,代码如下:
do_move_location: function () {
console.log('do_move_location...');
var self = this;
var packageId = $('#package_id').val();
var basketId = $('#basket_id').val();
var moveType = $('#move_type').val();
$('#package_id').val('');
if(!moveType || moveType==""){
this.do_warn("提示", "请先选择一个操作类型!" )
return ;
}
var context = this.dataset.context;
new Model('htkjt.cbemspms.package').call("do_move_location", [moveType, packageId, basketId] ).then(function(result){
console.log(result);
if(result.success){
console.log("修改成功");
new Model('htkjt.cbemspms.package').query().filter([['logisticsNo', '=', packageId]]).limit(1000).all().then(function(pkg){
_.each(pkg, function(record){
try{
self.records.add(record, {at: null}); //这是把record添加到列表的关键行
}catch(e){
console.log(e.description);
}
});
});
}else{
self.do_warn("错误", result.message )
}
});
},
其他代码就不赘述了。