qm-bus
Version:
千米公有云业务组件库
109 lines (99 loc) • 3.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _gh = require('./gh');
var _gh2 = _interopRequireDefault(_gh);
var _objectAssign = require('object-assign');
var _objectAssign2 = _interopRequireDefault(_objectAssign);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
window.GH_CONFIG = {
GA_ID: 'UA-62751334-4',
UMENG_ID: '1272783702'
};
var GH_MODULE = null;
if (window.GH_MODULE) {
GH_MODULE = window.GH_MODULE;
} else {
GH_MODULE = {};
window.GH_MODULE = GH_MODULE;
var ghConfig = window.GH_CONFIG || {};
_gh2.default.init({ ga: ghConfig.GA_ID, umeng: ghConfig.UMENG_ID });
var searchNode = function searchNode(target) {
if (target == document || target == window) {
return null;
}
if (target.hasAttribute && target.hasAttribute('data-gh-name')) {
return target;
} else {
return searchNode(target.parentNode);
}
};
var getLocation = function getLocation(url) {
if (url) {
var _idx = url.indexOf('#');
if (_idx > -1 && _idx != url.length - 1 && url[_idx + 1] != '?') {
return url.split('?')[0];
} else {
return url;
}
}
return '';
};
var collect = function collect(e, content) {
var reactContext = window.getReactContext ? window.getReactContext() || {} : {};
var scene = reactContext.user ? reactContext.user.sceneName : '';
var sceneEnumer = {
onlineDistribution: '云订货',
onlineMall: '云商城',
communityStore: '社区店',
cloudShop: '云小店',
o2o: '连锁总部',
cloudOrder: '云采购',
wholeSelling: '全员开店',
talentShop: '千米达人'
};
scene = sceneEnumer[scene] || '';
var menu = reactContext.currentMenu ? reactContext.currentMenu.name : '';
if (!menu) {
var _name = reactContext.route ? reactContext.route.name : '';
menu = _name || '';
}
var role = reactContext.role ? reactContext.role.name : '';
var message = content;
var category = scene + '-' + role + '-' + menu;
setTimeout(function () {
_gh2.default.setEvent(category, e.type, message, '', e.target ? e.target.id : '');
if (typeof __DEV__ == 'boolean' && __DEV__) {
console.log('\u8BB0\u5F55\u6570\u636E:category:' + category + ',message:' + message);
}
}, 0);
};
var events = ['click', 'mouseover', 'focus'];
events.forEach(function (event) {
document.body['on' + event] = function (e) {
var node = searchNode(e.target);
if (node) {
var _events = node.getAttribute('data-gh-event') || 'click';
if (_events && _events.indexOf(event) > -1) {
collect(e, node.getAttribute('data-gh-name'));
}
}
};
});
_gh2.default.setPageview((window.location.hash || '').replace(/^#/g, ''));
window.onhashchange = function () {
_gh2.default.setPageview((window.location.hash || '').replace(/^#/g, ''));
};
GH_MODULE = (0, _objectAssign2.default)(GH_MODULE, _gh2.default);
GH_MODULE.setEvent = function (e, content) {
collect(e, content);
};
GH_MODULE.decorator = function (msg) {
return function (target, props, descriptor) {
var origin = descriptor.initializer;
descriptor.initializer = new Function('origin', 'collect', 'msg', 'return function(){return function(){' + 'origin.call(this).apply(this,arguments);var e = arguments[arguments.length-1];' + 'if(e.nativeEvent){e=e.nativeEvent;}if(e instanceof Event){collect(e,msg)}}}')(origin, collect, msg);
};
};
}
exports.default = GH_MODULE;