cbvirtua 1.0.122 → 2.0.0

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 (173) hide show
  1. package/package.json +3 -5
  2. package/valid.txt +468 -0
  3. package/vue3-hash-calendar-main.zip +0 -0
  4. package/1.zip +0 -0
  5. package/7.zip +0 -0
  6. package/888.zip +0 -0
  7. package/Checkbox Checked-1.png +0 -0
  8. package/_/345/217/267 (1).svg" +0 -1
  9. package/_/345/217/267.svg +0 -1
  10. package/a.png +0 -0
  11. package/babel-plugin-async-lock-master.zip +0 -0
  12. package/build-own-react-main.zip +0 -0
  13. package/check_box.svg +0 -1
  14. package/check_box_outline_blank.svg +0 -1
  15. package/checkbox_unchecked.svg +0 -1
  16. package/floating-vue-main.zip +0 -0
  17. package/font_2009600_gpzp7pxtnw.zip +0 -0
  18. package/font_2553510_ciljc7axaw7.woff +0 -0
  19. package/font_2553510_ciljc7axaw7.woff2 +0 -0
  20. package/leetcode-javascript-master.zip +0 -0
  21. package/loginDemo-master.zip +0 -0
  22. package/mi.txt +0 -374
  23. package/mitt-main.zip +0 -0
  24. package/mp-weixin-back-main.zip +0 -0
  25. package/pdfsss.txt +0 -900
  26. package/sms-check-code-master.zip +0 -0
  27. package/sss.txt +0 -2
  28. package/study-summarize-master.zip +0 -0
  29. package/tool.txt +0 -19
  30. package/v-dropdown-menu-master.zip +0 -0
  31. package/v-track-master/v-track-master/.browserslistrc +0 -3
  32. package/v-track-master/v-track-master/.eslintignore +0 -3
  33. package/v-track-master/v-track-master/.eslintrc.js +0 -15
  34. package/v-track-master/v-track-master/.gitattributes +0 -1
  35. package/v-track-master/v-track-master/.github/FUNDING.yml +0 -12
  36. package/v-track-master/v-track-master/.github/workflows/node.js.yml +0 -29
  37. package/v-track-master/v-track-master/.travis.yml +0 -22
  38. package/v-track-master/v-track-master/.yarnrc +0 -1
  39. package/v-track-master/v-track-master/LICENSE +0 -21
  40. package/v-track-master/v-track-master/README.md +0 -131
  41. package/v-track-master/v-track-master/babel.config.js +0 -25
  42. package/v-track-master/v-track-master/build/rollup.config.base.js +0 -14
  43. package/v-track-master/v-track-master/build/rollup.config.browser.js +0 -21
  44. package/v-track-master/v-track-master/build/rollup.config.es.js +0 -11
  45. package/v-track-master/v-track-master/docs/.babelrc +0 -5
  46. package/v-track-master/v-track-master/docs/App.vue +0 -61
  47. package/v-track-master/v-track-master/docs/assets/app.scss +0 -197
  48. package/v-track-master/v-track-master/docs/assets/index.scss +0 -10
  49. package/v-track-master/v-track-master/docs/assets/mixins.scss +0 -64
  50. package/v-track-master/v-track-master/docs/assets/normalize.scss +0 -349
  51. package/v-track-master/v-track-master/docs/components/button.vue +0 -15
  52. package/v-track-master/v-track-master/docs/components/code-snippet.vue +0 -72
  53. package/v-track-master/v-track-master/docs/dist/css/app.2e14d2d6.css +0 -4
  54. package/v-track-master/v-track-master/docs/dist/css/chunk-vendors.c687a9b2.css +0 -1
  55. package/v-track-master/v-track-master/docs/dist/favicon.ico +0 -0
  56. package/v-track-master/v-track-master/docs/dist/fonts/element-icons.535877f5.woff +0 -0
  57. package/v-track-master/v-track-master/docs/dist/fonts/element-icons.732389de.ttf +0 -0
  58. package/v-track-master/v-track-master/docs/dist/js/app.efe84ade.js +0 -2
  59. package/v-track-master/v-track-master/docs/dist/js/app.efe84ade.js.map +0 -1
  60. package/v-track-master/v-track-master/docs/dist/js/chunk-vendors.c94e27ba.js +0 -13
  61. package/v-track-master/v-track-master/docs/dist/js/chunk-vendors.c94e27ba.js.map +0 -1
  62. package/v-track-master/v-track-master/docs/index.html +0 -1
  63. package/v-track-master/v-track-master/docs/main.js +0 -78
  64. package/v-track-master/v-track-master/docs/pages/block-show.vue +0 -177
  65. package/v-track-master/v-track-master/docs/pages/custom-events.vue +0 -291
  66. package/v-track-master/v-track-master/docs/pages/home.vue +0 -269
  67. package/v-track-master/v-track-master/docs/pages/started.vue +0 -151
  68. package/v-track-master/v-track-master/docs/pages/track-view.vue +0 -234
  69. package/v-track-master/v-track-master/docs/tracks/action.js +0 -37
  70. package/v-track-master/v-track-master/docs/tracks/events.js +0 -140
  71. package/v-track-master/v-track-master/docs/tracks/index.js +0 -13
  72. package/v-track-master/v-track-master/docs/utils/date.js +0 -219
  73. package/v-track-master/v-track-master/docs/utils/dom.js +0 -26
  74. package/v-track-master/v-track-master/jest.config.js +0 -18
  75. package/v-track-master/v-track-master/package.json +0 -67
  76. package/v-track-master/v-track-master/postcss.config.js +0 -5
  77. package/v-track-master/v-track-master/public/favicon.ico +0 -0
  78. package/v-track-master/v-track-master/public/index.html +0 -18
  79. package/v-track-master/v-track-master/src/hooks/index.js +0 -217
  80. package/v-track-master/v-track-master/src/index.js +0 -79
  81. package/v-track-master/v-track-master/src/utils/debug.js +0 -13
  82. package/v-track-master/v-track-master/src/utils/dom.js +0 -73
  83. package/v-track-master/v-track-master/src/utils/helper.js +0 -122
  84. package/v-track-master/v-track-master/src/utils/vis-monitor.js +0 -183
  85. package/v-track-master/v-track-master/tests/helper.js +0 -37
  86. package/v-track-master/v-track-master/tests/unit/.eslintrc.js +0 -5
  87. package/v-track-master/v-track-master/tests/unit/track-click-async.spec.js +0 -52
  88. package/v-track-master/v-track-master/tests/unit/track-click-delay.spec.js +0 -46
  89. package/v-track-master/v-track-master/tests/unit/track-click-native.spec.js +0 -84
  90. package/v-track-master/v-track-master/tests/unit/track-click-param.spec.js +0 -55
  91. package/v-track-master/v-track-master/tests/unit/track-click.spec.js +0 -47
  92. package/v-track-master/v-track-master/tests/unit/track-custom-event-async.spec.js +0 -61
  93. package/v-track-master/v-track-master/tests/unit/track-custom-event-delay.spec.js +0 -59
  94. package/v-track-master/v-track-master/tests/unit/track-custom-event-param.spec.js +0 -68
  95. package/v-track-master/v-track-master/tests/unit/track-custom-event.spec.js +0 -55
  96. package/v-track-master/v-track-master/tests/unit/track-show-custom-scroll-once.spec.js +0 -62
  97. package/v-track-master/v-track-master/tests/unit/track-show-custom-scroll.spec.js +0 -62
  98. package/v-track-master/v-track-master/tests/unit/track-show-once.spec.js +0 -55
  99. package/v-track-master/v-track-master/tests/unit/track-show-param.spec.js +0 -51
  100. package/v-track-master/v-track-master/tests/unit/track-show.spec.js +0 -55
  101. package/v-track-master/v-track-master/tests/unit/track-view-vif.spec.js +0 -54
  102. package/v-track-master/v-track-master/tests/unit/track-view-watch-delay.spec.js +0 -63
  103. package/v-track-master/v-track-master/tests/unit/track-view-watch.spec.js +0 -61
  104. package/v-track-master/v-track-master/tests/unit/track-view.spec.js +0 -32
  105. package/v-track-master/v-track-master/vue.config.js +0 -45
  106. package/v-track-master/v-track-master/yarn.lock +0 -10186
  107. package/v-track-master.zip +0 -0
  108. package/vant-weapp-dev.zip +0 -0
  109. package/vue-autosize-input-master.zip +0 -0
  110. package/vue-awesome-dropdown-master.zip +0 -0
  111. package/vue-codemod-main.zip +0 -0
  112. package/vue-collapsed-main.zip +0 -0
  113. package/vue-input-code-master.zip +0 -0
  114. package/vue-jscodeshift-adapter-master.zip +0 -0
  115. package/vue-verify-master.zip +0 -0
  116. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/.hbuilderx/launch.json +0 -11
  117. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/App.vue +0 -17
  118. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/README.md +0 -13
  119. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/code.js +0 -408
  120. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/css/icon.css +0 -342
  121. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/css/style.scss +0 -119
  122. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/search/index.vue +0 -66
  123. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/tree.vue +0 -70
  124. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/main.js +0 -11
  125. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/manifest.json +0 -78
  126. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/chooseUser/chooseUser.vue +0 -69
  127. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/chooseUser/data.js +0 -96
  128. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/index/index.vue +0 -122
  129. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages.json +0 -25
  130. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/changelog.md +0 -80
  131. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/en.json +0 -7
  132. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/index.js +0 -8
  133. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json +0 -7
  134. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json +0 -7
  135. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/keypress.js +0 -45
  136. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/popup.js +0 -26
  137. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue +0 -90
  138. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/uni-popup.vue +0 -496
  139. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js +0 -45
  140. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue +0 -313
  141. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue +0 -143
  142. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue +0 -187
  143. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/package.json +0 -87
  144. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/readme.md +0 -17
  145. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/changelog.md +0 -8
  146. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/index.scss +0 -1
  147. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/package.json +0 -82
  148. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/readme.md +0 -4
  149. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/index.scss +0 -7
  150. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_border.scss +0 -3
  151. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_color.scss +0 -66
  152. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_radius.scss +0 -55
  153. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_space.scss +0 -56
  154. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_styles.scss +0 -167
  155. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_text.scss +0 -24
  156. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_variables.scss +0 -146
  157. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/tools/functions.scss +0 -19
  158. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/theme.scss +0 -31
  159. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/variables.scss +0 -62
  160. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/changelog.md +0 -22
  161. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/components/uni-transition/createAnimation.js +0 -131
  162. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/components/uni-transition/uni-transition.vue +0 -286
  163. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/package.json +0 -84
  164. package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/readme.md +0 -11
  165. package//346/224/266/347/274/251/344/270/212/347/256/255/345/244/264 (1).svg" +0 -1
  166. package//346/224/266/347/274/251/344/270/212/347/256/255/345/244/264.svg +0 -1
  167. package//346/224/266/347/274/251/344/270/213/347/256/255/345/244/264.svg +0 -1
  168. package//346/224/266/347/274/251/347/256/255/345/244/264.svg +0 -1
  169. package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (2).txt" +0 -90
  170. package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (3).txt" +0 -142
  171. package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (3).zip +0 -0
  172. package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243.txt" +0 -59
  173. package//351/227/256/345/217/267.svg +0 -1
@@ -1,269 +0,0 @@
1
- <template>
2
- <div class="page-home page">
3
- <section class="nav">
4
- <router-link :to="{ name: 'STARTED' }">
5
- 快速开始
6
- </router-link>
7
- <router-link :to="{ name: 'HOME' }">
8
- 事件行为埋点
9
- </router-link>
10
- <router-link :to="{ name: 'CUSTOM_EVENTS' }">
11
- 自定义事件埋点
12
- </router-link>
13
- <router-link :to="{ name: 'TRACK_VIEW' }">
14
- 页面行为埋点
15
- </router-link>
16
- <router-link :to="{ name: 'BLOCK_SHOW' }">
17
- 区域展现埋点
18
- </router-link>
19
- <a href="https://github.com/l-hammer/v-track/issues">打开一个 issue</a>
20
- </section>
21
-
22
- <!----------------------- DEMO 1 ------------------------>
23
- <section class="demo">
24
- <el-alert
25
- center
26
- type="info"
27
- title="这是一个点击事件行为的埋点"
28
- :closable="false"
29
- >
30
- </el-alert>
31
- <div class="section-content">
32
- <div class="track-button" v-track:18015.click="handleClick">
33
- click me
34
- </div>
35
- </div>
36
- </section>
37
-
38
- <section class="snippets">
39
- <CodeSnippet class="snippet" lang="html" :code="trackClickSnippet" />
40
- </section>
41
-
42
- <!----------------------- DEMO 2 ------------------------>
43
- <section class="demo">
44
- <el-alert
45
- center
46
- type="info"
47
- title="通过增加 .native 修饰符,我们可以监听组件原生click事件行为的埋点"
48
- :closable="false"
49
- >
50
- </el-alert>
51
- <div class="section-content">
52
- <Button v-track:18015.click.native="handleNativeEvent"></Button>
53
- </div>
54
- </section>
55
-
56
- <section class="snippets">
57
- <CodeSnippet
58
- class="snippet"
59
- lang="html"
60
- :code="trackNativeClickSnippet"
61
- />
62
- </section>
63
-
64
- <!----------------------- DEMO 3 ------------------------>
65
- <section class="demo">
66
- <el-alert
67
- center
68
- type="info"
69
- title="这个一个带参数点击事件行为的埋点,默认最后一个参数为 event 事件对象"
70
- :closable="false"
71
- >
72
- </el-alert>
73
- <div class="section-content">
74
- <div
75
- class="track-button"
76
- v-track:18016.click="{ handleClickWithParam, item }"
77
- >
78
- click me
79
- </div>
80
- </div>
81
- </section>
82
-
83
- <section class="snippets">
84
- <CodeSnippet
85
- class="snippet"
86
- lang="html"
87
- :code="trackClickWithParamSnippet"
88
- />
89
- <CodeSnippet
90
- class="snippet"
91
- lang="js"
92
- :code="jsTrackClickWithParamSnippet"
93
- />
94
- </section>
95
-
96
- <!----------------------- DEMO 4 ------------------------>
97
- <section class="demo">
98
- <el-alert
99
- center
100
- type="info"
101
- title="这是一个发生在事件之后的埋点,默认先执行埋点再执行事件,如示例所示:index初始值为0,点击事件会将index加1,所以埋点获取到的index值应该为1,依次点击则累加"
102
- :closable="false"
103
- >
104
- </el-alert>
105
- <div class="section-content">
106
- <div class="track-button" v-track:18017.click.delay="handleClickDelay">
107
- click me
108
- </div>
109
- </div>
110
- </section>
111
-
112
- <section class="snippets">
113
- <CodeSnippet class="snippet" lang="html" :code="trackClickDelaySnippet" />
114
- <CodeSnippet class="snippet" lang="js" :code="jsTrackClickDelaySnippet" />
115
- </section>
116
-
117
- <!----------------------- DEMO 5 ------------------------>
118
- <section class="demo">
119
- <el-alert
120
- center
121
- type="info"
122
- title="这是一个有异步行为的事件埋点,如示例所示:rest 初始值为 null,点击事件会 fetch 为 success,所以埋点获取到的 rest 值应该为 success"
123
- :closable="false"
124
- >
125
- </el-alert
126
- ><el-alert
127
- center
128
- type="warning"
129
- title="备注:①修饰符 async 是基于 Vue 实例提供的 vm.$watch 方法,所以只有在返回结果 rest 发生变化时才会触发埋点;②当有多个参数时,.async 会把最后一个参数当做监听对象"
130
- :closable="false"
131
- >
132
- </el-alert>
133
- <div class="section-content">
134
- <div
135
- class="track-button"
136
- v-track:18018.click.async="{ handleClickAsync, rest }"
137
- >
138
- click me
139
- </div>
140
- </div>
141
- </section>
142
-
143
- <section class="snippets">
144
- <CodeSnippet class="snippet" lang="html" :code="trackClickAsyncSnippet" />
145
- <CodeSnippet class="snippet" lang="js" :code="jsTrackClickAsyncSnippet" />
146
- </section>
147
- </div>
148
- </template>
149
-
150
- <script>
151
- import CodeSnippet from "../components/code-snippet";
152
- import Button from "../components/button";
153
-
154
- const trackClickSnippet = `
155
- <div class="track-button" v-track:18015.click="handleClick">click me</div>
156
- `;
157
- const trackNativeClickSnippet = `
158
- <Button v-track:18015.click.native="handleNativeEvent"></Button>
159
- `;
160
- const trackClickWithParamSnippet = `
161
- <div class="track-button" v-track:18016.click="{ handleClickWithParam, item }">click me</div>
162
- `;
163
- const jsTrackClickWithParamSnippet = `
164
- export default {
165
- data: () => ({
166
- item: {
167
- id: Date.now().toString(36)
168
- },
169
- })
170
- }
171
- `;
172
- const trackClickDelaySnippet = `
173
- <div class="track-button" v-track:18017.click.delay="handleClickDelay">click me</div>
174
- `;
175
- const jsTrackClickDelaySnippet = `
176
- export default {
177
- data() {
178
- return {
179
- index: 0
180
- };
181
- },
182
- methods: {
183
- handleClickDelay() {
184
- this.index++;
185
- },
186
- }
187
- }
188
- `;
189
- const trackClickAsyncSnippet = `
190
- <div class="track-button" v-track:18018.click.async="handleClickAsync">click me</div>
191
- `;
192
- const jsTrackClickAsyncSnippet = `
193
- export default {
194
- data() {
195
- return {
196
- rest: null
197
- };
198
- },
199
- methods: {
200
- async handleClickAsync() {
201
- const response = await new Promise(resolve => {
202
- setTimeout(() => {
203
- resolve({ data: "success" });
204
- }, 300);
205
- });
206
-
207
- this.rest = response.data;
208
- }
209
- }
210
- }
211
- `;
212
-
213
- export default {
214
- name: "Home",
215
- components: {
216
- Button,
217
- CodeSnippet
218
- },
219
- data() {
220
- return {
221
- trackClickSnippet,
222
- trackNativeClickSnippet,
223
- trackClickWithParamSnippet,
224
- jsTrackClickWithParamSnippet,
225
- trackClickDelaySnippet,
226
- trackClickAsyncSnippet,
227
- jsTrackClickDelaySnippet,
228
- jsTrackClickAsyncSnippet,
229
- item: {
230
- id: Date.now().toString(36)
231
- },
232
- index: 0,
233
- rest: null
234
- };
235
- },
236
- methods: {
237
- handleClick() {
238
- this.$message.success("事件执行成功");
239
- },
240
- handleNativeEvent() {
241
- this.$message.success("组件原生事件执行成功");
242
- },
243
- handleClickWithParam(item, { target }) {
244
- this.$message.success(
245
- `事件执行成功,参数为${JSON.stringify(item)}--${target}`
246
- );
247
- },
248
- handleClickDelay() {
249
- this.index++;
250
- },
251
- async handleClickAsync() {
252
- const response = await new Promise(resolve => {
253
- setTimeout(() => {
254
- resolve({ data: "success" });
255
- }, 300);
256
- });
257
-
258
- if (this.rest === response.data) {
259
- this.$message.success(
260
- "异步事件返回成功,但返回结果和上一次相等,埋点不会上报"
261
- );
262
- } else {
263
- this.rest = response.data;
264
- this.$message.success("异步事件返回成功");
265
- }
266
- }
267
- }
268
- };
269
- </script>
@@ -1,151 +0,0 @@
1
- <template>
2
- <div class="page-started page">
3
- <section class="nav">
4
- <router-link :to="{ name: 'HOME' }">
5
- 返回
6
- </router-link>
7
- <router-link :to="{ name: 'HOME' }">
8
- 事件行为埋点
9
- </router-link>
10
- <router-link :to="{ name: 'CUSTOM_EVENTS' }">
11
- 自定义事件埋点
12
- </router-link>
13
- <router-link :to="{ name: 'TRACK_VIEW' }">
14
- 页面行为埋点
15
- </router-link>
16
- <router-link :to="{ name: 'BLOCK_SHOW' }">
17
- 区域展现埋点
18
- </router-link>
19
- <a href="https://github.com/l-hammer/v-track/issues">打开一个 issue</a>
20
- </section>
21
-
22
- <section class="snippets">
23
- <div class="section-content small">
24
- v-track通过
25
- <a href="https://cn.vuejs.org/v2/guide/custom-directive.html"
26
- >Vue 自定义指令</a
27
- >的方式将埋点代码与业务代码完全解耦,完整示例可参考
28
- <a href="https://github.com/l-hammer/v-track/tree/master">GitHub</a>
29
- </div>
30
- </section>
31
-
32
- <section class="snippets">
33
- <CodeSnippet class="snippet" :code="installSnippet" lang="shell" />
34
- <div class="plus">+</div>
35
- <CodeSnippet class="snippet" :code="mainSnippet" lang="js" />
36
- <div class="plus">+</div>
37
- <CodeSnippet class="snippet" :code="eventsSnippet" lang="js" />
38
- <div class="plus">+</div>
39
- <CodeSnippet class="snippet" :code="componentSnippet" lang="html" />
40
- </section>
41
- </div>
42
- </template>
43
-
44
- <script>
45
- import CodeSnippet from "../components/code-snippet";
46
-
47
- const installSnippet = `
48
- # YARN
49
- $ yarn add v-track
50
-
51
- # NPM
52
- $ npm install v-track --save
53
- `;
54
- const mainSnippet = `
55
- import Vue from "vue";
56
- import VTrack from "v-track";
57
- import trackEvents from "./track-events";
58
-
59
- Vue.use(VTrack, {
60
- trackEvents, // 埋点事件对象
61
- trackEnable: {
62
- UVPV: true, // 是否开启UVPV统计,v0.8.3新增routeUpdate,即在当前路由参数发生改变时埋点,默认为false
63
- TONP: true // 是否开启页面停留时长统计,默认为false
64
- }
65
- })
66
- `;
67
- const eventsSnippet = `
68
- import trackAction from "./action"; // 自定义埋点上报的方法
69
-
70
- export default {
71
- /**
72
- * @name UVPV 固定名称不支持修改
73
- * @desc UV、PV埋点
74
- * @param {Object} context 当前上下文
75
- */
76
- UVPV(_) {
77
- trackAction("1");
78
- },
79
- /**
80
- * @name TONP 固定名称不支持修改
81
- * @desc 页面停留时间埋点(Time on Page)
82
- * @param {Object} context 当前上下文
83
- * @param {Timestamp} et 进入页面时间
84
- * @param {Timestamp} dt 离开页面时间
85
- */
86
- TONP(_, { et, dt }) {
87
- trackAction("2", {
88
- stt: dt - et
89
- });
90
- },
91
- /**
92
- * @param {Object} context 当前上下文
93
- * @param {Object} item 事件参数
94
- * @param {Object} event 事件对象
95
- */
96
- 18015(
97
- {
98
- $route: { name }
99
- },
100
- { id },
101
- { target }
102
- ) {
103
- trackAction("18015", {
104
- id,
105
- source_page: name,
106
- target
107
- });
108
- },
109
- };
110
- `;
111
- const componentSnippet = `
112
- <!-- 页面行为埋点(track-view为v-track全局注册的组件) -->
113
- <track-view v-track:18015></track-view>
114
- <track-view v-track:18015.watch="{ result }"></track-view>
115
- <track-view v-track:18015.watch.delay="{ result }"></track-view>
116
- <track-view v-if="result" v-track:18015></track-view>
117
-
118
- <!-- 事件行为埋点(DOM) -->
119
- <div v-track:18015.click="handleClick"></div>
120
- <div v-track:18015.click="{ handleClick, item, index }"></div>
121
- <div v-track:18015.click.async="{ handleSearch, rest }"></div>
122
- <div v-track:18015.click.delay="handleClick"></div>
123
-
124
- <!-- 事件行为埋点(组件) -->
125
- <cmp v-track:18015.click="handleClick"></cmp>
126
- <cmp v-track:18015.[自定义事件名]="handleSearch"></cmp>
127
- <cmp v-track:18015.[自定义事件名].delay="handleSearch"></cmp>
128
- <cmp v-track:18015.[自定义事件名].async="{ handleSearch, rest }"></cmp>
129
-
130
- <!-- 区域展现埋点(block 可以是 DOM 或者组件) -->
131
- <block v-track:18015.show></block>
132
- <block v-track:18015.show.once></block>
133
- <block v-track:18015.show.custom="{ ref: 'scroll' }"></block>
134
- <block v-track:18015.show.custom.once="{ ref: 'scroll' }"></block>
135
- `;
136
-
137
- export default {
138
- name: "Started",
139
- components: {
140
- CodeSnippet
141
- },
142
- data() {
143
- return {
144
- installSnippet,
145
- mainSnippet,
146
- eventsSnippet,
147
- componentSnippet
148
- };
149
- }
150
- };
151
- </script>
@@ -1,234 +0,0 @@
1
- <template>
2
- <div class="page-home page">
3
- <section class="nav">
4
- <router-link :to="{ name: 'STARTED' }">
5
- 快速开始
6
- </router-link>
7
- <router-link :to="{ name: 'HOME' }">
8
- 事件行为埋点
9
- </router-link>
10
- <router-link :to="{ name: 'CUSTOM_EVENTS' }">
11
- 自定义事件埋点
12
- </router-link>
13
- <router-link :to="{ name: 'HOME' }">
14
- 返回
15
- </router-link>
16
- <router-link :to="{ name: 'BLOCK_SHOW' }">
17
- 区域展现埋点
18
- </router-link>
19
- <a href="https://github.com/l-hammer/v-track/issues">打开一个 issue</a>
20
- </section>
21
-
22
- <!----------------------- DEMO 1 ------------------------>
23
- <section class="demo">
24
- <el-alert
25
- center
26
- type="info"
27
- title="这是一个页面初始化埋点"
28
- :closable="false"
29
- >
30
- </el-alert>
31
- <el-alert
32
- center
33
- type="warning"
34
- title="备注:v-track指令可用于任何元素,此行为埋点建议绑定到页面的根元素或者v-track提供的track-view组件上"
35
- :closable="false"
36
- >
37
- </el-alert>
38
- <div v-track:18022 class="section-content"></div>
39
- </section>
40
- <section class="snippets">
41
- <CodeSnippet
42
- class="snippet"
43
- lang="html"
44
- :code="trackViewComponentSnippet"
45
- />
46
- </section>
47
-
48
- <!----------------------- DEMO 2 ------------------------>
49
- <section class="demo">
50
- <el-alert
51
- center
52
- type="info"
53
- title="配合 v-if 指令控制埋点上报次数,即 show 为真时,会再次触发埋点"
54
- :closable="false"
55
- >
56
- </el-alert>
57
- <div class="section-content">
58
- <track-view v-track:18023 v-if="show"></track-view>
59
- <div class="track-button" @click="() => (show = !show)">
60
- click me -> {{ show }}
61
- </div>
62
- </div>
63
- </section>
64
- <section class="snippets">
65
- <CodeSnippet
66
- class="snippet"
67
- lang="html"
68
- :code="trackViewComponentVIfSnippet"
69
- />
70
- <CodeSnippet
71
- class="snippet"
72
- lang="js"
73
- :code="jsTrackViewComponentVIfSnippet"
74
- />
75
- </section>
76
-
77
- <!----------------------- DEMO 3 ------------------------>
78
- <section class="demo">
79
- <el-alert
80
- center
81
- type="info"
82
- title="这是一个监听页面行为的埋点,同事件行为埋点一样,只有当返回结果发生变化时才会上报埋点"
83
- :closable="false"
84
- >
85
- </el-alert>
86
- <div class="section-content">
87
- <track-view v-track:18025.watch="{ rest1 }" />
88
- <div class="track-button" @click="fetchRest(false)">
89
- click me
90
- </div>
91
- </div>
92
- </section>
93
- <section class="snippets">
94
- <CodeSnippet
95
- class="snippet"
96
- lang="html"
97
- :code="trackViewComponentWatchSnippet"
98
- />
99
- <CodeSnippet
100
- class="snippet"
101
- lang="js"
102
- :code="jsTrackViewComponentWatchSnippet"
103
- />
104
- </section>
105
-
106
- <!----------------------- DEMO 4 ------------------------>
107
- <section class="demo">
108
- <el-alert
109
- center
110
- type="info"
111
- title="这是一个监听页面行为并延时的埋点,不同于事件延时埋点,这里可通过delay设置具体的延长时间"
112
- :closable="false"
113
- >
114
- </el-alert>
115
- <div class="section-content">
116
- <track-view v-track:18026.watch.delay="{ rest2, delay: 2000 }" />
117
- <div class="track-button" @click="fetchRest(true)">
118
- click me
119
- </div>
120
- </div>
121
- </section>
122
- <section class="snippets">
123
- <CodeSnippet
124
- class="snippet"
125
- lang="html"
126
- :code="trackViewComponentWatchDelaySnippet"
127
- />
128
- <CodeSnippet
129
- class="snippet"
130
- lang="js"
131
- :code="jsTrackViewComponentWatchDelaySnippet"
132
- />
133
- </section>
134
- </div>
135
- </template>
136
-
137
- <script>
138
- import CodeSnippet from "../components/code-snippet";
139
-
140
- const trackViewComponentSnippet = `
141
- <track-view v-track:18022></track-view>
142
- `;
143
- const trackViewComponentVIfSnippet = `
144
- <track-view v-track:18023 v-if="show"></track-view>
145
- <div class="track-button" @click="show = !show">click me -> {{ show }}</div>
146
- `;
147
- const jsTrackViewComponentVIfSnippet = `
148
- export default {
149
- data: () => ({ show: false })
150
- }
151
- `;
152
- const trackViewComponentWatchSnippet = `
153
- <track-view v-track:18015.watch="{ rest }" />
154
- <div class="track-button" @click="fetchRest">click me</div>
155
- `;
156
- const jsTrackViewComponentWatchSnippet = `
157
- export default {
158
- data: () => ({ rest: null }),
159
- methods: {
160
- async fetchRest() {
161
- const response = await new Promise(resolve => {
162
- setTimeout(() => {
163
- resolve({ data: "success" });
164
- }, 300);
165
- });
166
-
167
- this.rest = response.data;
168
- }
169
- },
170
- }
171
- `;
172
- const trackViewComponentWatchDelaySnippet = `
173
- <track-view v-track:18025.watch.delay="{ rest, delay: 2000 }" />
174
- <div class="track-button" @click="fetchRest()">click me</div>
175
- `;
176
- const jsTrackViewComponentWatchDelaySnippet = `
177
- export default {
178
- data: () => ({ rest: null }),
179
- methods: {
180
- async fetchRest() {
181
- const response = await new Promise(resolve => {
182
- setTimeout(() => {
183
- resolve({ data: "success" });
184
- }, 300);
185
- });
186
-
187
- this.rest = response.data;
188
- }
189
- },
190
- }
191
- `;
192
-
193
- export default {
194
- name: "TrackViews",
195
- components: {
196
- CodeSnippet
197
- },
198
- data() {
199
- return {
200
- trackViewComponentSnippet,
201
- trackViewComponentVIfSnippet,
202
- jsTrackViewComponentVIfSnippet,
203
- trackViewComponentWatchSnippet,
204
- jsTrackViewComponentWatchSnippet,
205
- trackViewComponentWatchDelaySnippet,
206
- jsTrackViewComponentWatchDelaySnippet,
207
- show: false,
208
- rest1: null,
209
- rest2: null
210
- };
211
- },
212
- methods: {
213
- async fetchRest(delay) {
214
- const response = await new Promise(resolve => {
215
- setTimeout(() => {
216
- resolve({ data: "success" });
217
- }, 300);
218
- });
219
-
220
- if (
221
- (!delay && this.rest1 === response.data) ||
222
- (delay && this.rest2 === response.data)
223
- ) {
224
- this.$message.success(
225
- "异步事件返回成功,但返回结果和上一次相等,埋点不会上报"
226
- );
227
- } else {
228
- this.$message.success("异步事件返回成功");
229
- !delay ? (this.rest1 = response.data) : (this.rest2 = response.data);
230
- }
231
- }
232
- }
233
- };
234
- </script>
@@ -1,37 +0,0 @@
1
- /*
2
- * @Author: 宋慧武
3
- * @Date: 2019-04-14 16:44:42
4
- * @Last Modified by: 宋慧武
5
- * @Last Modified time: 2019-07-30 20:17:13
6
- */
7
- import { Notification, Message } from "element-ui";
8
- import { format } from "../utils/date";
9
- import { createFragment } from "../utils/dom";
10
-
11
- /**
12
- * @desc 模拟埋点Action
13
- */
14
- export default function trackAction(evt, addtional = {}) {
15
- const data = {
16
- evt,
17
- ...addtional,
18
- action_time: format(Date.now())
19
- };
20
-
21
- if (evt === "1") {
22
- Message("统计UVPV埋点");
23
- }
24
- if (evt === "2") {
25
- Message({
26
- message: "统计页面停留时间埋点",
27
- customClass: "message-offset"
28
- });
29
- }
30
- Notification.success({
31
- title: "上报数据如下:",
32
- dangerouslyUseHTMLString: true,
33
- message: createFragment(data),
34
- customClass: "notification__large",
35
- position: evt === "1" || evt === "2" ? "top-left" : "top-right"
36
- });
37
- }