|
2 | 2 | import * as hp from 'helper-js' |
3 | 3 | export default { |
4 | 4 | methods: { |
5 | | - NodeBack_onmouseenter(e) { |
6 | | - const trigger = e.target |
7 | | - const back = document.createElement('DIV') |
8 | | - hp.addClass(back, 'node-back') |
9 | | - const tree = hp.findParent(trigger, (el) => hp.hasClass(el, 'tree-root')) |
10 | | - const treeRect = hp.getBoundingClientRect(tree) |
11 | | - const treeOffset = hp.getOffset(tree) |
12 | | - const triggerRect = hp.getBoundingClientRect(trigger) |
13 | | - const triggerOffset = hp.getOffset(trigger) |
14 | | - const backOffset = {x: treeOffset.x, y: triggerOffset.y} |
15 | | - hp.prependTo(back, tree) |
16 | | - const backPosition = hp.getPositionFromOffset(back, backOffset) |
17 | | - back.style.top = `${backPosition.y}px` |
18 | | - back.style.left = `${backPosition.x}px` |
19 | | - back.style.width = `${treeRect.width}px` |
20 | | - back.style.height = `${triggerRect.height}px` |
21 | | - trigger._NodeBack_el = back |
| 5 | + showNodeBack(node) { |
| 6 | + const meta = this.getMetaByNode(node) |
| 7 | + const branch = document.getElementById(meta.DOMId) |
| 8 | + const nodeEl = branch.querySelector(`.tree-node`) |
| 9 | + if (!nodeEl._NodeBack_el) { |
| 10 | + const back = document.createElement('DIV') |
| 11 | + hp.addClass(back, 'node-back') |
| 12 | + nodeEl._NodeBack_el = back |
| 13 | + } |
| 14 | + const back = nodeEl._NodeBack_el |
| 15 | + const update = () => { |
| 16 | + const tree = hp.findParent(nodeEl, (el) => hp.hasClass(el, 'tree-root')) |
| 17 | + const treeRect = hp.getBoundingClientRect(tree) |
| 18 | + const treeOffset = hp.getOffset(tree) |
| 19 | + const nodeElRect = hp.getBoundingClientRect(nodeEl) |
| 20 | + const nodeElOffset = hp.getOffset(nodeEl) |
| 21 | + const backOffset = {x: treeOffset.x, y: nodeElOffset.y} |
| 22 | + hp.prependTo(back, tree) |
| 23 | + const backPosition = hp.getPositionFromOffset(back, backOffset) |
| 24 | + back.style.top = `${backPosition.y}px` |
| 25 | + back.style.left = `${backPosition.x}px` |
| 26 | + back.style.width = `${treeRect.width}px` |
| 27 | + back.style.height = `${nodeElRect.height}px` |
| 28 | + } |
| 29 | + update() |
22 | 30 | }, |
23 | | - NodeBack_onmouseleave(e) { |
24 | | - const trigger = e.target |
25 | | - if (trigger._NodeBack_el) { |
26 | | - hp.removeEl(trigger._NodeBack_el) |
27 | | - trigger._NodeBack_el = null |
| 31 | + hideNodeBack(node) { |
| 32 | + const meta = this.getMetaByNode(node) |
| 33 | + const branch = document.getElementById(meta.DOMId) |
| 34 | + const nodeEl = branch.querySelector(`.tree-node`) |
| 35 | + if (nodeEl._NodeBack_el) { |
| 36 | + hp.removeEl(nodeEl._NodeBack_el) |
| 37 | + nodeEl._NodeBack_el = null |
28 | 38 | } |
29 | 39 | }, |
30 | 40 | }, |
|
0 commit comments