# 元字段配置

元字段配置界面如下: 元字段配置

# 配置项及含义

# 默认值

此值默认取值为元字段对应的表字段的默认值,因此表字段设计好,一般无需配置。

# 开关设置

此配置项,控制了元字段的一些系统处理逻辑。

  • 允许为空: 数据库中字段是允许为空的,跟着数据表字段来。一般无需配置
  • 允许搜索: 若勾选, 则列表页面中搜索面板中将会出现。
  • 列表显示: 若勾选, 则列表页中会出现此列数据。
  • 允许多值: 此项要求数据字段必须是文本类型(varchar或text这样的), 当勾选时,表示其中可以存储用英文逗号分隔的多个值。例如: "1,2,3"
  • 是否文件: 表示此元字段存储的数据是文件地址。要求字段类型必须是json或文本类型(varchar/text等)。参考文件上传与下载#关于上传的其他说明

# 表单配置

此配置项决定了,此元字段在新增表单、更新表单、查看表单三种状态下的控制。

  • 显示: 正常
  • 隐藏: 前端存在此空间,只是通过css隐藏了
  • 只读: 空间被disable了。注意,因为disable比readonly支持度更好, 因此使用disable达到只读的目的,但部分控件复杂控件是无法支持的(如富文本等)
  • 禁用: 前端页面表单中无此表单项,而不是隐藏,是直接没有的。

注意只读和禁用的区别

# 数据源

数据表中一个字段能存储什么值,通常是有限定的。比如:

  1. "证件类型": 只能从1,2,3,4中选,分别代表身份证,护照等等。
  2. "企业id": 必须关联企业表的主键,这些可选的主键得来源于数据库。
  3. 有时选项值可能是动态的,数据来源是第三方平台。

通过【数据源】配置项,你都能得到满足。

# 静态数组

通过直接配置固定的静态数组,入库的值是选定项目的value。

适用于简单,万年不变的选项。

# 字典名

选择一个字典项,字典选项来源于【字典管理】。这个和静态数组的唯一区别就是,选项数据在【字典管理】中维护,更方便,而且可以用在其他地方。

# 接口

这个是最灵活的方式了,你可以输入一个地址,可以是"/"开头的相对接口路径,也可以是http://或https://开头绝对地址。 但是有一个条件,响应数据必须使用HttpResult包装,其data 必须是keyvalue组成的数组对象。如下:

{
  "code": 0,
  "data": [
    {
      "key": "选项一",
      "value": "值1"
    },
    {
      "key": "选项二",
      "value": "值2"
    }
  ]
}

通常会需要自己写一个这样的接口,是最兼容,但"低代码"程度最低的一种方案。

建议通过接口校验按钮进行校验。验证通过后再存储。

# sql

通过编写查询sql语句,将查询的结果作为选项值。如下:

select id as id, name as cn from t_user;

id值将作为选项值,cn将作为选项名。

WARNING

结果值必须是id和name,历史原因导致, 后期版本可能会改为key和value。

建议通过校验按钮进行校验, 注意,校验不会去数据库中真正的执行,只是校验sql是否符合语法。

TIP

dbmeta支持多数据库,因此上述sql其实默认查的是主库的t_user表的数据。若希望使用其他库,稍作调整即可:

select id as id, name as cn from t_user;otherDbName

其中, otherDbName必须与`md.analysis.source-config中对应数据库的key保持一致。如下:

md:
  analysis:
    source-config:
      otherDbName: # 必须与这个key名保持一致
        url:
        port:
        password:

WARNING

注意优先级,静态数组 > 字典 > 接口 > sql。 也就是说如果你配置了多个,那么就会按这个优先级来处理。

Last Updated: 5/17/2022, 3:19:38 PM