tooltip.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import Vue from 'vue';
  2. import { Tooltip } from 'element-ui';
  3. // 扩展 Tooltip 组件
  4. const TooltipConstructor = Vue.extend(Tooltip);
  5. let tooltipInstance = null;
  6. // 显示提示框
  7. const showTooltip = (target, content) => {
  8. if (tooltipInstance) {
  9. tooltipInstance.$destroy();
  10. tooltipInstance.$el.remove();
  11. }
  12. tooltipInstance = new TooltipConstructor({
  13. propsData: {
  14. content,
  15. placement: 'top',
  16. visible: true,
  17. trigger: 'manual'
  18. }
  19. });
  20. // 手动挂载实例
  21. tooltipInstance.$mount(document.createElement('div'));
  22. document.body.appendChild(tooltipInstance.$el);
  23. // 设置目标元素
  24. tooltipInstance.referenceElm = target;
  25. tooltipInstance.$nextTick(() => {
  26. tooltipInstance.show();
  27. });
  28. };
  29. // 隐藏提示框
  30. const hideTooltip = () => {
  31. // console.log(tooltipInstance);
  32. if (tooltipInstance) {
  33. tooltipInstance.hide();
  34. tooltipInstance.doDestroy();
  35. tooltipInstance.$el.remove();
  36. tooltipInstance = null;
  37. }
  38. };
  39. export default {
  40. show: showTooltip,
  41. hide: hideTooltip
  42. };