跳转到内容

实体界面处理逻辑节点(RAWSFCODE)

在界面逻辑中,可通过注入脚本代码节点处理复杂业务逻辑,如给参数添加复杂业务值,给部件设置状态等。脚本代码为异步脚本,可使用awiat或请求业务数据。

参数

名称类型描述
viewIApiViewController当前视图
contextIApiContext当前视图上下文
paramsIApiParams当前视图参数
uiLogicRecord<string, any>当前逻辑运行时,key 为当前界面逻辑参数的参数代码名小写
documentDocument当前文档对象
envIApiData当前环境对象
appSessionIApiData当前应用会话对象
topViewSessionIApiData当前顶级视图会话对象
viewSessionIApiData当前视图会话对象
viewParamIApiParams
topViewIApiViewController当前顶级视图
parentViewIApiViewController | undefined当前父视图
parentIApiViewController | undefined当前父视图
util{ message: IApiMessageUtil, notification: IApiNotificationUtil,modal: IApiModalUtil,confirm: IApiConfirmUtil,openView: IApiOpenViewUtil}工具集

调用示例

获取当前应用对象

typescript
const app = ibiz.hub.getApp(context.srfappid);

获取当前视图对象

typescript
const currentInstance = view.getCurrentInstance("DEEDITVIEW");

获取当前视图的表单控制器

typescript
const form = view.getCtrl("FORM", "form");

根据上下文控制 grid 面板项显示状态并保持保活

typescript
// 等同于 view.layoutPanel.panelItems.grid
const grid = view.layoutPanel.findPanelItemByName('grid');
grid.state.visible = !!view.context.srfshowchoose;
grid.state.keepAlive = true;

根据逻辑中参数 testobj 的 field 字段,当 field 小于 1 时,提示用户数据不正确需弹窗提示,用户确认后刷新当前视图;当 field 等于 1 时,应用内部跳转到指定路径为/xxx/yyy/zzz的视图; 当 field 大于 1 时,关闭当前视图

typescript
const { field } = uiLogic.testobj;
switch (true) {
  case field < 1:
    if (
      await util.confirm.warning({
        title: "数据异常",
        desc: "需要重新获取数据?",
      })
    ) {
      await view.call("Refresh");
    }
    break;
  case field === 1:
    await util.openView.push("/xxx/yyy/zzz");
    break;
  case field > 1:
    await view.closeView({ ok: true, data: [] });
    break;
}

给当前视图面板项标识为 total 设置值 20

typescript
uiLogic.view.layoutPanel.setDataValue("total", 20);

跨页面通知产品实体数据变更

typescript
// 其中product 表示产品实体代码名小写,必须有srfdecodename字段,
ibiz.mc.command.update.send({ srfdecodename: 'product',productid:'xxx',productname:'yyy' })

根据当前环境数据路由跳转到其他视图

typescript
ibiz.openView.push(`/-/index/project=${context.project}/projectRedirectView/-/project_setting_view/srfnavctx=%7B"project"%3A"${context.project}"%2C"srfdefaulttoroutedepth"%3A"3"%7D;srfnav=root%3Anormal%3Amember/project_member_config_grid_view/-`);
未来已来,立即拥抱应用融合的力量
Released under the MIT License.