UNPKG

uniapp-tracing

Version:

uniapp小程序端埋点

36 lines (30 loc) 963 B
// Hooks import useElement from "../hooks/useElement"; import { currentRoute } from "../hooks/useRoute"; // Utils import { camelCase } from "lodash"; import getCurrentTime from "../utils/get-current-time"; import handleQueue from "../utils/handle-queue"; /** * 元素埋点 */ const elementMixin = { methods: { /** * 获取元素data-xxx数据集,提交element埋点至队列 * 主动触发 * @param {String} elementId 节点id #id或class类名 .class */ async $tracingElement(elementId) { const data = {}; const { dataset } = await useElement(elementId); Object.keys(dataset).forEach((key) => { const realKey = camelCase(key); data[realKey] = dataset[key]; }); const tracingElement = { type: "element", path: currentRoute(), startTime: getCurrentTime(), data }; handleQueue(tracingElement); }, }, }; export default elementMixin;