TreeviewCopyright © aleen42 all right reserved, powered by aleen42
YB前端扩展开发时,关于页面路由,以及页面刷新得汇总
一、 页面之间跳转
页面跳转有两种情况,一种是列表页面跳转到对应的卡片页面;一种是两个页面不相关的跳转;
1、列表页面跳转到对应的卡片页面
- 1、打开列表页面设计器,点击层级,打开最外层的模型的编辑器
图 1
- 2、搜索cCardKey字段,把此字段值修改为你想打开的卡片页的单据号cBillNo
图 2
- 3、获取卡片页的单据号cBillNo
图 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();
})
}