|
1 | | -import { on } from '@/libs/tools' |
| 1 | +import draggable from './module/draggable' |
| 2 | +import clipboard from './module/clipboard' |
| 3 | + |
2 | 4 | const directives = { |
3 | | - draggable: { |
4 | | - inserted: (el, binding, vnode) => { |
5 | | - let triggerDom = document.querySelector(binding.value.trigger) |
6 | | - triggerDom.style.cursor = 'move' |
7 | | - let bodyDom = document.querySelector(binding.value.body) |
8 | | - let pageX = 0 |
9 | | - let pageY = 0 |
10 | | - let transformX = 0 |
11 | | - let transformY = 0 |
12 | | - let canMove = false |
13 | | - const handleMousedown = e => { |
14 | | - let transform = /\(.*\)/.exec(bodyDom.style.transform) |
15 | | - if (transform) { |
16 | | - transform = transform[0].slice(1, transform[0].length - 1) |
17 | | - let splitxy = transform.split('px, ') |
18 | | - transformX = parseFloat(splitxy[0]) |
19 | | - transformY = parseFloat(splitxy[1].split('px')[0]) |
20 | | - } |
21 | | - pageX = e.pageX |
22 | | - pageY = e.pageY |
23 | | - canMove = true |
24 | | - } |
25 | | - const handleMousemove = e => { |
26 | | - let xOffset = e.pageX - pageX + transformX |
27 | | - let yOffset = e.pageY - pageY + transformY |
28 | | - if (canMove) bodyDom.style.transform = `translate(${xOffset}px, ${yOffset}px)` |
29 | | - } |
30 | | - const handleMouseup = e => { |
31 | | - canMove = false |
32 | | - } |
33 | | - on(triggerDom, 'mousedown', handleMousedown) |
34 | | - on(document, 'mousemove', handleMousemove) |
35 | | - on(document, 'mouseup', handleMouseup) |
36 | | - }, |
37 | | - update: (el, binding, vnode) => { |
38 | | - if (!binding.value.recover) return |
39 | | - let bodyDom = document.querySelector(binding.value.body) |
40 | | - bodyDom.style.transform = '' |
41 | | - } |
42 | | - } |
| 5 | + draggable, |
| 6 | + clipboard |
43 | 7 | } |
44 | 8 |
|
45 | 9 | export default directives |
0 commit comments