@cloudbase/framework-plugin-low-code 1.0.3-beta.8 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/lib/builder/mp/lowcode.d.ts.map +1 -1
  2. package/lib/builder/mp/lowcode.js +3 -7
  3. package/lib/builder/service/builder/generate.d.ts.map +1 -1
  4. package/lib/builder/service/builder/generate.js +3 -0
  5. package/lib/generator/core/generate.d.ts.map +1 -1
  6. package/lib/generator/core/generate.js +11 -17
  7. package/lib/utils/dataSource.d.ts +4 -0
  8. package/lib/utils/dataSource.d.ts.map +1 -1
  9. package/lib/utils/dataSource.js +27 -12
  10. package/lib/weapps-core/utils/file.d.ts +1 -1
  11. package/package.json +3 -3
  12. package/template/src/app/common.js +0 -13
  13. package/template/src/app/global-api.js +0 -132
  14. package/template/src/app/handlers.js +0 -13
  15. package/template/src/app/material-actions.js +0 -16
  16. package/template/src/app/mountAppApis.js +0 -25
  17. package/template/src/app/mountMpApis.js +0 -4
  18. package/template/src/datasources/config.js.tpl +0 -27
  19. package/template/src/datasources/dataset-profiles.js.tpl +0 -5
  20. package/template/src/datasources/datasource-profiles.js.tpl +0 -4
  21. package/template/src/datasources/index.js.tpl +0 -27
  22. package/template/src/handlers/FieldMiddleware/renderer.jsx +0 -536
  23. package/template/src/handlers/HotAreas.js +0 -36
  24. package/template/src/handlers/PositionHandler.jsx +0 -8
  25. package/template/src/handlers/actionHandler/utils.js +0 -154
  26. package/template/src/handlers/componentEventActionEmitter.js +0 -29
  27. package/template/src/handlers/componentNodeMap.js +0 -24
  28. package/template/src/handlers/controller.js +0 -5
  29. package/template/src/handlers/emitComponentEvent.js +0 -8
  30. package/template/src/handlers/eventListener/componentEventListener.js +0 -15
  31. package/template/src/handlers/eventListener/hotAreaEventListener.js +0 -32
  32. package/template/src/handlers/eventListener/index.js +0 -29
  33. package/template/src/handlers/eventListener/pageEventListener.js +0 -11
  34. package/template/src/handlers/eventListener/types.js +0 -32
  35. package/template/src/handlers/hooks/index.js +0 -15
  36. package/template/src/handlers/initWebEnv.js +0 -4
  37. package/template/src/handlers/injectStyle.js +0 -14
  38. package/template/src/handlers/instanceMap.js +0 -39
  39. package/template/src/handlers/lifecycle.js +0 -222
  40. package/template/src/handlers/render.jsx +0 -170
  41. package/template/src/handlers/utils/common.js +0 -298
  42. package/template/src/handlers/utils/eventProxy.js +0 -64
  43. package/template/src/handlers/utils/events.js +0 -8
  44. package/template/src/handlers/utils/index.js +0 -4
  45. package/template/src/handlers/utils/widgets.js +0 -307
  46. package/template/src/index.jsx +0 -185
  47. package/template/src/index.less +0 -119
  48. package/template/src/libraries/default-lib/wx_yypt_report_v2.js +0 -441
  49. package/template/src/pages/app.tpl +0 -200
  50. package/template/src/pages/composite.tpl +0 -171
  51. package/template/src/router/index.tpl +0 -29
  52. package/template/src/store/computed.js +0 -11
  53. package/template/src/store/index.js +0 -40
  54. package/template/src/utils/formatEnum.js +0 -42
  55. package/template/src/utils/history.js +0 -66
  56. package/template/src/utils/index.js +0 -82
  57. package/template/src/utils/kbone.js +0 -18
  58. package/template/src/utils/monitor-jssdk.min.js +0 -763
  59. package/template/src/utils/request.js +0 -5
@@ -1,763 +0,0 @@
1
- /**
2
- * @license @govcloud/gsd-monitor v1.0.0
3
- * @modify: sdk完善
4
- * @release 2020-08-13 14:16
5
- */
6
-
7
- var yyptReport = (function () {
8
- 'use strict';
9
-
10
- var storage = {
11
- /**
12
- * 获取cookie信息
13
- * @method carLoanLib.Cookie.getCookie
14
- * @param {String} name 获取的cookie的键值
15
- * @return {String} 获取的cookie值
16
- */
17
- getCookie: function (name) {
18
- var re = new RegExp("(?:^|;+|\\s+)" + name + "=([^;]*)");
19
- var result = document.cookie.match(re);
20
- return (!result ? "" : result[1]);
21
- },
22
- /**
23
- * 设置cookie信息
24
- *
25
- * @method setCookie
26
- * @param {String} name 设置cookie的键值
27
- * @param {String} value 设置的cookie的值
28
- * @param {String} domain 设置cookie的域名
29
- * @param {String} [path:/] cookie存放的路径
30
- * @param {Number} minute 设置的cookie的有效期
31
- */
32
- setCookie: function (name, value, domain, path, minute) {
33
- if (domain === void 0) { domain = ""; }
34
- if (path === void 0) { path = ""; }
35
- if (minute === void 0) { minute = null; }
36
- var expire;
37
- if (minute) {
38
- expire = new Date();
39
- expire.setTime(Date.now() + 60 * 1000 * minute);
40
- }
41
- document.cookie = name + "=" + value + "; " + (expire ? ("expires=" + expire.toUTCString() + "; ") : "") +
42
- ("path=" + (path || "/") + "; domain=" + (domain || location.host).split(":")[0] + ";");
43
- },
44
- /**
45
- * 删除cookie
46
- *
47
- * @method carLoanLib.Cookie.delCookie
48
- * @param {String} name 设置cookie的键值
49
- * @param {String} domain 设置cookie的域名
50
- * @param {String} path cookie存放的路径
51
- */
52
- delCookie: function (name, domain, path) {
53
- if (domain === void 0) { domain = ""; }
54
- if (path === void 0) { path = ""; }
55
- document.cookie = name + "=; expires=Mon, 26 Jul 1997 05:00:00 GMT; " + ("path=" + (path || "/") + "; domain=" + (domain || location.host).split(":")[0] + ";");
56
- },
57
- set: function (key, val) {
58
- if (!!window.localStorage) {
59
- try {
60
- localStorage.setItem(key, val);
61
- }
62
- catch (e) {
63
- }
64
- }
65
- else { //只能存cookie
66
- // 30天
67
- this.setCookie(key, val, "", "", 30 * 24 * 60);
68
- }
69
- },
70
- get: function (key) {
71
- if (!!window.localStorage) {
72
- return localStorage.getItem(key);
73
- }
74
- else {
75
- return this.getCookie(key);
76
- }
77
- return null;
78
- },
79
- remove: function (key) {
80
- if (!!window.localStorage) {
81
- try {
82
- localStorage.removeItem(key);
83
- }
84
- catch (e) {
85
- }
86
- }
87
- else {
88
- this.delCookie(key);
89
- }
90
- }
91
- };
92
-
93
- var ajax = function (opt) {
94
- opt = opt || {};
95
- opt.method = opt.method.toUpperCase() || "POST";
96
- opt.url = opt.url || "";
97
- opt.async = opt.async || true;
98
- opt.data = opt.data || null;
99
- opt.success = opt.success || function () {
100
- };
101
- opt.error = opt.error || function () {
102
- };
103
- var xmlHttp = null;
104
- if (XMLHttpRequest) {
105
- xmlHttp = new XMLHttpRequest();
106
- }
107
- else {
108
- xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
109
- }
110
- var params = [];
111
- for (var key in opt.data) {
112
- params.push(key + "=" + opt.data[key]);
113
- }
114
- var postData = params.join("&");
115
- if (opt.method.toUpperCase() === "POST") {
116
- xmlHttp.open(opt.method, opt.url, opt.async);
117
- xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
118
- xmlHttp.send(postData);
119
- }
120
- else if (opt.method.toUpperCase() === "GET") {
121
- xmlHttp.open(opt.method, opt.url + "?" + postData, opt.async);
122
- xmlHttp.send(null);
123
- }
124
- xmlHttp.onreadystatechange = function () {
125
- if (xmlHttp.readyState == 4) {
126
- if (xmlHttp.status == 200) {
127
- opt.success(JSON.parse(xmlHttp.responseText));
128
- }
129
- else {
130
- opt.error(xmlHttp);
131
- }
132
- }
133
- };
134
- };
135
-
136
- var utils = {
137
- wrapHistory: function () {
138
- // 处理replaceState和pushState行为的监听
139
- var _wr = function (type) {
140
- var orig = window.history[type];
141
- return function () {
142
- var rv = orig.apply(this, arguments);
143
- var e = document.createEvent("HTMLEvents");
144
- e.initEvent(type, false, true);
145
- e.arguments = arguments;
146
- window.dispatchEvent(e);
147
- return rv;
148
- };
149
- };
150
- window.history.pushState = _wr("pushState");
151
- window.history.replaceState = _wr("replaceState");
152
- },
153
- // 删除无用数据
154
- _delUselessParam: function (obj) {
155
- var cookiedObj = {};
156
- for (var item in obj) {
157
- var temVal = obj[item];
158
- if (temVal) {
159
- cookiedObj[item] = temVal;
160
- }
161
- }
162
- return cookiedObj;
163
- },
164
- // 获取操作系统
165
- _getOsName: function () {
166
- var name = "unknown";
167
- var userAgent = window.navigator.userAgent;
168
- if (userAgent.indexOf("Android") != -1) {
169
- name = "Android";
170
- }
171
- else if (userAgent.indexOf("iPhone") != -1) {
172
- name = "iPhone";
173
- }
174
- else if (userAgent.indexOf("SymbianOS") != -1) {
175
- name = "SymbianOS";
176
- }
177
- else if (userAgent.indexOf("Windows Phone") != -1) {
178
- name = "Windows Phone";
179
- }
180
- else if (userAgent.indexOf("iPad") != -1) {
181
- name = "iPad";
182
- }
183
- else if (userAgent.indexOf("iPod") != -1) {
184
- name = "iPod";
185
- }
186
- else if (userAgent.indexOf("Windows NT 10.0") != -1) {
187
- name = "Windows 10";
188
- }
189
- else if (userAgent.indexOf("Windows NT 6.2") != -1) {
190
- name = "Windows 8";
191
- }
192
- else if (userAgent.indexOf("Windows NT 6.1") != -1) {
193
- name = "Windows 7";
194
- }
195
- else if (userAgent.indexOf("Windows NT 6.0") != -1) {
196
- name = "Windows Vista";
197
- }
198
- else if (userAgent.indexOf("Windows NT 5.1") != -1) {
199
- name = "Windows XP";
200
- }
201
- else if (userAgent.indexOf("Windows NT 5.0") != -1) {
202
- name = "Windows 2000";
203
- }
204
- else if (userAgent.indexOf("Mac") != -1) {
205
- name = "Mac/iOS";
206
- }
207
- else if (userAgent.indexOf("X11") != -1) {
208
- name = "UNIX";
209
- }
210
- else if (userAgent.indexOf("Linux") != -1) {
211
- name = "Linux";
212
- }
213
- return name;
214
- },
215
- _objectMerge: function (object, source) {
216
- if (source) {
217
- for (var key in source) {
218
- if (typeof source[key] === "object") {
219
- object[key] = Object.assign({}, source[key], object[key]);
220
- }
221
- else {
222
- object[key] = source[key];
223
- }
224
- }
225
- }
226
- return object;
227
- },
228
- _randomString: function (len) {
229
- if (len === void 0) { len = 10; }
230
- var $chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz123456789";
231
- var maxPos = $chars.length;
232
- var pwd = "";
233
- for (var i = 0; i < len; i++) {
234
- pwd = pwd + $chars.charAt(Math.floor(Math.random() * maxPos));
235
- }
236
- return pwd + new Date().getTime();
237
- },
238
- // get query param
239
- getQueryString: function (key, search) {
240
- var reg = new RegExp("(?:^|[&\\?])" + key + "=([^&#]*)(?:[&#].*|$)");
241
- var arrVal = (search || location.href || "").match(reg);
242
- var result = "";
243
- if (arrVal) {
244
- result = arrVal[1] || "";
245
- }
246
- return decodeURIComponent(result);
247
- },
248
- /** 图片发送请求 */
249
- request: function (url) {
250
- var _image = new Image();
251
- _image.onload = _image.onerror = _image.onabort = function () {
252
- _image.onload = _image.onerror = _image.onabort = null;
253
- };
254
- _image.src = url;
255
- },
256
- _getPixelSize: function () {
257
- var winWidth = 0, winHeight = 0;
258
- if (document.documentElement && document.documentElement.clientHeight &&
259
- document.documentElement.clientWidth) {
260
- winHeight = document.documentElement.clientHeight;
261
- winWidth = document.documentElement.clientWidth;
262
- }
263
- else {
264
- //获取窗口宽度
265
- if (window.innerWidth) {
266
- winWidth = window.innerWidth;
267
- }
268
- else if ((document.body) && (document.body.clientWidth)) {
269
- winWidth = document.body.clientWidth;
270
- }
271
- //获取窗口高度
272
- if (window.innerHeight) {
273
- winHeight = window.innerHeight;
274
- }
275
- else if ((document.body) && (document.body.clientHeight)) {
276
- winHeight = document.body.clientHeight;
277
- }
278
- }
279
- return winWidth + "*" + winHeight;
280
- },
281
- // 获取元素坐标
282
- _getElementPos: function (e) {
283
- if (e.parentNode === null || !e.style || e.style.display == "none")
284
- return !1;
285
- var t = navigator.userAgent.toLowerCase(), n = null, r = [], i;
286
- if (e.getBoundingClientRect) {
287
- var s = void 0, o = void 0, u = void 0, a = void 0;
288
- return ((i = e.getBoundingClientRect()),
289
- (s = Math.max(document.documentElement.scrollTop, document.body.scrollTop)),
290
- (o = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft)),
291
- (u = document.body.clientTop),
292
- (a = document.body.clientLeft),
293
- {
294
- htx: i.left + o - a,
295
- hty: i.top + s - u
296
- });
297
- }
298
- if (document["getBoxObjectFor"]) {
299
- i = document["getBoxObjectFor"](e);
300
- var f = e.style.borderLeftWidth ? Math.floor(e.style.borderLeftWidth) : 0, l = e.style.borderTopWidth ? Math.floor(e.style.borderTopWidth) : 0;
301
- r = [i.x - f, i.y - l];
302
- }
303
- else {
304
- (r = [e.offsetLeft, e.offsetTop]), (n = e.offsetParent);
305
- if (n != e)
306
- while (n)
307
- (r[0] += n.offsetLeft), (r[1] += n.offsetTop), (n = n.offsetParent);
308
- if (t.indexOf("opera") > -1 ||
309
- (t.indexOf("safari") > -1 && e.style.position == "absolute"))
310
- (r[0] -= document.body.offsetLeft), (r[1] -= document.body.offsetTop);
311
- }
312
- e.parentNode ? (n = e.parentNode) : (n = null);
313
- while (n && n.tagName != "BODY" && n.tagName != "HTML")
314
- (r[0] -= n.scrollLeft),
315
- (r[1] -= n.scrollTop),
316
- n.parentNode ? (n = n.parentNode) : (n = null);
317
- return {
318
- htx: r[0],
319
- hty: r[1]
320
- };
321
- }
322
- };
323
-
324
- var errorHandler = {
325
- logObj: null,
326
- init: function (logObj) {
327
- this.logObj = logObj;
328
- this.startListen();
329
- },
330
- // 监听错误
331
- startListen: function () {
332
- // 监听js执行错误
333
- var orgError = window.onerror;
334
- var self = this;
335
- window.onerror = function () {
336
- var args = [];
337
- for (var _i = 0; _i < arguments.length; _i++) {
338
- args[_i] = arguments[_i];
339
- }
340
- self.logObj._logReport({
341
- type: "error",
342
- msg: (args[0] || "") + " @ (" + (args[1] || "") + ":" + (args[2] || 0) + ":" + (args[3] || 0) + ")"
343
- }, true);
344
- orgError && orgError.call.apply(orgError, [window].concat(args));
345
- };
346
- // 监听未被catch的promise错误
347
- window.addEventListener("unhandledrejection", function (event) {
348
- var reason = event && self.stringifyPlus(event.reason);
349
- // 给每一个实例发送 Promise 未被 catch 错误日志
350
- self.logObj._logReport({
351
- type: "error",
352
- msg: "unhandledrejection promise_error: " + reason
353
- }, true);
354
- });
355
- // 监听静态资源加载错误
356
- window.document.addEventListener("error", function (event) {
357
- if (!event || !event.target || !event.srcElement)
358
- return;
359
- var target = event.target || event.srcElement;
360
- // @ts-ignore
361
- var url = target.src || target.href;
362
- // @ts-ignore
363
- var tagName = target.tagName;
364
- // 将错误上报到错误日志
365
- if (url
366
- && tagName) {
367
- self.logObj._logReport({
368
- type: "error",
369
- msg: tagName + " load fail: " + url
370
- }, true);
371
- }
372
- }, true);
373
- },
374
- stringifyPlus: function (target) {
375
- try {
376
- return (JSON.stringify(target, this.stringifyHandler(), 4) || "undefined").replace(/"/gim, ""); // 这里之所以要去掉字符串中的所有 “ " ” ,是因为传进来的是 Error 对象时会 stringify 两次
377
- }
378
- catch (e) {
379
- return "error happen when stringify: \n " + e.message + " \n " + e.stack;
380
- }
381
- },
382
- stringifyHandler: function () {
383
- var cache = [];
384
- var keyCache = [];
385
- return function (key, value) {
386
- if (value instanceof Error) {
387
- // 处理Error对象
388
- return "Error.message\u3010 " + value.message + " \u3011; Error.stack\u3010 " + value.stack + " \u3011";
389
- }
390
- if (typeof value === "object" && value !== null) {
391
- // 处理循环引用
392
- var index = cache.indexOf(value);
393
- if (index !== -1) {
394
- return "[Circular " + keyCache[index] + "]";
395
- }
396
- cache.push(value);
397
- keyCache.push(key || "root");
398
- }
399
- return value;
400
- };
401
- }
402
- };
403
-
404
- var MonitorJSSDK = /** @class */ (function () {
405
- function MonitorJSSDK(config) {
406
- this._reportParams = [];
407
- this._storeMark = "_monitor_report_cache_data_v2";
408
- this._sdkConf = {
409
- report_url: "",
410
- appKey: "",
411
- env: "prod",
412
- userKey: "user_id",
413
- autoWatchClick: true,
414
- autoReportPv: false,
415
- customUserPrams: null,
416
- isWxEnv: false,
417
- reportNum: 5,
418
- // 通过传入函数,可以让业务方写代码传入要上报的属性
419
- getCusParams: function () {
420
- },
421
- stopReport: false // 停止上报
422
- };
423
- // 默认的参数
424
- this._defReportParams = {
425
- ky: "",
426
- pf: utils.getQueryString("pf") || "H5",
427
- id: "",
428
- cui: "",
429
- geo: "",
430
- my_appid: utils.getQueryString("appid"),
431
- scene: utils.getQueryString("scene"),
432
- region: utils.getQueryString("region"),
433
- ua: navigator.userAgent,
434
- ev: {
435
- "cn": "unknown",
436
- "lg": (navigator.language || navigator["browserLanguage"]).toLowerCase(),
437
- "sr": "",
438
- "tz": new Date().getTimezoneOffset(),
439
- "os": "",
440
- "ua": "",
441
- "av": "" //app version,应用的版本(App版本号)
442
- },
443
- ui: "",
444
- si: "",
445
- ts: "",
446
- pi: "",
447
- rf: "",
448
- et: "1",
449
- ht: "",
450
- htx: "",
451
- hty: "",
452
- dm: location.hostname,
453
- rdm: document.referrer,
454
- ei: "",
455
- kv: "",
456
- du: "",
457
- er: "",
458
- ea: "",
459
- sp: "",
460
- ext: "",
461
- cp: "",
462
- adt: "" // 渠道来源
463
- };
464
- if (config.env === "dev") {
465
- console.info("当前JSSDK[env]为dev:非正式环境不做上报!");
466
- return;
467
- }
468
- this._sdkConf = Object.assign(this._sdkConf, config);
469
- if (this._sdkConf.stopReport)
470
- return;
471
- this._defReportParams.cp = config.customUserPrams;
472
- if (this._sdkConf.report_url && this._sdkConf.appKey) {
473
- utils.wrapHistory();
474
- this._run();
475
- this._reportCp();
476
- errorHandler.init(this);
477
- }
478
- else {
479
- this._sdkConf.stopReport = true;
480
- console.error("report_url或appKey为空,不进行上报");
481
- }
482
- }
483
- // 上报自定义的用户属性,只有在用户属性变化的时候才会上报
484
- MonitorJSSDK.prototype._reportCp = function (params) {
485
- if (params === void 0) { params = {}; }
486
- if (!this._defReportParams.cp) {
487
- return;
488
- }
489
- var cpKey = "_monitor_cp_v2";
490
- var cp = storage.get(cpKey);
491
- var newCp = JSON.stringify(this._defReportParams.cp);
492
- if (cp === newCp) {
493
- return;
494
- }
495
- var reportParams = this._cookiedReportParams(Object.assign(params, { et: "6" }));
496
- this._requestCgi(this._sdkConf.report_url, reportParams);
497
- storage.set(cpKey, newCp);
498
- };
499
- MonitorJSSDK.prototype._wrapGetCusParams = function () {
500
- return typeof this._sdkConf.getCusParams === "function" && this._sdkConf.getCusParams();
501
- };
502
- // 上报页面PV
503
- MonitorJSSDK.prototype._reportPV = function (params) {
504
- if (params === void 0) { params = {}; }
505
- var reportParams = this._cookiedReportParams(utils._objectMerge(params, this._wrapGetCusParams()));
506
- this._requestCgi(this._sdkConf.report_url, reportParams);
507
- };
508
- // 单页应用监听页面路径改变自动上报
509
- MonitorJSSDK.prototype._watchPathChange = function () {
510
- var _self = this;
511
- //或者
512
- window.addEventListener("hashchange", function (e) {
513
- _self._reportPV();
514
- });
515
- window.addEventListener("replaceState", function (e) {
516
- _self._reportPV();
517
- });
518
- window.addEventListener("pushState", function (e) {
519
- _self._reportPV();
520
- });
521
- };
522
- // 获得Uv
523
- MonitorJSSDK.prototype._markUv = function () {
524
- var date = new Date();
525
- var markUv = storage.get("ps_markUv") || "";
526
- var datatime = storage.get("ps_markUvTime") || "";
527
- var today = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate() + " 23:59:59";
528
- if ((!markUv && !datatime) || (date.getTime() > +datatime)) {
529
- markUv = utils._randomString();
530
- storage.set("ps_markUv", markUv);
531
- storage.set("ps_markUvTime", new Date(today).getTime() + "");
532
- }
533
- return markUv;
534
- };
535
- // 加工上报参数
536
- MonitorJSSDK.prototype._cookiedReportParams = function (params) {
537
- if (params === void 0) { params = {}; }
538
- var idx = Number(storage.getCookie("_monitor_idx_v2") || "0") + 1;
539
- storage.setCookie("_monitor_idx_v2", idx);
540
- return Object.assign({}, this._defReportParams, {
541
- adt: utils.getQueryString("adt") || storage.getCookie("adt") || sessionStorage.getItem("adt"),
542
- ts: Date.now(),
543
- pi: location.href,
544
- idx: idx,
545
- rf: document.referrer,
546
- rdm: document.referrer.replace(/https?:\/\//, "").replace(/(\/.+)|(\?.+)|(#.+)/g, "") // 来源域名 string
547
- }, params);
548
- };
549
- // 日志上报
550
- MonitorJSSDK.prototype._logReport = function (params, immediate) {
551
- if (params === void 0) { params = {}; }
552
- if (immediate === void 0) { immediate = false; }
553
- var cookiedObj = { kv: params };
554
- utils._objectMerge(cookiedObj, this._wrapGetCusParams());
555
- var reportParams = this._cookiedReportParams(Object.assign(cookiedObj, { et: "2000" }));
556
- reportParams.ev.ua = reportParams.ua;
557
- delete reportParams.ua;
558
- var storeArr = this.getStoreArr();
559
- // 非立刻上报,且目前缓存的条数不够
560
- if (!immediate && storeArr.length < this._sdkConf.reportNum - 1) {
561
- storeArr.push(utils._delUselessParam(reportParams));
562
- storage.set(this._storeMark, JSON.stringify(storeArr));
563
- return;
564
- }
565
- this._requestCgi(this._sdkConf.report_url, reportParams);
566
- };
567
- /*点击流上报
568
- * ei 自定义事件id string
569
- * params 额外参数对象
570
- * cache 缓存,下次在上报
571
- * target 事件源对象
572
- * */
573
- MonitorJSSDK.prototype._eventClick = function (ei, params, cache, target) {
574
- if (params === void 0) { params = {}; }
575
- if (cache === void 0) { cache = false; }
576
- if (this._sdkConf.stopReport)
577
- return;
578
- if (target) {
579
- Object.assign(params, utils._getElementPos(target));
580
- }
581
- utils._objectMerge(params, this._wrapGetCusParams());
582
- var reportParams = this._cookiedReportParams(Object.assign(params, { ei: ei, et: "1000" }));
583
- // 先缓存
584
- if (cache) {
585
- var storeArr = this.getStoreArr();
586
- storeArr.push(utils._delUselessParam(reportParams));
587
- storage.set(this._storeMark, JSON.stringify(storeArr));
588
- return;
589
- }
590
- this._requestCgi(this._sdkConf.report_url, reportParams);
591
- };
592
- // 获取缓存数据
593
- MonitorJSSDK.prototype.getStoreArr = function () {
594
- var storeArr = storage.get(this._storeMark);
595
- if (!storeArr) {
596
- storeArr = [];
597
- }
598
- else {
599
- storeArr = JSON.parse(storeArr);
600
- }
601
- return storeArr;
602
- };
603
- // 保存缓存数据
604
- MonitorJSSDK.prototype.setStoreArr = function (arr) {
605
- var newArr = this.getStoreArr();
606
- storage.set(this._storeMark, JSON.stringify(newArr.concat(arr)));
607
- };
608
- MonitorJSSDK.prototype._run = function () {
609
- this._getPageBaseInfo();
610
- if (this._sdkConf.autoWatchClick) {
611
- this._watchClick();
612
- }
613
- if (this._sdkConf.autoReportPv) {
614
- this._watchPathChange();
615
- }
616
- };
617
- // 获取页面基本信息
618
- MonitorJSSDK.prototype._getPageBaseInfo = function () {
619
- if (this._sdkConf.isWxEnv) {
620
- this._getNetworkType();
621
- }
622
- var realUserId = utils.getQueryString("id") || storage.getCookie(this._sdkConf["userKey"]) || this._getUUID();
623
- Object.assign(this._defReportParams, {
624
- dm: location.hostname,
625
- ky: this._sdkConf.appKey,
626
- si: this._getSessionId(),
627
- id: realUserId + "_id",
628
- cui: realUserId + "_cui",
629
- ui: realUserId + "_ui" // 一个随机生成的id,因为大多数没有id,cui,所以用ui计算uv
630
- });
631
- this._defReportParams.ev.sr = utils._getPixelSize();
632
- this._defReportParams.ev.os = utils._getOsName();
633
- };
634
- // 获取sessionid
635
- MonitorJSSDK.prototype._getSessionId = function () {
636
- var sessionKey = "_monitor_sessionid_v2";
637
- var sessionId = storage.getCookie(sessionKey);
638
- if (!sessionId) {
639
- sessionId = utils._randomString();
640
- storage.setCookie(sessionKey, sessionId);
641
- storage.setCookie("_monitor_idx_v2", 1);
642
- }
643
- return sessionId;
644
- };
645
- // 生成唯一id
646
- MonitorJSSDK.prototype._getUUID = function () {
647
- var uuidKey = "_monitor_uuid_v2";
648
- var uuid = storage.get(uuidKey);
649
- if (uuid) {
650
- return uuid;
651
- }
652
- var d = new Date().getTime();
653
- if (window.performance && typeof window.performance.now === "function") {
654
- d += performance.now(); //use high-precision timer if available
655
- }
656
- uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
657
- var r = (d + Math.random() * 16) % 16 | 0;
658
- d = Math.floor(d / 16);
659
- return (c == "x" ? r : (r & 0x3 | 0x8)).toString(16);
660
- });
661
- uuid = "mc_" + uuid;
662
- storage.set(uuidKey, uuid);
663
- return uuid;
664
- };
665
- // 获取网络类型
666
- MonitorJSSDK.prototype._getNetworkType = function () {
667
- var self = this;
668
- if (this._sdkConf.isWxEnv) {
669
- wx.getNetworkType({
670
- success: function (res) {
671
- self._defReportParams.ev.cn = res.networkType; // 返回网络类型2g,3g,4g,wifi
672
- }
673
- });
674
- }
675
- };
676
- MonitorJSSDK.prototype._requestCgi = function (url, data) {
677
- var _self = this;
678
- if (_self._sdkConf.stopReport)
679
- return;
680
- var storeArr = this.getStoreArr();
681
- storeArr.push(utils._delUselessParam(data));
682
- var reportInfo = storeArr.splice(0 - _self._sdkConf.reportNum);
683
- storage.set(this._storeMark, JSON.stringify(storeArr));
684
- ajax({
685
- method: "POST",
686
- url: url,
687
- data: {
688
- reportInfo: encodeURIComponent(JSON.stringify(reportInfo))
689
- },
690
- success: function (response) {
691
- if (+response.errcode !== 0) {
692
- _self.setStoreArr(reportInfo);
693
- }
694
- },
695
- error: function () {
696
- _self.setStoreArr(reportInfo);
697
- }
698
- });
699
- };
700
- // 监听有hottag的标签
701
- MonitorJSSDK.prototype._watchClick = function () {
702
- var _self = this;
703
- document.addEventListener("click", function (e) {
704
- var target = e.srcElement || e.target; // src 就是事件的触发源
705
- var hottag = target.getAttribute("hottag");
706
- var ht = target.getAttribute("ht");
707
- hottag && _self._eventClick(hottag, { ht: ht }, false, target);
708
- }, false);
709
- };
710
- return MonitorJSSDK;
711
- }());
712
- var yyptReport = {
713
- g_monitor: null,
714
- // 初始化
715
- initMonitor: function (config) {
716
- if (!this.g_monitor) {
717
- this.g_monitor = new MonitorJSSDK(config);
718
- }
719
- },
720
- // 初始化并进行pv上报
721
- pgvMain: function (config, params) {
722
- if (params === void 0) { params = {}; }
723
- this.initMonitor(config);
724
- if (config.autoReportPv) {
725
- this.g_monitor._reportPV(params);
726
- }
727
- },
728
- // 手动上报pv
729
- reportPV: function (params) {
730
- this.g_monitor._reportPV(params);
731
- },
732
- // 点击上报
733
- eventClick: function () {
734
- var params = [];
735
- for (var _i = 0; _i < arguments.length; _i++) {
736
- params[_i] = arguments[_i];
737
- }
738
- var _a;
739
- if (!this.g_monitor) {
740
- console.error("请先运行initMonitor方法!!");
741
- return;
742
- }
743
- (_a = this.g_monitor)._eventClick.apply(_a, params);
744
- },
745
- logInfo: function (msg, params, immediate) {
746
- if (params === void 0) { params = {}; }
747
- this.g_monitor._logReport(Object.assign(params, { type: "info", msg: msg }), immediate);
748
- },
749
- logWarn: function (msg, params, immediate) {
750
- if (params === void 0) { params = {}; }
751
- this.g_monitor._logReport(Object.assign(params, { type: "warn", msg: msg }), immediate);
752
- },
753
- logError: function (msg, params, immediate) {
754
- if (params === void 0) { params = {}; }
755
- this.g_monitor._logReport(Object.assign(params, { type: "error", msg: msg }), immediate);
756
- }
757
- };
758
-
759
- return yyptReport;
760
-
761
- }());
762
-
763
- window.yyptReport = yyptReport