UNPKG

@aliretail/react-materials-components

Version:
139 lines (127 loc) 5.32 kB
--- title: TableX - 表格 order: 150 --- ```jsx import React, { useState } from 'react'; import ReactDOM from 'react-dom'; import { FormComponents } from '@aliretail/react-materials-components'; const { setup, AliretailTableDefaultPageSizeList, SchemaForm, SchemaMarkupField: Field, FormEffectHooks, createFormActions, } = FormComponents; setup(); const { onFieldMount$ } = FormEffectHooks; const App = () => { const [pageNo, setPageNo] = useState(1); const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [pageSize, setPageSize] = useState(AliretailTableDefaultPageSizeList[0]); const onSelectionChange = (newKeys) => { setSelectedRowKeys(newKeys); }; return ( <SchemaForm onChange={console.log} defaultValue={{ table: [ { id: '130100', // 叶子节点编号 name: '河北省/石家庄市', // 当前地址名称 children: [{ name: '子表格名称1' }, { name: '子表格名称2' }], }, { id: '130101', // 叶子节点编号 name: '河北省/石家庄市', // 当前地址名称 children: [{ name: '子表格名称1' }, { name: '子表格名称2' }], }, { id: '130102', // 叶子节点编号 name: '河北省/石家庄市', // 当前地址名称 children: [{ name: '子表格名称1' }, { name: '子表格名称2' }], }, ], }} effects={() => { const { setFieldState, getFieldState, getFormGraph } = createFormActions(); onFieldMount$('table').subscribe((payload) => { console.log('初始化', payload); setFieldState('table', (state) => { // 设置到第二页面 setPageNo(2); }); }); }} schema={{ type: 'object', properties: { table: { type: 'object', 'x-component': 'TableX', 'x-component-props': { columns: [ { dataIndex: 'id', title: '叶子节点编号', }, { dataIndex: 'name', title: '当前地址名称', }, ], rowSelection: { selectedRowKeys, onChange: onSelectionChange, }, paginationProps: { current: pageNo, pageSize, onChange: (page) => { setPageNo(page); console.log('跳到第几页:' + page); }, onPageSizeChange: (size) => { setPageSize(size); console.log('每页显示数量修改:' + size); }, total: 90, }, }, properties: { // 操作区域的按钮 actionBar: { type: 'object', properties: { input: { 'x-component': 'Input', }, }, }, }, }, }, }} /> ); }; ReactDOM.render(<App />, mountNode); ``` ### TableX 拓展属性 | 拓展字段 | 类型 | 默认值 | 备注 | | :--------------------------------- | :------------------- | :--------- | :-------------------------------------------- | | showTableSetting | `boolean` | false | 是否显示 tablecell 控制器等设置 | | paginationProps | `object` | undefined | 同 TableX 的参数支持 | | className | `string` | undefined | 同 TableX 的参数支持 | | dataSource | `object[]` | [] | 显示的数据源 | | rowSelection | `object` | undefinded | 是否支持每个 item 的勾选 同 TableX 的参数支持 | | 'x-component-props'.readOnlyRender | (props) => ReactNode | | 用于覆盖默认的预览状态 | #### TableX.rowSelection 只列了部分常用字段,具体字段请参考 TableX | 拓展字段 | 类型 | 默认值 | 备注 | | :-------------- | :--------- | :---------------------------------------------------------------- | :--------------------------------------------------------------------------- | | selectedRowKeys | `array` | [] | 设置了此属性,将 rowSelection 变为受控状态,接收值为该行数据的 primaryKey 的值 | | onChange | `function` | `() => {}` | 当勾选内容改变时的事件 | | mode | `string` | 选择 selection 的模式, 可选值为 single, multiple,默认为 multiple |