vue3使用vis绘制甘特图制作timeline可拖动时间轴及时间轴中文化(推荐)

下面我会详细讲解使用Vue3和vis库绘制甘特图制作timeline可拖动时间轴及时间轴中文化的攻略。

1. 安装vis库

vis库是一个用于数据可视化的JavaScript库,可以使用它创建各种类型的图表和视图。在Vue3项目中使用vis库,可以通过以下命令进行安装:

npm install vis

2. 创建Vue3组件

接下来创建一个Vue3组件,用于绘制甘特图和timeline可拖动时间轴,并将vis库引入到该组件中。

<template>
  <div>
    <div ref="gantt"></div>
    <div ref="timeline"></div>
  </div>
</template>

<script>
import vis from 'vis';

export default {
  name: 'GanttTimeline',
  mounted() {
    const container = this.$refs.gantt;
    const timelineContainer = this.$refs.timeline;

    const data = new vis.DataSet([
      { id: 1, content: 'Task 1', start: '2022-10-01', end: '2022-10-05' },
      { id: 2, content: 'Task 2', start: '2022-10-06', end: '2022-10-10' },
      { id: 3, content: 'Task 3', start: '2022-10-11', end: '2022-10-15' },
    ]);

    const options = {};

    new vis.Timeline(container, data, options);

    const timelineData = new vis.DataSet([
      { id: 1, content: 'Event 1', start: '2022-10-03', end: '2022-10-06' },
      { id: 2, content: 'Event 2', start: '2022-10-08', end: '2022-10-12' },
      { id: 3, content: 'Event 3', start: '2022-10-15', end: '2022-10-18' },
    ]);

    const timelineOptions = {};

    new vis.Timeline(timelineContainer, timelineData, timelineOptions);
  },
};
</script>

这个组件中包含了两个<div>元素,一个用于放置甘特图,一个用于放置timeline可拖动时间轴。在mounted()生命周期钩子函数中,使用vis.DataSet对象创建数据集,然后使用new vis.Timeline()方法创建甘特图和timeline可拖动时间轴。

3. 对时间轴中文化

为了将时间轴中的文本显示为中文,可以通过以下方式使用moment.js库对日期进行格式化:

<template>
  <div>
    <div ref="gantt"></div>
    <div ref="timeline"></div>
  </div>
</template>

<script>
import moment from 'moment';
import vis from 'vis';

export default {
  name: 'GanttTimeline',
  mounted() {
    const container = this.$refs.gantt;
    const timelineContainer = this.$refs.timeline;

    // 中文化moment.js
    moment.locale('zh-cn');

    const data = new vis.DataSet([
      { id: 1, content: 'Task 1', start: '2022-10-01', end: '2022-10-05' },
      { id: 2, content: 'Task 2', start: '2022-10-06', end: '2022-10-10' },
      { id: 3, content: 'Task 3', start: '2022-10-11', end: '2022-10-15' },
    ]);

    const options = {
      // 格式化时间轴上日期显示格式
      format: {
        minorLabels: {
          month: 'M月',
          day: 'D日',
          hour: 'h:mm A',
        },
        majorLabels: {
          month: 'YYYY年M月',
          day: 'YYYY年M月D日',
          hour: 'YYYY年M月D日 h:mm A',
        },
      },
    };

    new vis.Timeline(container, data, options);

    const timelineData = new vis.DataSet([
      { id: 1, content: 'Event 1', start: '2022-10-03', end: '2022-10-06' },
      { id: 2, content: 'Event 2', start: '2022-10-08', end: '2022-10-12' },
      { id: 3, content: 'Event 3', start: '2022-10-15', end: '2022-10-18' },
    ]);

    const timelineOptions = {
      // 格式化时间轴上日期显示格式
      format: {
        minorLabels: {
          month: 'M月',
          day: 'D日',
          hour: 'h:mm A',
        },
        majorLabels: {
          month: 'YYYY年M月',
          day: 'YYYY年M月D日',
          hour: 'YYYY年M月D日 h:mm A',
        },
      },
    };

    new vis.Timeline(timelineContainer, timelineData, timelineOptions);
  },
};
</script>

这里中文化了moment.js库,并在options.format中设置了时间轴上日期的显示格式。

至此,我们就完成了Vue3使用vis绘制甘特图制作timeline可拖动时间轴及时间轴中文化的攻略。在其中,我们使用了vis库绘制了甘特图和timeline可拖动时间轴,同时通过moment.js库将时间轴中的文本显示为中文。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3使用vis绘制甘特图制作timeline可拖动时间轴及时间轴中文化(推荐) - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • vue3如何定义变量及ref、reactive、toRefs特性说明

    下面是关于Vue3如何定义变量及ref、reactive、toRefs特性说明的攻略。 定义变量 在Vue3中,定义变量有两种方式: 1. 使用const/let/var关键字 使用const/let/var关键字定义变量,这是ES6的语法。例如: const message = ‘Hello World’; // 定义常量 let count = 0; /…

    Vue 2023年5月27日
    00
  • vue中如何下载excel流文件及设置下载文件名

    下面我将详细讲解一下“Vue中如何下载Excel流文件及设置下载文件名”的攻略。 方案1:使用FileSaver.js库 安装 我们需要先安装FileSaver.js库,可以使用npm安装: npm install file-saver –save 具体实现 在需要下载Excel文件的地方,我们可以创建一个Blob对象,用于存储Excel文件的二进制数据。…

    Vue 2023年5月28日
    00
  • Vue2.0 vue-source jsonp 跨域请求

    Vue2.0 vue-source jsonp 跨域请求攻略: 一、什么是跨域请求? 当浏览器执行前端代码时,由于同源策略的存在,只能向同一域名下的服务器发出请求,而不能向其他域名下的服务器发出请求。这就是跨域请求。 二、Vue2.0 的 jsonp 请求方法 jsonp 是利用浏览器动态创建标签,通过 src 属性实现跨域请求的方法,Vue2.0 的 vu…

    Vue 2023年5月28日
    00
  • Vue自定义可以选择日期区间段的日历插件

    首先我们需要明确自定义可以选择日期区间段的日历插件的功能需求: 显示当前月份的日历,默认选中日期为今天 允许用户选择日期区间,可以选择起始日期和结束日期 用户可以通过下拉菜单选择年份和月份 用户可以通过左右箭头切换月份,以便查看以前或以后的日期 用户选择日期区间后,插件需提供可配置的回调函数回传所选日期区间 为了实现以上需求,我们可以选择Vue.js作为前端…

    Vue 2023年5月29日
    00
  • Vue内部渲染视图的方法

    下面是关于 Vue 内部渲染视图的方法的详细攻略。 什么是 Vue 内部渲染视图的方法 在 Vue 中,当数据发生变化时,会根据使用的渲染方法重新渲染视图,从而使视图与数据状态保持同步。Vue 内部提供了多种渲染视图的方法,包括基于模板的渲染、基于 JSX 的渲染、手动刷新等。 Vue 模板渲染 Vue 的模板渲染是利用 HTML 模板代码和 Vue 组件选…

    Vue 2023年5月27日
    00
  • Vue响应式原理模拟实现原理探究

    Vue响应式原理模拟实现原理探究 什么是 Vue 响应式原理? Vue.js 是一个基于数据驱动的前端框架,主要利用观察者模式实现了 MVVM 模式。在 Vue 中,我们可以通过操作数据来动态改变视图,并且数据和视图是“响应式”的,即数据变化后,对应的视图也会发生变化。 Vue 响应式原理模拟实现 响应式对象 在 Vue 中,可以将一个对象设置为“响应式”的…

    Vue 2023年5月28日
    00
  • 浅析vue中的provide / inject 有什么用处

    提供/注入(Provide / Inject)是Vue.js中的一个高级特性,允许祖先组件通过一个透明的接口向后代组件注入依赖项。在这个过程中,依赖注入是通过一个专用的上下文对象进行的。这种上下文对象作为依赖被传递到了需要访问依赖的子组件中。本攻略将介绍Vue中provide/inject的用处、使用方法以及示例说明。 使用方法 在祖先组件中,使用provi…

    Vue 2023年5月29日
    00
  • vue离开当前页面触发的函数代码

    当用户离开Vue页面时,我们可以使用beforeRouteLeave路由导航守卫去触发相应的函数代码。下面,我将详细讲解该攻略的应用步骤和示例说明。 步骤一:添加路由导航守卫 在Vue的路由配置中添加beforeRouteLeave守卫,并指定它所要触发的函数代码。以下是守卫函数的结构: beforeRouteLeave(to, from, next) { …

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部