UI模板

模板是来描述UI的JSON数据,业务开发在开发前端页面之前,首先要配置好界面模板。

1. 模板加载方法

平台提供了createUIDom用于加载界面模板、按钮、上下文信息context等JSON数据 使用createPage包装过的业务组件,可以通过props.createUIDom 方法加载到模板数据,示例代码如下:

  1. import React, { Component } from 'react';
  2. import { createPage } from 'nc-lightapp-front';
  3. class Order extends Component {
  4. constructor(props) {
  5. super(props);
  6. this.initMeta()
  7. }
  8. initMeta = () => {
  9. this.props.createUIDom({
  10. pagecode: "452000504A_list" //页面编码
  11. },(data)=>{
  12. if(data){
  13. if(data.template){ //模板数据
  14. props.meta.setMeta(data.template)
  15. }
  16. if(data.button){ //按钮数据
  17. props.button.setButtons(data.button)
  18. }
  19. //context数据: data.context
  20. }
  21. })
  22. }
  23. render(){
  24. return (
  25. //界面视图
  26. )
  27. }
  28. createPage({})(Order);
  29. }

2.模板与应用组件关系

模板每个区域对应一个UI组件 如:表单类型的区域,对应Form应用组件(组件使用文档链接);表格类型的区域,对应Table应用组件
如下图:
json.png
模板每个区域与应用组件之间,通过区域编码对应。 应用组件渲染时,根据业务组传的区域编码参数,取到模板上对该区域的描述数据,进行组件渲染。

3.区域属性描述

模板目前支持三种类型的区域:表单、表格、查询区 描述区域的属性如下表:

属性 说明 类型 默认值 备注
name 区域名称 String
code 区域编码 String
relationcode 关联区域编码 String
moduletype 区域类型 String
items 区域中所有字段UI描述 Array 详见4.模板区域字段描述
areaVisible 区域是否显示 Boolean true
isunfold 区域是否折叠 Boolean true
oid 区域id String
isnotmeta Boolean false

4.字段属性描述

区域中 items 为数组结构,每一个元素,对应区域每个字段。 区域中每个字段的属性说明如下:

属性 说明 类型 默认值 备注
label 名称 String
attrcode 编码 String
visible 是否显示 Boolean
itemtype 控件类型 String 详见表4.2
required 是否必输 Boolean
disabled 是否可编辑 Boolean
hyperlinkflag 是否为超链接 Boolean 字段浏览态有效
rows 占多少行 Number 1 表单有效
colnum 占多少列 Number 1 表单有效
isnextrow 是否另起一行 Boolean false 表单有效
editAfterFlag 是否配置编辑公式 Boolean false 表单表格字段编辑态有效
initialvalue 字段默认值 Object 表单表格新增态默认值
color label字体颜色 String ‘#111111’
scale 精度 Number 0 数值型(number)字段有效
maxlength 最大录入长度 Number 文本录入型(input/number/textarea)字段有效
min 最小值 Number 数值型(number)字段有效
max 最大值 Number 数值型(number)字段有效
refcode 参照编码 String 参照(refer)字段有效
options 枚举项 Array 枚举(select)字段有效

控件类型 itemtype 说明

目前支持的控件类型有 10 种,类型说明如下表

类型值 说明 备注
input 文本输入框
number 数值输入框 只可以录入数值
textarea 文本域
select 下拉单选框
radio 单选
checkbox 复选
checkbox_switch 复选开关 表示是/否的复选框,复选框后不含文字
switch 开关 编辑态为可选开关、浏览态显示是否
switch_browse 开关 编辑态不可编辑开关、浏览态为可编辑开关
label 纯文本 文本 不能编辑
refer 参照
residtxt 多语文本输入框
password 密码输入框
timepicker 时间选择器 如 ‘12:00:00’
datepicker 日期选择器 日期由用户选择,时间为选择日期时的时间,如:’2019-10-30 09:25:04’
datetimepicker 日期时间选择器 日期、时间都由用户选择, 如:’2019-10-30 09:00:00
NCTZDatePickerStart 开始日期 日期由用户选择,时间固定开始时间, 如:’2019-10-30 00:00:00’
NCTZDatePickerEnd 结束日期 日期由用户选择,时间固定结束时间, 如:’2019-10-30 23:59:59’
NCTZDatePickClientHourTime 日期选择器 ——
datePickerNoTimeZone 不转时区的日期选择器 日期由用户选择,时间为选择日期时的时间,如:’2019-10-30 09:25:04’
rangepicker 日期范围选择器 日期由用户选择,时间为选择日期时的时间,如:’2019-10-30 09:25:04_2019-11-30 09:25:38’
NCTZDatePickerRangeDay 固定时间范围日期选择器 日期由用户选择,时间固定为开始和结束时间, 如’2019-09-30 00:00:00_2019-09-30 23:59:59’