popover.js 1002 B

1234567891011121314151617181920212223242526272829303132
  1. import Vue from 'vue';
  2. import popover from './popover.vue';
  3. import {calcTipPosition} from './utils'
  4. // import CalcTargetPosition from '../static/utils/CalcTargetPosition'
  5. // import {zIndexIncrease, zIndex} from './dispatchZindex'
  6. const PopoverExtend=Vue.extend(popover); // 继承Vue
  7. let PopoverVm = null
  8. const createPopover= (options) => {
  9. let {tag, props}=options;
  10. let pos=tag.getBoundingClientRect(); // 根据当前点击的dom对象获取位置
  11. props.pos = pos
  12. PopoverVm = new PopoverExtend({data:props})
  13. PopoverVm = PopoverVm.$mount()
  14. const bodyDom = document.body
  15. bodyDom.appendChild(PopoverVm.$el)
  16. return PopoverVm
  17. }
  18. createPopover.resetPosition = (pDom,tDom, leftW, tipPlace, border) => {
  19. return calcTipPosition(pDom, tDom, leftW, tipPlace, border)
  20. }
  21. createPopover.remove=(vm) => {
  22. if (!vm) return;
  23. if (vm._isDestroyed) return;
  24. vm.$destroy();
  25. const dom=vm.$el;
  26. if (dom) dom.parentNode.removeChild(dom);
  27. }
  28. export default createPopover