1. 业务场景

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

2. 实现步骤

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

2.2 定义自定义脚本

2.2.1 选择调用自定义查询

它会生成一个脚本。

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

2.2.2 查看表单的数据结构

  1. {
  2. "name": "",
  3. "address": "",
  4. "sub__subfill": [
  5. {
  6. "selected": false,
  7. "name": "",
  8. "contract": "",
  9. "index_": "nwxolwd232178"
  10. }
  11. ],
  12. "initData": {
  13. "subfill": {
  14. "selected": true,
  15. "name": "",
  16. "contract": ""
  17. }
  18. }
  19. }

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

2.2.3 编写脚本

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

  1. var custFuntions=[{name:"getAll",action:function(){
  2. var self_=this;
  3. this.invokeCustomQuery("getByProvince",{},function(data){
  4. //返回的数据 data:[{ID_,AREA_CODE_,AREA_NAME_}]
  5. var ary=[]
  6. for(var i=0;i<data.length;i++){
  7. var o=data[i];
  8. var obj=JSON.parse( JSON.stringify( self_.data.initData.subfill));
  9. obj.contract=o.AREA_CODE_;
  10. obj.index_=i;
  11. obj.name=o.AREA_NAME_;
  12. ary.push(obj);
  13. }
  14. self_.data.sub__subfill.push(...ary);
  15. });
  16. }}];

效果

文档更新时间: 2021-07-09 14:31   作者:zyg