Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
submodule
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
web_component
submodule
Commits
dd72d6b0
Commit
dd72d6b0
authored
Jul 13, 2020
by
zhangwenshuai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改拖动排序回调
parent
459f426a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
50 additions
and
3 deletions
+50
-3
DragSorted.tsx
components/apolloTable/component/DragSorted.tsx
+2
-2
Table.tsx
components/apolloTable/component/Table.tsx
+48
-1
No files found.
components/apolloTable/component/DragSorted.tsx
View file @
dd72d6b0
...
...
@@ -3,7 +3,7 @@ import classNames from 'classnames';
const
DragSorted
=
(
props
:
any
)
=>
{
const
{
className
,
style
,
columnName
,
orderNo
,
onDropFinish
,
onScroll
,
className
,
style
,
columnName
,
orderNo
,
onDropFinish
,
onScroll
,
canDrag
,
}
=
props
;
// 长按计时器
const
timer
:
any
=
useRef
(
null
);
...
...
@@ -142,7 +142,7 @@ const DragSorted = (props: any) => {
const
onMouseDown
=
useCallback
(
(
e
)
=>
{
// 没有拖拽回调,默认不支持拖拽事件
if
(
!
onDropFinish
)
{
if
(
!
canDrag
)
{
return
;
}
// 不是左键点击不作处理
...
...
components/apolloTable/component/Table.tsx
View file @
dd72d6b0
...
...
@@ -292,6 +292,7 @@ export default class AirTable extends Component<TableProps, TableState> {
this
.
grid4
.
scrollToCell
({
columnIndex
:
showColumns
.
length
-
1
});
}
};
// 拖拽滚动表格
onScrollHor
=
(
direction
:
string
,
step
:
number
)
=>
{
// 拖动超过视图范围,将表格左右滚动
if
(
this
.
grid4
)
{
...
...
@@ -310,6 +311,51 @@ export default class AirTable extends Component<TableProps, TableState> {
}
}
};
// 拖拽排序回调
onDragSorted
=
(
dragColumn
:
any
,
dropColumn
:
any
)
=>
{
const
{
onDragSorted
}
=
this
.
props
;
const
{
columns
}
=
this
.
state
;
const
newColumns
:
any
[]
=
[];
columns
.
map
((
item
)
=>
{
if
(
dragColumn
.
orderNo
>
dropColumn
.
orderNo
)
{
if
(
item
.
orderNo
>=
dropColumn
.
orderNo
&&
item
.
orderNo
<=
dragColumn
.
orderNo
)
{
if
(
item
.
columnName
===
dragColumn
.
columnName
)
{
newColumns
.
push
({
...
item
,
orderNo
:
dropColumn
.
orderNo
,
});
}
else
{
newColumns
.
push
({
...
item
,
orderNo
:
item
.
orderNo
+
1
,
});
}
}
else
{
newColumns
.
push
(
item
);
}
}
else
{
if
(
item
.
columnName
===
dragColumn
.
columnName
)
{
newColumns
.
push
({
...
item
,
orderNo
:
dropColumn
.
orderNo
-
1
,
});
}
else
if
(
item
.
orderNo
>=
dragColumn
.
orderNo
&&
item
.
orderNo
<=
dropColumn
.
orderNo
)
{
newColumns
.
push
({
...
item
,
orderNo
:
item
.
orderNo
-
1
,
});
}
else
{
newColumns
.
push
(
item
);
}
}
});
newColumns
.
sort
((
a
,
b
)
=>
{
return
a
.
orderNo
-
b
.
orderNo
;
});
if
(
typeof
onDragSorted
===
'function'
)
{
onDragSorted
(
newColumns
);
}
};
// 渲染表头
renderHeaderCell
=
(
{
showColumns
,
position
}:
{
showColumns
:
ColumnProps
[];
position
?:
string
},
...
...
@@ -332,11 +378,12 @@ export default class AirTable extends Component<TableProps, TableState> {
<
DragSorted
columnName=
{
columnName
}
orderNo=
{
orderNo
}
onDropFinish=
{
onDragSorted
}
onDropFinish=
{
this
.
onDragSorted
}
onScroll=
{
this
.
onScrollHor
}
className=
{
styles
.
headerCell
}
key=
{
key
}
style=
{
style
}
canDrag=
{
!!
onDragSorted
}
>
<
ResizableBox
width=
{
style
.
width
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment