自定义SQL列表与表单

自定义 SQL 和表单配合可以胜任一般业务逻辑的增删改查。

配置自定义 SQL 列表

自定义 SQL 列表可以通过一个SQL,生成列表页、报表,支持分页搜索,并且可以添加增删改查、状态变更等操作按钮。

在 表单管理=》自定义列表=》自定义列表中 点击【添加】新增一个自定义SQL

1.解析自定义SQL

在顶部代码编辑框中输入一个 SQL,并点击 【解析】按钮 如:

select * from biz_demo order by id desc

您可以在 SQL 中使用 以下系统参数

  • ${currentUserId}
  • ${currentUserName}
  • ${curOrgId}
  • ${curTime}
  • ${curDate}
  • ${curDateTime}

如:

select * from org_user where id_ = '${currentUserId}'

除此之外,还可以使用 ${xxx} 作为参数变量,xxx 参数可以从 url 地址传入,也可以从查询栏传入,优先使用查询栏的参数。

2.设置列表字段关键属性

  • 名称:设置自定义Sql列表的 名字(添加菜单时会作为菜单名)
  • 是否默认查询:如果否,第一次打开列表页的时候不会触发查询,在点击搜索后才会查询,这会在部分报表的场景非常有用
  • 关联在线表单: 自定义SQL列表可以关联一个在线表单,这样可以借助在线表单实现增删改查的需求
  • 展示前脚本: 会在关联的在线表单打开前执行,可以用他初始化表单数据
  • 保存前脚本: 会在关联的在线表单点击保存后,在后端执行,为 Groovy 脚本,可以用来做服务端赋值、校验,如:

    Demo.setSn(sysScript.getNextSerialNo('dayNo')) //对业务对象 Demo 的 sn 字段 设置流水号
    busDataScript.checkBusDataIsExist(User,'account','账户已存在');// 校验业务对象 User 的account 字段 是否重复
  • 保存后置脚本: 关联表单的业务对象保存成功后执行的 Groovy 脚本,可以用来做业务方面的事情

其他属性都比较见名知意,这里不再赘述

3.列表字段设置

可以根据实际情况设置 字段备注、对齐方式、是否隐藏、是否导出、字段的超链接,可以拖拽移动顺序

  • 控件类型:目前意义不大,如果是需要格式化的字段,请选择下拉框等
  • 格式数据:对字段进行格式化,常见格式化如下:
    ···js
    //下拉框等 key/value 类型的都是以JSON形式格式,如
    {“0”:”否”,”1”:”是”}
    // 数据字典,如证件类型,直接写数据字典的KEY
    zjlx
    // 日期类型 根据格式化设置
    yyyy-MM-dd HH:mm:ss
    ···
  • 脱敏:脱敏设置为两个数字如 3,3,表示从第三个字符后开始脱敏三个字符。
    如字符:一二三四五六七八
    设置 3,3 后脱敏结果为: 一二三***七八,
    设置 3 后脱敏结果为: 一二三**

4.列表查询设置

设置查询条件

5.列表功能按钮

可以点击默认设置的一些快捷按钮快速添加列表按钮,您也可以参考默认按钮去配置特殊按钮。

关键属性

  • 菜单权限控制: 自定义SQL列表的按钮是支持按钮权限控制的,开启该项后,需要以按钮的形式加入菜单管理,鉴权按钮的 code 规则为:customsql_button_自定义SQL列表CODE_按钮CODE
  • 跳转链接/请求地址点击该按钮后会打开一个新页面(请注意打开方式)。
    如配置表单的编辑页 /form/formDef/vueFormDefPreview.html?key=ProcurementApply_vue&id=${id} ${xx} 可以取到当前数据行的数据 row.xx
  • 值变化 会触发该字段的值变更,如:status=1 会将 row.status 赋值为 1,更新至数据库

配置表单权限

可以在自定义SQL列表关联的在线表单中配置表单字段权限,限制不同角色的人只能看到、编辑指定的内容。

后面有很多好玩的东西,敬请期待

我们可以单独去用自定义表单组件去渲染一个业务对象的JSON
一个业务对象的JSON 也可以提交到业务表单的保存接口去持久化
业务对象可以生成代码,代码也可以生成业务对象