首页前端开发VUE使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码)

使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码)

时间2024-02-11 04:03:03发布访客分类VUE浏览1126
导读:收集整理的这篇文章主要介绍了使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码 ,觉得挺不错的,现在分享给大家,也给大家做个参考。 目录使用vis-timeline绘制...
收集整理的这篇文章主要介绍了使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码),觉得挺不错的,现在分享给大家,也给大家做个参考。
目录
  • 使用vis-timeline绘制甘特图并实现时间轴的中文化
    • 最终实现效果
    • 安装vis-timeline及相关依赖包
    • 组件中引入使用
    • visGantt组件
    • visgantt组件调用

使用vis-timeline绘制甘特图并实现时间轴的中文化

最终实现效果

安装vis-timeline及相关依赖包

cnpm install -s vis-linetimecnpm install -S vis-datacnpm install -S moment

@H_360_40@

组件中引入使用

// 国际化时间轴时必选在先引入moment在引入vis相关依赖包const moment = require('moment')import {
 DataSet }
 From 'vis-data/PEer'import {
 Timeline }
     from 'vis-timeline/peer'import 'vis-timeline/styles/vis-timeline-graph2d.css'

visGantt组件

template>
      div class="visGantt" id="Visualization">
    /div>
    /template>
    script>
const moment = require('moment')import {
 DataSet }
 from 'vis-data/peer'import {
 Timeline }
 from 'vis-timeline/peer'import 'vis-timeline/styles/vis-timeline-graph2d.css'export default {
  name: 'VisGantt',  PRops: {
    ganntData: {
          type: Object,      default: () =>
 {
}
    }
  }
,  data() {
    return {
      timeline: null    }
  }
,  computed: {
    startTime() {
      return this.$Store.state.startTime    }
,    endTime() {
      return this.$store.state.endTime    }
  }
,  watch: {
    ganntData: {
      deep: true,      immediate: true,      handler(newVal) {
            if (newVal &
    &
     newVal.trackTimeWindows &
    &
     newVal.trackTimeWindows.length >
 0) {
              this.$nextTick(() =>
 {
            this.inITChart()          }
)        }
      }
    }
  }
,  beforedestroy() {
    this.timeline.destroy()    this.timeline = null  }
,  methods: {
    computedData() {
          const trackTimeWindows = []      const timeWindows = []      this.ganntData.trackTimeWindows.foreach(        (trackTimeWindow, trackTimeWindowIndex) =>
 {
          trackTimeWindows.push({
            content: trackTimeWindow.deviceid,            id: `${
trackTimeWindow.deviceId}
-${
trackTimeWindowIndex}
-trackTimeWindows`,            value: trackTimeWindowIndex + 1,            classname: `visGantt-item${
trackTimeWindowIndex % 10}
`          }
    )          trackTimeWindow.timeWindows.forEach((timeWindow, timeWindowIndex) =>
 {
            timeWindows.push({
              start: new Date(timeWindow.startTime),              startTime: timeWindow.startTime,              end: new Date(timeWindow.stopTime),              stopTime: timeWindow.stopTime,              topTime: timeWindow.topTime,              group: `${
trackTimeWindow.deviceId}
-${
trackTimeWindowIndex}
-trackTimeWindows`,              className: `visGantt-item${
trackTimeWindowIndex % 10}
`,              id: `${
trackTimeWindow.deviceId}
-${
timeWindowIndex}
-timeWindows`,              deviceId: trackTimeWindow.deviceId            }
)          }
)        }
      )      return {
        trackTimeWindows,        timeWindows      }
    }
,    initChart() {
      const {
 timeWindows, trackTimeWindows }
 = this.COMputedData()      const groups = new DataSet(trackTimeWindows)      const items = new DataSet(timeWindows)      const container = document.getElementById('visualization')      const options = {
        groupOrder: function(a, b) {
          return a.value - b.value        }
,        groupOrderSwap: function(a, b, groups) {
          VAR v = a.value          a.value = b.value          b.value = v        }
,        height: '300px', // 高度        verticalScroll: true, // 竖向滚动        orientation: 'top', // 时间轴位置        editable: false,        groupEditable: false,        min: new Date(this.startTime), // 最小可见范围        max: new Date(this.endTime), // 最大可见范围        tooltip: {
              followMouse: true,          template: (originalItemData, parsedItemData) =>
 {
                return `div>
                  p>
                    span>
    设备名称:/span>
                    span>
${
originalItemData.deviceId}
    /span>
                  /p>
    br/>
                  p>
                    span>
    开始时间:/span>
                    span>
${
originalItemData.startTime}
    /span>
                  /p>
    br/>
                  p>
                    span>
    顶点时间:/span>
                    span>
${
originalItemData.topTime}
    /span>
                  /p>
    br/>
                  p>
                    span>
    结束时间:/span>
                    span>
${
originalItemData.stopTime}
    /span>
                  /p>
                /div>
`          }
        }
,        locale: moment.locale('zh-cn')  // 时间轴国际化      }
      this.timeline = new Timeline(container)      this.timeline.setOptions(options)      this.timeline.setGroups(groups)      this.timeline.setItems(items)    }
  }
}
    /script>
    style lang="less" scoped>
/deep/ .vis-item {
      &
.visGantt-item0 {
        background-color: #b0e2ff;
  }
      &
.visGantt-item1 {
        background-color: #4B7CF3;
  }
      &
.visGantt-item2 {
        background-color: #cb7bf4;
  }
      &
.visGantt-item3 {
        background-color: #2acd72;
  }
      &
.visGantt-item4 {
        background-color: #f5cb29;
  }
      &
.visGantt-item5 {
        background-color: #fc4354;
  }
      &
.visGantt-item6 {
        background-color: #0DC3FD;
  }
      &
.visGantt-item7 {
        background-color: #4962FC;
  }
      &
.visGantt-item8 {
        background-color: #12E78C;
  }
      &
.visGantt-item9 {
        background-color: #ff458c;
  }
}
    /style>
    

visgantt组件调用

visGantt :ganntData="ganttData">
    /visGannt>
    

ganttData数据结构

const ganttData = [  {
    norad: '11',    name: 'test',    trackTimeWindows: [      {
        deviceId: '1',        norad: '11',        timeWindows: []      }
,      {
        deviceId: '2',        norad: '11',        timeWindows: [          {
            startTime: '2021-12-27 01:08:52.078',            topTime: '2021-12-27 01:16:33.890',            stopTime: '2021-12-27 01:25:39.348'          }
,          {
            startTime: '2021-12-27 02:58:23.369',            topTime: '2021-12-27 03:06:43.634',            stopTime: '2021-12-27 03:16:40.093'          }
,          {
            startTime: '2021-12-27 04:51:49.123',            topTime: '2021-12-27 04:59:29.729',            stopTime: '2021-12-27 05:07:35.948'          }
,          {
            startTime: '2021-12-27 06:46:29.836',            topTime: '2021-12-27 06:52:31.410',            stopTime: '2021-12-27 07:00:44.944'          }
,          {
            startTime: '2021-12-27 08:38:38.974',            topTime: '2021-12-27 08:46:32.009',            stopTime: '2021-12-27 08:56:08.154'          }
,          {
            startTime: '2021-12-27 10:29:15.739',            topTime: '2021-12-27 10:38:46.837',            stopTime: '2021-12-27 10:49:21.807'          }
,          {
            startTime: '2021-12-27 12:20:19.620',            topTime: '2021-12-27 12:28:32.563',            stopTime: '2021-12-27 12:38:19.473'          }
        ]      }
,      {
        deviceId: '3',        norad: '11',        timeWindows: [          {
            startTime: '2021-12-27 01:15:23.202',            topTime: '2021-12-27 01:23:35.571',            stopTime: '2021-12-27 01:33:29.289'          }
,          {
            startTime: '2021-12-27 03:08:37.247',            topTime: '2021-12-27 03:16:30.791',            stopTime: '2021-12-27 03:25:29.077'          }
,          {
            startTime: '2021-12-27 05:01:16.372',            topTime: '2021-12-27 05:09:31.747',            stopTime: '2021-12-27 05:19:10.258'          }
,          {
            startTime: '2021-12-27 06:52:23.550',            topTime: '2021-12-27 07:01:40.460',            stopTime: '2021-12-27 07:12:14.800'          }
,          {
            startTime: '2021-12-27 08:43:09.779',            topTime: '2021-12-27 08:52:29.847',            stopTime: '2021-12-27 09:02:14.450'          }
,          {
            startTime: '2021-12-27 10:36:05.721',            topTime: '2021-12-27 10:40:30.733',            stopTime: '2021-12-27 10:46:36.962'          }
,          {
            startTime: '2021-12-27 20:50:54.626',            topTime: '2021-12-27 20:54:30.970',            stopTime: '2021-12-27 20:59:47.993'          }
,          {
            startTime: '2021-12-27 22:35:23.180',            topTime: '2021-12-27 22:43:34.324',            stopTime: '2021-12-27 22:52:55.141'          }
        ]      }
,      {
        deviceId: '4',        norad: '11',        timeWindows: [          {
            startTime: '2021-12-27 01:10:24.156',            topTime: '2021-12-27 01:18:41.379',            stopTime: '2021-12-27 01:28:32.674'          }
,          {
            startTime: '2021-12-27 03:04:19.430',            topTime: '2021-12-27 03:11:29.859',            stopTime: '2021-12-27 03:19:08.712'          }
,          {
            startTime: '2021-12-27 05:00:02.244',            topTime: '2021-12-27 05:05:30.335',            stopTime: '2021-12-27 05:12:02.853'          }
,          {
            startTime: '2021-12-27 06:52:18.641',            topTime: '2021-12-27 06:59:31.398',            stopTime: '2021-12-27 07:08:27.886'          }
,          {
            startTime: '2021-12-27 08:42:43.928',            topTime: '2021-12-27 08:52:29.816',            stopTime: '2021-12-27 09:02:39.878'          }
,          {
            startTime: '2021-12-27 10:33:37.149',            topTime: '2021-12-27 10:42:31.607',            stopTime: '2021-12-27 10:52:20.241'          }
,          {
            startTime: '2021-12-27 22:32:58.494',            topTime: '2021-12-27 22:39:31.527',            stopTime: '2021-12-27 22:47:20.576'          }
        ]      }
,      {
        deviceId: '5',        norad: '11',        timeWindows: [          {
            startTime: '2021-12-27 01:09:12.876',            topTime: '2021-12-27 01:17:37.260',            stopTime: '2021-12-27 01:27:14.041'          }
,          {
            startTime: '2021-12-27 03:03:39.186',            topTime: '2021-12-27 03:09:31.323',            stopTime: '2021-12-27 03:17:19.877'          }
,          {
            startTime: '2021-12-27 05:01:11.549',            topTime: '2021-12-27 05:04:30.401',            stopTime: '2021-12-27 05:09:12.335'          }
,          {
            startTime: '2021-12-27 06:53:22.576',            topTime: '2021-12-27 06:59:30.808',            stopTime: '2021-12-27 07:07:12.153'          }
,          {
            startTime: '2021-12-27 08:43:22.844',            topTime: '2021-12-27 08:52:33.154',            stopTime: '2021-12-27 09:02:50.568'          }
,          {
            startTime: '2021-12-27 10:33:59.368',            topTime: '2021-12-27 10:43:30.340',            stopTime: '2021-12-27 10:53:26.558'          }
,          {
            startTime: '2021-12-27 12:29:03.756',            topTime: '2021-12-27 12:32:29.993',            stopTime: '2021-12-27 12:36:16.023'          }
,          {
            startTime: '2021-12-27 22:32:03.275',            topTime: '2021-12-27 22:38:30.839',            stopTime: '2021-12-27 22:45:49.477'          }
        ]      }
,      {
        deviceId: '6',        norad: '11',        timeWindows: [          {
            startTime: '2021-12-27 01:06:14.969',            topTime: '2021-12-27 01:13:31.700',            stopTime: '2021-12-27 01:21:58.220'          }
,          {
            startTime: '2021-12-27 08:48:54.328',            topTime: '2021-12-27 08:56:31.731',            stopTime: '2021-12-27 09:05:48.776'          }
,          {
            startTime: '2021-12-27 10:38:08.985',            topTime: '2021-12-27 10:47:48.913',            stopTime: '2021-12-27 10:58:29.609'          }
,          {
            startTime: '2021-12-27 12:32:19.706',            topTime: '2021-12-27 12:37:30.557',            stopTime: '2021-12-27 12:43:55.833'          }
,          {
            startTime: '2021-12-27 22:26:18.655',            topTime: '2021-12-27 22:33:33.141',            stopTime: '2021-12-27 22:42:05.879'          }
        ]      }
,      {
        deviceId: '7',        norad: '11',        timeWindows: [          {
            startTime: '2021-12-27 01:11:47.926',            topTime: '2021-12-27 01:19:33.909',            stopTime: '2021-12-27 01:29:01.687'          }
,          {
            startTime: '2021-12-27 03:07:21.243',            topTime: '2021-12-27 03:12:31.043',            stopTime: '2021-12-27 03:19:40.506'          }
,          {
            startTime: '2021-12-27 05:02:51.128',            topTime: '2021-12-27 05:07:30.785',            stopTime: '2021-12-27 05:14:03.538'          }
,          {
            startTime: '2021-12-27 06:53:57.067',            topTime: '2021-12-27 07:01:32.228',            stopTime: '2021-12-27 07:11:08.049'          }
,          {
            startTime: '2021-12-27 08:44:11.019',            topTime: '2021-12-27 08:53:53.826',            stopTime: '2021-12-27 09:04:24.510'          }
,          {
            startTime: '2021-12-27 10:35:37.826',            topTime: '2021-12-27 10:43:31.288',            stopTime: '2021-12-27 10:52:38.118'          }
,          {
            startTime: '2021-12-27 22:31:58.385',            topTime: '2021-12-27 22:39:34.323',            stopTime: '2021-12-27 22:48:38.986'          }
        ]      }
,      {
        deviceId: '8',        norad: '11',        timeWindows: [          {
            startTime: '2021-12-27 01:23:58.104',            topTime: '2021-12-27 01:27:59.422',            stopTime: '2021-12-27 01:32:00.740'          }
,          {
            startTime: '2021-12-27 03:16:02.997',            topTime: '2021-12-27 03:19:44.654',            stopTime: '2021-12-27 03:23:26.310'          }
,          {
            startTime: '2021-12-27 05:06:53.787',            topTime: '2021-12-27 05:07:38.631',            stopTime: '2021-12-27 05:13:32.618'          }
,          {
            startTime: '2021-12-27 06:58:19.500',            topTime: '2021-12-27 06:59:38.674',            stopTime: '2021-12-27 07:01:43.165'          }
,          {
            startTime: '2021-12-27 22:48:25.157',            topTime: '2021-12-27 22:49:49.709',            stopTime: '2021-12-27 22:51:14.261'          }
        ]      }
,      {
        deviceId: '9',        norad: '11',        timeWindows: []      }
    ]  }
    ]

到此这篇关于使用vis-timeline绘制甘特图并实现时间轴的中文化的文章就介绍到这了,更多相关vis-timeline绘制甘特图内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • vue3使用vis绘制甘特图制作timeline可拖动时间轴及时间轴中文化(推荐)
  • 微信小程序实现Timeline时间线效果
  • Element Timeline时间线的实现
  • 微信小程序onShareTimeline()实现分享朋友圈
  • Vue时间轴 vue-light-timeline的用法说明

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码)
本文地址: https://pptw.com/jishu/609294.html
vue3.0 router路由跳转传参问题(router.push) vue全家桶-vuex深入讲解

游客 回复需填写必要信息