cjd-parkball
Version:
> 中后台业务组件库,中后台就像公园,进入需要买门票(登录),所以以 Parkball(公园球) 命名,公园内必定捕获!作为一个组件库,提供使用方法文档,方便开发者的调用
90 lines (81 loc) • 1.52 kB
Markdown
order: 0
title: 基本用法
title_en: Basic usage
````jsx
import { DiffTable } from 'parkball';
const { Wrapper } = DiffTable
const statusMap = {
1: '状态1',
2: '状态2',
3: '状态3',
}
const from = {
name: '张三',
age: 20,
status: 1,
data: {
weight: '123kg',
height: null,
hobby: [
{
name: '运动',
order: 1,
}
]
}
}
const to = {
name: '李四',
age: 20,
status: 2,
data: {
weight: '234kg',
height: 300,
hobby: [
{
name: '运动',
order: 1,
}, {
name: '打游戏',
order: 2,
}
]
}
}
const diffKeys = [
{
title: '用户名称',
dataIndex: 'name',
}, {
title: '年龄',
dataIndex: 'age',
}, {
title: '身高',
dataIndex: 'data.height',
}, {
title: '体重',
dataIndex: 'data.weight',
}, {
title: '爱好',
dataIndex: 'data.hobby',
defaultValue: [],
renderFrom: fromVal => fromVal.map((t, i) => <div key={i}>{t.name}</div>),
renderTo: (fromVal, toVal) => toVal.map((t, i) => <Wrapper key={i} isDifferent={!fromVal.some(f => f.name === t.name)}>{t.name}</Wrapper>)
}, {
title: '状态',
dataIndex: 'status',
renderFrom: fromVal => statusMap[fromVal],
renderTo: (fromVal, toVal) => statusMap[toVal],
},
]
class Demo extends React.Component {
render() {
return (
<DiffTable diffKeys={diffKeys} from={from} to={to} />
);
}
}
ReactDOM.render(<Demo />, mountNode);
````