1.业务场景
在表单开发时,有些时候有些字段我们并不存数据库,但是又需要显示到页面上,这里我使用两个场景来使用这个 显示字段来实现这个需求。
2. 主表单显示字段
比如我选择一个客户字段,同时在表单显示电话字段,但是电话字段并不存数据库。
2.1 设计表单
2.2 添加数据显示电话
这个可以通过对话框关联进行配置。
2.3 编辑时显示电话
因为电话字段并不存储,因此我们需要根据客户ID,我们的做法时在表单加载时,调用自定义查询显示数据。
我们在加载时编写代码如下:
var _onload=function(){
if(this.data.kh){
//客户是一个JSON数据
let json=JSON.parse(this.data.kh);
let customId=json.value;
let self_=this;
this.invokeCustomQuery("getById",{"ID_":customId},function(data){
//设置客户电话
self_.data.khdh=data[0].DH;
});
}
}
3. 子表显示字段
在子表中,有些字段不存数据库,我们可以通过显示字段来解决。
3.1 设计表单
子表设计增加显示字段。
上图,电话字段不存数据库,在添加时可以通过对话框关联进行显示,下面主要讲一下,实现子表编辑数据的时候显示的实现。
3.2 编写代码如下
var _onload=function(){
//获取子表数据
let ary=this.data.sub__nofield;
if(ary && ary.length>0){
let ids=[];
//客户ID和子表行数据映射
let idObjMap={};
for(var i=0;i<ary.length;i++){
let row=ary[i];
let kh=JSON.parse( row.kh).value;
//获取客户ID
ids.push(kh);
//客户ID和行做映射
idObjMap[kh]=row;
}
//将客户ID使用逗号进行拼接
let customIds=ids.join(",");
let self_=this;
//调用自定义查询,将一系列的数据进行返回
this.invokeCustomQuery("kehuxinxi",{"ID_":customIds},function(data){
for(let i=0;i<data.length;i++){
let row=data[i];
//获取行数据
let newRow=idObjMap[row.ID_];
//对行数据进行的电话字段进行赋值
self_.$set(newRow,"dh",row.DH);
}
});
}
}
3.3 显示效果
文档更新时间: 2022-04-26 18:45 作者:zyg