report-app.js 1.06 KB
import axios from 'axios';

export default class reportApp {
  constructor(params = {}) {
    this.isProd = !params.unProd;
    this.events = {
      ps: '0',
      av: params.version,
      ab: params.buildId,
      ca: '0',
      net: 'unknown',
      sid: params.visitId,
    };
    this.params = {
      mst: '',
      st: '',
      ec: '',
      ei: '',
      url: '',
      host: '',
      locfun: ''
    };
  }
  report(type, pt, pn, params = {}, uid = 0) {
    if (!this.isProd) {
      return;
    }

    params = Object.assign({}, this.params, params);

    if (window) {
      Object.assign(params, {
        host: window.location.host,
        url: window.location.href
      });
    }

    axios({
      baseURL: 'https://app.yoho.cn/collect/v3',
      url: '',
      method: 'POST',
      data: {
        type,
        device: {},
        events: [
          Object.assign({
            uid: uid,
            ts: new Date().getTime() + '000000',
            pt: pt,
            pn: pn,
            param: params
          }, this.events)
        ]
      }
    })
  }
}