1. 业务场景

在设计表单时,有些情况下,希望调用一个自定义查询,将自定义查询的数据,填充到某个子表中。

2. 实现步骤

2.1 编写定义一个自定义查询

2.2 定义自定义脚本

2.2.1 选择调用自定义查询

它会生成一个脚本。

/**
 * @param  */ 
this.invokeCustomQuery("getByProvince",{},function(data){
   //返回的数据 data:[{ID_,AREA_CODE_,AREA_NAME_}]
});

2.2.2 查看表单的数据结构

{
  "name": "",
  "address": "",
  "sub__subfill": [
    {
      "selected": false,
      "name": "",
      "contract": "",
      "index_": "nwxolwd232178"
    }
  ],
  "initData": {
    "subfill": {
      "selected": true,
      "name": "",
      "contract": ""
    }
  }
}

sub__subfill 这个是表单数据结构,我们需要将这个子表数据进行填充。

2.2.3 编写脚本

这里需要将自定义查询返回的数据,构造成子表的数据结构并进行填充。

var custFuntions=[{name:"getAll",action:function(){
var self_=this;

this.invokeCustomQuery("getByProvince",{},function(data){
   //返回的数据 data:[{ID_,AREA_CODE_,AREA_NAME_}]
   var ary=[]
   for(var i=0;i<data.length;i++){
     var o=data[i];
     var obj=JSON.parse( JSON.stringify( self_.data.initData.subfill));
     obj.index_=i;
     obj.selected=false;
     obj.contract=o.AREA_CODE_;
     obj.name=o.AREA_NAME_;
     ary.push(obj);
   }
   self_.data.sub__subfill.push(...ary);
});
}}];

效果

文档更新时间: 2022-01-11 16:26   作者:zyg