大道至简,新一代企业应用无栈开发

平台之上,一种语言,可视化、脚本化、全端一体化开发

表单定义

图形化定义表单,包括字段、布局等

自定义表单

在应用软件包中,可以添加表单,用于定义和用户输入的界面。表单可以用表单库、扩展属性等多种场合。

每个表单自定义界面,包含如下子栏目:

各个子栏目作用说明如下:

  • 基本信息:表单的名称说明、用途等
  • 字段,表单包含的子字段
  • 模板:表单如何渲染排版,支持自定义模板(使用标准 html来定义模板,使用 $字段名 来替代输入项)
  • 当校验时:校验这个表单使用的脚本
  • 当保存时:表单内容保存时触发的脚本
  • 当删除时:表单被删除时触发的脚本
  • YAML:通过YAML文本来描述这个表单

表单字段

表单字段定义界面如下图:

字段通用属性

所有字段有如下通用基础属性:

自动读写属性包括四个Python表但是:

其中:

  • 默认值:在创建新表单时字段默认的值,不同字段,有不同类型的值
  • 查看条件:返回Bool,如果为False,禁止查看

  • 编辑条件:返回Bool,如果为False,禁止编辑。如果查看和编辑条件都是False,字段不可见
  • 校验表达式:检查当前value是否合法,返回错误信息;如果没有错误,返回None。如 

    value > 100 and ‘采购费用不能大于100’

字段说明

字段名 说明 特有设置 返回值
单行文本

用于输入只有一行的文本,例如项目名等

字符串/str
文本框

用于输入多行文本,例如详细信息,详细描述,备注等

行数、列数 字符串/str
密码

用于输入一些机要性的信息,如用户口令

字符串/str

整数

用于输入整数,例如采购数量等。她和单行文本类似

整数/int

多行文字

输入多行,每行一个输入项

字符列表/[str]

浮点数

用于输入小数,例如费用等

展示精度位数

浮点数/float

布尔

接受逻辑值,真或假,而且只能选择这两个,可以用于描述是否通过审批等

布尔值/Bool

日期

用于日期的录入,例如文档审批日期,请假日期等

是否显示时间、选择直接的分钟跳格

日期/datetime

单选文本

从多个可选项中选择一项,根据可选值和门限,可以是Redio,或者下拉

  • 门限
  • 可选值,形式为:[key1, key2],或者[(key1, value1), (key2, value2)]

字符串/str

选择框

用于多项中选择一个或者多个选项,实际展示根据数量,可能是下拉、或者复选框

是否多选、门限、可选值

字符串列表/[str]

人员选择

主要用于选择系统中的用户,例如项目的人员选择等

是否多选,能否选择人员、组、部门

人员列表/[pid]

内容选择

从站点选择某个内容,可以是文件、表单、表单库等

  • 默认值可使用关联内容:get_reference(request, content_types=None) content_types找出指定类型的关联内容

  • 内容类型,是否多选、能否上传
  • 默认位置:如果是用于上传附件,可以用附件设置:
    container.settings.get('attachments_folder', 
    container, inherit=True)

内容列表/[uid]

公式

跟Excel中的公式相似,输入python表达式,计算得实际的值。

在默认值中填写公式 无(不存放数据)

动态表格

各个字段中最复杂、最强大的字段。简单来说就是表格字段,表格中还可以再添加一个字段

支持子字段定义,子字段的表达式可使用如下变量:

  • row_index : 当前是第几行
  • this_row : 当前行的数据,是一个dict ,{field_name:value}
[{key:value}]

组合

类似动态表格,但是只有一行数据。用于类似坐标数据(分x/y/z几个子项)

支持子字段定义 {'key':value}