- 一月
- 二月
- 三月
- 四月
- 五月
- 六月
- 七月
- 八月
- 九月
- 十月
- 十一月
- 十二月
Components
<Grid>Use tableData prop to import table data.
Import Grid component from ssc-grid:import { Grid } from 'ssc-grid'
| 主键 | 单据编号 | 单据类型 | 金额 | 单据日期 | 启用 | 性别 | 组织 |
|---|---|---|---|---|---|---|---|
| 11 | 263X2016111400000081 | 会议费借款单 | 2.00 | 2016-11-14 | true | 男 | 委外部3 |
| 22 | D32016091200000022 | 付款单 | 12.00 | 2016-09-12 | false | 女 | 委外部2 |
| 33 | 263X2016083000000025 | 差旅费借款单 | 100.00 | 2016-08-30 | true |
使用paging参数显示分页
可以通过operationColumn参数来对操作列进行定制
operationColumn.align = left/right指定操作列在表格的左侧还是右侧
operationColumn.className指定操作列的CSS 类名
operationColumn.text指定操作列头的文字
| 主键 | 单据编号 | 金额 | 操作列 |
|---|---|---|---|
| 11 | 263X2016111400000081 | 2.00 | |
| 22 | D32016091200000022 | 12.00 | |
| 33 | 263X2016083000000025 | 100.00 |
操作按钮漂浮在某一列的上面
| 主键 | 单据编号 | 金额 | 启用 |
|---|---|---|---|
| 11 | 263X2016111400000081 | 2.00 | true |
| 22 | D32016091200000022 | 12.00 | false |
| 33 | 263X2016083000000025 | 100.00 | true |
使用selectRow参数显示行选择复选框/单选框
| 单据编号 | 金额 | |
|---|---|---|
| 263X2016111400000081 | 2.00 | |
| D32016091200000022 | 12.00 | |
| 263X20160830000000345 | 100.00 | |
| 263X2016083000002340025 | 10430.00 | |
| 263X201608300005600025 | 1400.00 | |
| 263X2016083000567000025 | 1070.00 | |
| 263X2016083000234000025 | 1800.00 |
带有分页的情况
onBeforeSelect回调
使用场景:表格其中一列定义为“启用状态”,类型为布尔,产品定义只有“已经启用”的行才能够 被勾选,当用户勾选“未启用”行时候,给出提示,并且不勾选复选框
| 主键 | 单据编号 | 金额 | 启用 | |
|---|---|---|---|---|
| 11 | 263X | 2.00 | false | |
| 22 | D320 | 12.00 | true | |
| 33 | 263X | 100.00 | false |
Initialize grid with selected rows
| 单据编号 | 金额 | |
|---|---|---|
| 263X2016111400000081 | 2.00 | |
| D32016091200000022 | 12.00 | |
| 263X20160830000000345 | 100.00 | |
| 263X2016083000002340025 | 10430.00 | |
| 263X201608300005600025 | 1400.00 | |
| 263X2016083000567000025 | 1070.00 | |
| 263X2016083000234000025 | 1800.00 |
Call select method from Ref to select row
this.gridRef.select(string colId, any colValue, boolean isSelected)
| 单据编号 | 金额 | |
|---|---|---|
| 263X2016111400000081 | 2.00 | |
| D32016091200000022 | 12.00 | |
| 263X20160830000000345 | 100.00 | |
| 263X2016083000002340025 | 10430.00 | |
| 263X201608300005600025 | 1400.00 | |
| 263X2016083000567000025 | 1070.00 | |
| 263X2016083000234000025 | 1800.00 |
定义列的className,方便添加样式,比如定义列宽
在传入的参数columnsModel中添加columnClassName来定义HTML class。 会被添加到<th>上。
比如下面例子中,可以通过为.table-head-jine添加样式来设定列宽
th.table-column-jine {
width: 300px;
}
td.table-column-jine {
font-style: italic;
}| 名称 | 单据编号 | 金额 | 单据日期 | 启用 |
|---|---|---|---|---|
| 测试名称1 | 263X2016111400000081 | 2.00 | 2016-11-14 | true |
| 测试名称2 | D32016091200000022 | 12.00 | 2016-09-12 | false |
| 测试名称3 | 263X2016083000000025 | 100.00 | 2016-08-30 | true |
The align attribute of columnsModel specifies the horizontal alignment of the content in all cells in one column. align: 'right' is the shorthand or columnClassName: 'text-right'
提供三种对齐方式:left, center, right
对于type: 'double'的情况,默认使用右对齐
| 主键(left) | 单据编号(center) | 金额(left) | 金额(default) | 单据日期(center) | 启用(left) | 组织(center) |
|---|---|---|---|---|---|---|
| 11 | 263X2016111400000081 | 2.00 | 2.00 | 2016-11-14 | true | |
| 22 | D32016091200000022 | 12.00 | 12.00 | 2016-09-12 | false | |
| 33 | 263X2016083000000025 | 100.00 | 100.00 | 2016-08-30 | true |
The align attribute will override the default alignment for cells. And the columnClassName attribute will override all other alignments.
| Money | Money(align: left) | Money(align: center) |
|---|---|---|
| 1 | 1 | 1 |
在传入的参数columnsModel中添加formatter来指定单元格的格式化方式
不同的类型有不同的格式化参数
对于date类型,直接使用moment().format()进行格式化 所以具体参数请参照Moment.js文档
货币格式化参照Numeral.js文档
| 主键 | 单据编号 | 金额 | 金额2 | 金额3 | 单据日期 | 单据日期2 | 单据日期3 | 启用 |
|---|---|---|---|---|---|---|---|---|
| 11 | 263X2016111400000081 | 2.00 | 2.00 | ¥2.00 | 2016-11-14 | 2016-11-14 | 星期一, 十一月 14日 2016, 8:00:00 早上 | 启用 |
| 22 | D32016091200000022 | 12.00 | 12.00 | ¥12.00 | 2016-09-12 | 2016-09-12 | 星期一, 九月 12日 2016, 8:00:00 早上 | 禁用 |
| 33 | 263X2016083000000025 | 21100.00 | 21,100.00 | ¥21,100.00 | 2016-08-30 | 2016-08-30 | 星期二, 八月 30日 2016, 8:00:00 早上 | 启用 |
| 主键 | 单据编号 | 单据类型 | 金额 | 单据日期 | 启用 | 性别 | 组织 |
|---|---|---|---|---|---|---|---|
| 11 | 263X2016111400000081 | 会议费借款单 | 2.00 | 2016-11-14 | true | 男 | |
| 22 | D32016091200000022 | 付款单 | 12.00 | 2016-09-12 | false | 女 | |
| 33 | 263X2016083000000025 | 差旅费借款单 | 100.00 | 2016-08-30 | true | 男 |
沿用bootstrap的样式,具体参照Striped rows等
通过添加bordered为表格和其中的每个单元格增加边框。
通过添加striped可以给表体之内的每一行增加斑马条纹样式。
通过添加condensed可以让表格更加紧凑,单元格中的内补(padding)均会减半。
通过添加hover可以让表体中的每一行对鼠标悬停状态作出响应
| 主键 | 单据编号 | 单据类型 | 金额 | 单据日期 | 启用 | 性别 | 组织 |
|---|---|---|---|---|---|---|---|
| 11 | 263X2016111400000081 | 会议费借款单 | 2.00 | 2016-11-14 | true | 男 | |
| 22 | D32016091200000022 | 付款单 | 12.00 | 2016-09-12 | false | 女 | |
| 33 | 263X2016083000000025 | 差旅费借款单 | 100.00 | 2016-08-30 | true | 男 |
演示传入空值
第一行所有列都没有数据,比如{}
第二行所有列都是undefined,比如{"name": undefined, "code": undefined}
第三行所有列都是null,比如{"name": undefined, "code": undefined}
| 主键 | 单据编号 | 单据类型 | 金额 | 单据日期 | 启用 | 性别 | 组织 |
|---|---|---|---|---|---|---|---|
The event handlers below are all triggered by events in the bubbling phase.
This means onCellClick will be called before onCellClick,
because onCellClick is registered on td tag
and onCellClick is registered on tr tag.
| ID | Note ID | Money |
|---|---|---|
| 11 | 263X2016111400000081 | 2.00 |
| 22 | D3201609120000000022 | 12.00 |
| 33 | 263X2016083000000025 | 100.00 |
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| activePage | number | 当前页面号 | |
| bordered | boolean | false | 直接映射ReactBootstrap的属性 http://getbootstrap.com/css/#tables-bordered |
| columnsModel required | array<> | object | 表格模型,表头每一列的名称和类型,比如:
隐藏列
自定义格式化
| |
| condensed | boolean | false | 直接映射ReactBootstrap的属性 http://getbootstrap.com/css/#tables-condensed |
| hover | boolean | false | 直接映射ReactBootstrap的属性 http://getbootstrap.com/css/#tables-hover-rows |
| localSearch | boolean | 是否显示搜索框 | |
| notDataText | string | element | '暂无数据' | 数据为空数组时 [] ,暂无数据 |
| onCellChecked | function | 选择一个单元格 | |
| onCellClick | function | A callback fired when the table cell is clicked.
| |
| onCellDoubleClick | function | 单元格双击事件
| |
| onPagination | function | 分页 | |
| onRowClick | function | 行单击事件 | |
| onRowDoubleClick | function | 行双击事件 | |
| onSearchChange | function | 当搜索框内容改变的时候 | |
| operationColumn | object | null | 每一行是否显示操作按钮列
默认的操作按钮在最右侧的列中,如果需要指定在左侧,可以通过
注意:当操作列和选择列同时存在的时候,选择列会显示在操作列的左侧 |
| operationColumnClass | elementType | 'td' | 自定义的操作列组件
除非指定了 |
| paging | boolean | false | 是否显示分页 |
| rowClassName | array<string> | [] | 行类名,比如
|
| selectRow | object | null | 是否启用行选择,复选框/单选框
默认为
mode选项
onBeforeSelect()回调当单行的复选框/单选框的值发生改变的时候触发,如果函数返回非
onSelectAll()回调
当点击表头复选框值发生改变的时候触发,
当行被选中的时候,组件会自动往被选中的行添加 |
| striped | boolean | false | 直接映射ReactBootstrap的属性 http://getbootstrap.com/css/#tables-striped |
| tableClassName | string | '' | 表格内部样式名 |
| tableData required | array<> | object | 表格填充数据
| |
| totalPage | number | 页面数量 |
No description.
No description.
Call submit() from ref, will show validation state on form controls, then if successing in validation, will call onSubmit() callback.
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| cancelLabel | string | 取消按钮文本 | |
| defaultData | object | 填充表单值 | |
| fieldsModel required | array<object> | object | 表单中的数据 fieldsModel数据举例:
schema为
type字段字段类型type:
string字符型
custom 自定义类型
对于自定义类型,需要调用者传入一个组件,表单在回调该组件的时候,传入如下属性:
enum枚举型
ref参照型字段定义举例:
所有
关于 validators字段校验类型,比如
schema为:
当 disabled字段当值为 | |
| layout | object | 自定义布局(bootstrap列布局) 具体参照:https://react-bootstrap.github.io/components.html#grid-props-col
| |
| okLabel | string | 确定按钮文本 | |
| onChange | function | 当控件的值发生改变的时候触发
| |
| onReset | function | 当点击“重置”按钮的时候 | |
| onSubmit | function | 当表单被提交的时候触发 | |
| showSubmitButton | boolean | true | 是否显示提交按钮 |
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| disabled | boolean | 是否禁用输入框 | |
| onBlur | function | 当光标离开输入框 | |
| onChange | function | 当文本框内容被修改时候调用 | |
| onFocus | function | 当文本框被聚焦 | |
| onKeyDown | function | ||
| placeholder | string | 文本框占位字符 | |
| value | string | number | '' | 文本框中显示的值
TODO |
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| dateFormat | string | 'YYYY-MM-DD' | 日期格式,支持如下集中格式 |
| id | string | ||
| onChange | function | ||
| value | string | value |
<DatePicker2>DatePicker2组件是对react-datepicker的封装, 如果您对本封装不满意,可以直接使用react-datepicker组件。
导入方法:import { DatePicker2 } from 'ssc-grid'
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| calendarClassName | string | ||
| className | string | ||
| dateFormat | string | 'YYYY-MM-DD' | 日期格式 |
| disabled | boolean | ||
| isClearable | boolean | ||
| locale | string | 'zh-CN' | |
| onChange | function | 参数:
| |
| showMonthDropdown | boolean | ||
| showYearDropdown | boolean | ||
| todayButton | string | ||
| value | string | value 请使用ISO 8061格式 |
<MonthPicker>导入方法:import { MonthPicker } from 'ssc-grid'
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| monthFormat | string | 'YYYY-MM' | 日期格式 请参照Moment.js文档中的日期格式 比如: |
| onChange | function | 参数
| |
| value | string | null | 月份
格式: |
<YearPicker>导入方法:import { YearPicker } from 'ssc-grid'
| 2000 | 2001 | 2002 | 2003 | 2004 |
| 2005 | 2006 | 2007 | 2008 | 2009 |
| 2010 | 2011 | 2012 | 2013 | 2014 |
| 2015 | 2016 | 2017 | 2018 | 2019 |
| 2020 | ||||
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| onChange | function | 参数
| |
| value | string | null | 年
格式: |
| yearFormat | string | 'YYYY' | 日期格式 请参照Moment.js文档中的日期格式 比如: |
<Tree>导入方法:import { Tree } from 'ssc-grid'
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| treeData required | array<> | 生成树所需要的JSON数据 |
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| data required | array<> | 填充下拉菜单的数据
| |
| defaultTitle required | string | ||
| dropdownId required | string | ||
| onSelect | function | 当从下拉菜单选择一项的时候 |
<ValidateInput>通过指定validators属性,<ValidateInput>组件支持如下内置校验类型:
currency: 货币decimal: 数字email: 电子邮件地址int: 整数length: 字符长度mobilePhone: 手机号required: 必输项通过指定参数type: 'email'来指定校验类型为Email地址
[
{
type: 'email',
}
]使用内置校验类型,默认的提示信息也是内置的。如果需要自定义提示信息,可以使用helpText
比如对字符长度做校验
[
{
type: 'length',
options: { min: 3, max: 6 },
helpText: (value, validator) =>
'自定义提示:' +
'您输入的邮件地址是:${value},' +
'请确保邮件地址长度在${validatos.options.min}和${validatos.options.max}之间',
}
]validators属性的类型是数组,也就是支持多重校验
比如校验email类型,并且字符长度在3到6范围内
[
{
type: 'email',
},
{
type: 'length',
options: { min: 3, max: 6 },
},
]通过指定type: 'custom'还可以使用自定义校验,然后提供校验函数
[
{
type: 'custom',
matchFunc: value => value.length > 5,
helpText: (value, validator) =>
'自定义提示:' +
'您输入的文字是:${value},字符长度必须大于5',
}
]验证货币格式
验证数字格式
验证邮箱格式
验证整数格式
验证手机号
验证邮箱格式,使用自定义错误提示
自定义验证格式,使用自定义错误提示
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| controlId | string | To ensure accessibility, set controlId on | |
| disabled | boolean | 是否禁用输入框 | |
| onBlur | function | 当光标离开输入框 | |
| onChange | function | 当文本框内容被修改时候调用 | |
| onFocus | function | 当文本框被聚焦 | |
| placeholder | string | 文本框占位字符 | |
| validators required | array<object | object | object> | [] | 带有校验功能的输入框
场景1:使用内置校验(定义在
|
| value | string | '' | 文本框中显示的值
注意:由于文本框是完全自由输入的,所以value的类型,以及在matchFunc回调函数的value参数的类型
都是string,具体参照https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement
文档中关于 |
<ValidateRefers>通过指定validators属性,<ValidateInput>组件支持如下内置校验类型:
required: 必输项通过指定参数type: 'required'来指定校验类型为必输项
[
{
type: 'required',
}
]使用内置校验类型,默认的提示信息也是内置的。如果需要自定义提示信息,可以使用helpText
比如对字符长度做校验
[
{
type: 'required',
helpText: (value, validator) =>
'自定义提示:' +
'您输入的内容是:${value},',
}
]通过指定type: 'custom'还可以使用自定义校验,然后提供校验函数
[
{
type: 'custom',
matchFunc: value => value.length > 5,
helpText: (value, validator) =>
'自定义提示:' +
'您输入的文字是:${value},字符长度必须大于5',
}
]验证必选字段
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| controlId | string | To ensure accessibility, set controlId on | |
| disabled | boolean | 是否禁用输入框 | |
| labelKey | string | 请参照参照文档https://ssc-refer.github.io/ | |
| multiple | boolean | 是否多选 | |
| onBlur | function | 当光标离开输入框 | |
| onChange | function | 当文本框内容被修改时候调用 | |
| onFocus | function | 当文本框被聚焦 | |
| placeholder | string | 文本框占位字符 | |
| referConditions required | object | 参照配置参数
| |
| referDataUrl required | string | referDataUrl: "http://172.20.4.220/ficloud/refbase_ctr/queryRefJSON"; | |
| renderMenuItemChildren | function | 自定义参照下拉列表 | |
| selected required | array<object> | [] | 参照初始值 |
| validators | array<object> | [] | 带有校验功能的输入框 |
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| controlId | string | To ensure accessibility, set controlId on | |
| disabled | boolean | 是否禁用输入框 | |
| errorMsg | string | '请填写数字!' | 校验错误时候提示信息 |
| max | number | null | |
| min | number | null | |
| nullMsg | string | '不能为空!' | 当文本框为空的显示的提示信息 |
| onBlur | function | 当光标离开输入框 | |
| onChange | function | 当文本框内容被修改时候调用 | |
| onFocus | function | 当文本框被聚焦 | |
| placeholder | string | 文本框占位字符 | |
| required | boolean | false | Required field |
| value | string | '' | 文本框中显示的值
注意:由于文本框是完全自由输入的,所以value的类型,以及在matchFunc回调函数的value参数的类型
都是string,具体参照https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement
文档中关于 |