参照汇总

一、参照概述

  • 一个实体依赖另外一个实体的数据,另外一个实体就叫参照,参照是主要用于其他页面选择使用的;

二、常见的参照类型

1、表参照(table) 2、树参照(tree) 3、树表参照(treetable)

三、怎么获取参照模型(referModel)

  • 1、卡片页面中获取参照模型
function (event) {
  var viewModel = this;
  //卡片页面数据加载完成
  viewModel.on("afterLoadData", function (event) {
      //卡片页面中获取参照模型   cItemName:参照的字段别名
      viewModel.get('cItemName');
  });
}
  • 2、列表中获取参照模型
function (event) {
  var viewModel = this;
  //1、先获取列表的表格模型
  var girdModel = viewModel.getGridModel();
  //2、通过表格模型获取表格行模型
  var gridRowModel = girdModel.getEditRowModel();
  //3、通过表格行模型,获取到参照模型
  gridRowModel.get('列字段名');
}
  • 3、查询区获取参照模型
function (event) {
  var viewModel = this;
  //页面加载完成
  viewModel.on("afterMount", function (event) {
      //1、先获取查询区条件模型
      let filterViewModel =  viewModel.getCache('FilterViewModel');
      //查询区模型DOM初始化后
      filterViewModel.on('afterInit',function(){
        //2、获取参照模型的真实模型
        let referModel = filterViewModel.get('cItemName').getFromModel();
      })
  });
}

四、referModel参照模型支持的方法和事件

  • 方法
方法名 说明 备注
setValue(value,check) 设置参照的值 value:为想要设置的值 check:boolean型 内部调用参数 可不传
getValue() 获取参照的值
clear() 清除数据 清除参照框的数据
setFilter(filter) 设置参照接口调用的查询条件 filter为扩展的condition
getFilter() 获取参照的条件
setMultiple(multiple) 设置模型单选多选状态
  • 事件
事件名 说明 备注
beforeBrowse 参照弹出之前 一般在这个时机给参照加过滤条件
afterBrowse 参照弹出之后
beforeValueChange 参照值数据改变之前的钩子
afterValueChange 参照值数据改变之后的钩子
afterInitVm 参照弹窗模型初始化之后的钩子

五、referViewModel参照弹窗模型

  • 1、获取参照弹窗模型

上面第四节拿到参照模型之后,假如对参照弹窗里面的模型有特色化需求,进行更改,需要先拿到参照弹窗模型(相当于页面的最外层viewModel模型)

function (event) {
  var viewModel = this;
  //页面加载完成
  viewModel.on("afterMount", function (event) {
      //1、先获取查询区条件模型
      let filterViewModel =  viewModel.getCache('FilterViewModel');
      //查询区模型DOM初始化后
      filterViewModel.on('afterInit',function(){
        //2、获取参照模型的真实模型
        let referModel = filterViewModel.get('cItemName').getFromModel();
        //参照模型初始化完成
        referModel.on('afterInitVm',function(args){
          //主要代码
          //3、获取参照弹窗的模型
          let referViewModel = args.vm;
          //获取参照弹窗内的表格模型
          referViewModel.get('table');
          //获取参照弹窗内的树模型
          referViewModel.get('tree'); 
        })
      })
  });
}
  • 2、参照弹窗模型的事件:

  • 事件

事件名 说明 备注
afterInit 参照UI原数据请求完毕之后
afterOkClick 参照弹窗的确认按钮点击事件

六、参照常见情况汇总

  • 1、参照打开之前过滤查询 例子为查询区的参照进行过滤-(过滤写法和查询区的过滤一致)
function (event) {
  var viewModel = this;
  //页面加载完成
  viewModel.on("afterMount", function (event) {
      //1、先获取查询区条件模型
      let filterViewModel =  viewModel.getCache('FilterViewModel');
      //查询区模型DOM初始化后
      filterViewModel.on('afterInit',function(){
        //2、获取参照模型的真实模型
        let referModel = filterViewModel.get('cItemName').getFromModel();
        //参照模型初始化完成
        referModel.on('beforeBrowse',function(args){
          //主要代码
          var condition = {
              "isExtend": true,
              simpleVOs: []
          };
          condition.simpleVOs.push({
              field: '过滤的字段名',
              op: 'eq',
              value1: '过滤字段值'
          });
          //设置过滤条件
          this.setFilter(condition);
        })
      })
  });
}
  • 2、参照动态切换单选多选状态
function (event) {
  var viewModel = this;
  //页面加载完成
  viewModel.on("afterMount", function (event) {
      //1、先获取查询区条件模型
      let filterViewModel =  viewModel.getCache('FilterViewModel');
      //查询区模型DOM初始化后
      filterViewModel.on('afterInit',function(){
        //2、获取参照模型的真实模型
        let referModel = filterViewModel.get('cItemName').getFromModel();
        //主要代码
        //参照设置为多选
        referModel.setMultiple(true);
      })
  });
}
  • 3、物料参照根据使用组织过滤

function (event) {
  var viewModel = this;
  viewModel.get('Product_name').on('beforeBrowse',function(args){
          //主要代码
          var condition = {
              "isExtend": true,
              simpleVOs: []
          };
          condition.simpleVOs.push({
              field: 'productOrgs.orgId',
              op: 'eq',
              value1: '1648595690541312'
          });
          //设置过滤条件
          this.setFilter(condition);
    })
}
Copyright © 用友 -【生态技术部】 2021 all right reserved,powered by Gitbook修订时间: 2022-04-18 15:24:45

results matching ""

    No results matching ""