├── .gitignore
├── dist
├── favicon.ico
├── fonts
│ ├── element-icons.f1a45d74.ttf
│ └── element-icons.ff18efd1.woff
├── css
│ └── app.22df10af.css
└── js
│ ├── app.0c429e75.js
│ └── app.0c429e75.js.map
├── demo
├── public
│ ├── favicon.ico
│ └── index.html
├── babel.config.js
├── vue.config.js
├── jsconfig.json
├── src
│ ├── main.js
│ ├── components
│ │ ├── Year.vue
│ │ ├── YearMonth.vue
│ │ ├── Base.vue
│ │ ├── Segment.vue
│ │ ├── CustomZoom.vue
│ │ ├── Custom.vue
│ │ └── MultiSegment.vue
│ └── App.vue
├── README.md
└── package.json
├── package
├── README.md
├── index.js
├── package.json
├── package-lock.json
└── src
│ ├── constant.js
│ ├── WindowListItem.vue
│ └── index.vue
├── .prettierrc
├── copy.js
├── index.html
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/dist/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanglin2/VideoTimeLine/HEAD/dist/favicon.ico
--------------------------------------------------------------------------------
/demo/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanglin2/VideoTimeLine/HEAD/demo/public/favicon.ico
--------------------------------------------------------------------------------
/package/README.md:
--------------------------------------------------------------------------------
1 | 文档见:[https://github.com/wanglin2/VideoTimeLine](https://github.com/wanglin2/VideoTimeLine)
--------------------------------------------------------------------------------
/demo/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | semi: false
2 | singleQuote: true
3 | printWidth: 80
4 | trailingComma: 'none'
5 | arrowParens: 'avoid'
--------------------------------------------------------------------------------
/dist/fonts/element-icons.f1a45d74.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanglin2/VideoTimeLine/HEAD/dist/fonts/element-icons.f1a45d74.ttf
--------------------------------------------------------------------------------
/dist/fonts/element-icons.ff18efd1.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanglin2/VideoTimeLine/HEAD/dist/fonts/element-icons.ff18efd1.woff
--------------------------------------------------------------------------------
/package/index.js:
--------------------------------------------------------------------------------
1 | import src from './src/index.vue';
2 |
3 | const install = function(Vue) {
4 | Vue.component(src.name, src);
5 | };
6 |
7 | export default {
8 | install
9 | };
10 |
--------------------------------------------------------------------------------
/demo/vue.config.js:
--------------------------------------------------------------------------------
1 | const { defineConfig } = require('@vue/cli-service')
2 | const isDev = process.env.NODE_ENV === 'development'
3 | module.exports = defineConfig({
4 | publicPath: isDev ? '' : './dist',
5 | outputDir: '../dist',
6 | transpileDependencies: true,
7 | lintOnSave: false
8 | })
9 |
--------------------------------------------------------------------------------
/copy.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs')
2 | const path = require('path')
3 |
4 | const src = path.resolve(__dirname, './dist/index.html')
5 | const dest = path.resolve(__dirname, './index.html')
6 |
7 | if (fs.existsSync(dest)) {
8 | fs.unlinkSync(dest)
9 | }
10 |
11 | if (fs.existsSync(src)) {
12 | fs.copyFileSync(src, dest)
13 | fs.unlinkSync(src)
14 | }
--------------------------------------------------------------------------------
/demo/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "esnext",
5 | "baseUrl": "./",
6 | "moduleResolution": "node",
7 | "paths": {
8 | "@/*": [
9 | "src/*"
10 | ]
11 | },
12 | "lib": [
13 | "esnext",
14 | "dom",
15 | "dom.iterable",
16 | "scripthost"
17 | ]
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/demo/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 | import VideoTimeline from '@wanglin1994/video-timeline'
4 | import ElementUI from 'element-ui'
5 | import 'element-ui/lib/theme-chalk/index.css'
6 |
7 | Vue.use(VideoTimeline)
8 | Vue.use(ElementUI)
9 |
10 | Vue.config.productionTip = false
11 |
12 | new Vue({
13 | render: h => h(App),
14 | }).$mount('#app')
15 |
--------------------------------------------------------------------------------
/demo/README.md:
--------------------------------------------------------------------------------
1 | # demo
2 |
3 | ## Project setup
4 | ```
5 | npm install
6 | ```
7 |
8 | ### Compiles and hot-reloads for development
9 | ```
10 | npm run serve
11 | ```
12 |
13 | ### Compiles and minifies for production
14 | ```
15 | npm run build
16 | ```
17 |
18 | ### Lints and fixes files
19 | ```
20 | npm run lint
21 | ```
22 |
23 | ### Customize configuration
24 | See [Configuration Reference](https://cli.vuejs.org/config/).
25 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
demo
--------------------------------------------------------------------------------
/package/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@wanglin1994/video-timeline",
3 | "version": "0.1.10",
4 | "description": "一个基于Vue2的时间轴组件,一般用于监控视频的回放。",
5 | "main": "index.js",
6 | "scripts": {},
7 | "authors": [
8 | {
9 | "name": "街角小林",
10 | "email": "1013335014@qq.com"
11 | },
12 | {
13 | "name": "理想青年实验室",
14 | "url": "http://lxqnsys.com/"
15 | }
16 | ],
17 | "license": "MIT",
18 | "repository": {
19 | "type": "git",
20 | "url": "https://github.com/wanglin2/VideoTimeLine"
21 | },
22 | "dependencies": {
23 | "dayjs": "^1.10.3"
24 | },
25 | "keywords": [
26 | "canvas",
27 | "timeline"
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/demo/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/package/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@wanglin1994/video-timeline",
3 | "version": "0.1.1",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "@wanglin1994/video-timeline",
9 | "version": "0.1.1",
10 | "license": "MIT",
11 | "dependencies": {
12 | "dayjs": "^1.10.3"
13 | }
14 | },
15 | "node_modules/dayjs": {
16 | "version": "1.11.6",
17 | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz",
18 | "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ=="
19 | }
20 | },
21 | "dependencies": {
22 | "dayjs": {
23 | "version": "1.11.6",
24 | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz",
25 | "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ=="
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "demo",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "build": "vue-cli-service build && node ../copy.js",
8 | "lint": "vue-cli-service lint"
9 | },
10 | "dependencies": {
11 | "core-js": "^3.8.3",
12 | "dayjs": "^1.11.6",
13 | "element-ui": "^2.15.10",
14 | "vue": "^2.6.14"
15 | },
16 | "devDependencies": {
17 | "@babel/core": "^7.12.16",
18 | "@babel/eslint-parser": "^7.12.16",
19 | "@vue/cli-plugin-babel": "~5.0.0",
20 | "@vue/cli-plugin-eslint": "~5.0.0",
21 | "@vue/cli-service": "~5.0.0",
22 | "eslint": "^7.32.0",
23 | "eslint-plugin-vue": "^8.0.3",
24 | "less": "^4.1.3",
25 | "less-loader": "^11.1.0",
26 | "vue-template-compiler": "^2.6.14"
27 | },
28 | "eslintConfig": {
29 | "root": true,
30 | "env": {
31 | "node": true
32 | },
33 | "extends": [
34 | "plugin:vue/essential",
35 | "eslint:recommended"
36 | ],
37 | "parserOptions": {
38 | "parser": "@babel/eslint-parser"
39 | },
40 | "rules": {}
41 | },
42 | "browserslist": [
43 | "> 1%",
44 | "last 2 versions",
45 | "not dead"
46 | ]
47 | }
48 |
--------------------------------------------------------------------------------
/demo/src/components/Year.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
33 |
34 |
41 |
--------------------------------------------------------------------------------
/demo/src/components/YearMonth.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
33 |
34 |
41 |
--------------------------------------------------------------------------------
/package/src/constant.js:
--------------------------------------------------------------------------------
1 | // 一小时的毫秒数
2 | export const ONE_HOUR_STAMP = 60 * 60 * 1000
3 | // 时间分辨率,即整个时间轴表示的时间范围
4 | export const ZOOM = [0.5, 1, 2, 6, 12, 24, 72, 360, 720, 8760, 87600]// 半小时、1小时、2小时、6小时、12小时、1天、3天、15天、30天、365天、365*10天
5 | // 时间分辨率对应的每格小时数,即最小格代表多少小时
6 | export const ZOOM_HOUR_GRID = [1 / 60, 1 / 60, 2 / 60, 1 / 6, 0.25, 0.5, 1, 4, 4, 720, 7200]
7 | export const MOBILE_ZOOM_HOUR_GRID = [
8 | 1 / 20,
9 | 1 / 30,
10 | 1 / 20,
11 | 1 / 3,
12 | 0.5,
13 | 2,
14 | 4,
15 | 4,
16 | 4,
17 | 720, 7200
18 | ]
19 | // 时间分辨率对应的时间显示判断条件
20 | export const ZOOM_DATE_SHOW_RULE = [
21 | () => { // 全部显示
22 | return true
23 | },
24 | date => { // 每五分钟显示
25 | return date.getMinutes() % 5 === 0
26 | },
27 | date => { // 每十分钟显示
28 | return date.getMinutes() % 10 === 0
29 | },
30 | date => { // 整点和半点显示
31 | return date.getMinutes() === 0 || date.getMinutes() === 30
32 | },
33 | date => { // 整点显示
34 | return date.getMinutes() === 0
35 | },
36 | date => { // 偶数整点的小时
37 | return date.getHours() % 2 === 0 && date.getMinutes() === 0
38 | },
39 | date => { // 每三小时小时
40 | return date.getHours() % 3 === 0 && date.getMinutes() === 0
41 | },
42 | date => { // 每12小时
43 | return date.getHours() % 12 === 0 && date.getMinutes() === 0
44 | },
45 | date => { // 全不显示
46 | return false
47 | },
48 | date => {
49 | return true
50 | },
51 | date => {
52 | return true
53 | }
54 | ]
55 | export const MOBILE_ZOOM_DATE_SHOW_RULE = [
56 | () => { // 全部显示
57 | return true
58 | },
59 | date => { // 每五分钟显示
60 | return date.getMinutes() % 5 === 0
61 | },
62 | date => { // 每十分钟显示
63 | return date.getMinutes() % 10 === 0
64 | },
65 | date => { // 整点和半点显示
66 | return date.getMinutes() === 0 || date.getMinutes() === 30
67 | },
68 | date => { // 偶数整点的小时
69 | return date.getHours() % 2 === 0 && date.getMinutes() === 0
70 | },
71 | date => { // 偶数整点的小时
72 | return date.getHours() % 4 === 0 && date.getMinutes() === 0
73 | },
74 | date => { // 每三小时小时
75 | return date.getHours() % 3 === 0 && date.getMinutes() === 0
76 | },
77 | date => { // 每12小时
78 | return date.getHours() % 12 === 0 && date.getMinutes() === 0
79 | },
80 | date => { // 全不显示
81 | return false
82 | },
83 | date => {
84 | return true
85 | },
86 | date => {
87 | return true
88 | }
89 | ]
--------------------------------------------------------------------------------
/demo/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ item.name }}
5 |
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
75 |
76 |
100 |
--------------------------------------------------------------------------------
/demo/src/components/Base.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
当前时间:{{ showTime }}
4 |
5 |
6 |
7 |
8 | 重新渲染
9 | 跳转到2021-01-01零点
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
70 |
71 |
--------------------------------------------------------------------------------
/dist/css/app.22df10af.css:
--------------------------------------------------------------------------------
1 | .container[data-v-41b27e10]{width:1200px;height:100%;margin:0 auto;display:flex;position:relative;justify-content:center;flex-direction:column}.container .timeLine[data-v-41b27e10]{height:50px}.btns[data-v-41b27e10],.timeShow[data-v-41b27e10]{margin:10px 0;display:flex;justify-content:center}.timeShow[data-v-41b27e10]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.container[data-v-4951fd2c]{width:1200px;height:100%;margin:0 auto;display:flex;position:relative;justify-content:center;flex-direction:column}.container .timeLine4[data-v-4951fd2c]{height:200px}.timeShow[data-v-4951fd2c]{margin:10px 0;display:flex;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.icon[data-v-4951fd2c]{position:fixed;font-size:30px}.container[data-v-0f18e806]{width:1200px;height:100%;margin:0 auto;display:flex;position:relative;justify-content:center;flex-direction:column}.container .timeline3[data-v-0f18e806]{height:200px}.timeShow[data-v-0f18e806]{margin:10px 0;display:flex;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.container[data-v-45a3b121]{width:1200px;height:100%;margin:0 auto;display:flex;position:relative;justify-content:center;flex-direction:column}.container .timeLine[data-v-45a3b121]{height:50px}.timeShow[data-v-45a3b121]{margin:10px 0;display:flex;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.container[data-v-1a36b017],.container[data-v-3aed7087]{width:1200px;height:100px;margin:0 auto}.container[data-v-f7bac5fc]{width:1200px;height:100%;margin:0 auto;display:flex;position:relative;justify-content:center;flex-direction:column}.container .timeLine[data-v-f7bac5fc]{height:50px}.btns[data-v-f7bac5fc],.timeShow[data-v-f7bac5fc]{margin:10px 0;display:flex;justify-content:center}.timeShow[data-v-f7bac5fc]{-webkit-user-select:none;-moz-user-select:none;user-select:none}*{margin:0;padding:0;box-sizing:border-box}#app,body,html{width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column}.box{width:100%;height:300px;margin-top:20px}.windowListItem[data-v-5d855ac8]{width:100%;height:30px;position:relative;border-bottom:1px solid #999;-webkit-user-select:none;-moz-user-select:none;user-select:none}.windowListItem.active[data-v-5d855ac8]{background-color:#000}.windowListItem .order[data-v-5d855ac8]{position:absolute;width:30px;height:30px;display:flex;justify-content:center;align-items:center;color:#fff;border-right:1px solid #999}.timeLineContainer[data-v-35dbafe4]{width:100%;height:100%;cursor:pointer;display:flex;flex-direction:column}.timeLineContainer .canvas[data-v-35dbafe4]{flex-grow:0;flex-shrink:0}.timeLineContainer .windowList[data-v-35dbafe4]{width:100%;height:100%;overflow:auto;overflow-x:hidden;border-top:1px solid #999;display:flex;flex-direction:column}.timeLineContainer .windowList[data-v-35dbafe4]::-webkit-scrollbar{display:none}
--------------------------------------------------------------------------------
/demo/src/components/Segment.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
当前时间:{{ showTime2 }}
4 |
5 |
7 |
8 |
9 |
10 |
11 |
74 |
75 |
--------------------------------------------------------------------------------
/demo/src/components/CustomZoom.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
当前时间:{{ showTime }}
4 |
5 |
18 |
19 |
20 |
21 |
22 |
87 |
88 |
116 |
--------------------------------------------------------------------------------
/demo/src/components/Custom.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
当前时间:{{ showTime4 }}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
88 |
89 |
--------------------------------------------------------------------------------
/demo/src/components/MultiSegment.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
当前时间:{{ showTime3 }}
4 |
5 |
8 |
9 |
10 |
11 |
12 |
119 |
120 |
--------------------------------------------------------------------------------
/package/src/WindowListItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ index + 1 }}
4 |
5 |
6 |
7 |
8 |
172 |
173 |
197 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 一个基于Vue2的时间轴组件,一般用于监控视频的回放。
2 |
3 | # 文章
4 |
5 | [手摸手带你实现一个时间轴组件](https://juejin.cn/post/7157917487953084429)
6 |
7 | # 本地开发
8 |
9 | ```bash
10 | git clone https://github.com/wanglin2/VideoTimeLine.git
11 | cd package
12 | npm i
13 | npm link
14 | cd ..
15 | cd demo
16 | npm i
17 | npm link @wanglin1994/video-timeline
18 | npm run serve
19 | ```
20 |
21 | # 安装
22 |
23 | ```bash
24 | npm i @wanglin1994/video-timeline
25 | ```
26 |
27 | > 注意:源码未打包直接发布,有需要请自行配置打包文件。
28 |
29 | # 引入
30 |
31 | ```js
32 | import VideoTimeline from '@wanglin1994/video-timeline'
33 | Vue.use(VideoTimeline)
34 | ```
35 |
36 | # 基础用法
37 |
38 | ```vue
39 |
40 |
41 |
当前时间:{{showTime}}
42 |
43 |
44 |
45 |
46 | 重新渲染
47 | 跳转到2021-01-01零点
48 |
54 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
114 |
115 |
142 | ```
143 |
144 | # 显示时间段
145 |
146 | ```vue
147 |
148 |
149 |
当前时间:{{showTime2}}
150 |
151 |
158 |
159 |
160 |
161 |
162 |
214 |
215 |
236 | ```
237 |
238 | # 多个时间轴
239 |
240 | 当超过一个播放窗口时可以显示多个时间轴。
241 |
242 | ```vue
243 |
244 |
245 |
当前时间:{{showTime3}}
246 |
247 |
256 |
257 |
258 |
259 |
260 |
363 |
364 |
385 | ```
386 |
387 | # 显示自定义元素
388 |
389 | 有时候会想在时间轴上显示一些自定义的东西,比如某个时间段显示一张图片之类的,这可以通过监听某个时间点的位置来实现。
390 |
391 | ```vue
392 |
393 |
394 |
当前时间:{{showTime4}}
395 |
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 |
475 |
476 |
502 | ```
503 |
504 | # API
505 |
506 | ## 属性
507 |
508 | | 参数 | 说明 | 类型 | 可选值 | 默认值 |
509 | | ----- | ---------------------------------- | ------ | ------ | ------ |
510 | | initTime | 初始时间,中点所在的时间,默认为当天0点。可以传递数字类型的时间戳或字符串类型的时间,如:2020-12-19 18:30:00 | Number/String | — | |
511 | | timeRange | 中间刻度所允许显示的时间范围,即当前时间的限定范围,对象类型,字段见表1-1 | Object | — | |
512 | | initZoomIndex | 初始的时间分辨率,数字索引,时间分辨率数组为:['半小时', '1小时', '2小时', '6小时', '12小时', '1天', '3天', '15天', '30天', '365天', '3650天'] | Number | — | 5 |
513 | | showCenterLine | 是否显示中间的竖线 | Boolean | — | true |
514 | | centerLineStyle | 中间竖线的样式,对象类型,字段见表1-2 | Object | — | |
515 | | textColor | 日期时间文字的颜色 | String | — | rgba(151,158,167,1) |
516 | | hoverTextColor | 鼠标滑过显示的时间文字颜色 | String | — | rgb(194, 202, 215) |
517 | | lineColor | 时间刻度的颜色 | String | — | rgba(151,158,167,1) |
518 | | lineHeightRatio | 时间刻度高度占时间轴高度的比例,对象格式,字段见表1-3 | Object | — | |
519 | | showHoverTime | 鼠标滑过时是否显示实时所在的时间 | Boolean | — | true |
520 | | timeSegments | 要显示的时间颜色段,对象数组类型,对象字段见表1-4 | Array | — | [] |
521 | | backgroundColor | 时间轴背景颜色 | String | — | #262626 |
522 | | enableZoom | 是否允许鼠标滚动切换时间分辨率 | Boolean | — | true |
523 | | enableDrag | 是否允许拖动 | Boolean | — | true |
524 | | windowList | 播放窗口列表,播放窗口数量大于1的话可以配置此项,会显示和窗口对应数量的时间轴,只有一个窗口的话请直接使用基本时间轴,对象数组类型,对象字段见表1-5 | Array | — | [] |
525 | | baseTimeLineHeight | 当显示windowList时的基础时间轴高度 | Number | — | 50 |
526 | | initSelectWindowTimeLineIndex | 初始选中的窗口时间轴索引 | Number | — | -1 |
527 | | maxClickDistance(v0.1.2+) | 鼠标按下和松开的距离小于该值认为是点击事件 | Number | — | 3 |
528 | | roundWidthTimeSegments(v0.1.6+) | 绘制时间段时对计算出来的坐标进行四舍五入,可以防止相连的时间段绘制出来有间隔的问题 | Boolean | — | true |
529 | | customShowTime(v0.1.7+) | 自定义显示哪些时间,详细请阅读下方【属性详解1-1】 | Function | — | |
530 | | hoverTimeFormat(v0.1.9+) | 格式化鼠标滑过时间,函数类型,接收一个`time`参数,代表当前鼠标所在的时间戳,函数需要返回一个格式化后的时间字符串,默认显示的时间格式为`YYYY-MM-DD HH:mm:ss` | Function | — | |
531 | | showDateAtZero(v0.1.9+) | `0`点处是否显示日期,时间轴上默认`0`点处显示的日期,需要显示成时间,那么就需要设为`false`,然后通过`formatTime`属性自定义格式化 | Boolean | — | true |
532 | | formatTime(v0.1.9+) | 格式化时间轴显示时间,默认规则是`年`模式`YYYY`、`年月`模式`YYYY-MM`、`0`点`MM-DD`、其他`HH:mm`,如果想自定义,比如`0`点还是显示时间,不显示日期,就可以通过该函数进行格式化。如果该函数返回值为空值,那么还会走内部规则。 | Function | — | |
533 | | extendZOOM(v0.1.9+) | 扩展ZOOM列表,详细请参考下方【属性详解1-2】 | Array | — | [] |
534 |
535 | ### 属性详解1-1 customShowTime的用法
536 |
537 | > 该属性在v0.1.7+版本开始支持
538 |
539 | 当你在使用本组件的时候可能会遇到一个很常见的问题,比如容器的宽度很小,然后时间段展示的又是几天、甚至半个月的时间,那么很容易遇到时间段里面时间都挤在一起的问题,比如这个[issue](https://github.com/wanglin2/VideoTimeLine/issues/3),其实组件内部是内置了一些判断方法,比如在`3天`的时间分辨率下,对应的`initZoomIndex=6`,对应关系可参考上方属性表格,那么就会使用`3天`的这个判断规则,如下:
540 |
541 | ```js
542 | date => { // 每三小时显示
543 | return date.getHours() % 3 === 0 && date.getMinutes() === 0
544 | }
545 | ```
546 |
547 | 意思是显示`3`的倍数的整点小时,那么当你容器宽度不够,且时间分辨率设置的比较大,那么时间就会挤在一起看不清,这时候你就可以通过`customShowTime`属性传入自定义的判断方法,这个方法接收两个参数:
548 |
549 | - `date`:是否要显示的时间,可以根据该时间进行判断是否要显示这个时间
550 | - `currentZoomIndex`:当前的时间分辨率,比如`3天`对应的就是`6`,对应关系可参考上方属性表格
551 |
552 | 那么如果内置的规则不满足的话,就可以自定义,比如`3天`的时间分辨率下我想只显示`12`倍数的小时,可以这么做:
553 |
554 | ```html
555 |
556 | ```
557 |
558 | ```js
559 | export default {
560 | methods: {
561 | customShowTime(date, zoomIndex) {
562 | if (zoomIndex === 6) {
563 | return date.getHours() % 12 === 0 && date.getMinutes() === 0
564 | }
565 | }
566 | }
567 | }
568 | ```
569 |
570 | 函数返回值需要注意一下,如果要显示返回`true`,如果不显示返回`false`,如果不处理,仍旧交给内部规则,返回其他值。
571 |
572 |
573 |
574 | ### 属性详解1-2 extendZOOM的用法
575 |
576 | 该属性用于扩展`ZOOM`列表,即时间分辨率,内置了`11`个时间分辨率,可以参考上方表格`initZoomIndex`属性,如果内置的时间分辨率满足不了你,那么可以通过该属性进行扩展。
577 |
578 | `extendZOOM`为数组类型,数组的每一项为:
579 |
580 | ```js
581 | {
582 | zoom: 26, // 时间分辨率,整个时间轴表示的时间范围,单位:小时
583 | zoomHourGrid: 0.5, //时间分辨率对应的每格小时数,即时间轴上最小格代表多少小时
584 | mobileZoomHourGrid: 2, // 手机模式下时间分辨率对应的每格小时数,如果不用适配手机端,可以不用设置
585 | }
586 | ```
587 |
588 | 这个数组的数据会追加到内部的`ZOOM`数组,对应的`zoomIndex`往后累加即可,内部一共有`11`个`zoom`,那么你追加了一项,对应的`zoomIndex`为11,因为是从零开始计数。
589 |
590 | 同时你需要传递`customShowTime`属性来自定义控制时间显示,否则会报错,因为内置的规则只有`11`个。
591 |
592 | 接下来看一个案例。
593 |
594 | > 只显示当天的时间, 从00:00:00到23:59:59,详细请看这个[issue](https://github.com/wanglin2/VideoTimeLine/issues/6)
595 |
596 | 首先默认的`initZoomIndex`为`5`,即`1`天,刚好满足,不用修改,然后将`enableZoom`设为`false`,不允许修改时间分辨率;将`enableDrag`设为`false`,不允许拖拽; 然后再将`initTime`设为当天的`12:00:00`,那么刚好整个时间轴显示的就是当前的时间,到这里,似乎就可以了。但是实际上会存在一些问题,如前面的`issue`中所示。
597 |
598 | 问题1:`0`点处显示的是日期,需要改成时间
599 |
600 | 很简单,将`showDateAtZero`设为`false`,`0`点就不会显示日期了
601 |
602 | 问题2:鼠标滑过显示的还是带日期的,这个好办,通过`hoverTimeFormat`属性自定义格式化规则即可:
603 |
604 | ```js
605 | hoverTimeFormat(time) {
606 | // 小于今天,大于今天的时间不显示
607 | if (
608 | dayjs(time).isBefore(dayjs().format('YYYY-MM-DD 00:00:00')) ||
609 | dayjs(time).isAfter(dayjs().format('YYYY-MM-DD 23:59:59'))
610 | ) {
611 | return ''
612 | }
613 | return dayjs(time).format('HH:mm:ss')
614 | }
615 | ```
616 |
617 | 问题3:左右两侧的时间显示不出来
618 |
619 | 即`0`点和`24`点的时间刚好是两端,因实现原理问题,无法显示,怎么办呢,其实很简单,假如时间轴表示的时间范围为`25`小时,那么左右两端不就会各多出半小时的时间吗,这个空间足够显示时间了,但是内部的时间分辨率没有`25`小时的,这时就需要扩展时间分辨率了:
620 |
621 | ```js
622 | extendZOOM: [
623 | {
624 | zoom: 25,
625 | zoomHourGrid: 0.5
626 | }
627 | ]
628 | ```
629 |
630 | 扩展了`extendZOOM`,`customShowTime`不能少,否则会报错:
631 |
632 | ```js
633 | customShowTime(date, zoomIndex) {
634 | // 当zoomIndex等于11,也就是等于我们开展的zoom时才自己处理
635 | if (zoomIndex === 11) {
636 | // 时间是2的倍数时才会显示
637 | return date.getHours() % 2 === 0 && date.getMinutes() === 0
638 | }
639 | }
640 | ```
641 |
642 | 到这里,你还会发现一个问题,`24`点实际上是下一天的`0`点,所以显示的是`00:00`,这样可能不符合我们的需求,这时我们可以通过`formatTime`来格式化时间轴上的时间显示,判断是下一天的`0`点,那么就改成`24:00`:
643 |
644 | ```js
645 | formatTime(time) {
646 | // 下一天的00:00显示24:00
647 | if (time.isAfter(dayjs().format('YYYY-MM-DD 23:59:59'))) {
648 | return '24:00'
649 | }
650 | if (
651 | time.hour() === 0 &&
652 | time.minute() === 0 &&
653 | time.millisecond() === 0
654 | ) {
655 | return time.format('HH:mm')
656 | }
657 | }
658 | ```
659 |
660 | 完整代码请参考:[CustomZoom.vue](https://github.com/wanglin2/VideoTimeLine/blob/main/demo/src/components/CustomZoom.vue)。
661 |
662 |
663 |
664 | ### 表1-1 timeRange对象的字段格式
665 |
666 | | 字段名 | 说明 | 类型 | 可选值 | 默认值 |
667 | | ----- | ---------------------------------- | ------ | ------ | ------ |
668 | | start | 允许显示的最小时间,可以传递数字类型的时间戳或字符串类型的时间,如:2020-12-19 18:30:00 | Number/String | — | |
669 | | end | 允许显示的最大时间,可以传递数字类型的时间戳或字符串类型的时间,如:2020-12-19 18:30:00 | Number/String | — | |
670 |
671 | ### 表1-2 centerLineStyle对象的字段格式
672 |
673 | | 字段名 | 说明 | 类型 | 可选值 | 默认值 |
674 | | ----- | ---------------------------------- | ------ | ------ | ------ |
675 | | width | 线的宽度,单位px | Number | — | 2 |
676 | | color | 线的颜色 | String | — | #fff |
677 |
678 | ### 表1-3 lineHeightRatio对象的字段格式
679 |
680 | | 字段名 | 说明 | 类型 | 可选值 | 默认值 |
681 | | ----- | ---------------------------------- | ------ | ------ | ------ |
682 | | date | 0点时的日期线段高度 | Number | — | 0.3 |
683 | | time | 显示时间的线段高度 | Number | — | 0.2 |
684 | | none | 不显示时间的线段高度 | Number | — | 0.1 |
685 | | hover | 鼠标滑过时显示的时间段高度 | Number | — | 0.3 |
686 |
687 | ### 表1-4 timeSegments数组的对象元素的字段格式
688 |
689 | | 字段名 | 说明 | 类型 | 可选值 | 默认值 |
690 | | ----- | ---------------------------------- | ------ | ------ | ------ |
691 | | beginTime | 起始时间戳,必填 | Number | — | |
692 | | endTime | 结束时间戳,必填 | Number | — | |
693 | | color | 颜色,必填 | String | — | |
694 | | startRatio | 高度的起始比例,即top=时间轴高度*startRatio | Number | — | 0.6 |
695 | | endRatio | 高度的结束比例,即bottom=时间轴高度*endRatio | Number | — | 0.9 |
696 |
697 | > 从v0.1.8+版本开始,时间段可以只传一个beginTime,绘制一根宽度为1px的线段
698 |
699 | ### 表1-5 windowList数组的对象元素的字段格式
700 |
701 | | 字段名 | 说明 | 类型 | 可选值 | 默认值 |
702 | | ----- | ---------------------------------- | ------ | ------ | ------ |
703 | | timeSegments | 要显示的时间段,对象数组,对象字段见表1-4 | Array | — | [] |
704 | 可以添加你需要的其他任意字段
705 |
706 | ## 事件
707 |
708 | | 事件 | 说明 | 回调函数参数 |
709 | | ----- | ---------------------------------- | ------ |
710 | | timeChange | 当前时间切换事件 | currentTime(当前时间,时间戳格式) |
711 | | dragTimeChange | 拖动时间条结束后的事件 | currentTime(当前时间,时间戳格式) |
712 | | mousedown | 鼠标按下事件 | e(事件对象) |
713 | | mouseup | 鼠标松开事件 | e(事件对象) |
714 | | click_timeSegments | 点击到了基础时间轴里的时间段时触发 | timeSegments(点击到的时间段,数组类型)、time(v0.1.10+,点击位置对应的时间戳)、 date(v0.1.10+,点击位置对应的日期时间字符串)、 x(v0.1.10+,点击位置相对时间轴左侧的距离) |
715 | | click_window_timeSegments | 点击到了窗口时间轴里的时间段时触发 | timeSegments(点击到的时间段,数组类型)、index(时间轴索引)、item(时间轴数据) |
716 | | change_window_time_line | 点击窗口时间轴进行切换选中时触发 | index(时间轴索引)、item(时间轴数据) |
717 | | click_timeline(v0.1.2+) | 时间轴的点击事件 | time(点击位置对应的时间戳)、 date(点击位置对应的日期时间字符串)、 x(点击位置相对时间轴左侧的距离) |
718 |
719 | ## 方法
720 |
721 | | 方法名 | 说明 | 参数 |
722 | | ----- | ---------------------------------- | ------ |
723 | | updateWatchTime | 手动更新观察的时间位置,比如页面滚动后时间轴的整体位置变化了需要调用,如果没有显示自定义元素时无需调用 | |
724 | | reRender | 重新渲染 | |
725 | | setTime | 设置当前时间 | t(数字类型的时间戳或字符串类型的时间,如:2020-12-19 18:30:00) |
726 | | setZoom | 设置分辨率 | index(分辨率索引) |
727 | | watchTime | 设置要观察的时间点,会返回该时间点的实时位置,可以根据该位置来设置一些自定义元素的位置,位置为相对于浏览器可视窗口的位置 | time(要观察的时间,数字类型的时间戳或字符串类型的时间,如:2020-12-19 18:30:00), callback(时间点位置变化时会调用,回调参数为x水平位置、y重置位置,单位px), windowTimeLineIndex(如果自定义元素是要显示到某个窗口时间轴里的话,可以通过该参数来指定第几个时间轴,数字索引,从1开始) |
728 | | onResize | 如果时间轴所在的容器尺寸变化了需要调用该方法来适应 | |
729 |
--------------------------------------------------------------------------------
/dist/js/app.0c429e75.js:
--------------------------------------------------------------------------------
1 | (function(){"use strict";var t={5030:function(t,e,i){var n=i(6369),s=function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"app"}},[e("el-radio-group",{attrs:{size:"small"},model:{value:t.activeComp,callback:function(e){t.activeComp=e},expression:"activeComp"}},t._l(t.list,(function(i){return e("el-radio-button",{attrs:{label:i.value}},[t._v(t._s(i.name))])})),1),e("div",{staticClass:"box"},[e(t.activeComp,{tag:"component"})],1),t._m(0)],1)},o=[function(){var t=this,e=t._self._c;return e("div",[e("a",{attrs:{href:"https://github.com/wanglin2/VideoTimeLine/tree/main/demo/src/components"}},[t._v("demo源码")])])}],a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"container"},[e("div",{staticClass:"timeShow"},[t._v("当前时间:"+t._s(t.showTime))]),e("div",{staticClass:"timeLine"},[e("TimeLine",{ref:"Timeline",on:{timeChange:t.timeChange}})],1),e("div",{staticClass:"btns"},[e("el-button",{attrs:{type:"primary"},on:{click:t.reRender}},[t._v("重新渲染")]),e("el-button",{attrs:{type:"primary"},on:{click:t.jump}},[t._v("跳转到2021-01-01零点")]),e("el-select",{staticStyle:{width:"100px",margin:"0 10px"},attrs:{placeholder:"请选择"},on:{change:t.zoomChange},model:{value:t.zoom,callback:function(e){t.zoom=e},expression:"zoom"}},t._l(t.zoomList,(function(t){return e("el-option",{key:t.value,attrs:{label:t.label,value:t.value}})})),1)],1)])},m=[],r=i(5743),h=i.n(r),l={data(){return{time:Date.now(),zoom:5,zoomList:["半小时","1小时","2小时","6小时","12小时","1天","3天","15天","30天","1年","10年"].map(((t,e)=>({label:t,value:e}))),timer:null}},computed:{showTime(){return h()(this.time).format("YYYY-MM-DD HH:mm:ss")}},mounted(){this.timer=setInterval((()=>{this.time+=1e3,this.$refs.Timeline.setTime(this.time)}),1e3)},beforeDestroy(){clearTimeout(this.timer)},methods:{timeChange(t){this.time=t},reRender(){this.initZoomIndex=8,this.$refs.Timeline.reRender()},jump(){this.$refs.Timeline.setTime("2021-01-01 00:00:00")},zoomChange(t){this.$refs.Timeline.setZoom(t)}}},c=l,d=i(1001),u=(0,d.Z)(c,a,m,!1,null,"41b27e10",null),g=u.exports,w=function(){var t=this,e=t._self._c;return e("div",{staticClass:"container"},[e("div",{staticClass:"timeShow"},[t._v("当前时间:"+t._s(t.showTime4))]),e("div",{staticClass:"timeLine4"},[e("TimeLine",{ref:"Timeline4",attrs:{initTime:t.time4,windowList:t.windowList4},on:{timeChange:t.timeChange4}})],1),e("i",{ref:"flagIcon",staticClass:"icon el-icon-s-flag",staticStyle:{color:"#E72528"}}),e("i",{ref:"carIcon",staticClass:"icon el-icon-bicycle",staticStyle:{color:"#2196F3"}})])},T=[],f={data(){return{time4:"2021-01-02 00:00:00",windowList4:[{name:"窗口1"},{name:"窗口2"},{name:"窗口3"},{name:"窗口4"},{name:"窗口5"},{name:"窗口6"}],timer:null}},computed:{showTime4(){return h()(this.time4).format("YYYY-MM-DD HH:mm:ss")}},mounted(){this.timer=setInterval((()=>{this.time4+=1e3,this.$refs.Timeline4.setTime(this.time4)}),1e3),window.addEventListener("scroll",(()=>{this.$refs.Timeline4.updateWatchTime()})),this.$refs.Timeline4.watchTime("2021-01-01 23:30:00",((t,e)=>{-1===t||-1===e?this.$refs.flagIcon.style.display="none":(this.$refs.flagIcon.style.display="block",this.$refs.flagIcon.style.left=t+"px",this.$refs.flagIcon.style.top=e+24+"px")})),this.$refs.Timeline4.watchTime("2021-01-02 02:30:00",((t,e)=>{-1===t||-1===e?this.$refs.carIcon.style.display="none":(this.$refs.carIcon.style.display="block",this.$refs.carIcon.style.left=t+"px",this.$refs.carIcon.style.top=e+"px")}),2)},beforeDestroy(){clearTimeout(this.timer)},methods:{timeChange4(t){this.time4=t}}},p=f,v=(0,d.Z)(p,w,T,!1,null,"4951fd2c",null),C=v.exports,M=function(){var t=this,e=t._self._c;return e("div",{staticClass:"container"},[e("div",{staticClass:"timeShow"},[t._v("当前时间:"+t._s(t.showTime3))]),e("div",{staticClass:"timeline3"},[e("TimeLine",{ref:"Timeline3",attrs:{initTime:t.time3,timeSegments:t.timeSegments3,windowList:t.windowList},on:{timeChange:t.timeChange3,click_timeSegments:t.click_timeSegments3,click_window_timeSegments:t.click_window_timeSegments}})],1)])},S=[],b={data(){return{time3:"2021-01-15 00:00:00",timeSegments3:[{name:"时间段1",beginTime:new Date("2021-01-13 10:00:00").getTime(),endTime:new Date("2021-01-14 23:00:00").getTime(),color:"#FA3239",startRatio:.65,endRatio:.9},{name:"时间段2",beginTime:new Date("2021-01-15 02:00:00").getTime(),endTime:new Date("2021-01-15 18:00:00").getTime(),color:"#836ABB",startRatio:.65,endRatio:.9}],windowList:[{name:"窗口1",timeSegments:[{name:"窗口1的时间段1",beginTime:new Date("2021-01-13 10:00:00").getTime(),endTime:new Date("2021-01-14 23:00:00").getTime(),color:"#FA3239",startRatio:.1,endRatio:.9},{name:"窗口1的时间段2",beginTime:new Date("2021-01-12 18:00:00").getTime(),endTime:new Date("2021-01-13 00:00:00").getTime(),color:"#00AEFF",startRatio:.1,endRatio:.9}]},{name:"窗口2",timeSegments:[{name:"窗口2的时间段1",beginTime:new Date("2021-01-15 02:00:00").getTime(),endTime:new Date("2021-01-15 18:00:00").getTime(),color:"#FFCC00",startRatio:.1,endRatio:.9}]},{name:"窗口3"},{name:"窗口4"},{name:"窗口5"},{name:"窗口6"}],timer:null}},computed:{showTime3(){return h()(this.time3).format("YYYY-MM-DD HH:mm:ss")}},mounted(){this.timer=setInterval((()=>{this.time3+=1e3,this.$refs.Timeline3.setTime(this.time3)}),1e3)},beforeDestroy(){clearTimeout(this.timer)},methods:{timeChange3(t){this.time3=t},click_timeSegments3(t){alert("点击了:"+t[0].name)},click_window_timeSegments(t,e,i){alert("点击了窗口时间轴的时间段:"+t[0].name)}}},x=b,y=(0,d.Z)(x,M,S,!1,null,"0f18e806",null),L=y.exports,R=function(){var t=this,e=t._self._c;return e("div",{staticClass:"container"},[e("div",{staticClass:"timeShow"},[t._v("当前时间:"+t._s(t.showTime2))]),e("div",{staticClass:"timeLine"},[e("TimeLine",{ref:"Timeline2",attrs:{initTime:t.time2,timeSegments:t.timeSegments},on:{timeChange:t.timeChange2,click_timeSegments:t.click_timeSegments,click_timeline:t.onClickTimeLine,dragTimeChange:t.onDragTimeChange}})],1)])},_=[],D={data(){return{time2:"2021-01-15 00:00:00",timeSegments:[{name:"时间段1",beginTime:new Date("2021-01-13 10:00:00").getTime(),endTime:new Date("2021-01-14 23:00:00").getTime(),color:"#FA3239",startRatio:.65,endRatio:.9},{name:"时间段2",beginTime:new Date("2021-01-15 02:00:00").getTime(),endTime:new Date("2021-01-15 18:00:00").getTime(),color:"#836ABB",startRatio:.65,endRatio:.9}],timer:null}},computed:{showTime2(){return h()(this.time2).format("YYYY-MM-DD HH:mm:ss")}},mounted(){this.timer=setInterval((()=>{this.time2+=1e3,this.$refs.Timeline2.setTime(this.time2)}),1e3)},beforeDestroy(){clearTimeout(this.timer)},methods:{timeChange2(t){this.time2=t},click_timeSegments(t,...e){console.log("onClickTimeSegments",t,e),alert("点击了:"+t[0].name)},onClickTimeLine(...t){console.log("onClickTimeLine",t)},onDragTimeChange(...t){console.log("onDragTimeChange",t)}}},I=D,Y=(0,d.Z)(I,R,_,!1,null,"45a3b121",null),k=Y.exports,Z=function(){var t=this,e=t._self._c;return e("div",{staticClass:"container"},[e("TimeLine",{ref:"Timeline",attrs:{enableZoom:!1,initZoomIndex:10,timeSegments:t.timeSegments}})],1)},$=[],H={data(){return{timeSegments:[{name:"时间段1",beginTime:new Date("2021-01-13 10:00:00").getTime(),endTime:new Date("2025-01-14 23:00:00").getTime(),color:"#FA3239",startRatio:.65,endRatio:.9},{name:"时间段2",beginTime:new Date("2008-01-01 00:00:00").getTime(),endTime:new Date("2021-01-15 18:00:00").getTime(),color:"#836ABB",startRatio:.65,endRatio:.9}]}}},O=H,A=(0,d.Z)(O,Z,$,!1,null,"1a36b017",null),B=A.exports,W=function(){var t=this,e=t._self._c;return e("div",{staticClass:"container"},[e("TimeLine",{ref:"Timeline",attrs:{enableZoom:!1,initZoomIndex:9,timeSegments:t.timeSegments}})],1)},P=[],E={data(){return{timeSegments:[{name:"时间段1",beginTime:new Date("2021-01-13 10:00:00").getTime(),endTime:new Date("2025-01-14 23:00:00").getTime(),color:"#FA3239",startRatio:.65,endRatio:.9},{name:"时间段2",beginTime:new Date("2008-01-01 00:00:00").getTime(),endTime:new Date("2021-01-15 18:00:00").getTime(),color:"#836ABB",startRatio:.65,endRatio:.9}]}}},F=E,z=(0,d.Z)(F,W,P,!1,null,"3aed7087",null),j=z.exports,X=function(){var t=this,e=t._self._c;return e("div",{staticClass:"container"},[e("div",{staticClass:"timeShow"},[t._v("当前时间:"+t._s(t.showTime))]),e("div",{ref:"timeLine",staticClass:"timeLine"},[e("TimeLine",{ref:"Timeline",attrs:{enableZoom:!1,enableDrag:!1,showDateAtZero:!1,initZoomIndex:11,initTime:t.initTime,customShowTime:t.customShowTime,extendZOOM:t.extendZOOM,formatTime:t.formatTime,hoverTimeFormat:t.hoverTimeFormat},on:{click_timeline:t.click_timeline}})],1)])},N=[],G={data(){return{time:Date.now(),initTime:h()().format("YYYY-MM-DD 12:00:00").valueOf(),extendZOOM:[{zoom:25,zoomHourGrid:.5}]}},computed:{showTime(){return h()(this.time).format("YYYY-MM-DD HH:mm:ss")}},mounted(){console.log(this.$refs.timeLine.getBoundingClientRect())},methods:{click_timeline(t,e){this.time=t},formatTime(t){return t.isAfter(h()().format("YYYY-MM-DD 23:59:59"))?"24:00":0===t.hour()&&0===t.minute()&&0===t.millisecond()?t.format("HH:mm"):void 0},hoverTimeFormat(t){return h()(t).isBefore(h()().format("YYYY-MM-DD 00:00:00"))||h()(t).isAfter(h()().format("YYYY-MM-DD 23:59:59"))?"":h()(t).format("HH:mm:ss")},customShowTime(t,e){if(11===e)return t.getHours()%2===0&&0===t.getMinutes()}}},U=G,V=(0,d.Z)(U,X,N,!1,null,"f7bac5fc",null),q=V.exports,J={name:"App",components:{Custom:C,Base:g,MultiSegment:L,Segment:k,Year:B,YearMonth:j,CustomZoom:q},data(){return{activeComp:"Base",list:[{name:"基础用法",value:"Base"},{name:"显示时间段",value:"Segment"},{name:"多个时间轴",value:"MultiSegment"},{name:"显示自定义元素",value:"Custom"},{name:"显示到年",value:"Year"},{name:"显示到年月",value:"YearMonth"},{name:"自定义时间分辨率",value:"CustomZoom"}]}},methods:{change(t){this.activeComp=t}}},K=J,Q=(0,d.Z)(K,s,o,!1,null,null,null),tt=Q.exports,et=function(){var t=this,e=t._self._c;return e("div",{ref:"timeLineContainer",staticClass:"timeLineContainer",style:{backgroundColor:t.backgroundColor},on:{touchstart:t.onTouchstart,touchmove:t.onTouchmove,mousedown:t.onMousedown,mouseout:t.onMouseout,mousemove:t.onMousemove,mouseleave:t.onMouseleave}},[e("canvas",{ref:"canvas",staticClass:"canvas",on:{mousewheel:function(e){return e.stopPropagation(),e.preventDefault(),t.onMouseweel.apply(null,arguments)}}}),t.showWindowList&&t.windowList&&t.windowList.length>1?e("div",{ref:"windowList",staticClass:"windowList",on:{scroll:t.onWindowListScroll}},t._l(t.windowListInner,(function(i,n){return e("WindowListItem",{key:n,ref:"WindowListItem",refInFor:!0,attrs:{index:n,data:i,totalMS:t.totalMS,startTimestamp:t.startTimestamp,width:t.width,active:i.active},on:{click_window_timeSegments:t.triggerClickWindowTimeSegments,click:function(e){return t.toggleActive(n)}}})})),1):t._e()])},it=[],nt=(i(8496),i(7085)),st=i.n(nt),ot=function(){var t=this,e=t._self._c;return e("div",{ref:"windowListItem",staticClass:"windowListItem",class:{active:t.active},on:{click:t.onClick}},[e("span",{staticClass:"order"},[t._v(t._s(t.index+1))]),e("canvas",{ref:"canvas",staticClass:"windowListItemCanvas"})])},at=[],mt={name:"WindowListItem",props:{index:{type:Number},data:{type:Object,default(){return{}}},totalMS:{type:Number},startTimestamp:{type:Number},width:{type:Number},active:{type:Boolean,default:!1}},data(){return{height:0,ctx:null}},mounted(){this.init(),this.drawTimeSegments()},methods:{init(){let{height:t}=this.$refs.windowListItem.getBoundingClientRect();this.height=t-1,this.$refs.canvas.width=this.width,this.$refs.canvas.height=this.height,this.ctx=this.$refs.canvas.getContext("2d")},drawTimeSegments(t,e){if(!this.data.timeSegments||this.data.timeSegments.length<=0)return;const i=this.width/this.totalMS;this.data.timeSegments.forEach((n=>{if(n.beginTime<=this.startTimestamp+this.totalMS&&n.endTime>=this.startTimestamp){this.ctx.beginPath();let s,o=(n.beginTime-this.startTimestamp)*i;o<0?(o=0,s=(n.endTime-this.startTimestamp)*i):s=(n.endTime-n.beginTime)*i;let a=void 0===n.startRatio?.6:n.startRatio,m=void 0===n.endRatio?.9:n.endRatio;e?this.ctx.rect(o,this.height*a,s,this.height*(m-a)):(this.ctx.fillStyle=n.color,this.ctx.fillRect(o,this.height*a,s,this.height*(m-a))),t&&t(n)}}))},clearCanvas(){this.ctx.clearRect(0,0,this.width,this.height)},draw(){this.$nextTick((()=>{this.clearCanvas(),this.drawTimeSegments()}))},onClick(t){this.$emit("click",t);let{left:e,top:i}=this.$refs.windowListItem.getBoundingClientRect(),n=t.clientX-e,s=t.clientY-i,o=this.getClickTimeSegments(n,s);o.length>0&&this.$emit("click_window_timeSegments",o,this.index,this.data)},getClickTimeSegments(t,e){if(!this.data.timeSegments||this.data.timeSegments.length<=0)return[];let i=[];return this.drawTimeSegments((n=>{this.ctx.isPointInPath(t,e)&&i.push(n)}),!0),i},getRect(){return this.$refs.windowListItem?this.$refs.windowListItem.getBoundingClientRect():null}}},rt=mt,ht=(0,d.Z)(rt,ot,at,!1,null,"5d855ac8",null),lt=ht.exports;const ct=36e5,dt=[.5,1,2,6,12,24,72,360,720,8760,87600],ut=[1/60,1/60,2/60,1/6,.25,.5,1,4,4,720,7200],gt=[.05,1/30,.05,1/3,.5,2,4,4,4,720,7200],wt=[()=>!0,t=>t.getMinutes()%5===0,t=>t.getMinutes()%10===0,t=>0===t.getMinutes()||30===t.getMinutes(),t=>0===t.getMinutes(),t=>t.getHours()%2===0&&0===t.getMinutes(),t=>t.getHours()%3===0&&0===t.getMinutes(),t=>t.getHours()%12===0&&0===t.getMinutes(),t=>!1,t=>!0,t=>!0],Tt=[()=>!0,t=>t.getMinutes()%5===0,t=>t.getMinutes()%10===0,t=>0===t.getMinutes()||30===t.getMinutes(),t=>t.getHours()%2===0&&0===t.getMinutes(),t=>t.getHours()%4===0&&0===t.getMinutes(),t=>t.getHours()%3===0&&0===t.getMinutes(),t=>t.getHours()%12===0&&0===t.getMinutes(),t=>!1,t=>!0,t=>!0];var ft={name:"TimeLine",components:{WindowListItem:lt},props:{initTime:{type:[Number,String],default:""},timeRange:{type:Object,default(){return{}}},initZoomIndex:{type:Number,default:5},showCenterLine:{type:Boolean,default:!0},centerLineStyle:{type:Object,default(){return{width:2,color:"#fff"}}},textColor:{type:String,default:"rgba(151,158,167,1)"},hoverTextColor:{type:String,default:"rgb(194, 202, 215)"},lineColor:{type:String,default:"rgba(151,158,167,1)"},lineHeightRatio:{type:Object,default(){return{date:.3,time:.2,none:.1,hover:.3}}},showHoverTime:{type:Boolean,default:!0},hoverTimeFormat:{type:Function},timeSegments:{type:Array,default:()=>[]},backgroundColor:{type:String,default:"#262626"},enableZoom:{type:Boolean,default:!0},enableDrag:{type:Boolean,default:!0},windowList:{type:Array,default(){return[]}},baseTimeLineHeight:{type:Number,default:50},initSelectWindowTimeLineIndex:{type:Number,default:-1},isMobile:{type:Boolean,default:!1},maxClickDistance:{type:Number,default:3},roundWidthTimeSegments:{type:Boolean,default:!0},customShowTime:{type:Function},showDateAtZero:{type:Boolean,default:!0},extendZOOM:{type:Array,default(){return[]}},formatTime:{type:Function}},data(){return{width:0,height:0,ctx:null,currentZoomIndex:0,currentTime:0,startTimestamp:0,mousedown:!1,mousedownX:0,mousedownY:0,mousedownCacheStartTimestamp:0,showWindowList:!1,windowListInner:[],mousemoveX:-1,watchTimeList:[]}},computed:{totalMS(){return dt[this.currentZoomIndex]*ct},timeRangeTimestamp(){let t={};return this.timeRange.start&&(t.start="number"===typeof this.timeRange.start?this.timeRange.start:new Date(this.timeRange.start).getTime()),this.timeRange.end&&(t.end="number"===typeof this.timeRange.end?this.timeRange.end:new Date(this.timeRange.end).getTime()),t},ACT_ZOOM_HOUR_GRID(){return this.isMobile?gt:ut},ACT_ZOOM_DATE_SHOW_RULE(){return this.isMobile?Tt:wt},yearMonthMode(){return 9===this.currentZoomIndex},yearMode(){return 10===this.currentZoomIndex}},watch:{timeSegments:{deep:!0,handler:"reRender"}},created(){this.extendZOOM.forEach((t=>{dt.push(t.zoom),ut.push(t.zoomHourGrid),gt.push(t.mobileZoomHourGrid)}))},mounted(){this.setInitData(),this.init(),this.draw(),this.onMouseup=this.onMouseup.bind(this),this.onResize=this.onResize.bind(this),this.onTouchend=this.onTouchend.bind(this),this.isMobile?window.addEventListener("touchend",this.onTouchend):window.addEventListener("mouseup",this.onMouseup),window.addEventListener("resize",this.onResize)},beforeDestroy(){this.isMobile?window.removeEventListener("touchend",this.onTouchend):window.removeEventListener("mouseup",this.onMouseup),window.removeEventListener("resize",this.onResize)},methods:{setInitData(){this.windowListInner=this.windowList.map(((t,e)=>({...t,active:this.initSelectWindowTimeLineIndex===e}))),this.currentZoomIndex=this.initZoomIndex>=0&&this.initZoomIndexthis.timeRangeTimestamp.end&&(this.startTimestamp=this.timeRangeTimestamp.end-t)},init(){let{width:t,height:e}=this.$refs.timeLineContainer.getBoundingClientRect();this.width=t,this.height=this.windowList.length>1?this.baseTimeLineHeight:e,this.$refs.canvas.width=this.width,this.$refs.canvas.height=this.height,this.ctx=this.$refs.canvas.getContext("2d"),this.showWindowList=!0},draw(){this.drawTimeSegments(),this.addGraduations(),this.drawMiddleLine(),this.currentTime=this.startTimestamp+this.totalMS/2,this.$emit("timeChange",this.currentTime);try{this.$refs.WindowListItem.forEach((t=>{t.draw()}))}catch(t){}this.updateWatchTime()},updateWatchTime(){this.watchTimeList.forEach((t=>{if(t.timethis.startTimestamp+this.totalMS)t.callback(-1,-1);else{let e=(t.time-this.startTimestamp)*(this.width/this.totalMS),i=0,{left:n,top:s}=this.$refs.canvas.getBoundingClientRect();if(-1!==t.windowTimeLineIndex&&this.windowList.length>1&&t.windowTimeLineIndex>=0&&t.windowTimeLineIndex{if(n.beginTime<=this.startTimestamp+this.totalMS){let s=n.endTime>=this.startTimestamp;this.ctx.beginPath();let o,a=(n.beginTime-this.startTimestamp)*i;a<0?(a=0,o=s?(n.endTime-this.startTimestamp)*i:1):o=s?(n.endTime-n.beginTime)*i:1;let m=void 0===n.startRatio?.6:n.startRatio,r=void 0===n.endRatio?.9:n.endRatio;this.roundWidthTimeSegments&&(a=Math.round(a),o=Math.round(o)),o=Math.max(1,o),e?this.ctx.rect(a,this.height*m,o,this.height*(r-m)):(this.ctx.fillStyle=n.color,this.ctx.fillRect(a,this.height*m,o,this.height*(r-m))),t&&t(n)}}))},onTouchstart(t){this.isMobile&&(t=t.touches[0],this.onPointerdown(t))},onMousedown(t){this.isMobile||this.onPointerdown(t)},onPointerdown(t){let e=this.getClientOffset(t);this.mousedownX=e[0],this.mousedownY=e[1],this.mousedown=!0,this.mousedownCacheStartTimestamp=this.startTimestamp,this.$emit("mousedown",t)},onTouchend(t){this.isMobile&&(t=t.touches[0],this.onPointerup(t))},onMouseup(t){this.isMobile||this.onPointerup(t)},onPointerup(t){let e=this.getClientOffset(t);const i=()=>{this.mousedown=!1,this.mousedownX=0,this.mousedownY=0,this.mousedownCacheStartTimestamp=0};if(Math.abs(e[0]-this.mousedownX)<=this.maxClickDistance&&Math.abs(e[1]-this.mousedownY)<=this.maxClickDistance)return i(),void this.onClick(...e);this.mousedown&&this.enableDrag?(i(),this.$emit("dragTimeChange",this.currentTime)):i(),this.$emit("mouseup",t)},onTouchmove(t){this.isMobile&&(t=t.touches[0],this.onPointermove(t))},onMousemove(t){this.isMobile||this.onPointermove(t)},onPointermove(t){let e=this.getClientOffset(t)[0];this.mousemoveX=e,this.mousedown&&this.enableDrag?this.drag(e):this.showHoverTime&&this.hoverShow(e)},onMouseleave(){this.mousemoveX=-1},drag(t){if(!this.enableDrag)return;const e=this.width/this.totalMS;let i=t-this.mousedownX,n=this.totalMS/2,s=this.mousedownCacheStartTimestamp-Math.round(i/e),o=s+n;this.timeRangeTimestamp.start&&othis.timeRangeTimestamp.end&&(s=this.timeRangeTimestamp.end-n),this.startTimestamp=s,this.clearCanvas(this.width,this.height),this.draw()},hoverShow(t,e){const i=this.width/this.totalMS;let n=this.startTimestamp+t/i;e||(this.clearCanvas(this.width,this.height),this.draw());let s=this.height*(void 0===this.lineHeightRatio.hover?.3:this.lineHeightRatio.hover);this.drawLine(t,0,t,s,1,this.lineColor),this.ctx.fillStyle=this.hoverTextColor;let o=this.hoverTimeFormat?this.hoverTimeFormat(n):st()(n).format("YYYY-MM-DD HH:mm:ss"),a=this.ctx.measureText(o).width;this.ctx.fillText(o,t-a/2,s+20)},onMouseout(){this.clearCanvas(this.width,this.height),this.draw()},onMouseweel(t){if(!this.enableZoom)return;let e=window.event||t,i=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail));i<0?this.currentZoomIndex+1>=dt.length-1?this.currentZoomIndex=dt.length-1:this.currentZoomIndex++:i>0&&(this.currentZoomIndex-1<=0?this.currentZoomIndex=0:this.currentZoomIndex--),this.clearCanvas(this.width,this.height),this.startTimestamp=this.currentTime-this.totalMS/2,this.draw()},onClick(t,e){const i=this.width/this.totalMS;let n=this.startTimestamp+t/i,s=st()(n).format("YYYY-MM-DD HH:mm:ss"),o=this.getClickTimeSegments(t,e);o&&o.length>0?this.$emit("click_timeSegments",o,n,s,t):this.onCanvasClick(n,s,t)},getClickTimeSegments(t,e){let i=[];return this.drawTimeSegments((n=>{this.ctx.isPointInPath(t,e)&&i.push(n)}),!0),i},getClientOffset(t){if(!this.$refs.timeLineContainer||!t)return[0,0];let{left:e,top:i}=this.$refs.timeLineContainer.getBoundingClientRect();return[t.clientX-e,t.clientY-i]},clearCanvas(t,e){this.ctx.clearRect(0,0,t,e)},graduationTitle(t){let e=st()(t),i="";return this.formatTime&&(i=this.formatTime(e)),i||(this.yearMode?e.format("YYYY"):this.yearMonthMode?e.format("YYYY-MM"):0===e.hour()&&0===e.minute()&&0===e.millisecond()?e.format("MM-DD"):e.format("HH:mm"))},drawLine(t,e,i,n,s=1,o="#fff"){this.ctx.beginPath(),this.ctx.strokeStyle=o,this.ctx.lineWidth=s,this.ctx.moveTo(t,e),this.ctx.lineTo(i,n),this.ctx.stroke()},reRender(){this.$nextTick((()=>{this.clearCanvas(this.width,this.height),this.reset(),this.setInitData(),this.init(),this.draw()}))},reset(){this.width=0,this.height=0,this.ctx=null,this.currentZoomIndex=0,this.currentTime=0,this.startTimestamp=0,this.mousedown=!1,this.mousedownX=0,this.mousedownCacheStartTimestamp=0},setTime(t){if(this.mousedown)return;let e="number"===typeof t?t:new Date(t).getTime();this.startTimestamp=e-this.totalMS/2,this.fixStartTimestamp(),this.clearCanvas(this.width,this.height),this.draw(),-1===this.mousemoveX||this.isMobile||this.hoverShow(this.mousemoveX,!0)},triggerClickWindowTimeSegments(t,e,i){this.$emit("click_window_timeSegments",t,e,i)},setZoom(t){this.currentZoomIndex=t>=0&&t{t.active=!1})),this.windowListInner[t].active=!0,this.$emit("change_window_time_line",t,this.windowListInner[t])},watchTime(t,e,i){t&&e&&this.watchTimeList.push({time:"number"===typeof t?t:new Date(t).getTime(),callback:e,windowTimeLineIndex:"number"===typeof i?i-1:-1})},onWindowListScroll(){this.updateWatchTime()},onResize(){this.init(),this.draw();try{this.$refs.WindowListItem.forEach((t=>{t.init()}))}catch(t){}},onCanvasClick(...t){this.$emit("click_timeline",...t)}}},pt=ft,vt=(0,d.Z)(pt,et,it,!1,null,"35dbafe4",null),Ct=vt.exports;const Mt=function(t){t.component(Ct.name,Ct)};var St={install:Mt},bt=i(8499),xt=i.n(bt);n["default"].use(St),n["default"].use(xt()),n["default"].config.productionTip=!1,new n["default"]({render:t=>t(tt)}).$mount("#app")}},e={};function i(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,i),o.exports}i.m=t,function(){var t=[];i.O=function(e,n,s,o){if(!n){var a=1/0;for(l=0;l=o)&&Object.keys(i.O).every((function(t){return i.O[t](n[r])}))?n.splice(r--,1):(m=!1,o0&&t[l-1][2]>o;l--)t[l]=t[l-1];t[l]=[n,s,o]}}(),function(){i.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return i.d(e,{a:e}),e}}(),function(){i.d=function(t,e){for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})}}(),function(){i.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){i.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}}(),function(){var t={143:0};i.O.j=function(e){return 0===t[e]};var e=function(e,n){var s,o,a=n[0],m=n[1],r=n[2],h=0;if(a.some((function(e){return 0!==t[e]}))){for(s in m)i.o(m,s)&&(i.m[s]=m[s]);if(r)var l=r(i)}for(e&&e(n);h
2 |
41 |
42 |
43 |
1020 |
1021 |
1049 |
--------------------------------------------------------------------------------
/dist/js/app.0c429e75.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"js/app.0c429e75.js","mappings":"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","sources":["webpack://demo/./src/App.vue","webpack://demo/./src/components/Base.vue","webpack://demo/src/components/Base.vue","webpack://demo/./src/components/Base.vue?d370","webpack://demo/./src/components/Base.vue?ae3d","webpack://demo/./src/components/Custom.vue","webpack://demo/src/components/Custom.vue","webpack://demo/./src/components/Custom.vue?18d6","webpack://demo/./src/components/Custom.vue?c531","webpack://demo/./src/components/MultiSegment.vue","webpack://demo/src/components/MultiSegment.vue","webpack://demo/./src/components/MultiSegment.vue?334a","webpack://demo/./src/components/MultiSegment.vue?7410","webpack://demo/./src/components/Segment.vue","webpack://demo/src/components/Segment.vue","webpack://demo/./src/components/Segment.vue?2015","webpack://demo/./src/components/Segment.vue?71fd","webpack://demo/./src/components/Year.vue","webpack://demo/src/components/Year.vue","webpack://demo/./src/components/Year.vue?3d51","webpack://demo/./src/components/Year.vue?2369","webpack://demo/./src/components/YearMonth.vue","webpack://demo/src/components/YearMonth.vue","webpack://demo/./src/components/YearMonth.vue?28b1","webpack://demo/./src/components/YearMonth.vue?86be","webpack://demo/./src/components/CustomZoom.vue","webpack://demo/src/components/CustomZoom.vue","webpack://demo/./src/components/CustomZoom.vue?f4b0","webpack://demo/./src/components/CustomZoom.vue?a9cf","webpack://demo/src/App.vue","webpack://demo/./src/App.vue?029f","webpack://demo/./src/App.vue?834c","webpack://demo/../package/src/index.vue","webpack://demo/../package/src/WindowListItem.vue","webpack://demo/../package/src/WindowListItem.vue?f236","webpack://demo/../package/src/WindowListItem.vue?f24c","webpack://demo/../package/src/constant.js","webpack://demo/../package/src/index.vue?b409","webpack://demo/../package/src/index.vue?b584","webpack://demo/../package/index.js","webpack://demo/./src/main.js","webpack://demo/webpack/bootstrap","webpack://demo/webpack/runtime/chunk loaded","webpack://demo/webpack/runtime/compat get default export","webpack://demo/webpack/runtime/define property getters","webpack://demo/webpack/runtime/global","webpack://demo/webpack/runtime/hasOwnProperty shorthand","webpack://demo/webpack/runtime/make namespace object","webpack://demo/webpack/runtime/jsonp chunk loading","webpack://demo/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('el-radio-group',{attrs:{\"size\":\"small\"},model:{value:(_vm.activeComp),callback:function ($$v) {_vm.activeComp=$$v},expression:\"activeComp\"}},_vm._l((_vm.list),function(item){return _c('el-radio-button',{attrs:{\"label\":item.value}},[_vm._v(_vm._s(item.name))])}),1),_c('div',{staticClass:\"box\"},[_c(_vm.activeComp,{tag:\"component\"})],1),_vm._m(0)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('a',{attrs:{\"href\":\"https://github.com/wanglin2/VideoTimeLine/tree/main/demo/src/components\"}},[_vm._v(\"demo源码\")])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"timeShow\"},[_vm._v(\"当前时间:\"+_vm._s(_vm.showTime))]),_c('div',{staticClass:\"timeLine\"},[_c('TimeLine',{ref:\"Timeline\",on:{\"timeChange\":_vm.timeChange}})],1),_c('div',{staticClass:\"btns\"},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.reRender}},[_vm._v(\"重新渲染\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.jump}},[_vm._v(\"跳转到2021-01-01零点\")]),_c('el-select',{staticStyle:{\"width\":\"100px\",\"margin\":\"0 10px\"},attrs:{\"placeholder\":\"请选择\"},on:{\"change\":_vm.zoomChange},model:{value:(_vm.zoom),callback:function ($$v) {_vm.zoom=$$v},expression:\"zoom\"}},_vm._l((_vm.zoomList),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n
当前时间:{{ showTime }}
\r\n
\r\n \r\n
\r\n
\r\n 重新渲染\r\n 跳转到2021-01-01零点\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Base.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Base.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Base.vue?vue&type=template&id=41b27e10&scoped=true&\"\nimport script from \"./Base.vue?vue&type=script&lang=js&\"\nexport * from \"./Base.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Base.vue?vue&type=style&index=0&id=41b27e10&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41b27e10\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"timeShow\"},[_vm._v(\"当前时间:\"+_vm._s(_vm.showTime4))]),_c('div',{staticClass:\"timeLine4\"},[_c('TimeLine',{ref:\"Timeline4\",attrs:{\"initTime\":_vm.time4,\"windowList\":_vm.windowList4},on:{\"timeChange\":_vm.timeChange4}})],1),_c('i',{ref:\"flagIcon\",staticClass:\"icon el-icon-s-flag\",staticStyle:{\"color\":\"#E72528\"}}),_c('i',{ref:\"carIcon\",staticClass:\"icon el-icon-bicycle\",staticStyle:{\"color\":\"#2196F3\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n
当前时间:{{ showTime4 }}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Custom.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Custom.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Custom.vue?vue&type=template&id=4951fd2c&scoped=true&\"\nimport script from \"./Custom.vue?vue&type=script&lang=js&\"\nexport * from \"./Custom.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Custom.vue?vue&type=style&index=0&id=4951fd2c&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4951fd2c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"timeShow\"},[_vm._v(\"当前时间:\"+_vm._s(_vm.showTime3))]),_c('div',{staticClass:\"timeline3\"},[_c('TimeLine',{ref:\"Timeline3\",attrs:{\"initTime\":_vm.time3,\"timeSegments\":_vm.timeSegments3,\"windowList\":_vm.windowList},on:{\"timeChange\":_vm.timeChange3,\"click_timeSegments\":_vm.click_timeSegments3,\"click_window_timeSegments\":_vm.click_window_timeSegments}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n
当前时间:{{ showTime3 }}
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MultiSegment.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MultiSegment.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultiSegment.vue?vue&type=template&id=0f18e806&scoped=true&\"\nimport script from \"./MultiSegment.vue?vue&type=script&lang=js&\"\nexport * from \"./MultiSegment.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultiSegment.vue?vue&type=style&index=0&id=0f18e806&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f18e806\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"timeShow\"},[_vm._v(\"当前时间:\"+_vm._s(_vm.showTime2))]),_c('div',{staticClass:\"timeLine\"},[_c('TimeLine',{ref:\"Timeline2\",attrs:{\"initTime\":_vm.time2,\"timeSegments\":_vm.timeSegments},on:{\"timeChange\":_vm.timeChange2,\"click_timeSegments\":_vm.click_timeSegments,\"click_timeline\":_vm.onClickTimeLine,\"dragTimeChange\":_vm.onDragTimeChange}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n
当前时间:{{ showTime2 }}
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Segment.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Segment.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Segment.vue?vue&type=template&id=45a3b121&scoped=true&\"\nimport script from \"./Segment.vue?vue&type=script&lang=js&\"\nexport * from \"./Segment.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Segment.vue?vue&type=style&index=0&id=45a3b121&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"45a3b121\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[_c('TimeLine',{ref:\"Timeline\",attrs:{\"enableZoom\":false,\"initZoomIndex\":10,\"timeSegments\":_vm.timeSegments}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Year.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Year.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Year.vue?vue&type=template&id=1a36b017&scoped=true&\"\nimport script from \"./Year.vue?vue&type=script&lang=js&\"\nexport * from \"./Year.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Year.vue?vue&type=style&index=0&id=1a36b017&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a36b017\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[_c('TimeLine',{ref:\"Timeline\",attrs:{\"enableZoom\":false,\"initZoomIndex\":9,\"timeSegments\":_vm.timeSegments}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./YearMonth.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./YearMonth.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./YearMonth.vue?vue&type=template&id=3aed7087&scoped=true&\"\nimport script from \"./YearMonth.vue?vue&type=script&lang=js&\"\nexport * from \"./YearMonth.vue?vue&type=script&lang=js&\"\nimport style0 from \"./YearMonth.vue?vue&type=style&index=0&id=3aed7087&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3aed7087\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"timeShow\"},[_vm._v(\"当前时间:\"+_vm._s(_vm.showTime))]),_c('div',{ref:\"timeLine\",staticClass:\"timeLine\"},[_c('TimeLine',{ref:\"Timeline\",attrs:{\"enableZoom\":false,\"enableDrag\":false,\"showDateAtZero\":false,\"initZoomIndex\":11,\"initTime\":_vm.initTime,\"customShowTime\":_vm.customShowTime,\"extendZOOM\":_vm.extendZOOM,\"formatTime\":_vm.formatTime,\"hoverTimeFormat\":_vm.hoverTimeFormat},on:{\"click_timeline\":_vm.click_timeline}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n
当前时间:{{ showTime }}
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomZoom.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomZoom.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomZoom.vue?vue&type=template&id=f7bac5fc&scoped=true&\"\nimport script from \"./CustomZoom.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomZoom.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CustomZoom.vue?vue&type=style&index=0&id=f7bac5fc&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f7bac5fc\",\n null\n \n)\n\nexport default component.exports","\r\n \r\n
\r\n {{ item.name }}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=71bb0826&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=71bb0826&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"timeLineContainer\",staticClass:\"timeLineContainer\",style:({\n backgroundColor: _vm.backgroundColor,\n }),on:{\"touchstart\":_vm.onTouchstart,\"touchmove\":_vm.onTouchmove,\"mousedown\":_vm.onMousedown,\"mouseout\":_vm.onMouseout,\"mousemove\":_vm.onMousemove,\"mouseleave\":_vm.onMouseleave}},[_c('canvas',{ref:\"canvas\",staticClass:\"canvas\",on:{\"mousewheel\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onMouseweel.apply(null, arguments)}}}),(_vm.showWindowList && _vm.windowList && _vm.windowList.length > 1)?_c('div',{ref:\"windowList\",staticClass:\"windowList\",on:{\"scroll\":_vm.onWindowListScroll}},_vm._l((_vm.windowListInner),function(item,index){return _c('WindowListItem',{key:index,ref:\"WindowListItem\",refInFor:true,attrs:{\"index\":index,\"data\":item,\"totalMS\":_vm.totalMS,\"startTimestamp\":_vm.startTimestamp,\"width\":_vm.width,\"active\":item.active},on:{\"click_window_timeSegments\":_vm.triggerClickWindowTimeSegments,\"click\":function($event){return _vm.toggleActive(index)}}})}),1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"windowListItem\",staticClass:\"windowListItem\",class:{active: _vm.active},on:{\"click\":_vm.onClick}},[_c('span',{staticClass:\"order\"},[_vm._v(_vm._s(_vm.index + 1))]),_c('canvas',{ref:\"canvas\",staticClass:\"windowListItemCanvas\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../demo/node_modules/thread-loader/dist/cjs.js!../../demo/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../demo/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WindowListItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../demo/node_modules/thread-loader/dist/cjs.js!../../demo/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../demo/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WindowListItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WindowListItem.vue?vue&type=template&id=5d855ac8&scoped=true&\"\nimport script from \"./WindowListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./WindowListItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WindowListItem.vue?vue&type=style&index=0&id=5d855ac8&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../demo/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d855ac8\",\n null\n \n)\n\nexport default component.exports","// 一小时的毫秒数\r\nexport const ONE_HOUR_STAMP = 60 * 60 * 1000\r\n// 时间分辨率,即整个时间轴表示的时间范围\r\nexport const ZOOM = [0.5, 1, 2, 6, 12, 24, 72, 360, 720, 8760, 87600]// 半小时、1小时、2小时、6小时、12小时、1天、3天、15天、30天、365天、365*10天\r\n// 时间分辨率对应的每格小时数,即最小格代表多少小时\r\nexport const ZOOM_HOUR_GRID = [1 / 60, 1 / 60, 2 / 60, 1 / 6, 0.25, 0.5, 1, 4, 4, 720, 7200]\r\nexport const MOBILE_ZOOM_HOUR_GRID = [\r\n 1 / 20,\r\n 1 / 30,\r\n 1 / 20,\r\n 1 / 3,\r\n 0.5,\r\n 2,\r\n 4,\r\n 4,\r\n 4,\r\n 720, 7200\r\n]\r\n// 时间分辨率对应的时间显示判断条件\r\nexport const ZOOM_DATE_SHOW_RULE = [\r\n () => { // 全部显示\r\n return true\r\n },\r\n date => { // 每五分钟显示\r\n return date.getMinutes() % 5 === 0\r\n },\r\n date => { // 每十分钟显示\r\n return date.getMinutes() % 10 === 0\r\n },\r\n date => { // 整点和半点显示\r\n return date.getMinutes() === 0 || date.getMinutes() === 30\r\n },\r\n date => { // 整点显示\r\n return date.getMinutes() === 0\r\n },\r\n date => { // 偶数整点的小时\r\n return date.getHours() % 2 === 0 && date.getMinutes() === 0\r\n },\r\n date => { // 每三小时小时\r\n return date.getHours() % 3 === 0 && date.getMinutes() === 0\r\n },\r\n date => { // 每12小时\r\n return date.getHours() % 12 === 0 && date.getMinutes() === 0\r\n },\r\n date => { // 全不显示\r\n return false\r\n },\r\n date => {\r\n return true\r\n },\r\n date => {\r\n return true\r\n }\r\n]\r\nexport const MOBILE_ZOOM_DATE_SHOW_RULE = [\r\n () => { // 全部显示\r\n return true\r\n },\r\n date => { // 每五分钟显示\r\n return date.getMinutes() % 5 === 0\r\n },\r\n date => { // 每十分钟显示\r\n return date.getMinutes() % 10 === 0\r\n },\r\n date => { // 整点和半点显示\r\n return date.getMinutes() === 0 || date.getMinutes() === 30\r\n },\r\n date => { // 偶数整点的小时\r\n return date.getHours() % 2 === 0 && date.getMinutes() === 0\r\n },\r\n date => { // 偶数整点的小时\r\n return date.getHours() % 4 === 0 && date.getMinutes() === 0\r\n },\r\n date => { // 每三小时小时\r\n return date.getHours() % 3 === 0 && date.getMinutes() === 0\r\n },\r\n date => { // 每12小时\r\n return date.getHours() % 12 === 0 && date.getMinutes() === 0\r\n },\r\n date => { // 全不显示\r\n return false\r\n },\r\n date => {\r\n return true\r\n },\r\n date => {\r\n return true\r\n }\r\n]","import mod from \"-!../../demo/node_modules/thread-loader/dist/cjs.js!../../demo/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../demo/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../demo/node_modules/thread-loader/dist/cjs.js!../../demo/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../demo/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=35dbafe4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=35dbafe4&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../demo/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35dbafe4\",\n null\n \n)\n\nexport default component.exports","import src from './src/index.vue';\r\n\r\nconst install = function(Vue) {\r\n Vue.component(src.name, src);\r\n};\r\n\r\nexport default {\r\n install\r\n};\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport VideoTimeline from '@wanglin1994/video-timeline'\r\nimport ElementUI from 'element-ui'\r\nimport 'element-ui/lib/theme-chalk/index.css'\r\n\r\nVue.use(VideoTimeline)\r\nVue.use(ElementUI)\r\n\r\nVue.config.productionTip = false\r\n\r\nnew Vue({\r\n render: h => h(App),\r\n}).$mount('#app')\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdemo\"] = self[\"webpackChunkdemo\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(5030); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","attrs","model","value","activeComp","callback","$$v","expression","_l","list","item","_v","_s","name","staticClass","tag","_m","staticRenderFns","showTime","ref","on","timeChange","reRender","jump","staticStyle","zoomChange","zoom","zoomList","key","label","data","time","timer","computed","mounted","beforeDestroy","clearTimeout","methods","component","showTime4","time4","windowList4","timeChange4","window","showTime3","time3","timeSegments3","windowList","timeChange3","click_timeSegments3","click_window_timeSegments","beginTime","endTime","color","startRatio","endRatio","timeSegments","alert","showTime2","time2","timeChange2","click_timeSegments","onClickTimeLine","onDragTimeChange","console","initTime","customShowTime","extendZOOM","formatTime","hoverTimeFormat","click_timeline","zoomHourGrid","dayjs","components","Custom","Base","MultiSegment","Segment","Year","YearMonth","CustomZoom","change","style","backgroundColor","onTouchstart","onTouchmove","onMousedown","onMouseout","onMousemove","onMouseleave","$event","stopPropagation","preventDefault","onMouseweel","apply","arguments","showWindowList","length","onWindowListScroll","windowListInner","index","refInFor","totalMS","startTimestamp","width","active","triggerClickWindowTimeSegments","toggleActive","_e","class","onClick","props","type","default","height","ctx","init","drawTimeSegments","x","w","clearCanvas","draw","left","top","getClickTimeSegments","inItems","getRect","ONE_HOUR_STAMP","ZOOM","ZOOM_HOUR_GRID","MOBILE_ZOOM_HOUR_GRID","ZOOM_DATE_SHOW_RULE","date","getMinutes","getHours","MOBILE_ZOOM_DATE_SHOW_RULE","WindowListItem","timeRange","initZoomIndex","showCenterLine","centerLineStyle","textColor","hoverTextColor","lineColor","lineHeightRatio","none","hover","showHoverTime","enableZoom","enableDrag","baseTimeLineHeight","initSelectWindowTimeLineIndex","isMobile","maxClickDistance","roundWidthTimeSegments","showDateAtZero","currentZoomIndex","currentTime","mousedown","mousedownX","mousedownY","mousedownCacheStartTimestamp","mousemoveX","watchTimeList","timeRangeTimestamp","t","ACT_ZOOM_HOUR_GRID","ACT_ZOOM_DATE_SHOW_RULE","yearMonthMode","yearMode","watch","deep","handler","created","setInitData","fixStartTimestamp","updateWatchTime","y","drawMiddleLine","addGraduations","adjustMsOffset","h","checkShowTime","e","onPointerdown","onTouchend","onMouseup","onPointerup","Math","reset","onPointermove","drag","_newStartTimestamp","hoverShow","getClientOffset","graduationTitle","res","drawLine","setTime","setZoom","watchTime","windowTimeLineIndex","onResize","onCanvasClick","install","Vue","src","VideoTimeline","ElementUI","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","id","chunkLoadingGlobal","self","forEach","bind","push","__webpack_exports__"],"sourceRoot":""}
--------------------------------------------------------------------------------