uniapp-tracing
Version:
uniapp小程序端埋点
36 lines (30 loc) • 963 B
JavaScript
// 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;