common.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { scdIedRelation } from "@/api/iedNetwork";
  2. export async function clickImgEvent(props,dataItem,scdIdValue){
  3. let listData = null;
  4. if (!props.isScdView) {
  5. const foundItem = Object.values(props.iedRelation).find(item => item.ied_name === dataItem.ref_ied_name);
  6. if (foundItem) {
  7. listData = foundItem;
  8. }
  9. } else {
  10. //如果是从scdView进来点到直接调用接口
  11. const resRla = await scdIedRelation({
  12. scd_id: scdIdValue,
  13. ied_name: dataItem.ref_ied_name,
  14. reset: 1,
  15. });
  16. if (!resRla.data||!resRla.data[dataItem.ref_ied_name]) return;
  17. listData = resRla.data[dataItem.ref_ied_name];
  18. }
  19. return listData
  20. };
  21. export function newPositionLineEvent(elementId, leaderLines){
  22. const element = document.getElementById(elementId);
  23. if (!element) return;
  24. element.addEventListener(
  25. "scroll",
  26. AnimEvent.add(() => {
  27. if (!leaderLines.value) return;
  28. leaderLines.value.forEach((line) => {
  29. hiddenLine();
  30. line.position();
  31. line.positionByWindowResize = false;
  32. });
  33. }),
  34. false
  35. );
  36. element.addEventListener(
  37. "resize",
  38. AnimEvent.add(function () {
  39. if (!leaderLines.value) return;
  40. leaderLines.value.forEach((line) => {
  41. hiddenLine();
  42. line.position();
  43. line.positionByWindowResize = true;
  44. });
  45. }),
  46. false
  47. );
  48. };
  49. export function preventReClick (Vue){
  50. // 防止重复点击
  51. Vue.directive('preventReClick', {
  52. inserted (el, binding) {
  53. el.addEventListener('click', () => {
  54. if (!el.disabled) {
  55. el.disabled = true
  56. setTimeout(() => {
  57. el.disabled = false
  58. },binding.value || 1000)
  59. }
  60. })
  61. }
  62. })
  63. }