YB前端扩展开发时,关于页面路由,以及页面刷新得汇总

一、 页面之间跳转


页面跳转有两种情况,一种是列表页面跳转到对应的卡片页面;一种是两个页面不相关的跳转;

1、列表页面跳转到对应的卡片页面

  • 1、打开列表页面设计器,点击层级,打开最外层的模型的编辑器

undefined

图 1

  • 2、搜索cCardKey字段,把此字段值修改为你想打开的卡片页的单据号cBillNo

undefined

图 2

  • 3、获取卡片页的单据号cBillNo

undefined

图 3

2、 打开指定页面 runCommandLine()

说明

1、打开列表页面设计器,在初始化函数里面通过获取按钮模型,给按钮绑定click事件;

2、在按钮点击事件里面,通过cb.loader.runCommandLine('bill', data, viewModel)打开页面;

3、在子页面,通过viewModel.getParams().XXX接受参数;

参数

参数 属性含义 值类型 说明
bill 方法第一个参数为固定参数 String 固定填写“bill”
billtype 单据类型 String
billno 单据号 String
viewModel 页面实例对象固定值 Object 固定填写 viewModel

示例

function (event) {
    var viewModel = this;
    //跳转页面
    viewModel.get('button5jc').on('click',function(){
      // 'bill'为第一个参数,固定写死;
      //  data 为第二个参数,是object类型值,必须包含billtype:单据类型、billno:单据号;两个字段
      // viewModel 为第三个参数,可写死
      // params 为传递给页面的参数
      cb.loader.runCommandLine('bill',{
          billtype: 'voucherList',
          billno: 'b584b8e2List',
          params:{
            perData:'测试父页面数据传递'
          }
      },viewModel)
    })


    //接受传递过来的参数 XXX相当于传递过来的perData
    viewModel.getParams().XXX;
}

3、跳转卡片编辑态 runCommandLine()

参数

参数 属性含义 值类型 说明
bill 方法第一个参数为固定参数 String 固定填写“bill”
billtype 单据类型 String
billno 单据号 String
domainKey 领域编码 String
mode 卡片页面状态 String 编辑态edit、新增态add、浏览态
id 详情id String
viewModel 页面实例对象固定值 Object 固定填写 viewModel

示例

function (event) {
  var viewModel = this;
  let data = {
        //TODO:填写单据类型及单据号
        billtype: 'Voucher',// 单据类型
        billno: 'acfc0d1c',// 单据号
        domainKey: 'developplatform',
        params: {
          mode: 'edit', // (卡片页面区分编辑态edit、新增态add、)
          id:'2532008961347840'  //TODO:填写详情id
        },
  };
  //打开一个单据,并在当前页面显示
  cb.loader.runCommandLine('bill', data, viewModel);
}

4、跳转卡片编辑态不可编辑 runCommandLine()

参数

参数 属性含义 值类型 说明
bill 方法第一个参数为固定参数 String 固定填写“bill”
billtype 单据类型 String
billno 单据号 String
domainKey 领域编码 String
mode 卡片页面状态 String 编辑态edit、新增态add、
readOnly 是否只读 Boolean 默认值false
id 详情id String
viewModel 页面实例对象固定值 Object 固定填写 viewModel
function (event) {
  var viewModel = this;
  let data = {
        //TODO:填写单据类型及单据号
        billtype: 'Voucher',// 单据类型
        billno: 'acfc0d1c',// 单据号
        domainKey: 'developplatform',
        params: {
          mode: 'edit', // (卡片页面区分编辑态edit、新增态add、)
          readOnly: true,  //TODO: 是否只读
          id:'2532008961347840',  //填写详情id
        },
  };
  //打开一个单据,并在当前页面显示
  cb.loader.runCommandLine('bill', data, viewModel);
}

5、原厂单据跳转原厂单据 runCommandLine()

参数

参数 属性含义 值类型 说明
bill 方法第一个参数为固定参数 String 固定填写“bill”
billtype 单据类型 String
billno 单据号 String
domainKey 领域编码 String
mode 卡片页面状态 String 编辑态edit、新增态add、
viewModel 页面实例对象固定值 Object 固定填写 viewModel

示例

function (event) {
  var viewModel = this;
  let data = {
        //TODO:填写单据类型及单据号
        billtype: 'Voucher',// 单据类型
        billno: 'st_purinrecord',// 单据号
        domainKey: 'ustock',
        params: {
          mode: 'add', // (编辑态edit、新增态add、)
        },
  };
  //打开一个单据,并在当前页面显示
  cb.loader.runCommandLine('bill', data, viewModel);
}

二、 页面常用方法

1、communication()

说明:手动触发返回上一个页面

参数

参数 属性含义 值类型 说明
type 类型 String 返回类型填写“return”

示例

function (event) {
    var viewModel = this;
    //手动返回上个页面
    viewModel.get('button5ji').on('click',function(){
      cb.utils.alert('测试手动返回上个页面');
      //核心代码
      viewModel.communication({type:'return'});
    })
}

2、execute()

说明:手动刷新页面(相当于页面重载)

示例

function (event) {
    var viewModel = this;
    //手动刷新页面
    viewModel.get('button5wg').on('click',function(){
      cb.utils.alert('手动刷新页面');
      //核心代码
      viewModel.execute('refresh');
    })
}

3、excute()

说明:手动修改卡片页面的状态

示例

function (event) {
    var viewModel = this;
    //手动刷新页面
    viewModel.get('button5wg').on('click',function(){
      cb.utils.alert('手动修改卡片页面的状态');
      //核心代码
      // 方式1
      viewModel.excute("modeChange", 'edit');

      // 方式2 
      // 推荐的修改mode的方式
      viewModel.biz.do('eidt', viewModel);
    })
}

4、getParams()

说明:在卡片页获取 单据状态、单据类型、单据编号、单据数据

参数

参数 属性含义 值类型 说明
bill 方法第一个参数为固定参数 String 固定填写“bill”
billtype 单据类型 String
billno 单据号 String
domainKey 领域编码 String
mode 卡片页面状态 String 编辑态edit、新增态add、
viewModel 页面实例对象固定值 Object 固定填写 viewModel

示例

function (event) {
    var viewModel = this;
    //手动刷新页面
    viewModel.get('button5wg').on('click',function(){
      //mode:单据状态  billType:单据类型  billNo:单据编号  billData:单据数据
      let {mode, billType, billNo, billData } = viewModel.getParams();
    })
}
Copyright © 用友 -【生态技术部】 2022-2023 all right reserved,powered by Gitbook修订时间: 2023-01-10 10:41:14

results matching ""

    No results matching ""