Oinone
产品
Oinone
Oinone 框架
企业级低代码开发框架
Aino
Aino
智能AI开发平台
案例定价博客社区
资源
📖
文档
开发指南与API参考
💬
支持
获取技术支持与服务
📄
更新日志
查看最新版本特性
🏡
关于
了解我们的团队与愿景
搜索 K
v7.0v6.0
简体中文English
安装与升级
社区版
企业版
从社区版转向企业版
Oinone 设计器配置指南
版本升级
版本清单
常见问题
用户手册
设计器
模型设计器
模型
数据字典
数据编码
界面设计器
视图管理
视图类型
视图设计
组件与模型总览
组件介绍
布局
字段
媒体
动作
自定义组件
自定义组件管理
自定义组件-元件信息
自定义组件-元件设计
应用菜单
打印模板管理
打印模板设计
流程设计器
流程管理
流程设计
节点动作
数据可视化
图表管理
图表类型
图表设计
报表
数据大屏管理
数据大屏设计
图表模板
集成设计器
工作台
连接器
数据流程
流程日志
开放平台
MCP
业务域
接口日志
微流设计器
微流管理
微流设计
AI集成设计器
连接器
AI配置
接口日志
表达式的使用说明
标准模块
工作台
个人中心
系统配置
管理中心
用户
合作伙伴
组织架构
角色与权限
工作流
工作流
工作流管理
消息
业务审计
文件
资源
翻译
集成应用
应用中心
应用环境
低无一体
研发手册
AI Coding 实战
Oinone遇上Trae的AI Coding最佳实践(后端)
Oinone遇上Qoder的AI Coding最佳实践(后端)
教程(Tutorials)
环境准备
Git安装与注意事项
JDK安装与注意事项
Maven安装与注意事项
Node.js安装与注意事项
设置指南(Setup Guide)
后端框架(Back-end framework)
章节 1:整体介绍(Architecture Overview)
章节 2:新建一个应用(A New Application)
章节 3:模型与基础字段(Models And Basic Fields)
章节 4:安全简介(A Brief Introduction To Security)
章节 5:界面实操(Finally, Some UI To Play With)
章节 6:基础视图(Basic Views)
章节 7:模型间关系(Relations Between Models)
章节 8:字段间联动(Field Interlinkage)
章节 9:准备学习行为(Ready For Some Action)
章节 10:约束(Constraints)
章节 11:追加细节(Add The Sprinkles)
章节 12:继承(Inheritance)
章节 13:模块间相互作用(Interact With Other Modules)
章节 14:产品的个性化开发(Customized Features)
探索前端框架(Discover the Front-end Framework)
章节 1: 组件(Widget)
章节 2:构建仪表盘(Build a dashboard)
精通前端框架(Master the Front-End framework)
章节 1:前端框架概览(Front-End Overview)
章节 2:创建甘特视图(Create a gantt view)
章节 3:自定义画廊视图(Customize a gallery view)
模块数据初始化(Init Module Data)
限制数据访问权限(Restrict access to data)
文件导入导出(Export and Import)
调试工具(Debug Tools)
操作指南
自定义字段
自定义动作
自定义视图
自定义GraphQL请求
自定义主题
组件默认主题变量
组件暗黑主题变量
自定义组件与设计器结合
参考指南(Reference)
后端API(Back-End framework)
模块 API(Module API)
ORM API
函数 API(Functions API)
动作 API(Actions API)
交互 API(UX API)
安全机制(Security in Oinone)
高级 API(Advance API)
网关协议 API(Protocol API)
请求上下文 API(Request Context API)
元位指令 API(Meta Directive API)
提示 API(Hint API)
消息中心 API(Message Hub API)
文件客户端 API(FileClient API)
消息队列 API(MQ API)
Redis API
ES API
通用工具 API(Tools API)
前端API(Front-End framework)
框架概览(Framework Overview)
环境(Environment)
上下文(Context)
组件(Widget)
Component Lifecycle
Basic
Mask
Layout
DSL
View
Element
Pack
Action
Field
Table Field
Search Field
Form Field
Detail Field
Gallery Field
Router
Oio 组件(Oio Components)
Vue UI Antd
Vue UI El
Vue UI
服务(Services)
Metadata Service
SPI Service
Router Service
GraphQL Service
HttpClient Service
RSQL Service
Message Hub Service
Event Bus Service
Stream Service (peer to peer)
Expression Service
Translate Service
User interface
视图架构(View architectures)
表格(Table)
表单(Form)
详情(Detail)
画廊(Gallery)
树(Tree)
UI icons
标准模块(Standard Modules)
用户与商业主体 API(User & Business API)
消息 API(Message API)
工作流(Workflow)
文件导入导出(Import And Export)
资源 API(Resources API)
集成接口 API(EIP API)
通用扩展点与平台SPI清单(Common Extension Points And SPI List)
平台错误码(Error Codes)
最佳范式
研发范式:研发流程
研发范式:模块化设计
研发范式:模型设计
软件公司:标准化与定制化共生的范式
常见解决方案
前端
全局layout:自定义树形组件,树形组件默认选中第一个值
发布:前端发布流程
字段:如何在多标签页切换时自动刷新视图
字段:打开的弹窗操作产生的数据回填给字段
应用:作为Iframe嵌入到已有系统中
应用:引入微前端qiankun
按钮:如何在业务模型的列表中展示工作流的审批按钮
按钮:跨页面传额外的参数
网络请求:OioProvider详解(自定义请求错误拦截)
网络请求:请求加密
视图:实现多个视图切换
视图:表格列合并
视图:表格列尾统计
视图:表格实现复制行
路由扩展:添加新路由,比如覆盖默认的登录页
后端
依赖配置:如何添加数据可视化运行时依赖
功能简介:数据可视化-项目中如何引用图表、报表、大屏
可视搭建:数据可视化中图表的低无一体
可视查询:数据可视化-如何自定义查询数据方法
场景应用:Excel添加水印功能
场景应用:函数之异步执行
场景应用:动态表单(相同的按钮跳转到不同的页面)
外部集成:企微集成OAuth2.0
外部集成:钉钉集成OAuth2.0
序列获取:如何在项目中手动获取序列
开发模式:协同开发(改)
开发规范:Function、Action函数使用规范
开发辅助:O2M、M2O、M2M关系字段配置问题以及问题排查路径
开发辅助:Oinone平台可视化调试工具
开发辅助:低代码中实现页面数据联动
开发辅助:低代码方式实现复制创建
开发辅助:使用GraphQL生成API文档
发布流程:后端发布流程
开发辅助:表单自动填充用户的相关信息
开发实践:业务实现多租户方案
开放接口:EIP开放接口使用MD5验签发起请求
搜索增强:Oinone引入搜索引擎(增强模型)
搜索增强:引入搜索(增强模型Channel)常见问题解决办法
数据操作:DsHint(指定数据源)和BatchSizeHint(指定批次数量)
数据操作:Excel导入导出模板翻译
数据操作:Excel批量导入
数据操作:IWrapper、QueryWrapper和LambdaQueryWrapper使用
数据操作:Oinone连接外部数据源方案
数据操作:分库分表与自定义分表规则
数据操作:复杂Excel模版定义
数据操作:复杂字段类型的导入导出
数据操作:多Sheet导入导出示例
数据操作:多表关联查询方案
数据操作:如何使用位运算的数据字典
数据操作:如何自定义Excel导入导出功能
数据操作:查询时自定义排序字段和排序规则
数据操作:自定义RSQL占位符(placeholder)及在权限中使用
数据操作:自定义SQL(Mapper)语句
数据操作:非存储字段搜索(unstore field seach)
数据方言:【DM】后端部署使用Dameng数据库(达梦)
数据方言:【KDB】后端部署使用Kingbase数据库(人大金仓/电科金仓)
数据方言:【MSSQL】后端部署使用MSSQL数据库(SQLServer)
数据方言:【OpenGauss】后端部署使用OpenGauss高斯数据库
数据方言:【PostgreSQL】后端部署使用PostgreSQL数据库
文件存储:MINIO无公网访问地址下OSS的配置
文件存储:OSS(CDN)配置和文件系统的一些操作
权限扩展:函数如何跳过权限拦截
权限扩展:如何删除系统权限中默认的首页节点
权限扩展:如何扩展行为权限
权限扩展:如何给角色增加菜单权限
权限扩展:如何跳过固定路径的权限
树表配置:树表怎么配置
校验定制:如何自定义表达式实现特殊需求?扩展内置函数表达式
流程扩展:如何添加工作流运行时依赖
流程扩展:工作流审核撤回-回退-拒绝钩子使用
流程扩展:流程扩展自定义函数示例代码汇总
流程扩展:通过业务数据操作工作流程(催办、撤销等)
流程配置:项目中工作流引入和流程触发
消息定制:如何推送自定义消息
源码配置:如何使用源码的方式配置表达式
环境保护:Oinone环境保护(v5.2.3以上)
环境升级:缓存连接由Jedis切换为Lettuce
环境部署:东方通Web和Tomcat部署Oinone项目
环境部署:中标麒麟(mips64架构)部署设计器
环境部署:后端无代码设计器Jar包启动方法
登录扩展:Oinone登录扩展:对接SSO
研发框架:框架之MessageHub(信息提示)
网络请求:第一次登录强制修改密码
自增ID:如何在项目中使用自增ID
认证集成:SSO单点登录
配置说明:Dubbo配置详解(改)
配置说明:函数之触发与定时配置和示例
页面设计:全局首页及应用首页配置方法(homepage)
页面设计:如何实现页面间的跳转
页面设计:自定义用户中心菜单
项目整合:Nacos做为注册中心:如何调用其他系统的SpringCloud服务?
项目整合:Oinone如何支持构建分布式项目
项目整合:Oinone项目引入Nacos作为注册中心
项目部署:Docker部署常见问题
项目部署:Oinone离线部署设计器JAR包
项目部署:Oinone离线部署设计器镜像
项目部署:Oinone设计器部署参数说明
项目部署:数据可视化的导入导出
项目部署:流程设计器的导入导出
项目部署:界面设计器的导入导出
常见问题
启动时:Oinone License 许可证使用常见问题
启动时:启动依赖错误的问题
启动时:调度服务器未分配任务队列一直刷日志
启动时:后端启动常见问题
开发中:多值字段、字段默认值如何配置
开发中:如何获取请求的模型
开发中:模型拷贝工具类
开发中:索引、唯一索引、联合索引如何创建
开发中:获取当前登录用户信息
环境准备:windows环境npm安装依赖提示无权限
环境迁移:导入设计数据时dubbo超时导入失败
运维相关:平台有健康检查接口吗
运行时:Dubbo服务找不到
运行时:保存多值字段SQL执行报错
运行时:如何使用 GQL 工具正确发起请求
运行时:如何实现同步下载Excel
运行时:导出任务处于处理中状态
运行时:找不到字段:Unknown field ‘xx’
运行时:权限配置不生效
运行时:界面设计器选不到模型
运行时:跳转动作无权限问题排查
运行时:配置了上下文参数但是值未传到跳转页面
第三方开源软件及许可说明
贡献手册
贡献者许可协议模板
研发贡献
Git guidelines
Coding guidelines
文档贡献
Content guidelines
软件使用许可和合约
  1. 首页/
  2. 研发手册/
  3. 参考指南(Reference)/
  4. 前端API(Front-End framework)/
  5. 服务(Services)/
  6. Metadata Service
本页目录

在 Oinone Kunlun 中,元数据是系统运行最重要的一部分。在 “精通前端框架 - 前端框架概览” 中,我们已经对元数据概念有了初步的认识,在这一章节,我们将从前端框架的角度来进一步了解元数据在 Oinone 中的具体呈现。

一、元数据图示 ​

在 Oinone Kunlun 中,元数据分为三类:

  • 标准元数据:与后端模型一一对应。
  • DSL 元数据:通过 viewAction#load 接口获取的 DSL 元数据。
  • 运行时元数据:通过标准元数据或 DSL 元数据转换后的统一元数据类型。

提示:

在业务系统中,我们对元数据的获取和操作都应该围绕着 运行时元数据 展开,这样任何来源的元数据都可以通过一套逻辑完成。

1、标准元数据图谱 ​

2、运行时元数据图谱 ​

二、如何获取运行时元数据 ​

(一)使用 RuntimeContext 获取元数据 ​

在具有 RuntimeContext 的组件中,我们可以根据页面结构使用 rootRuntimeContext 或 metadataRuntimeContext 获取对应模型的运行时元数据。

(二)使用 ModelCache 获取模型元数据 ​

typescript
// 获取国家分组模型元数据
const model = await ModelCache.get('resource.ResourceCountryGroup');
1
2

WARNING

提示:

更多关于 获取运行时元数据方法 的内容请参考:API

三、Reference List ​

(一)标准元数据 ​

1、模块(IModule) ​

属性:

  • id:模块的唯一标识符。(string)
  • name:模块的 API 名称。(string)
  • module:模块的技术名称。(string)
  • displayName:模块的显示名称,用于 UI 展示。(string)
  • logo:模块的图标 URL。(string)
  • homePage:模块的主页视图配置。(IViewAction)
  • allMenus:模块的所有菜单配置。(IMenu[])
  • priority:模块的显示优先级。(number)
  • application:标识是否为独立应用。(boolean)
  • like:标识是否为用户收藏。(boolean)
  • urlHomePage:模块的 URL 主页配置。(IURLAction)

2、模型(IModel) ​

属性:

  • id:模型的唯一标识符。(string)
  • pk:主键字段列表。(string[])
  • model:模型的技术名称。(string)
  • name:模型的内部名称。(string)
  • type:模型的类型。(ModelType)
  • module:所属模块的标识符。(string)
  • moduleName:所属模块的名称。(string)
  • modelFields:模型字段定义列表。(IModelField[])
  • displayName:模型的显示名称。(string)
  • labelFields:用于显示标签的字段列表。(string[])
  • label:模型的标签表达式。(string)
  • progressField:进度字段名称。(string)
  • masterFieldStr:主字段字符串。(string)
  • progressFieldStr:进度字段字符串。(string)
  • viewActionList:视图动作列表。(IViewAction[])
  • serverActionList:服务器动作列表。(IServerAction[])
  • urlActionList:URL 动作列表。(IURLAction[])
  • clientActionList:客户端动作列表。(IClientAction[])
  • functions:模型函数列表。(IModelFunc[])
  • modelActions:模型动作集合。((IClientAction | IURLAction | IServerAction | IViewAction)[])
  • viewList:视图定义列表。(IView[])
  • uniqueList:唯一约束定义列表。({ fieldList: IModelField[]; fields: string }[])
  • uniques:唯一约束字段列表。(string[])
  • indexes:索引字段列表。(string[])
  • indexList:索引定义列表。({ fieldList: IModelField[]; fields: string[] }[])
  • ordering:排序规则。(string)
  • attributes:模型属性配置。(object)
    • requiredCondition:必填条件表达式。(string)
    • invisibleCondition:不可见条件表达式。(string)
    • readonlyCondition:只读条件表达式。(string)
    • layoutGrid:布局网格大小。(number)
    • layoutGroup:布局分组名称。(string)

3、模型字段(IModelField) ​

属性:

  • id:字段的唯一标识符。(string)
  • data:兼容 v3 新版字段的数据标识。(string)
  • name:字段 API 名称。(string)
  • limit:关联关系数量限制,针对 xxx2many 字段的可选数量约束。(number)
  • load:数据加载函数。(string)
  • ttype:模型字段类型枚举。(ModelFieldType)
  • model:关联模型的名称。(string)
  • displayName:字段的显示名称。(string)
  • max:数值字段的最大值限制。(string)
  • min:数值字段的最小值限制。(string)
  • sys:标识是否为系统字段。(boolean)
  • systemSource:系统来源枚举。(SystemSource)
  • size:数值字段的长度。(number)
  • decimal:数值字段的精度。(number)
  • options:枚举类型的选项列表。(IModelFieldOption[])
  • index:标识是否为索引字段。(boolean)
  • unique:标识是否为唯一索引字段。(boolean)
  • translate:标识是否需要翻译。(boolean)
  • label:字段的临时标签。(string)
  • references:关联的对方模型(原 relation)。(string)
  • through:m2m 关联关系的中间模型。(string)
  • relationFields:自身模型的关联字段。(string[])
  • referenceFields:关联模型的关联字段。(string[])
  • throughRelationFields:中间模型里当前模型的关联字段。(string[])
  • throughReferenceFields:中间模型里关联模型的关联字段。(string[])
  • invisible:默认可见性(布尔值或表达式)。(boolean | string)
  • priority:字段排序优先级。(BIGINT)
  • compute:计算表达式。(string)
  • relatedTtype:关联字段的类型。(ModelFieldType)
  • widget:字段使用的组件类型。(string)
  • field:字段关联的属性名。(string)
  • sortable:是否可排序(XML 配置字段,非后端模型字段)。(boolean)
  • hint:字段提示信息(XML 配置字段,非后端模型字段)。(string)
  • patternType:正则校验类型(XML 配置字段,非后端模型字段)。(string)
  • pattern:正则校验表达式。(string)
  • validation:表达式校验规则。(string)
  • tips:校验失败的提示消息。(string)
  • independentlyEditable:是否开启行内编辑。(boolean)
  • related:关联字段列表。(string[])
  • store:是否需要存储字段值。(boolean)
  • relationStore:关联关系是否存储。(boolean)
  • storeSerialize:存储序列化函数类型(NON/JSON/COMMA/DOT)。(ModelFieldSerializeType)
  • domain:字段值域范围。(string)
  • isUnique:是否全局唯一(默认 false)。(boolean)
  • required:是否必填(默认 false,支持表达式)。(boolean | string)
  • requiredTips:必填校验的提示文案。(string)
  • domainSize:后端备选项分页数量。(string)
  • readonly:是否只读(新增可编辑,修改不可编辑,默认 false)。(boolean)
  • multi:字段返回值是否为数组。(boolean)
  • format:字段格式规则。(string)
  • defaultValue:字段默认值。(string)
  • attributes:字段属性配置。(object)
    • requiredCondition:必填条件表达式。(string)
    • invisibleCondition:不可见条件表达式。(string)
    • readonlyCondition:只读条件表达式。(string)
    • layoutGrid:布局网格大小。(number)
    • layoutGroup:布局分组名称。(string)
    • layoutTab:布局标签页。(string)
    • layoutTabs:布局标签页列表。(string)
  • modelFields:嵌套的子字段列表(避免与服务端 children 字段冲突)。(IModelField[])

4、IBaseAbstractAction ​

属性:

  • title:动作标题。(string)
  • displayName:动作显示名称。(string)
  • label:动作标签。(string)
  • model:关联模型名称。(string)
  • rule:过滤规则(已废弃)。(string)
  • invisible:按钮显隐规则。(string)

5、IBaseAction ​

属性:

  • id:动作唯一标识。(string)
  • name:动作名称。(string)
  • model:关联模型名称。(string)
  • modelDefinition:模型定义对象。(IModel)
  • bindingType:动作绑定的视图类型列表。(string[])
  • bindingViewName:动作仅显示的指定视图名称。(string)
  • actionType:动作类型枚举。(ActionType)
  • contextType:动作上下文类型枚举。(ActionContextType)
  • usageDesc:动作使用说明。(string)
  • groups:动作所属群组。(any[])
  • builtIn:是否为内置动作。(boolean)
  • skipCheck:是否跳过动作策略筛选(临时解决方案)。(boolean)
  • config:动作配置参数。(Record<string, unknown>)
  • confirm:确认提示信息。(string)
  • priority:动作优先级。(number)
  • sessionPath:会话路径。(string)

6、跳转动作(IViewAction) ​

继承:IBaseAction

属性:

  • actionType:固定为视图动作类型。(ActionType.View)
  • target:目标窗口类型。(ViewActionTarget)
  • resModel:目标模型名称。(string)
  • resModelDefinition:目标模型定义对象。(IModel)
  • resViewName:目标视图名称。(string)
  • bindingViewName:绑定的 XML 视图名称。(string)
  • queryType:查询类型。(QueryType)
  • apiProtocol:API 协议类型。(ApiProtocol)
  • viewMode:可切换的视图类型列表(逗号分隔)。(string)
  • viewType:默认打开的视图类型。(ViewType)
  • dataType:视图数据分类。(DataType)
  • domain:列表视图附带的查询条件(用户可见)。(string)
  • filter:列表视图附带的查询条件(用户不可见)。(string)
  • load:数据加载方式。(string)
  • loadFunction:数据加载函数。(IModelFunc)
  • context:上下文变量。(Record<string, unknown>)
  • moduleName:模块短标识(前端用)。(string)
  • page:视图动作页面配置。(ViewActionPage)
  • resView:目标视图对象。(IView)
  • module:模块标识。(string)
  • resModule:目标模块标识。(string)
  • resModuleName:目标模块名称。(string)
  • resModuleDefinition:目标模块定义对象。(IModule)
  • moduleDefinition:模块定义对象。(IModule)
  • maskDefinition:遮罩层定义。({ name: string; template: string; })
  • theme:主题样式。(string)

7、分享跳转动作(ISharedViewAction) ​

继承:IViewAction

属性:

  • sharedCode:共享码。(string)
  • authorizationCode:授权码。(string)
  • sharedParameters:共享参数。(string)
  • browserTitle:浏览器标题。(string)
  • language:语言。(string)
  • languageIsoCode:语言 ISO 代码。(string)

8、提交动作(IServerAction) ​

继承:IBaseAction

属性:

  • actionType:固定为提交动作类型。(ActionType.Server)
  • functionDefinition:模型函数定义对象。(IModelFunc)
  • function:模型函数对象。(IModelFunc)
  • module:模块标识。(string)

9、链接动作(IURLAction) ​

继承:IBaseAction

属性:

  • url:目标 URL 地址。(string)
  • compute:URL 计算表达式。(string)
  • target:目标窗口类型。(ViewActionTarget)
  • confirm:确认提示信息。(string)
  • module:模块标识。(string)
  • context:上下文变量。(Record<string, unknown>)

10、客户端动作(IClientAction) ​

继承:IBaseAbstractAction

属性:

  • actionType:固定为客户端动作类型。(ActionType.Client)
  • name:客户端动作名称或自定义字符串。(ClientActionName | string)
  • bindingType:动作绑定的视图类型列表。(string[])
  • id:动作唯一标识(可选)。(string)
  • contextType:动作上下文类型枚举。(ActionContextType)
  • confirm:确认提示信息。(string)
  • priority:动作优先级。(number)
  • tag:动作标签。(string)
  • fun:客户端函数名称。(string)

(二)运行时元数据 ​

1、模块(RuntimeModule) ​

属性:

  • module:模块编码,用于唯一标识模块。(string)
  • name:模块名称,通常是程序内部使用的标识。(string)
  • displayName:模块显示名称,用于界面展示。(string)

2、模型(RuntimeModel) ​

属性:

  • id:模型 id。(string)
  • model:模型编码。(string)
  • name:技术名称。(string)
  • modelFields:模型字段。(RuntimeModelField[])
  • modelActions:模型动作。(RuntimeAction[])
  • type:模型类型。(ModelType)
  • module:模块编码。(string)
  • moduleName:模块名称。(string)
  • moduleDefinition:模块定义。(RuntimeModule)
  • pks:主键。(string[])
  • uniques:唯一键。(string[][])
  • indexes:索引。(string[][])
  • sorting:排序。(string)
  • label:显示标题。(string)
  • labelFields:标题字段。(string[])

3、BaseRuntimeModelMetadata ​

描述:运行时模型元数据抽象定义。

属性:

  • id:元数据 id。(string)
  • model:模型编码。(string)
  • modelName:模型名称。(string)
  • modelDefinition:模型定义。(RuntimeModel)
  • __index:元数据索引,与 dsl 中的__metadata_index 匹配。(number)

4、母版(RuntimeMaskDefinition) ​

属性:

  • name:母版名称。(string)
  • template:母版模板。(string)

5、布局(RuntimeLayoutDefinition) ​

属性:

  • name:布局名称。(string)
  • template:布局模板。(string)

6、视图(RuntimeView) ​

继承:BaseRuntimeModelMetadata

属性:

  • name:视图名称。(string)
  • title:视图标题。(string)
  • type:视图类型。(ViewType)
  • module:视图模块编码。(string)
  • moduleName:视图模块名称。(string)
  • layoutName:布局名称。(string)
  • layout:布局 dsl。(string | DslDefinition)
  • dsl:模板 dsl。(string | DslDefinition)
  • template:最终执行 dsl。(string | DslDefinition)
  • filter:不可视过滤条件。(string)
  • domain:可视过滤条件。(string)
  • initialValue:视图初始值。(Record<string, unknown>[])
  • context:上下文。(Record<string, unknown>)
  • extension:扩展属性。(Record<string, unknown>)

7、模型字段(RuntimeModelField) ​

继承:BaseRuntimeModelMetadata

属性:

  • template:原始 dsl。(FieldDslDefinition)
  • data:属性名称。(string)
  • name:API 名称。(string)
  • ttype:字段业务类型。(ModelFieldType)
  • multi:是否多值。(boolean)
  • defaultValue:默认值。(unknown)
  • store:是否存储。(boolean)
  • sortable:是否排序。(boolean)
  • storeSerialize:存储序列化方式。(ModelFieldSerializeType)
  • displayName:字段显示名称。(string)
  • label:字段页面显示名称(优先于 displayName)。(string)
  • required:必填规则。(boolean | string)
  • readonly:只读规则。(boolean | string)
  • invisible:隐藏规则。(boolean | string)
  • disabled:禁用规则。(boolean | string)
  • compute:计算表达式。(string)
  • submitType:提交类型。(SubmitType)
  • isVirtual:是否为虚拟字段。(boolean)
  • translate:是否需要翻译。(boolean)

8、文本字段(RuntimeStringField) ​

继承:RuntimeModelField

属性:

  • size:大小。(string | number)
  • limit:限制。(string | number)
  • max:最大值。(string | number)
  • min:最小值。(string | number)

9、数字字段(RuntimeNumberField) ​

继承:RuntimeModelField

属性:

  • size:大小。(string | number)
  • decimal:小数位数。(string | number)
  • max:最大值。(string | number)
  • min:最小值。(string | number)
  • limit:限制数量。(string | number)

10、布尔字段(RuntimeBooleanField) ​

继承:RuntimeModelField

属性:

  • options:选项。([RuntimeEnumerationOption, RuntimeEnumerationOption])

11、枚举字段(RuntimeEnumerationField) ​

继承:RuntimeModelField

属性:

  • options:选项列表。(RuntimeEnumerationOption[])

12、日期时间字段(RuntimeDateTimeField) ​

继承:RuntimeModelField

属性:

  • format:日期时间格式化字符串。(string)
  • valueFormat:值的格式化字符串。(string)
  • dateFormat:日期部分的格式化字符串。(string)
  • timeFormat:时间部分的格式化字符串。(string)

13、日期字段(RuntimeDateField) ​

继承:RuntimeModelField

属性:

  • format:格式化字符串。(string)
  • valueFormat:值的格式化字符串。(string)
  • dateFormat:日期部分的格式化字符串。(string)

14、时间字段(RuntimeTimeField) ​

继承:RuntimeModelField

属性:

  • format:格式化字符串。(string)
  • valueFormat:值的格式化字符串。(string)
  • timeFormat:时间部分的格式化字符串。(string)

15、年份字段(RuntimeYearField) ​

继承:RuntimeModelField

属性:

  • format:格式化字符串。(string)
  • valueFormat:值的格式化字符串。(string)

16、关系字段(RuntimeRelationField) ​

继承:RuntimeModelField

属性:

  • relationStore:是否关系存储。(boolean)
  • references:关联模型编码。(string)
  • referencesModel:关联模型。(RuntimeModel)
  • relationFields:关系字段(在当前模型中的字段)。(string[])
  • referenceFields:关联字段(在关联模型中的字段)。(string[])
  • filter:不可视过滤条件。(string)
  • domain:可视过滤条件。(string)
  • relationUpdateType:关联关系更新类型。(RelationUpdateType)
  • submitCache:提交缓存。(SubmitCacheManager)
  • sortFields:排序字段。(string[])

17、一对多关系字段(RuntimeO2MField) ​

继承:RuntimeRelationField

属性:

  • limit:限制数量。(number | string)

18、多对一关系字段(RuntimeM2OField) ​

继承:RuntimeRelationField

属性:同 RuntimeRelationField

19、多对多关系字段(RuntimeM2MField) ​

继承:RuntimeRelationField

属性:

  • through:多对多中间模型编码。(string)
  • throughRelationFields:多对多中间模型关系字段(与关系字段对应)。(string[])
  • throughReferenceFields:多对多中间模型关联字段(与关联字段对应)。(string[])
  • limit:限制数量。(string | number)

20、引用字段(RuntimeRelatedField) ​

继承:RuntimeModelField

属性:

  • relatedTtype:引用业务类型。(ModelFieldType)
  • related:引用属性。(string[])

21、搜索模型字段(RuntimeSearchField) ​

继承:RuntimeModelField

属性:

  • operator:操作符。(string)
  • allowSearch:是否允许搜索。(boolean)

22、动作(RuntimeAction) ​

继承:BaseRuntimeModelMetadata

属性:

  • template:原始 dsl。(ActionDslDefinition)
  • name:动作名称。(string)
  • widget:动作组件。(string)
  • actionType:动作类型。(ActionType)
  • contextType:动作上下文类型(用于控制数据提交方式)。(ActionContextType)
  • bindingType:绑定视图类型(表示该按钮仅在对应视图类型中显示)。(ViewType[])
  • bindingViewName:绑定视图名称(表示该按钮仅在指定名称的视图中显示)。(string)
  • priority:优先级。(number)
  • invisible:隐藏规则。(boolean | string)
  • disabled:禁用规则。(boolean | string)
  • displayName:字段显示名称。(string)
  • label:动作页面显示名称(优先于 displayName)。(string)
  • mapping:数据映射。(Record<string, unknown>)
  • context:上下文。(Record<string, unknown>)
  • sessionPath:会话路径。(string)

23、跳转动作(RuntimeViewAction) ​

继承:RuntimeAction

属性:

  • title:跳转动作标题。(string)
  • target:跳转类型。(ViewActionTarget)
  • filter:不可视过滤条件。(string)
  • domain:可视过滤条件。(string)
  • module:当前模块编码。(string)
  • moduleName:当前模块名称。(string)
  • moduleDefinition:当前模块定义。(RuntimeModule)
  • maskDefinition:母版定义。(RuntimeMaskDefinition)
  • viewLayout:当前视图布局定义。(RuntimeLayoutDefinition)
  • viewName:当前视图名称。(string)
  • viewType:当前视图类型。(ViewType)
  • viewMode:当前视图模式。(ViewMode)
  • resModel:目标模型编码。(string)
  • resModelName:目标模型名称。(string)
  • resModelDefinition:目标模型定义。(RuntimeModel)
  • resModule:目标模块编码。(string)
  • resModuleName:目标模块名称。(string)
  • resModuleDefinition:目标模块定义。(RuntimeModule)
  • resMaskDefinition:母版定义。(RuntimeMaskDefinition)
  • resViewLayout:目标视图布局定义。(RuntimeLayoutDefinition)
  • resViewName:目标视图名称。(string)
  • resViewType:目标视图类型。(ViewType)
  • resViewMode:目标视图模式。(ViewMode)
  • resView:目标视图定义。(RuntimeView)
  • theme:主题。(string)
  • load:加载函数名称。(string)
  • loadFunctionDefinition:加载函数定义。(RuntimeFunctionDefinition)

24、分享跳转动作(SharedRuntimeViewAction) ​

继承:RuntimeViewAction

属性:

  • sharedCode:分享码。(string)
  • authorizationCode:授权码。(string)
  • sharedParameters:分享参数。(Record<string, unknown>)
  • browserTitle:浏览器标题。(string)
  • language:当前语言。(string)
  • languageIsoCode:当前语言 ISO 编码。(string)

25、提交动作(RuntimeServerAction) ​

继承:RuntimeAction

属性:

  • fun:函数名称。(string)
  • functionDefinition:函数定义。(RuntimeFunctionDefinition)

26、链接动作(RuntimeUrlAction) ​

继承:RuntimeAction

属性:

  • url:跳转 url。(string)
  • target:打开方式。(ViewActionTarget)
  • computeFunction:计算函数。(RuntimeFunctionDefinition)
  • compute:计算函数 Fun。(string)

27、客户端动作(RuntimeClientAction) ​

继承:RuntimeAction

属性:

  • fun:客户端动作名。(string)

28、函数(RuntimeFunctionDefinition) ​

属性:

  • type:函数类型。(FunctionType[])
  • namespace:函数命名空间。(string | FunctionSelfFlagType)
  • fun:函数编码。(string)
  • name:API 名称。(string)
  • argumentList:参数列表。(RuntimeFunctionArgument[])
  • returnType:返回类型。(RuntimeFunctionReturnType)

(三)枚举 ​

1、模型类型(ModelType) ​

  • STORE:存储型模型,数据会持久化存储。
  • TRANSIENT:临时型模型,数据不持久化。
  • ABSTRACT:抽象型模型,用于继承。
  • PROXY:代理型模型,用于远程数据访问。

2、字段业务类型(ModelFieldType) ​

  • STRING:字符串类型。
  • TEXT:文本类型。
  • HTML:HTML 类型。
  • PHONE:电话类型。
  • EMAIL:邮箱类型。
  • INTEGER:整数类型。
  • LONG:长整型。
  • FLOAT:浮点数类型。
  • MONEY:货币类型。
  • DATETIME:日期时间类型。
  • DATE:日期类型。
  • TIME:时间类型。
  • YEAR:年份类型。
  • BOOLEAN:布尔类型。
  • ENUM:枚举类型。
  • MAP:映射类型。
  • RELATED:关联类型。
  • O2O:一对一关系。
  • O2M:一对多关系。
  • M2O:多对一关系。
  • M2M:多对多关系。
  • OBJ:对象类型。

3、数据来源(SystemSource) ​

  • SYSTEM:内核系统生成。
  • BASE:系统原生字段。
  • MANUAL:手工新增字段。
  • UI:界面新增字段。
  • RELATION:关联关系生成字段。
  • ABSTRACT_INHERITED:抽象继承而来。
  • TRANSIENT_INHERITED:临时继承而来。
  • EXTEND_INHERITED:同表继承而来。
  • MULTI_TABLE_INHERITED:多表继承而来。
  • PROXY_INHERITED:代理继承而来。

(四)获取运行时元数据方法 ​

1、ModuleCache ​

方法:

get ​

  • 功能描述:获取指定模块名称的缓存,可选择是否强制获取(忽略缓存)。
  • 类型:(moduleName: string, force?: boolean) => Promise<IModule | undefined>
  • 参数:
    • moduleName:模块名称。
    • force:强制查询,默认值 false。
  • 返回值:模块元数据。

2、ModelCache ​

方法:

get ​

  • 功能描述:通过模型编码获取模型。
  • 类型:(model: string, force?: boolean) => Promise<RuntimeModel | undefined>
  • 参数:
    • model:模型编码。
    • force:强制查询,默认值 false。
  • 返回值:模型元数据。

3、ViewActionCache ​

方法:

get ​

  • 功能描述:通过模型编码和跳转动作名称获取视图动作。
  • 类型:(model: string, name: string, force?: boolean) => Promise<RuntimeViewAction | undefined>
  • 参数:
    • model:模型编码。
    • name:跳转动作名称。
    • force:强制查询,默认值 false。
  • 返回值:跳转动作元数据。

getOrThrow ​

  • 功能描述:通过模型编码和跳转动作名称获取跳转动作,若不存在则抛出异常。
  • 类型:(model: string, name: string, force?: boolean) => Promise<RuntimeViewAction | undefined>
  • 参数:
    • model:模型编码。
    • name:跳转动作名称。
    • force:强制查询,默认值 false。
  • 返回值:跳转动作元数据。

getHomepage ​

  • 功能描述:获取模块首页跳转动作。
  • 类型:(module?: string, force?: boolean) => Promise<RuntimeViewAction | undefined>
  • 参数:
    • module:模块编码,可选。
    • force:强制查询,默认值 false。
  • 返回值:首页跳转动作。

getSharedAction ​

  • 功能描述:通过分享码获取分享跳转动作。
  • 类型:(sharedCode: string, force?: boolean) => Promise<RuntimeViewAction | undefined>
  • 参数:
    • sharedCode:分享码。
    • force:强制查询,默认值 false。
  • 返回值:分享跳转动作。

set ​

  • 功能描述:设置跳转动作。
  • 类型:(action: RuntimeViewAction) => Promise<void>
  • 参数:
    • action:跳转动作。

4、ServerActionCache ​

方法:

get ​

  • 功能描述:通过模型编码和名称获取提交动作。
  • 类型:(model: string, name: string, force?: boolean) => Promise<RuntimeServerAction | undefined>
  • 参数:
    • model:模型编码。
    • name:名称。
    • force:强制查询,默认值 false。
  • 返回值:提交动作元数据。

5、UrlActionCache ​

get ​

  • 功能描述:通过模型编码和名称获取链接动作。
  • 类型:(model: string, name: string, force?: boolean) => Promise<RuntimeUrlAction | undefined>
  • 参数:
    • model:模型编码。
    • name:名称。
    • force:强制查询,默认值 false。
  • 返回值:链接动作元数据。

6、FunctionCache ​

get ​

  • 功能描述:通过函数技术名称获取函数。
  • 类型:(namespace: string, fun: string) => Promise<RuntimeFunctionDefinition | undefined>
  • 参数:
    • namespace:命名空间。
    • fun:技术名称。
  • 返回值:函数元数据。

getByName ​

  • 功能描述:通过函数名称获取函数(此方式不安全,请尽可能使用FunctionCache.get方式)。
  • 类型:(namespace: string, name: string) => Promise<RuntimeFunctionDefinition | undefined>
  • 参数:
    • namespace:命名空间。
    • name:名称。
  • 返回值:函数元数据。
Pager
Previous pageVue UI
Next pageSPI Service
本页目录