Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
sage-front-framework
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
郁骅焌
sage-front-framework
Commits
b28f8c7f
提交
b28f8c7f
authored
7月 02, 2020
作者:
郁骅焌
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提交
上级
ca6810f8
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
81 行增加
和
50 行删除
+81
-50
index.jsx
src/components/Common/Table/index.jsx
+81
-50
没有找到文件。
src/components/Common/Table/index.jsx
浏览文件 @
b28f8c7f
...
...
@@ -42,7 +42,7 @@ const SageTable = React.forwardRef((props, ref) => {
const
[
selectedRows
,
setSelectedRows
]
=
useState
([]);
// 展开keys
const
[
expandedRowKeys
,
setExpandedRowKeys
]
=
useState
([])
const
[
expandedRowKeys
,
setExpandedRowKeys
]
=
useState
([])
;
const
{
request
,
...
...
@@ -140,9 +140,9 @@ const SageTable = React.forwardRef((props, ref) => {
delete
newSearchParams
.
pageSize
;
}
let
lastDataSource
=
res
.
data
?
res
.
data
.
slice
()
:
[]
let
lastDataSource
=
res
.
data
?
res
.
data
.
slice
()
:
[]
;
if
(
renderData
)
{
lastDataSource
=
renderData
(
lastDataSource
)
lastDataSource
=
renderData
(
lastDataSource
)
;
}
setTableState
({
...
...
@@ -159,18 +159,18 @@ const SageTable = React.forwardRef((props, ref) => {
});
if
(
defaultExpandAllRowsProps
)
{
const
allKeys
=
[]
const
allData
=
lastDataSource
.
slice
()
const
allKeys
=
[]
;
const
allData
=
lastDataSource
.
slice
()
;
const
filterExpandRowKeys
=
(
list
)
=>
{
list
.
forEach
(
item
=>
{
list
.
forEach
(
(
item
)
=>
{
if
(
item
.
children
&&
item
.
children
.
length
!==
0
)
{
allKeys
.
push
(
item
[
props
.
rowKey
])
filterExpandRowKeys
(
item
.
children
)
allKeys
.
push
(
item
[
props
.
rowKey
])
;
filterExpandRowKeys
(
item
.
children
)
;
}
})
}
filterExpandRowKeys
(
allData
)
setExpandedRowKeys
(
allKeys
)
})
;
}
;
filterExpandRowKeys
(
allData
)
;
setExpandedRowKeys
(
allKeys
)
;
}
}
}
...
...
@@ -250,23 +250,25 @@ const SageTable = React.forwardRef((props, ref) => {
columnsState
.
unshift
({
title
:
'序号'
,
render
:
(
text
,
record
,
index
)
=>
{
let
serialNumber
=
0
let
serialNumber
=
0
;
if
(
paginationState
)
{
serialNumber
=
`
${(
paginationState
.
current
-
1
)
*
paginationState
.
pageSize
+
index
+
1
}
`
serialNumber
=
`
${
(
paginationState
.
current
-
1
)
*
paginationState
.
pageSize
+
index
+
1
}
`
;
}
else
{
serialNumber
=
index
+
1
serialNumber
=
index
+
1
;
}
return
serialNumber
return
serialNumber
;
},
align
:
'center'
,
width
:
60
,
});
}
// 隐藏hidden属性列
columnsState
=
columnsState
.
filter
(
item
=>
!
item
.
hidden
)
return
columnsState
}
const
latestColumnsState
=
useMemo
(()
=>
getLatestColumnsState
(),
[
props
.
columns
,
tableState
])
columnsState
=
columnsState
.
filter
(
(
item
)
=>
!
item
.
hidden
);
return
columnsState
;
}
;
const
latestColumnsState
=
useMemo
(()
=>
getLatestColumnsState
(),
[
props
.
columns
,
tableState
])
;
const
tableSearchFormProps
=
{
searchFields
:
searchFieldsProps
,
...
...
@@ -298,56 +300,84 @@ const SageTable = React.forwardRef((props, ref) => {
const
getExpandedRowKeys
=
()
=>
{
return
expandedRowKeys
;
}
}
;
const
getAllExpandedRowKeys
=
()
=>
{
const
allKeys
=
[]
const
allData
=
dataSourceState
.
slice
()
const
allKeys
=
[]
;
const
allData
=
dataSourceState
.
slice
()
;
const
filterExpandRowKeys
=
(
list
)
=>
{
list
.
forEach
(
item
=>
{
list
.
forEach
(
(
item
)
=>
{
if
(
item
.
children
&&
item
.
children
.
length
!==
0
)
{
allKeys
.
push
(
item
[
props
.
rowKey
])
filterExpandRowKeys
(
item
.
children
)
allKeys
.
push
(
item
[
props
.
rowKey
])
;
filterExpandRowKeys
(
item
.
children
)
;
}
})
}
filterExpandRowKeys
(
allData
)
})
;
}
;
filterExpandRowKeys
(
allData
)
;
return
allKeys
;
}
}
;
if
(
expandableProps
)
{
lastTableState
.
expandable
=
{
expandedRowKeys
,
onExpand
:
(
expanded
,
record
)
=>
{
const
lastExpandedRowKeys
=
expandedRowKeys
.
slice
()
const
lastExpandedRowKeys
=
expandedRowKeys
.
slice
()
;
if
(
expanded
)
{
lastExpandedRowKeys
.
push
(
record
[
props
.
rowKey
])
setExpandedRowKeys
(
lastExpandedRowKeys
)
lastExpandedRowKeys
.
push
(
record
[
props
.
rowKey
])
;
setExpandedRowKeys
(
lastExpandedRowKeys
)
;
}
else
{
const
deleteIndex
=
lastExpandedRowKeys
.
findIndex
(
item
=>
item
===
record
[
props
.
rowKey
])
lastExpandedRowKeys
.
splice
(
deleteIndex
,
1
)
const
deleteIndex
=
lastExpandedRowKeys
.
findIndex
(
(
item
)
=>
item
===
record
[
props
.
rowKey
],
);
lastExpandedRowKeys
.
splice
(
deleteIndex
,
1
);
}
setExpandedRowKeys
(
lastExpandedRowKeys
)
}
}
setExpandedRowKeys
(
lastExpandedRowKeys
)
;
}
,
}
;
}
// 获取当前列表的数据
const
getDataSource
=
()
=>
{
return
dataSourceState
}
return
dataSourceState
;
}
;
// 给列表赋值
const
setDataSource
=
(
data
)
=>
{
const
tableStateTemp
=
Object
.
assign
({},
tableState
)
let
lastDataSource
=
data
.
slice
()
const
tableStateTemp
=
Object
.
assign
({},
tableState
)
;
let
lastDataSource
=
data
.
slice
()
;
if
(
renderData
)
{
lastDataSource
=
renderData
(
lastDataSource
)
lastDataSource
=
renderData
(
lastDataSource
)
;
}
tableStateTemp
.
dataSource
=
lastDataSource
setTableState
(
tableStateTemp
)
}
tableStateTemp
.
dataSource
=
lastDataSource
;
setTableState
(
tableStateTemp
);
};
// 根据某个属性修改值
const
setDataSourceByMapKey
=
(
fieldKeyName
,
fieldKeyValue
,
changeFieldKeyName
,
changeFieldKeyValue
,
)
=>
{
const
dataSourceTemp
=
tableState
.
dataSource
?
tableState
.
dataSource
.
slice
()
:
[];
const
loopDataSource
=
(
list
)
=>
{
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
if
(
list
[
i
].
children
&&
list
[
i
].
children
.
length
!==
0
)
{
loopDataSource
(
list
[
i
].
children
);
}
if
(
list
[
i
][
fieldKeyName
]
===
fieldKeyValue
)
{
list
[
i
][
changeFieldKeyName
]
=
changeFieldKeyValue
;
break
;
}
}
};
loopDataSource
(
dataSourceTemp
);
const
tableStateTemp
=
Object
.
assign
({},
tableState
);
tableStateTemp
.
dataSource
=
dataSourceTemp
;
setTableState
(
tableStateTemp
);
};
// 暴露给外部的方法
useImperativeHandle
(
ref
,
()
=>
({
...
...
@@ -363,6 +393,7 @@ const SageTable = React.forwardRef((props, ref) => {
getAllExpandedRowKeys
,
getExpandedRowKeys
,
setExpandedRowKeys
,
setDataSourceByMapKey
,
}));
return
(
...
...
@@ -381,9 +412,9 @@ const SageTable = React.forwardRef((props, ref) => {
<
TableSearchForm
ref=
{
tableSearchFormRef
}
{
...
tableSearchFormProps
}
/>
)
}
{
!
hiddeTool
?
<
TableTool
tableSize=
{
tableSizeState
}
isFullscreen=
{
isFullscreen
}
{
...
tableToolProps
}
/>
:
null
}
{
!
hiddeTool
?
(
<
TableTool
tableSize=
{
tableSizeState
}
isFullscreen=
{
isFullscreen
}
{
...
tableToolProps
}
/>
)
:
null
}
<
Table
size=
{
tableSizeState
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论