Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wanjj_1210
ant-design
提交
f247297f
A
ant-design
项目概览
wanjj_1210
/
ant-design
与 Fork 源项目一致
从无法访问的项目Fork
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
ant-design
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f247297f
编写于
3月 16, 2016
作者:
A
afc163
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix children row selection, close #1212
上级
0a1d3bdd
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
46 addition
and
16 deletion
+46
-16
components/table/demo/expand-children.md
components/table/demo/expand-children.md
+16
-1
components/table/index.jsx
components/table/index.jsx
+15
-10
components/table/util.js
components/table/util.js
+15
-0
style/components/table.less
style/components/table.less
+0
-5
未找到文件。
components/table/demo/expand-children.md
浏览文件 @
f247297f
...
...
@@ -4,6 +4,8 @@
表格支持树形数据的展示,可以通过设置
`indentSize`
以控制每一层的缩进宽度。
> 注:暂不支持父子数据递归关联选择。
---
````
jsx
...
...
@@ -77,8 +79,21 @@ const data = [{
address
:
'
我是b
'
,
}];
// 通过 rowSelection 对象表明需要行选择
const
rowSelection
=
{
onChange
(
selectedRowKeys
,
selectedRows
)
{
console
.
log
(
`selectedRowKeys:
${
selectedRowKeys
}
`
,
'
selectedRows:
'
,
selectedRows
);
},
onSelect
(
record
,
selected
,
selectedRows
)
{
console
.
log
(
record
,
selected
,
selectedRows
);
},
onSelectAll
(
selected
,
selectedRows
,
changeRows
)
{
console
.
log
(
selected
,
selectedRows
,
changeRows
);
}
};
ReactDOM
.
render
(
<
Table
columns
=
{
columns
}
dataSource
=
{
data
}
indentSize
=
{
20
}
/>,
<
Table
columns
=
{
columns
}
rowSelection
=
{
rowSelection
}
dataSource
=
{
data
}
/>,
mountNode
);
````
components/table/index.jsx
浏览文件 @
f247297f
...
...
@@ -8,6 +8,7 @@ import Icon from '../icon';
import
objectAssign
from
'
object-assign
'
;
import
Spin
from
'
../spin
'
;
import
classNames
from
'
classnames
'
;
import
{
flatArray
}
from
'
./util
'
;
function
noop
()
{
}
...
...
@@ -78,7 +79,7 @@ let AntTable = React.createClass({
if
(
!
this
.
props
.
rowSelection
||
!
this
.
props
.
rowSelection
.
getCheckboxProps
)
{
return
[];
}
return
this
.
getCurrentPageData
()
return
this
.
get
Flat
CurrentPageData
()
.
filter
(
item
=>
this
.
props
.
rowSelection
.
getCheckboxProps
(
item
).
defaultChecked
)
.
map
((
record
,
rowIndex
)
=>
this
.
getRecordKey
(
record
,
rowIndex
));
},
...
...
@@ -110,7 +111,7 @@ let AntTable = React.createClass({
this
.
setState
({
selectedRowKeys
});
}
if
(
this
.
props
.
rowSelection
&&
this
.
props
.
rowSelection
.
onChange
)
{
const
data
=
this
.
getCurrentPageData
();
const
data
=
this
.
get
Flat
CurrentPageData
();
const
selectedRows
=
data
.
filter
(
(
row
,
i
)
=>
selectedRowKeys
.
indexOf
(
this
.
getRecordKey
(
row
,
i
))
>=
0
);
...
...
@@ -194,7 +195,7 @@ let AntTable = React.createClass({
});
this
.
setSelectedRowKeys
(
selectedRowKeys
);
if
(
this
.
props
.
rowSelection
.
onSelect
)
{
let
data
=
this
.
getCurrentPageData
();
let
data
=
this
.
get
Flat
CurrentPageData
();
let
selectedRows
=
data
.
filter
((
row
,
i
)
=>
{
return
selectedRowKeys
.
indexOf
(
this
.
getRecordKey
(
row
,
i
))
>=
0
;
});
...
...
@@ -214,7 +215,7 @@ let AntTable = React.createClass({
});
this
.
setSelectedRowKeys
(
selectedRowKeys
);
if
(
this
.
props
.
rowSelection
.
onSelect
)
{
let
data
=
this
.
getCurrentPageData
();
let
data
=
this
.
get
Flat
CurrentPageData
();
let
selectedRows
=
data
.
filter
((
row
,
i
)
=>
{
return
selectedRowKeys
.
indexOf
(
this
.
getRecordKey
(
row
,
i
))
>=
0
;
});
...
...
@@ -224,7 +225,7 @@ let AntTable = React.createClass({
handleSelectAllRow
(
e
)
{
const
checked
=
e
.
target
.
checked
;
const
data
=
this
.
getCurrentPageData
();
const
data
=
this
.
get
Flat
CurrentPageData
();
const
defaultSelection
=
this
.
state
.
selectionDirty
?
[]
:
this
.
getDefaultSelection
();
const
selectedRowKeys
=
this
.
state
.
selectedRowKeys
.
concat
(
defaultSelection
);
const
changableRowKeys
=
data
.
filter
(
item
=>
...
...
@@ -334,7 +335,7 @@ let AntTable = React.createClass({
renderRowSelection
()
{
let
columns
=
this
.
props
.
columns
.
concat
();
if
(
this
.
props
.
rowSelection
)
{
let
data
=
this
.
getCurrentPageData
().
filter
((
item
)
=>
{
let
data
=
this
.
get
Flat
CurrentPageData
().
filter
((
item
)
=>
{
if
(
this
.
props
.
rowSelection
.
getCheckboxProps
)
{
return
!
this
.
props
.
rowSelection
.
getCheckboxProps
(
item
).
disabled
;
}
...
...
@@ -501,8 +502,8 @@ let AntTable = React.createClass({
return
this
.
props
.
columns
.
filter
(
c
=>
this
.
getColumnKey
(
c
)
===
myKey
)[
0
];
},
getCurrentPageData
(
dataSource
)
{
let
data
=
this
.
getLocalData
(
dataSource
);
getCurrentPageData
()
{
let
data
=
this
.
getLocalData
();
let
current
;
let
pageSize
;
let
state
=
this
.
state
;
...
...
@@ -526,9 +527,13 @@ let AntTable = React.createClass({
return
data
;
},
getLocalData
(
dataSource
)
{
getFlatCurrentPageData
()
{
return
flatArray
(
this
.
getCurrentPageData
());
},
getLocalData
()
{
let
state
=
this
.
state
;
let
data
=
dataSource
||
this
.
props
.
dataSource
||
[];
let
data
=
this
.
props
.
dataSource
||
[];
// 排序
if
(
state
.
sortOrder
&&
state
.
sorter
)
{
data
=
data
.
slice
(
0
);
...
...
components/table/util.js
0 → 100644
浏览文件 @
f247297f
export
function
flatArray
(
data
=
[],
childrenName
=
'
children
'
)
{
const
result
=
[];
const
loop
=
(
array
)
=>
{
array
.
forEach
(
item
=>
{
const
newItem
=
{
...
item
};
delete
newItem
[
childrenName
];
result
.
push
(
newItem
);
if
(
item
[
childrenName
]
&&
item
[
childrenName
].
length
>
0
)
{
loop
(
item
[
childrenName
]);
}
});
};
loop
(
data
);
return
result
;
}
style/components/table.less
浏览文件 @
f247297f
...
...
@@ -333,11 +333,6 @@
}
}
// Hide selection component in children data
&[class*="@{table-prefix-cls}-row-level-"] .@{table-prefix-cls}-selection-column > span {
display: none;
}
&[class*="@{table-prefix-cls}-row-level-0"] .@{table-prefix-cls}-selection-column > span {
display: inline-block;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录