click.js 862 B

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