1
- <template >
2
- <section class =" main" >
3
- <div class =" crumbs" >
4
- <el-breadcrumb separator =" /" >
5
- <el-breadcrumb-item ><i class =" el-icon-upload2" ></i > 拖拽排序</el-breadcrumb-item >
6
- </el-breadcrumb >
7
- </div >
8
- <div class =" drag-box-left" >
9
- <div class =" drag-title" >未完成</div >
10
- <div class =" drag-list" draggable =" true"
11
- v-for =" list in data1"
12
- :data-id =" list.id"
13
- @dragstart =" dragstartEvent"
14
- @dragend =" dragendEvent"
15
- @dragenter =" dragenterEvent"
16
- @dragleave =" dragleaveEvent"
17
- @dragover =" dragoverEvent"
18
- >{{list.title}}</div >
19
- </div >
20
- <div class =" drag-box-right" >
21
- <div class =" drag-title" >已完成</div >
22
- <div class =" drag-list" draggable =" true"
23
- v-for =" list in data2"
24
- :data-id =" list.id"
25
- @dragstart =" dragstartEvent"
26
- @dragend =" dragendEvent"
27
- @dragenter =" dragenterEvent"
28
- @dragleave =" dragleaveEvent"
29
- @dragover =" dragoverEvent"
30
- >{{list.title}}</div >
31
- </div >
32
-
33
- </section >
34
- </template >
35
-
36
- <script >
37
- export default {
38
- data () {
39
- return {
40
- dragElement: null ,
41
- lock: true ,
42
- data1: [
43
- {id: 1 , title: ' 这里是列表1的标题' },
44
- {id: 2 , title: ' 这里是列表2的标题' },
45
- {id: 3 , title: ' 这里是列表3的标题' },
46
- {id: 4 , title: ' 这里是列表4的标题' },
47
- {id: 5 , title: ' 这里是列表5的标题' },
48
- {id: 6 , title: ' 这里是列表6的标题' },
49
- {id: 7 , title: ' 这里是列表7的标题' }
50
- ],
51
- data2: [
52
- {id: 1 , title: ' 这里是列表11的标题' },
53
- {id: 2 , title: ' 这里是列表12的标题' },
54
- {id: 3 , title: ' 这里是列表13的标题' },
55
- {id: 4 , title: ' 这里是列表14的标题' }
56
- ]
57
- }
58
- },
59
- methods: {
60
- dragstartEvent (ev ) {
61
- const self = this ;
62
- self .dragElement = ev .target ;
63
- ev .target .style .backgroundColor = ' #f8f8f8' ;
64
- },
65
- dragendEvent (ev ) {
66
- ev .target .style .backgroundColor = ' #fff' ;
67
- ev .preventDefault ();
68
- },
69
- dragenterEvent (ev ) {
70
- const self = this ;
71
- if (self .dragElement != ev .target ){
72
- ev .target .parentNode .insertBefore (self .dragElement , ev .target );
73
- }
74
- },
75
- dragleaveEvent (ev ) {
76
- const self = this ;
77
- if (self .dragElement != ev .target ){
78
- if (self .lock && (ev .target == ev .target .parentNode .lastElementChild || ev .target == ev .target .parentNode .lastChild )){
79
- ev .target .parentNode .appendChild (self .dragElement );
80
- self .lock = false ;
81
- }else {
82
- self .lock = true ;
83
- }
84
- }
85
- },
86
- dragoverEvent (ev ) {
87
- ev .preventDefault ();
88
- }
89
- }
90
- }
91
- </script >
92
-
93
- <style scoped>
94
- .drag-box-left {
95
- float : left ;
96
- width : 45% ;
97
- }
98
- .drag-box-right {
99
- float : right ;
100
- width : 45% ;
101
- }
102
- .drag-list {
103
- border : 1px solid #ddd ;
104
- padding :20px ;
105
- margin-bottom : 20px ;
106
- transition : border .3s ;
107
- }
108
- .drag-list :hover {
109
- border : 1px solid #20a0ff ;
110
- }
111
- .drag-title {
112
- font-weight : 400 ;
113
- line-height : 50px ;
114
- margin : 10px 0 ;
115
- font-size : 22px ;
116
- color : #1f2f3d ;
117
- }
1
+ <template >
2
+ <section class =" main" >
3
+ <div class =" crumbs" >
4
+ <el-breadcrumb separator =" /" >
5
+ <el-breadcrumb-item ><i class =" el-icon-upload2" ></i > 拖拽排序</el-breadcrumb-item >
6
+ </el-breadcrumb >
7
+ </div >
8
+ <div class =" drag-box-left" >
9
+ <div class =" drag-title" >拖动排序</div >
10
+ <div class =" drag-list" draggable =" true"
11
+ v-for =" list in data1"
12
+ :data-id =" list.id"
13
+ @dragstart =" dragstartEvent"
14
+ @dragend =" dragendEvent"
15
+ @dragenter =" dragenterEvent"
16
+ @dragleave =" dragleaveEvent"
17
+ @dragover =" dragoverEvent"
18
+ >{{list.title}}</div >
19
+ </div >
20
+ </section >
21
+ </template >
22
+
23
+ <script >
24
+ export default {
25
+ data () {
26
+ return {
27
+ dragElement: null ,
28
+ lock: true ,
29
+ data1: [
30
+ {id: 1 , title: ' 这里是列表1的标题' },
31
+ {id: 2 , title: ' 这里是列表2的标题' },
32
+ {id: 3 , title: ' 这里是列表3的标题' },
33
+ {id: 4 , title: ' 这里是列表4的标题' },
34
+ {id: 5 , title: ' 这里是列表5的标题' },
35
+ {id: 6 , title: ' 这里是列表6的标题' },
36
+ {id: 7 , title: ' 这里是列表7的标题' }
37
+ ],
38
+ data2: [
39
+ {id: 1 , title: ' 这里是列表11的标题' },
40
+ {id: 2 , title: ' 这里是列表12的标题' },
41
+ {id: 3 , title: ' 这里是列表13的标题' },
42
+ {id: 4 , title: ' 这里是列表14的标题' }
43
+ ]
44
+ }
45
+ },
46
+ methods: {
47
+ dragstartEvent (ev ) {
48
+ const self = this ;
49
+ self .dragElement = ev .target ;
50
+ ev .target .style .backgroundColor = ' #f8f8f8' ;
51
+ },
52
+ dragendEvent (ev ) {
53
+ ev .target .style .backgroundColor = ' #fff' ;
54
+ ev .preventDefault ();
55
+ },
56
+ dragenterEvent (ev ) {
57
+ const self = this ;
58
+ if (self .dragElement != ev .target ){
59
+ ev .target .parentNode .insertBefore (self .dragElement , ev .target );
60
+ }
61
+ },
62
+ dragleaveEvent (ev ) {
63
+ const self = this ;
64
+ if (self .dragElement != ev .target ){
65
+ if (self .lock && (ev .target == ev .target .parentNode .lastElementChild || ev .target == ev .target .parentNode .lastChild )){
66
+ ev .target .parentNode .appendChild (self .dragElement );
67
+ self .lock = false ;
68
+ }else {
69
+ self .lock = true ;
70
+ }
71
+ }
72
+ },
73
+ dragoverEvent (ev ) {
74
+ ev .preventDefault ();
75
+ }
76
+ }
77
+ }
78
+ </script >
79
+
80
+ <style scoped>
81
+ .drag-box-left {
82
+ float : left ;
83
+ width : 45% ;
84
+ }
85
+ .drag-box-right {
86
+ float : right ;
87
+ width : 45% ;
88
+ }
89
+ .drag-list {
90
+ border : 1px solid #ddd ;
91
+ padding :10px ;
92
+ margin-bottom : 20px ;
93
+ transition : border .3s ;
94
+ }
95
+ .drag-list :hover {
96
+ border : 1px solid #20a0ff ;
97
+ }
98
+ .drag-title {
99
+ font-weight : 400 ;
100
+ line-height : 25px ;
101
+ margin : 10px 0 ;
102
+ font-size : 22px ;
103
+ color : #1f2f3d ;
104
+ }
118
105
</style >
0 commit comments