├── .gitattributes
├── README.md
├── package.json
└── src
└── drag-sort
├── 1px.less
└── index.vue
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # mpvue-drag-sort
2 |
3 | > 基于mpvue写的小程序拖拽组件
4 |
5 | ## 如何使用
6 |
7 | ```
8 | npm i mpvue-drag-sort
9 | ```
10 |
11 | ## 基本用法
12 | ``` bash
13 |
14 |
15 |
16 |
17 |
57 | ```
58 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mpvue-drag-sort",
3 | "version": "1.0.2",
4 | "description": "A Mpvue project",
5 | "author": "LFZ",
6 | "private": false,
7 | "main": "src/drag-sort/index.vue",
8 | "scripts": {},
9 | "license": "ISC"
10 | }
11 |
--------------------------------------------------------------------------------
/src/drag-sort/1px.less:
--------------------------------------------------------------------------------
1 | .setLine(@c: #eee) {
2 | content: " ";
3 | position: absolute;
4 | left: 0;
5 | top: 0;
6 | width: 200%;
7 | border: 1rpx solid @c;
8 | color: @c;
9 | height: 200%;
10 | transform-origin: left top;
11 | transform: scale(0.5);
12 | }
13 |
14 | .vh-1px, .vh-1px-t, .vh-1px-b, .vh-1px-tb, .vh-1px-l, .vh-1px-r {
15 | position: relative;
16 | }
17 |
18 | .vh-1px {
19 | &:before {
20 | .setLine();
21 | }
22 | }
23 |
24 | .vh-1px-t {
25 | &:before {
26 | .setTopLine();
27 | }
28 | }
29 |
30 | .vh-1px-b {
31 | &:after {
32 | .setBottomLine();
33 | }
34 | }
35 |
36 | .vh-1px-tb {
37 | &:before {
38 | .setTopLine();
39 | }
40 | &:after {
41 | .setBottomLine();
42 | }
43 | }
44 |
45 | .vh-1px-l {
46 | &:before {
47 | .setLeftLine();
48 | }
49 | }
50 |
51 | .vh-1px-r {
52 | &:after {
53 | .setRightLine();
54 | }
55 | }
56 |
57 | .setTopLine(@c: #eee) {
58 | content: " ";
59 | position: absolute;
60 | left: 0;
61 | top: 0;
62 | right: 0;
63 | height: 1rpx;
64 | border-top: 1rpx solid @c;
65 | color: @c;
66 | transform-origin: 0 0;
67 | transform: scaleY(0.5);
68 | }
69 |
70 | .setBottomLine(@c: #eee) {
71 | content: " ";
72 | position: absolute;
73 | left: 0;
74 | bottom: 0;
75 | right: 0;
76 | height: 1rpx;
77 | border-bottom: 1rpx solid @c;
78 | color: @c;
79 | transform-origin: 0 100%;
80 | transform: scaleY(0.5);
81 | }
82 |
83 | .setLeftLine(@c: #eee) {
84 | content: " ";
85 | position: absolute;
86 | left: 0;
87 | top: 0;
88 | width: 1rpx;
89 | bottom: 0;
90 | border-left: 1rpx solid @c;
91 | color: @c;
92 | transform-origin: 0 0;
93 | transform: scaleX(0.5);
94 | }
95 |
96 | .setRightLine(@c: #eee) {
97 | content: " ";
98 | position: absolute;
99 | right: 0;
100 | top: 0;
101 | width: 1rpx;
102 | bottom: 0;
103 | border-right: 1rpx solid @c;
104 | color: @c;
105 | transform-origin: 100% 0;
106 | transform: scaleX(0.5);
107 | }
108 |
--------------------------------------------------------------------------------
/src/drag-sort/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 | {{item[props.label]}}
16 |
17 |
18 |
19 |
20 |
29 |
30 |
31 |
32 |
171 |
172 |
212 |
--------------------------------------------------------------------------------