click.js 901 B

12345678910111213141516171819202122232425262728293031
  1. // 点击埋点自定义属性
  2. import { reportLog } from '../logger';
  3. import { getTargetElementWhenClick } from '@/uilts/help';
  4. import Report from "@/log-center/log";
  5. let clickDataMap = new Map();
  6. const clickHandle = (e) => {
  7. const target = getTargetElementWhenClick(e);
  8. const logData = clickDataMap.get(target?.denetClickLogkey);
  9. return logData && reportLog({
  10. businessType: Report.businessType.buttonClick,
  11. ...logData
  12. })
  13. }
  14. const clickLog = {
  15. mounted: (el, binding) => {
  16. const { value } = binding;
  17. el.denetClickLogkey = el.denetClickLogkey || Math.random().toString(36).slice(-6);
  18. clickDataMap.set(el.denetClickLogkey, value);
  19. el.addEventListener('click', clickHandle,true)
  20. },
  21. unmounted(el) {
  22. // remove EventListener
  23. el.removeEventListener('click', clickHandle, true)
  24. }
  25. }
  26. export default clickLog;