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.
- package/package.json +3 -5
- package/valid.txt +468 -0
- package/vue3-hash-calendar-main.zip +0 -0
- package/1.zip +0 -0
- package/7.zip +0 -0
- package/888.zip +0 -0
- package/Checkbox Checked-1.png +0 -0
- package/_/345/217/267 (1).svg" +0 -1
- package/_/345/217/267.svg +0 -1
- package/a.png +0 -0
- package/babel-plugin-async-lock-master.zip +0 -0
- package/build-own-react-main.zip +0 -0
- package/check_box.svg +0 -1
- package/check_box_outline_blank.svg +0 -1
- package/checkbox_unchecked.svg +0 -1
- package/floating-vue-main.zip +0 -0
- package/font_2009600_gpzp7pxtnw.zip +0 -0
- package/font_2553510_ciljc7axaw7.woff +0 -0
- package/font_2553510_ciljc7axaw7.woff2 +0 -0
- package/leetcode-javascript-master.zip +0 -0
- package/loginDemo-master.zip +0 -0
- package/mi.txt +0 -374
- package/mitt-main.zip +0 -0
- package/mp-weixin-back-main.zip +0 -0
- package/pdfsss.txt +0 -900
- package/sms-check-code-master.zip +0 -0
- package/sss.txt +0 -2
- package/study-summarize-master.zip +0 -0
- package/tool.txt +0 -19
- package/v-dropdown-menu-master.zip +0 -0
- package/v-track-master/v-track-master/.browserslistrc +0 -3
- package/v-track-master/v-track-master/.eslintignore +0 -3
- package/v-track-master/v-track-master/.eslintrc.js +0 -15
- package/v-track-master/v-track-master/.gitattributes +0 -1
- package/v-track-master/v-track-master/.github/FUNDING.yml +0 -12
- package/v-track-master/v-track-master/.github/workflows/node.js.yml +0 -29
- package/v-track-master/v-track-master/.travis.yml +0 -22
- package/v-track-master/v-track-master/.yarnrc +0 -1
- package/v-track-master/v-track-master/LICENSE +0 -21
- package/v-track-master/v-track-master/README.md +0 -131
- package/v-track-master/v-track-master/babel.config.js +0 -25
- package/v-track-master/v-track-master/build/rollup.config.base.js +0 -14
- package/v-track-master/v-track-master/build/rollup.config.browser.js +0 -21
- package/v-track-master/v-track-master/build/rollup.config.es.js +0 -11
- package/v-track-master/v-track-master/docs/.babelrc +0 -5
- package/v-track-master/v-track-master/docs/App.vue +0 -61
- package/v-track-master/v-track-master/docs/assets/app.scss +0 -197
- package/v-track-master/v-track-master/docs/assets/index.scss +0 -10
- package/v-track-master/v-track-master/docs/assets/mixins.scss +0 -64
- package/v-track-master/v-track-master/docs/assets/normalize.scss +0 -349
- package/v-track-master/v-track-master/docs/components/button.vue +0 -15
- package/v-track-master/v-track-master/docs/components/code-snippet.vue +0 -72
- package/v-track-master/v-track-master/docs/dist/css/app.2e14d2d6.css +0 -4
- package/v-track-master/v-track-master/docs/dist/css/chunk-vendors.c687a9b2.css +0 -1
- package/v-track-master/v-track-master/docs/dist/favicon.ico +0 -0
- package/v-track-master/v-track-master/docs/dist/fonts/element-icons.535877f5.woff +0 -0
- package/v-track-master/v-track-master/docs/dist/fonts/element-icons.732389de.ttf +0 -0
- package/v-track-master/v-track-master/docs/dist/js/app.efe84ade.js +0 -2
- package/v-track-master/v-track-master/docs/dist/js/app.efe84ade.js.map +0 -1
- package/v-track-master/v-track-master/docs/dist/js/chunk-vendors.c94e27ba.js +0 -13
- package/v-track-master/v-track-master/docs/dist/js/chunk-vendors.c94e27ba.js.map +0 -1
- package/v-track-master/v-track-master/docs/index.html +0 -1
- package/v-track-master/v-track-master/docs/main.js +0 -78
- package/v-track-master/v-track-master/docs/pages/block-show.vue +0 -177
- package/v-track-master/v-track-master/docs/pages/custom-events.vue +0 -291
- package/v-track-master/v-track-master/docs/pages/home.vue +0 -269
- package/v-track-master/v-track-master/docs/pages/started.vue +0 -151
- package/v-track-master/v-track-master/docs/pages/track-view.vue +0 -234
- package/v-track-master/v-track-master/docs/tracks/action.js +0 -37
- package/v-track-master/v-track-master/docs/tracks/events.js +0 -140
- package/v-track-master/v-track-master/docs/tracks/index.js +0 -13
- package/v-track-master/v-track-master/docs/utils/date.js +0 -219
- package/v-track-master/v-track-master/docs/utils/dom.js +0 -26
- package/v-track-master/v-track-master/jest.config.js +0 -18
- package/v-track-master/v-track-master/package.json +0 -67
- package/v-track-master/v-track-master/postcss.config.js +0 -5
- package/v-track-master/v-track-master/public/favicon.ico +0 -0
- package/v-track-master/v-track-master/public/index.html +0 -18
- package/v-track-master/v-track-master/src/hooks/index.js +0 -217
- package/v-track-master/v-track-master/src/index.js +0 -79
- package/v-track-master/v-track-master/src/utils/debug.js +0 -13
- package/v-track-master/v-track-master/src/utils/dom.js +0 -73
- package/v-track-master/v-track-master/src/utils/helper.js +0 -122
- package/v-track-master/v-track-master/src/utils/vis-monitor.js +0 -183
- package/v-track-master/v-track-master/tests/helper.js +0 -37
- package/v-track-master/v-track-master/tests/unit/.eslintrc.js +0 -5
- package/v-track-master/v-track-master/tests/unit/track-click-async.spec.js +0 -52
- package/v-track-master/v-track-master/tests/unit/track-click-delay.spec.js +0 -46
- package/v-track-master/v-track-master/tests/unit/track-click-native.spec.js +0 -84
- package/v-track-master/v-track-master/tests/unit/track-click-param.spec.js +0 -55
- package/v-track-master/v-track-master/tests/unit/track-click.spec.js +0 -47
- package/v-track-master/v-track-master/tests/unit/track-custom-event-async.spec.js +0 -61
- package/v-track-master/v-track-master/tests/unit/track-custom-event-delay.spec.js +0 -59
- package/v-track-master/v-track-master/tests/unit/track-custom-event-param.spec.js +0 -68
- package/v-track-master/v-track-master/tests/unit/track-custom-event.spec.js +0 -55
- package/v-track-master/v-track-master/tests/unit/track-show-custom-scroll-once.spec.js +0 -62
- package/v-track-master/v-track-master/tests/unit/track-show-custom-scroll.spec.js +0 -62
- package/v-track-master/v-track-master/tests/unit/track-show-once.spec.js +0 -55
- package/v-track-master/v-track-master/tests/unit/track-show-param.spec.js +0 -51
- package/v-track-master/v-track-master/tests/unit/track-show.spec.js +0 -55
- package/v-track-master/v-track-master/tests/unit/track-view-vif.spec.js +0 -54
- package/v-track-master/v-track-master/tests/unit/track-view-watch-delay.spec.js +0 -63
- package/v-track-master/v-track-master/tests/unit/track-view-watch.spec.js +0 -61
- package/v-track-master/v-track-master/tests/unit/track-view.spec.js +0 -32
- package/v-track-master/v-track-master/vue.config.js +0 -45
- package/v-track-master/v-track-master/yarn.lock +0 -10186
- package/v-track-master.zip +0 -0
- package/vant-weapp-dev.zip +0 -0
- package/vue-autosize-input-master.zip +0 -0
- package/vue-awesome-dropdown-master.zip +0 -0
- package/vue-codemod-main.zip +0 -0
- package/vue-collapsed-main.zip +0 -0
- package/vue-input-code-master.zip +0 -0
- package/vue-jscodeshift-adapter-master.zip +0 -0
- package/vue-verify-master.zip +0 -0
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/.hbuilderx/launch.json +0 -11
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/App.vue +0 -17
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/README.md +0 -13
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/code.js +0 -408
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/css/icon.css +0 -342
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/css/style.scss +0 -119
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/search/index.vue +0 -66
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/tree.vue +0 -70
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/main.js +0 -11
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/manifest.json +0 -78
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/chooseUser/chooseUser.vue +0 -69
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/chooseUser/data.js +0 -96
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/index/index.vue +0 -122
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages.json +0 -25
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/changelog.md +0 -80
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/en.json +0 -7
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/index.js +0 -8
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json +0 -7
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json +0 -7
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/keypress.js +0 -45
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/popup.js +0 -26
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue +0 -90
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/uni-popup.vue +0 -496
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js +0 -45
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue +0 -313
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue +0 -143
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue +0 -187
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/package.json +0 -87
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/readme.md +0 -17
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/changelog.md +0 -8
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/index.scss +0 -1
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/package.json +0 -82
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/readme.md +0 -4
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/index.scss +0 -7
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_border.scss +0 -3
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_color.scss +0 -66
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_radius.scss +0 -55
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_space.scss +0 -56
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_styles.scss +0 -167
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_text.scss +0 -24
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_variables.scss +0 -146
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/tools/functions.scss +0 -19
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/theme.scss +0 -31
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/variables.scss +0 -62
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/changelog.md +0 -22
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/components/uni-transition/createAnimation.js +0 -131
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/components/uni-transition/uni-transition.vue +0 -286
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/package.json +0 -84
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/readme.md +0 -11
- package//346/224/266/347/274/251/344/270/212/347/256/255/345/244/264 (1).svg" +0 -1
- package//346/224/266/347/274/251/344/270/212/347/256/255/345/244/264.svg +0 -1
- package//346/224/266/347/274/251/344/270/213/347/256/255/345/244/264.svg +0 -1
- package//346/224/266/347/274/251/347/256/255/345/244/264.svg +0 -1
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (2).txt" +0 -90
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (3).txt" +0 -142
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (3).zip +0 -0
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243.txt" +0 -59
- package//351/227/256/345/217/267.svg +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=dist/favicon.ico><link href=//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/nord.min.css rel=stylesheet><title>v-track</title><link href=dist/css/app.2e14d2d6.css rel=preload as=style><link href=dist/css/chunk-vendors.c687a9b2.css rel=preload as=style><link href=dist/js/app.efe84ade.js rel=preload as=script><link href=dist/js/chunk-vendors.c94e27ba.js rel=preload as=script><link href=dist/css/chunk-vendors.c687a9b2.css rel=stylesheet><link href=dist/css/app.2e14d2d6.css rel=stylesheet></head><body><noscript><strong>We're sorry but v-track doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=dist/js/chunk-vendors.c94e27ba.js></script><script src=dist/js/app.efe84ade.js></script></body></html>
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import Vue from "vue";
|
|
2
|
-
import VueRouter from "vue-router";
|
|
3
|
-
import {
|
|
4
|
-
Alert,
|
|
5
|
-
Card,
|
|
6
|
-
Collapse,
|
|
7
|
-
CollapseItem,
|
|
8
|
-
Message,
|
|
9
|
-
Notification
|
|
10
|
-
} from "element-ui";
|
|
11
|
-
import App from "./App.vue";
|
|
12
|
-
import Home from "./pages/home.vue";
|
|
13
|
-
import Started from "./pages/started.vue";
|
|
14
|
-
import CustomEvents from "./pages/custom-events.vue";
|
|
15
|
-
import TrackView from "./pages/track-view.vue";
|
|
16
|
-
import BlockShow from "./pages/block-show.vue";
|
|
17
|
-
import VueTrack from "../";
|
|
18
|
-
import trackEvents from "./tracks";
|
|
19
|
-
|
|
20
|
-
Vue.use(VueRouter);
|
|
21
|
-
Vue.use(Alert);
|
|
22
|
-
Vue.use(Card);
|
|
23
|
-
Vue.use(Collapse);
|
|
24
|
-
Vue.use(CollapseItem);
|
|
25
|
-
Vue.use(VueTrack, {
|
|
26
|
-
trackEvents,
|
|
27
|
-
trackEnable: {
|
|
28
|
-
UVPV: "routeUpdate",
|
|
29
|
-
TONP: true
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
Vue.prototype.$message = Message;
|
|
34
|
-
Vue.prototype.$notify = Notification;
|
|
35
|
-
|
|
36
|
-
const router = new VueRouter({
|
|
37
|
-
routes: [
|
|
38
|
-
{
|
|
39
|
-
path: "/",
|
|
40
|
-
name: "HOME",
|
|
41
|
-
component: Home
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
path: "/started",
|
|
45
|
-
name: "STARTED",
|
|
46
|
-
component: Started
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
path: "/custom-events",
|
|
50
|
-
name: "CUSTOM_EVENTS",
|
|
51
|
-
component: CustomEvents
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
path: "/track-view",
|
|
55
|
-
name: "TRACK_VIEW",
|
|
56
|
-
component: TrackView,
|
|
57
|
-
meta: {
|
|
58
|
-
keepAlive: true
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
path: "/block-show",
|
|
63
|
-
name: "BLOCK_SHOW",
|
|
64
|
-
component: BlockShow
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
path: "*",
|
|
68
|
-
redirect: "/"
|
|
69
|
-
}
|
|
70
|
-
]
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
/* eslint-disable no-new */
|
|
74
|
-
new Vue({
|
|
75
|
-
el: "#app",
|
|
76
|
-
router,
|
|
77
|
-
render: h => h(App)
|
|
78
|
-
});
|
|
@@ -1,177 +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: 'HOME' }">
|
|
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 large">
|
|
32
|
-
<el-card shadow="always" v-track:18028.show.once>
|
|
33
|
-
我只想被曝光一次
|
|
34
|
-
</el-card>
|
|
35
|
-
</div>
|
|
36
|
-
</section>
|
|
37
|
-
<section class="snippets">
|
|
38
|
-
<CodeSnippet
|
|
39
|
-
class="snippet"
|
|
40
|
-
lang="html"
|
|
41
|
-
:code="trackViewComponentOnceSnippet"
|
|
42
|
-
/>
|
|
43
|
-
</section>
|
|
44
|
-
|
|
45
|
-
<!----------------------- DEMO 2 ------------------------>
|
|
46
|
-
<section class="demo">
|
|
47
|
-
<el-alert
|
|
48
|
-
center
|
|
49
|
-
type="info"
|
|
50
|
-
title="这是一个会连续上报的区域展现埋点"
|
|
51
|
-
:closable="false"
|
|
52
|
-
>
|
|
53
|
-
</el-alert>
|
|
54
|
-
<div class="section-content large">
|
|
55
|
-
<el-card shadow="always" v-track:18027.show>
|
|
56
|
-
我想被曝光无数次
|
|
57
|
-
</el-card>
|
|
58
|
-
</div>
|
|
59
|
-
</section>
|
|
60
|
-
<section class="snippets">
|
|
61
|
-
<CodeSnippet
|
|
62
|
-
class="snippet"
|
|
63
|
-
lang="html"
|
|
64
|
-
:code="trackViewComponentSnippet"
|
|
65
|
-
/>
|
|
66
|
-
</section>
|
|
67
|
-
|
|
68
|
-
<!----------------------- DEMO 3 ------------------------>
|
|
69
|
-
<section ref="viewport1" class="demo viewport">
|
|
70
|
-
<el-alert
|
|
71
|
-
center
|
|
72
|
-
type="info"
|
|
73
|
-
title="某个区域内元素曝光埋点"
|
|
74
|
-
:closable="false"
|
|
75
|
-
>
|
|
76
|
-
</el-alert>
|
|
77
|
-
<div class="section-content large">
|
|
78
|
-
<el-card shadow="always" v-track:18029.show="{ viewport: 'viewport1' }">
|
|
79
|
-
我也想被曝光无数次
|
|
80
|
-
</el-card>
|
|
81
|
-
</div>
|
|
82
|
-
</section>
|
|
83
|
-
<section class="snippets">
|
|
84
|
-
<CodeSnippet
|
|
85
|
-
class="snippet"
|
|
86
|
-
lang="html"
|
|
87
|
-
:code="viewportTrackViewComponentSnippet1"
|
|
88
|
-
/>
|
|
89
|
-
</section>
|
|
90
|
-
|
|
91
|
-
<!----------------------- DEMO 4 ------------------------>
|
|
92
|
-
<section ref="viewport2" class="demo viewport">
|
|
93
|
-
<el-alert
|
|
94
|
-
center
|
|
95
|
-
type="info"
|
|
96
|
-
title="某个区域内元素曝光超过一半则上报埋点"
|
|
97
|
-
:closable="false"
|
|
98
|
-
>
|
|
99
|
-
</el-alert>
|
|
100
|
-
<div class="section-content large">
|
|
101
|
-
<el-card
|
|
102
|
-
shadow="always"
|
|
103
|
-
v-track:18030.show="{ viewport: 'viewport2', percent: 0.5 }"
|
|
104
|
-
>
|
|
105
|
-
我也想被曝光无数次
|
|
106
|
-
</el-card>
|
|
107
|
-
</div>
|
|
108
|
-
</section>
|
|
109
|
-
<section class="snippets">
|
|
110
|
-
<CodeSnippet
|
|
111
|
-
class="snippet"
|
|
112
|
-
lang="html"
|
|
113
|
-
:code="viewportTrackViewComponentSnippet2"
|
|
114
|
-
/>
|
|
115
|
-
</section>
|
|
116
|
-
</div>
|
|
117
|
-
</template>
|
|
118
|
-
|
|
119
|
-
<script>
|
|
120
|
-
import CodeSnippet from "../components/code-snippet";
|
|
121
|
-
|
|
122
|
-
const trackViewComponentSnippet = `
|
|
123
|
-
<el-card shadow="always" v-track:18027.show>我想被曝光无数次</el-card>
|
|
124
|
-
`;
|
|
125
|
-
const trackViewComponentOnceSnippet = `
|
|
126
|
-
<el-card shadow="always" v-track:18027.show.once>我只想被曝光一次</el-card>
|
|
127
|
-
`;
|
|
128
|
-
const viewportTrackViewComponentSnippet1 = `
|
|
129
|
-
<section ref="viewport">
|
|
130
|
-
<el-card shadow="always" v-track:18029.show="{ viewport: 'viewport1' }">我也想被曝光无数次</el-card>
|
|
131
|
-
</section>
|
|
132
|
-
`;
|
|
133
|
-
const viewportTrackViewComponentSnippet2 = `
|
|
134
|
-
<section ref="viewport">
|
|
135
|
-
<el-card shadow="always" v-track:18029.show="{ viewport: 'viewport2', percent: 0.5 }">我也想被曝光无数次</el-card>
|
|
136
|
-
</section>
|
|
137
|
-
`;
|
|
138
|
-
|
|
139
|
-
export default {
|
|
140
|
-
name: "BlockShow",
|
|
141
|
-
components: {
|
|
142
|
-
CodeSnippet
|
|
143
|
-
},
|
|
144
|
-
data() {
|
|
145
|
-
return {
|
|
146
|
-
trackViewComponentSnippet,
|
|
147
|
-
trackViewComponentOnceSnippet,
|
|
148
|
-
viewportTrackViewComponentSnippet1,
|
|
149
|
-
viewportTrackViewComponentSnippet2,
|
|
150
|
-
show: false,
|
|
151
|
-
rest1: null,
|
|
152
|
-
rest2: null
|
|
153
|
-
};
|
|
154
|
-
},
|
|
155
|
-
methods: {
|
|
156
|
-
async fetchRest(delay) {
|
|
157
|
-
const response = await new Promise(resolve => {
|
|
158
|
-
setTimeout(() => {
|
|
159
|
-
resolve({ data: "success" });
|
|
160
|
-
}, 300);
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
if (
|
|
164
|
-
(!delay && this.rest1 === response.data) ||
|
|
165
|
-
(delay && this.rest2 === response.data)
|
|
166
|
-
) {
|
|
167
|
-
this.$message.success(
|
|
168
|
-
"异步事件返回成功,但返回结果和上一次相等,埋点不会上报"
|
|
169
|
-
);
|
|
170
|
-
} else {
|
|
171
|
-
this.$message.success("异步事件返回成功");
|
|
172
|
-
!delay ? (this.rest1 = response.data) : (this.rest2 = response.data);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
</script>
|
|
@@ -1,291 +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: 'HOME' }">
|
|
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
|
-
<Button v-track:18015.custom-event="handleCustomEvent"></Button>
|
|
33
|
-
</div>
|
|
34
|
-
</section>
|
|
35
|
-
|
|
36
|
-
<section class="snippets">
|
|
37
|
-
<CodeSnippet class="snippet" lang="html" :code="ButtonComponentSnippet" />
|
|
38
|
-
<CodeSnippet
|
|
39
|
-
class="snippet"
|
|
40
|
-
lang="html"
|
|
41
|
-
:code="trackCustomEventSnippet"
|
|
42
|
-
/>
|
|
43
|
-
</section>
|
|
44
|
-
|
|
45
|
-
<!----------------------- DEMO 2 ------------------------>
|
|
46
|
-
<section class="demo">
|
|
47
|
-
<el-alert
|
|
48
|
-
center
|
|
49
|
-
type="info"
|
|
50
|
-
title="这是一个有带参数的自定义事件埋点"
|
|
51
|
-
:closable="false"
|
|
52
|
-
>
|
|
53
|
-
</el-alert>
|
|
54
|
-
<div class="section-content">
|
|
55
|
-
<Button
|
|
56
|
-
v-track:18019.custom-event="handleCustomEventWithParam"
|
|
57
|
-
></Button>
|
|
58
|
-
</div>
|
|
59
|
-
</section>
|
|
60
|
-
|
|
61
|
-
<section class="snippets">
|
|
62
|
-
<CodeSnippet
|
|
63
|
-
class="snippet"
|
|
64
|
-
lang="html"
|
|
65
|
-
:code="ButtonComponentWithParamSnippet"
|
|
66
|
-
/>
|
|
67
|
-
<CodeSnippet
|
|
68
|
-
class="snippet"
|
|
69
|
-
lang="html"
|
|
70
|
-
:code="trackCustomEventWithParamSnippet"
|
|
71
|
-
/>
|
|
72
|
-
</section>
|
|
73
|
-
|
|
74
|
-
<!----------------------- DEMO 3 ------------------------>
|
|
75
|
-
<section class="demo">
|
|
76
|
-
<el-alert
|
|
77
|
-
center
|
|
78
|
-
type="info"
|
|
79
|
-
title="这是一个发生在自定义事件之后的埋点,默认先执行埋点再执行自定义事件。如示例所示:activeName初始值为Feedback,自定义事件会更新该值,所以埋点获取到activeName的值应为当前激活面板的name"
|
|
80
|
-
:closable="false"
|
|
81
|
-
>
|
|
82
|
-
</el-alert>
|
|
83
|
-
<div class="section-content collapse-wrapper">
|
|
84
|
-
<el-collapse
|
|
85
|
-
accordion
|
|
86
|
-
v-model="activeName"
|
|
87
|
-
v-track:18020.change.delay="handleChange"
|
|
88
|
-
>
|
|
89
|
-
<el-collapse-item title="反馈 Feedback" name="Feedback">
|
|
90
|
-
<div>
|
|
91
|
-
控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;
|
|
92
|
-
</div>
|
|
93
|
-
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
|
|
94
|
-
</el-collapse-item>
|
|
95
|
-
<el-collapse-item title="效率 Efficiency" name="Efficiency">
|
|
96
|
-
<div>简化流程:设计简洁直观的操作流程;</div>
|
|
97
|
-
<div>
|
|
98
|
-
清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;
|
|
99
|
-
</div>
|
|
100
|
-
<div>
|
|
101
|
-
帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。
|
|
102
|
-
</div>
|
|
103
|
-
</el-collapse-item>
|
|
104
|
-
<el-collapse-item title="可控 Controllability" name="Controllability">
|
|
105
|
-
<div>
|
|
106
|
-
用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;
|
|
107
|
-
</div>
|
|
108
|
-
<div>
|
|
109
|
-
结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。
|
|
110
|
-
</div>
|
|
111
|
-
</el-collapse-item>
|
|
112
|
-
</el-collapse>
|
|
113
|
-
</div>
|
|
114
|
-
</section>
|
|
115
|
-
|
|
116
|
-
<section class="snippets">
|
|
117
|
-
<CodeSnippet
|
|
118
|
-
class="snippet"
|
|
119
|
-
lang="html"
|
|
120
|
-
:code="trackCustomEventDelaySnippet"
|
|
121
|
-
/>
|
|
122
|
-
<CodeSnippet
|
|
123
|
-
class="snippet"
|
|
124
|
-
lang="js"
|
|
125
|
-
:code="jsTrackCustomEventDelaySnippet"
|
|
126
|
-
/>
|
|
127
|
-
</section>
|
|
128
|
-
|
|
129
|
-
<!----------------------- DEMO 4 ------------------------>
|
|
130
|
-
<section class="demo">
|
|
131
|
-
<el-alert
|
|
132
|
-
center
|
|
133
|
-
type="info"
|
|
134
|
-
title="这是一个有异步行为的自定义事件埋点。如示例所示:rest初始值为null,自定义事件会fetch为success,所以埋点获取到的rest值应该为success"
|
|
135
|
-
:closable="false"
|
|
136
|
-
>
|
|
137
|
-
</el-alert
|
|
138
|
-
><el-alert
|
|
139
|
-
center
|
|
140
|
-
type="warning"
|
|
141
|
-
title="备注:同普通DOM事件埋点一样,只有在 rest 发生变化时才会触发埋点"
|
|
142
|
-
:closable="false"
|
|
143
|
-
>
|
|
144
|
-
</el-alert>
|
|
145
|
-
<div class="section-content">
|
|
146
|
-
<Button v-track:18021.custom-event.async="{ fetchRest, rest }"></Button>
|
|
147
|
-
</div>
|
|
148
|
-
</section>
|
|
149
|
-
|
|
150
|
-
<section class="snippets">
|
|
151
|
-
<CodeSnippet
|
|
152
|
-
class="snippet"
|
|
153
|
-
lang="html"
|
|
154
|
-
:code="trackCustomEventAsyncSnippet"
|
|
155
|
-
/>
|
|
156
|
-
<CodeSnippet
|
|
157
|
-
class="snippet"
|
|
158
|
-
lang="js"
|
|
159
|
-
:code="jsTrackCustomEventAsyncSnippet"
|
|
160
|
-
/>
|
|
161
|
-
</section>
|
|
162
|
-
</div>
|
|
163
|
-
</template>
|
|
164
|
-
|
|
165
|
-
<script>
|
|
166
|
-
import CodeSnippet from "../components/code-snippet";
|
|
167
|
-
import Button from "../components/button";
|
|
168
|
-
|
|
169
|
-
const ButtonComponentSnippet = `
|
|
170
|
-
<!-- button 组件 -->
|
|
171
|
-
<div class="track-button" @click="$emit('custom-event')">
|
|
172
|
-
click me
|
|
173
|
-
</div>
|
|
174
|
-
`;
|
|
175
|
-
const ButtonComponentWithParamSnippet = `
|
|
176
|
-
<!-- button 组件 -->
|
|
177
|
-
<div class="track-button" @click="e => $emit('custom-event', { id: Date.now().toString(36) }, e)">
|
|
178
|
-
click me
|
|
179
|
-
</div>
|
|
180
|
-
`;
|
|
181
|
-
const trackCustomEventSnippet = `
|
|
182
|
-
<Button v-track:18015.custom-event="handleCustomEvent"></Button>
|
|
183
|
-
`;
|
|
184
|
-
const trackCustomEventWithParamSnippet = `
|
|
185
|
-
<Button v-track:18019.custom-event="handleCustomEventWithParam"></Button>
|
|
186
|
-
`;
|
|
187
|
-
const trackCustomEventDelaySnippet = `
|
|
188
|
-
<el-collapse
|
|
189
|
-
accordion
|
|
190
|
-
v-model="activeName"
|
|
191
|
-
v-track:18020.change.delay="handleChange"
|
|
192
|
-
>
|
|
193
|
-
<el-collapse-item title="反馈" name="Feedback">...</el-collapse-item>
|
|
194
|
-
<el-collapse-item title="效率" name="Efficiency">...</el-collapse-item>
|
|
195
|
-
<el-collapse-item title="可控" name="Controllability">...</el-collapse-item>
|
|
196
|
-
</el-collapse>
|
|
197
|
-
`;
|
|
198
|
-
const jsTrackCustomEventDelaySnippet = `
|
|
199
|
-
export default {
|
|
200
|
-
data() {
|
|
201
|
-
return {
|
|
202
|
-
activeName: "Feedback",
|
|
203
|
-
};
|
|
204
|
-
},
|
|
205
|
-
methods: {
|
|
206
|
-
handleChange(val) {
|
|
207
|
-
this.activeName = val;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
`;
|
|
212
|
-
const trackCustomEventAsyncSnippet = `
|
|
213
|
-
<Button v-track:18021.custom-event.async="{ fetchRest, rest }"></Button>
|
|
214
|
-
`;
|
|
215
|
-
const jsTrackCustomEventAsyncSnippet = `
|
|
216
|
-
export default {
|
|
217
|
-
data() {
|
|
218
|
-
return {
|
|
219
|
-
rest: null
|
|
220
|
-
};
|
|
221
|
-
},
|
|
222
|
-
methods: {
|
|
223
|
-
async fetchRest() {
|
|
224
|
-
const response = await new Promise(resolve => {
|
|
225
|
-
setTimeout(() => {
|
|
226
|
-
resolve({ data: "success" });
|
|
227
|
-
}, 300);
|
|
228
|
-
});
|
|
229
|
-
|
|
230
|
-
this.rest = response.data;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
`;
|
|
235
|
-
|
|
236
|
-
export default {
|
|
237
|
-
name: "CustomEvents",
|
|
238
|
-
components: {
|
|
239
|
-
Button,
|
|
240
|
-
CodeSnippet
|
|
241
|
-
},
|
|
242
|
-
data() {
|
|
243
|
-
return {
|
|
244
|
-
ButtonComponentSnippet,
|
|
245
|
-
ButtonComponentWithParamSnippet,
|
|
246
|
-
trackCustomEventSnippet,
|
|
247
|
-
trackCustomEventWithParamSnippet,
|
|
248
|
-
trackCustomEventDelaySnippet,
|
|
249
|
-
trackCustomEventAsyncSnippet,
|
|
250
|
-
jsTrackCustomEventDelaySnippet,
|
|
251
|
-
jsTrackCustomEventAsyncSnippet,
|
|
252
|
-
item: {
|
|
253
|
-
id: Math.random()
|
|
254
|
-
.toString(36)
|
|
255
|
-
.substr(2)
|
|
256
|
-
},
|
|
257
|
-
activeName: "Feedback",
|
|
258
|
-
rest: null
|
|
259
|
-
};
|
|
260
|
-
},
|
|
261
|
-
methods: {
|
|
262
|
-
handleCustomEvent() {
|
|
263
|
-
this.$message.success("自定义事件执行成功");
|
|
264
|
-
},
|
|
265
|
-
handleCustomEventWithParam(item, { target }) {
|
|
266
|
-
this.$message.success(
|
|
267
|
-
`自定义事件执行成功,参数为${JSON.stringify(item)}--${target}`
|
|
268
|
-
);
|
|
269
|
-
},
|
|
270
|
-
handleChange(val) {
|
|
271
|
-
this.activeName = val;
|
|
272
|
-
},
|
|
273
|
-
async fetchRest() {
|
|
274
|
-
const response = await new Promise(resolve => {
|
|
275
|
-
setTimeout(() => {
|
|
276
|
-
resolve({ data: "success" });
|
|
277
|
-
}, 300);
|
|
278
|
-
});
|
|
279
|
-
|
|
280
|
-
if (this.rest === response.data) {
|
|
281
|
-
this.$message.success(
|
|
282
|
-
"异步事件返回成功,但返回结果和上一次相等,埋点不会上报"
|
|
283
|
-
);
|
|
284
|
-
} else {
|
|
285
|
-
this.rest = response.data;
|
|
286
|
-
this.$message.success("异步事件返回成功");
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
};
|
|
291
|
-
</script>
|