页面扩展

一、总的原则

  • 页面布局和属性配置,在未特别说明的情况下与UI模板保持一致
  • 页面画布区,原有的被隐藏的按钮区放开,支持的功能见后面的详解
    • 1)原厂预置的按钮限定,不可删除,可隐藏
    • 2)原厂按钮预置的执行命令限定,不可修改、不可删除
    • 3)原厂预置的动作规则限定,不可修改、不可删除、不可覆盖、不可拖动调整顺序
  • 页面画布区的查询区仍保持现状,不放开;
  • 页面控件的动作页签放开—可通过函数脚本实现动作的扩展

二、设计器介绍

新生成的扩展页面中,字段及字段属性的基本原则与UI模板的一致

  • 1)页面属性
    关联页面:不可编辑

  • 2)层级数
    与UI模板保持一致,仅用于定位

  • 3)页面字段配置

    • 原厂的系统字段:只能修改隐藏/显示属性,其他的不能修改;不允许删除
    • 原厂的字段:不允许删除,关键属性不能修改(在元数据中有定义的属性包括是否必输、唯一性,最大值、最小值(可以改小于元数据的设置)等),其他未定义的属性允许修改。
      是否检查:不可修改
    • 原厂定义的非持久化字段(如果有的话),也只能修改隐藏/显示属性,其他的不能修改;不允许删除
    • 持久化的扩展字段(自定义项):字段的属性、必输、长度以自定义项配置为主,可修改的范围在自定义项定义的范围之内。控件在可切换范围内进行切换。
    • 非持久化的扩展字段:(工具栏可持续扩展)
      设计器放开工具栏(文本、数值、日期、日期时间、选项、多语文本、图片、页面(附件整合完成后可支持)),用于为页面增加非持久化字段。
      图
      关联数据源字段:隐藏;
      数据形态:显示/不收集,只读不可编辑;
      支持配置公式,可以通过公式来给字段赋值。
  • 4)页面按钮
    与UI模板的配置不同,原厂扩展允许用户增加新的按钮,及增加按钮动作的配置,故原在UI上被隐藏掉的按钮工具栏全部放开,包括卡片页面的右上角、右下角的按钮,表格行上的按钮等。
    对于原厂按钮的约定如下:

  • 原厂预置的按钮限定,不可删除,可隐藏
  • 原厂按钮预置的执行命令限定,不可修改、不可删除
  • 原厂预置的动作规则限定,不可修改、不可删除、不可覆盖、不可拖动调整顺序
    图
    系统按钮上的动作页签上命令的编辑和删除要去掉,配置按钮可点,点击后打开配置页面,系统预置的规则不可进行编辑、删除、调整顺序等操作。
    允许用户新增规则,新增的规则允许编辑、删除及调整顺序。
    图
    同时,按钮增加隐藏属性,对于不需要使用的按钮可通过隐藏来控制其在页面不显示。

  • 允许增加新的按钮
    工具栏放开“按钮控件”,允许在已有工具栏的基础上增加新的按钮及下拉按钮。
    新增按钮的动作不做限制。
    新增按钮需要自动注册按钮权限。
    图

  • 5)页面布局
    原厂扩展支持修改扩展页面的布局,故左侧工具栏放开布局容器(多页签、子页签、卡片组、锚点容器)和数据容器(表单和表格)。
    图

  • 6)页面规则
    与UI模板保持一致,不做限制

  • 7)命令管理
    原厂扩展走的是标准版的逻辑,故命令管理中,不能新增动作和命令。 这个页面上,仅显示系统预置的命令及动作。
    图

  • 8)动作
    页面控件的动作页签放开--可通过函数脚本实现动作的扩展

    • 入口1:单据页面的初始化,可以选择函数或者命令,此处不做限制。
      图
    • 入口2:控件的动作页签【推荐入口1,入口2有时不好使】
      根据选择的控件不同,动作会有不同。下面截图是选项控件。可以选择函数或命令,此处不做限制。
      图

三、按钮上扩展规则 案例

背景:在“客户档案”新增页面,点击“保存”按钮时校验,如果字段“是否特殊客户”选择“是”,则字段“特殊客户说明”不能为空。
开发过程是先设计后端函数,然后在“保存”按钮规则链上添加后端函数,具体开发步骤如下。

1.设计后端函数

  • 1.首先打开“基础档案扩展”应用。
  • 2.选择“函数”页签,然后在左侧选择“后端”页签,如下图所示。
    图
  • 3.在后端页签,点击“新建”,打开新增函数对话框,如下图所以,下面添加一个后端函数“saveBeforeCheck”,输入信息如下:
    图
  • 4.点击“确定”按钮后,添加成功,如下图所以,鼠标放到后端函数“saveBeforeCheck”上,显示行按钮。
    图

  • 5.点击新添加的后端函数“saveBeforeCheck”的行按钮“设计”,添加代码如下: 图
    具体代码如下:

    let AbstractTrigger = require('AbstractTrigger');
    class MyTrigger extends AbstractTrigger {
      execute(context,param){
        // 扩展代码 start
        var pdata = param.data[0];
        if(pdata != null && pdata.defines != null){
          var define1 = pdata.defines.define1;
          var define2 = pdata.defines.define2;
          //throw new Error(pdata.id);
          if(define2 == 'true' && (define1 == null || define1 == '')){
            throw new Error('是否特殊客户 选择 是 时,特殊客户说明 不能为空!');
          }
        }
        // 扩展代码 end
       return {};
      }
    }
    exports({"entryPoint":MyTrigger});
    

    注:console.log() 用法是前端函数的;后端函数不适用,可以用句柄 或 throw new Error() 调试

2.保存按钮配置后端函数

设计完后端函数以后,需要在“客户档案卡片”页面,“保存”按钮规则链上添加后端函数,函数才能生效,具体添加步骤如下:

  • 1.在“基础档案扩展”应用,“页面建模”页签,打开“客户档案卡片”编辑页面,在页面上可以看到“保存”按钮,点击“保存”按钮,在右侧选择“动作”页面,可以看到页面默认已经配置了“单击”事件。
    图
    图

  • 2.点击“配置”打开编辑对话框,在左侧执行规则,滚动到最后一个规则,鼠标放上去,有一个小箭头,如下图所示:
    图

  • 3.点击“小箭头”后,右侧规则信息就可以编辑了,操作如下:

    • 规则:选择“extBackEndRule-执行函数”
    • 函数:选择前面设计的后端函数“saveBeforeCheck”
      图
  • 4.点击“保存”按钮即可,然后再点击配置,打开编辑对话框,执行规则滚动到最下面,可以看到后端函数“saveBeforeCheck”已经添加成功了。
    图

  • 5.因为此规则是“保存前”检验,需要把此规则拖到最上面,鼠标放到执行函数“saveBeforeCheck”上,有一个“小手”,直接拖到最上面,点击“保存”按钮即可。
    图

3.验证后端函数

在“基础档案扩展”应用“页面建模”页签,预览“客户档案列表”页面,然后点击“新增”按钮,打开“客户档案”,新增页面,如下图所示:
必填字段输入“客户名称”,选择“客户分类”后,在选择“是否特殊客户”值为“是”,“特殊客户说明”为空的情况下,点击“保存”按钮进行测试,可以弹出错误提示信息,测试效果如下图所示:

图

4.调试后端函数

原厂扩展开发和自建应用的后端函数调试方式都是一样的,大体步骤都是在后端函数点击“调试”打开函数脚本调试。复制调试脚本,在使用此后端函数的地方,本示例是“客户档案”新增页面,在页面上按键盘“Shift + Alt + D”打开对话框,输入调试脚本。点击“保存”按钮即可进行后端函数调试。

图

图

Copyright © 用友 -【生态技术部】 2021 all right reserved,powered by Gitbook修订时间: 2021-11-12 13:56:12

results matching ""

    No results matching ""