a0a6a30a32f998255d7a4792744f692b2250e10a2a76c8ca38b0fd333194ae04c797e2b880c5fb48fc83256f315f07195a8fd9358f43ca250cebdba1cf52ad 680 B

123456789101112131415161718192021222324252627
  1. export const NODE_KEY = '$treeNodeId';
  2. export const markNodeData = function(node, data) {
  3. if (!data || data[NODE_KEY]) return;
  4. Object.defineProperty(data, NODE_KEY, {
  5. value: node.id,
  6. enumerable: false,
  7. configurable: false,
  8. writable: false
  9. });
  10. };
  11. export const getNodeKey = function(key, data) {
  12. if (!key) return data[NODE_KEY];
  13. return data[key];
  14. };
  15. export const findNearestComponent = (element, componentName) => {
  16. let target = element;
  17. while (target && target.tagName !== 'BODY') {
  18. if (target.__vue__ && target.__vue__.$options.name === componentName) {
  19. return target.__vue__;
  20. }
  21. target = target.parentNode;
  22. }
  23. return null;
  24. };