refactor(mixin): 重构埋点函数以支持对象参数并优化URL构建
重构 maEvent 函数,使其支持字符串和对象两种传参方式。当传入对象时,自动过滤空值并构建查询字符串,提升代码的灵活性与健壮性。
Showing
1 changed file
with
15 additions
and
3 deletions
| ... | @@ -81,9 +81,21 @@ export default { | ... | @@ -81,9 +81,21 @@ export default { |
| 81 | 81 | ||
| 82 | return false; | 82 | return false; |
| 83 | }, | 83 | }, |
| 84 | - maEvent: throttle(function () { | 84 | + // 埋点支持两种传参方式: |
| 85 | - var p = Array.prototype.shift.call(arguments); | 85 | + // this.maEvent('h5_contact') |
| 86 | - return axios.post('/srv/?a=log&p=' + p) | 86 | + // this.maEvent({ p: 'h5_contact', event: 'document_preview' }) |
| 87 | + maEvent: throttle(function (payload) { | ||
| 88 | + const eventData = typeof payload === 'string' ? { p: payload } : (payload || {}); | ||
| 89 | + const query = new URLSearchParams(); | ||
| 90 | + | ||
| 91 | + Object.entries(eventData).forEach(([key, value]) => { | ||
| 92 | + if (value !== undefined && value !== null && value !== '') { | ||
| 93 | + query.append(key, value); | ||
| 94 | + } | ||
| 95 | + }); | ||
| 96 | + | ||
| 97 | + const url = query.toString() ? `/srv/?a=log&${query.toString()}` : '/srv/?a=log'; | ||
| 98 | + return axios.post(url); | ||
| 87 | }, 1500) | 99 | }, 1500) |
| 88 | }, | 100 | }, |
| 89 | directives: { | 101 | directives: { | ... | ... |
-
Please register or login to post a comment