1.1.0 • Published 5 years ago

igroot-edit-table v1.1.0

Weekly downloads
13
License
MIT
Repository
-
Last release
5 years ago

可编辑表格

安装

npm

 npm install igroot-edit-table 

yarn

	yarn add igroot-edit-table

预览地址

https://playground-qguznsibkb.now.sh

扩展的属性

使用 renderFrom 方式来渲染表单项目,此方法居于render扩展,给出一个回调和一个可编辑表格的表单值。

 (text: any, record: T, index: number, onChange: onChange, formValue: formValue): React.ReactNode;

配置示例

const columns: EditColumnProps<IUser>[] = [
	{
		title: "name",
		dataIndex: "name",
		renderForm: (value, row, index, onChange, formValue) => <Input value={value} onChange={e => {
			if (formValue) {
				formValue[index].cname = "可编辑表格"
			}
			onChange(e.target.value)
		}
		} />,
	},
	{
		title: "可受控的表单项目cname",
		dataIndex: "cname",
		initValue: "默认值",
		renderForm: (value, row, index, onChange) => <Input value={value} onChange={e => onChange(e.target.value)} />,
	},
	{
		title: "下拉表单",
		dataIndex: "options",
		initValue: "2",
		renderForm: (value, row, index, onChange) => <Select value={value} onChange={onChange}>
			<Select.Option key="1">第一</Select.Option>
			<Select.Option key="2">第二</Select.Option>
			<Select.Option key="3">第三</Select.Option>
			<Select.Option key="4">第四</Select.Option>
			<Select.Option key="5">第五</Select.Option>
			<Select.Option key="6">第六</Select.Option>
		</Select>
	},
	{
		title: "日期控件",
		dataIndex: "date",
		renderForm: (value, row, index, onChange) => <DatePicker value={value} onChange={onChange} />
	},
	{
		title: "根据表单项生成的展示数据showDate",
		dataIndex: "showDate",
		render: (value, row) => {
			if (row.date) {
				return row.date.format()
			} else {
				return "暂未选择"
			}
		}
	},
]

完整示例

import * as React from 'react'
import EditTable, { EditColumnProps } from 'igroot-edit-table'
import { Button, Card, Input, Form, Select, DatePicker } from 'igroot'
import { FormComponentProps } from 'igroot/lib/form';
import * as moment from 'moment';
import './index.less'
interface IUser {
	key: number
	name: string
	cname: string
	date: moment.Moment | undefined
}
const columns: EditColumnProps<IUser>[] = [
	{
		title: "name",
		dataIndex: "name",
		renderForm: (value, row, index, onChange, formValue) => <Input value={value} onChange={e => {
			if (formValue) {
				formValue[index].cname = "可编辑表格"
			}
			onChange(e.target.value)
		}
		} />,
	},
	{
		title: "可受控的表单项目cname",
		dataIndex: "cname",
		initValue: "默认值",
		renderForm: (value, row, index, onChange) => <Input value={value} onChange={e => onChange(e.target.value)} />,
	},
	{
		title: "下拉表单",
		dataIndex: "options",
		initValue: "2",
		renderForm: (value, row, index, onChange) => <Select value={value} onChange={onChange}>
			<Select.Option key="1">第一</Select.Option>
			<Select.Option key="2">第二</Select.Option>
			<Select.Option key="3">第三</Select.Option>
			<Select.Option key="4">第四</Select.Option>
			<Select.Option key="5">第五</Select.Option>
			<Select.Option key="6">第六</Select.Option>
		</Select>
	},
	{
		title: "日期控件",
		dataIndex: "date",
		renderForm: (value, row, index, onChange) => <DatePicker value={value} onChange={onChange} />
	},
	{
		title: "根据表单项生成的展示数据showDate",
		dataIndex: "showDate",
		render: (value, row) => {
			if (row.date) {
				return row.date.format()
			} else {
				return "暂未选择"
			}
		}
	},
]

class App extends React.Component<FormComponentProps> {
	public test = () => {
		const { getFieldsValue } = this.props.form
		console.log(getFieldsValue());
	}
	componentDidMount() {

		const { setFieldsValue } = this.props.form
		setFieldsValue({
			demos: [
				{ cname: "setFieldsValuesh设置的值", name: "igroot-edit-table" },
				{ cname: "setFieldsValuesh设置的值", name: "igroot-edit-table" },
				{ cname: "setFieldsValuesh设置的值", name: "igroot-edit-table" }
			]
		})
	}
	render() {
		const { getFieldDecorator } = this.props.form
		return (
			<Card title='可编辑表格示例'>
				<Form>
					{getFieldDecorator("demos")(
						<EditTable<IUser>
							columns={columns}
						/>
					)}
				</Form>
				<Button style={{ marginTop: 5 }} onClick={this.test}>获取表单值</Button>
			</Card>
		)
	}
}

export default Form.create()(App)
1.1.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.5

5 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago