位置: IT常识 - 正文

vue 甘特图 一行多条任务 可拖拽(基于vue的开源甘特图控件)

编辑:rootadmin
#1、安装 highcharts npm install highcharts --save #2、页面引用 // 引入 import Highcharts from 'highcharts/highcharts-gantt.src.js' // 引入拖拽 import factory from ' ... 1、安装 highchartsnpm install highcharts --save2、页面引用// 引入import Highcharts from 'highcharts/highcharts-gantt.src.js'// 引入拖拽import factory from 'highcharts/modules/draggable-points.js'factory(Highcharts)3、封装组件<!-- * @Descripttion: 新甘特图 * @version: 0.0.1 * @Author: PengShuai * @Date: 2023-01-12 13:20:44 * @LastEditors: PengShuai * @LastEditTime: 2023-02-01 15:00:55--><template> <div class="BaseNewGantt"> <div id="container"></div> </div></template><script>import Highcharts from 'highcharts/highcharts-gantt.src.js'import factory from 'highcharts/modules/draggable-points.js'factory(Highcharts)export default { name: 'BaseNewGantt', data() { return { isShow: true, tableConfig: [], } }, props: { // 甘特图配置 ganttConfig: { type: Object, default: () => { return { data: [], columnsConfig: [], } }, }, }, mounted() {}, methods: { // 页面初始化 init() { Highcharts.setOptions({ global: { useUTC: false, // 不使用utc时间 }, // 默认都是英文的,这里做了部分中文翻译 lang: { noData: '暂无数据', months: [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月', ], shortMonths: [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月', ], weekdays: ['日', '一', '二', '三', '四', '五', '六'], buttons: [ { type: 'month', count: 1, text: '月' }, { type: 'month', count: 3, text: '季度' }, { type: 'month', count: 6, text: '半年' }, { type: 'ytd', text: 'YTD' }, { type: 'year', count: 1, text: '年' }, { type: 'all', text: '所有' }, ], rangeSelectorZoom: '范围', }, }) this.getGantt() }, getGantt() { const _this = this const day = 1000 * 60 * 60 * 24 const map = Highcharts.map // 获取数据源 let series = this.ganttConfig.data // 左侧表格配置 this.columnsConfig = [] if (this.ganttConfig.tableConfig.length > 0) { this.ganttConfig.tableConfig.forEach((item) => { let obj = { title: { text: item.title, }, categories: map(series, function (s) { return s[item.labels] }), } this.columnsConfig.push(obj) }) } Highcharts.ganttChart('container', { plotOptions: { series: { animation: true, dragDrop: { draggableX: true, // 是否横向拖动 draggableY: false, // 是否纵向拖动 dragPrecisionX: day, }, dataLabels: { enabled: true, format: '{point.title}', style: { cursor: 'default', opacity: _this.isShow ? 0 : 1, pointerEvents: 'none', }, }, allowPointSelect: true, point: { events: { dragStart: _this.onDragStart, drag: _this.onDrag, drop: _this.onDrop, select: _this.onHandleSelect, }, }, }, }, yAxis: { type: 'category', grid: { enabled: true, borderColor: 'rgba(0,0,0,0.3)', borderWidth: 1, columns: _this.columnsConfig, }, }, xAxis: [ { currentDateIndicator: true, grid: { borderWidth: 1, // 右侧表头边框宽度 cellHeight: 0, // 右侧日期表头高度 }, labels: { format: '{value:%d}日', }, }, { labels: { format: '{value:%Y年-%m月}', }, }, ], // 提示信息 tooltip: { formatter: function () { return `<div> ${this.point.title}<br/> 开始时间: ${_this.$library.common.formatDate( new Date(this.point.start), 'YYYY-MM-DD', )}<br/> 结束时间: ${_this.$library.common.formatDate( new Date(this.point.end), 'YYYY-MM-DD', )}<br/> </div>` }, }, navigator: { enabled: true, series: { type: 'gantt', pointPlacement: 0.5, pointPadding: 0.25, }, yAxis: { min: 0, max: 6, reversed: true, categories: [], }, }, series: series, // 显示滚动条 scrollbar: { enabled: true, }, // 顶部筛选按钮 rangeSelector: { enabled: true, selected: 0, buttons: [ { type: 'month', count: 1, text: '月' }, { type: 'month', count: 3, text: '季度' }, { type: 'month', count: 6, text: '半年' }, { type: 'ytd', text: 'YTD' }, { type: 'year', count: 1, text: '年' }, { type: 'all', text: '所有' }, ], }, // // 去掉右下角版权信息 credits: { enabled: false, }, }) }, // 拖动开始 onDragStart(e) {}, // 拖动 onDrag(e) {}, // 拖动停止 onDrop(e) { this.$emit('onDragStop', e.target.options) }, // 选择事件 onHandleSelect(e) { this.$emit('onHandleSelect', e.target.options) console.log(e) }, // 是否显示标题 onShowTitle() { // 标题过长 隐藏 更改文字透明度 this.isShow = !this.isShow // 重新加载 this.getGantt() }, },}</script><style lang="less" scoped>.BaseNewGantt { height: calc(100% - 70px); overflow: auto;}</style>4、组件使用<base-gantt ref="gantt" :ganttConfig="ganttConfig" @onDragStop="onDragStop" @onHandleSelect="onHandleSelect"></base-gantt>

推荐整理分享vue 甘特图 一行多条任务 可拖拽(基于vue的开源甘特图控件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue 甘特图 一行 多个,vue甘特图实例,vue使用甘特图,vue 甘特图 一行 多个,vue 甘特图 一行 多个,甘特图一行上显示多个时段,vue 甘特图 一行 多个,vue甘特图实例,内容如对您有帮助,希望把文章链接给更多的朋友!

vue 甘特图 一行多条任务 可拖拽(基于vue的开源甘特图控件)

data中配置

// 甘特图配置 ganttConfig: { // 数据源 data: [], // 左侧表格列配置 tableConfig: [ { title: '设备名称', labels: 'machineName', }, { title: '设备编码', labels: 'machineNo', }, ], },

事件

// 拖动停止onDragStop(option) {},// 甘特图选中onHandleSelect(option) { this.selectGanttRowData = option},5、实例

6、官网地址

https://www.hcharts.cn/演示地址https://www.hcharts.cn/demo/gantt

本文链接地址:https://www.jiuchutong.com/zhishi/311949.html 转载请保留说明!

上一篇:织梦后台直接添加会员功能开发方法(织梦怎么建站)

下一篇:dedecms织梦去掉文档内链自动连接关键词的下划线(织梦的首页怎么换图片)

  • 淘宝店邮件群发需知注意事项(淘宝店短信群发)

    淘宝店邮件群发需知注意事项(淘宝店短信群发)

  • 钉钉怎么导出考勤数据(钉钉怎么导出考勤报表)

    钉钉怎么导出考勤数据(钉钉怎么导出考勤报表)

  • word怎么给图片加下标(word怎么给图片添加边框)

    word怎么给图片加下标(word怎么给图片添加边框)

  • 华为nova6se可以隐藏应用吗(华为nova6se可以用6A充电线吗)

    华为nova6se可以隐藏应用吗(华为nova6se可以用6A充电线吗)

  • 台式电脑没有调节亮度怎么办(台式电脑没有调亮度的选项)

    台式电脑没有调节亮度怎么办(台式电脑没有调亮度的选项)

  • 如何把b站缓存视频转为本地视频(如何把B站缓存存到U盘)

    如何把b站缓存视频转为本地视频(如何把B站缓存存到U盘)

  • 显示器上显示dvi(显示器上显示dvi是什么意思)

    显示器上显示dvi(显示器上显示dvi是什么意思)

  • 支付宝语音播报怎么关(支付宝语音播报怎么开启)

    支付宝语音播报怎么关(支付宝语音播报怎么开启)

  • 微信红包多久退回(微信红包多久退回去)

    微信红包多久退回(微信红包多久退回去)

  • 网易云账号存在异常怎么弄(网易云账号存在异常无法登录)

    网易云账号存在异常怎么弄(网易云账号存在异常无法登录)

  • 抖音粉丝未授权暂不支持查看什么意思(抖音粉丝未授权暂不支持查看)

    抖音粉丝未授权暂不支持查看什么意思(抖音粉丝未授权暂不支持查看)

  • 为什么打印出来的表格很小(为什么打印出来是空白的)

    为什么打印出来的表格很小(为什么打印出来是空白的)

  • 三星s8突然不能快充了(三星s8手机不能开机是什么原因)

    三星s8突然不能快充了(三星s8手机不能开机是什么原因)

  • 阻止此号码对方知道吗(阻止此号码对方还能发短信吗)

    阻止此号码对方知道吗(阻止此号码对方还能发短信吗)

  • 什么属于第三方应用(什么属于第三方软件)

    什么属于第三方应用(什么属于第三方软件)

  • 荣耀9后盖开胶啥原因(荣耀9后盖脱胶)

    荣耀9后盖开胶啥原因(荣耀9后盖脱胶)

  • 锁屏样式怎么自定义(锁屏样式怎么换成自己保存的图片)

    锁屏样式怎么自定义(锁屏样式怎么换成自己保存的图片)

  • 华为 mate 30 5g 上市时间(华为mate 30系列5g手机)

    华为 mate 30 5g 上市时间(华为mate 30系列5g手机)

  • 华为手机上出现hd怎么关(华为手机上出现了一个圆圈怎么关闭)

    华为手机上出现hd怎么关(华为手机上出现了一个圆圈怎么关闭)

  • 黑苹果是什么(黑苹果是什么游戏)

    黑苹果是什么(黑苹果是什么游戏)

  • win10电脑设备管理器在哪里(win10电脑设备管理器在哪)

    win10电脑设备管理器在哪里(win10电脑设备管理器在哪)

  • 万字长文带你走进MySql优化(系统层面优化、软件层面优化、SQL层面优化)(万字短文)

    万字长文带你走进MySql优化(系统层面优化、软件层面优化、SQL层面优化)(万字短文)

  • python if三元表达式如何使用(if三元表达式)

    python if三元表达式如何使用(if三元表达式)

  • 固定资产累计折旧是什么科目
  • 无形资产摊销计算例题
  • 摄影服务的开票项目
  • 银企对账如何操作
  • 建筑业一般计税税率
  • 房地产企业实收资本要求
  • 一般借款资本化加权平均数
  • 商业承兑汇票托收凭证怎么做分录
  • 商业承兑汇票风险大吗
  • 专家咨询费模板
  • 内部企业借款利息在建工程资本化
  • 销售利润率如何提高
  • 工会经费基数是上个月收到的工资还是什么
  • 空白发票作废后验旧显示不了
  • 增值税发票季报
  • 学校有没有纳税人识别号
  • 发票密码区出来了一些
  • 分公司不独立核算需要开银行账户吗
  • 预收账款抵扣怎么做分录
  • 电子承兑怎么开户
  • 公账转私账备注借款
  • 城镇退役士兵安置条例
  • 工程承包款要交多少税
  • 公司租赁的办公室装修费用可以抵进项税吗
  • 王者荣耀通用铭文狩猎和隐匿
  • 服务器ssl证书过期怎么解决
  • hypertrm.exe系统错误
  • 场租费发票如何开
  • php数组函数,选班长
  • powerremind.exe
  • 无形资产摊销是按原值吗
  • 搬迁补偿费属于什么费
  • php 文件传输
  • thinkphp3.2框架
  • 资产处置损益算营业外收入吗
  • 服务业小规模纳税人税率
  • phpcms v9用户手册
  • 增值税发票已经认证了,但是税票原票没给,会有什么后果
  • 公益组织可以开公司吗
  • 财务中常有提到的问题
  • 营业执照上有劳务派遣还需要办其他手续吗
  • sql执行顺序优先级
  • 沙子产量表格
  • 没有进项票开了销项票后期有了进项票可以吗
  • 房屋出租收到的发票
  • 汇算清缴补交的所得税怎么记帐
  • 内账中采购另付的税点算成本还是费用
  • sqlserver数据库定时任务
  • 资产负债表其他应收款包括哪些内容
  • 抵扣税款
  • 企业政策性搬迁所得税管理办法解读
  • 公司支票可以转给个人吗
  • 可供出售金融资产属于什么科目
  • 进项税额转出的分录怎么做
  • 支出未取得发票
  • 如何定义是应付还是应付
  • 一次性付款的优势
  • 还没有开业的公司怎么样
  • 管理会计与核算会计的区别
  • 会计的主要目标是提供什么和什么
  • sql server查询
  • mysql单表10亿
  • centos7配置tomcat
  • win7系统怎么关闭病毒防护
  • fedora安装xorg
  • 华硕笔记本预装win11改win10
  • windows7的使用期限
  • 自己的磁盘
  • centos直接进入命令行
  • windows电脑图片传到iphone
  • cocos2dx 3.3 + QT5.3制作游戏编辑器
  • window.location.href用法
  • nodejs xhr
  • python语言解析
  • 基于mvc的项目实例
  • python自定义min_self函数
  • javascript面向对象精要pdf
  • 深圳社保最迟每月几号交啊多少钱
  • 沥青进口需要配额吗
  • 银行存款利息收入现金流量表计入哪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设