位置: 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织梦去掉文档内链自动连接关键词的下划线(织梦的首页怎么换图片)

  • 企业微博营销推广要注重的方法(企业微博营销推广方案)

    企业微博营销推广要注重的方法(企业微博营销推广方案)

  • 利用淘宝帮派活动推广淘宝店(淘宝帮派属于免费流量吗)

    利用淘宝帮派活动推广淘宝店(淘宝帮派属于免费流量吗)

  • 荣耀x10max如何隐藏相册(荣耀x10max应用怎么隐藏)

    荣耀x10max如何隐藏相册(荣耀x10max应用怎么隐藏)

  • 钉钉视频会议怎么转换摄像头(钉钉视频会议怎么看回放)

    钉钉视频会议怎么转换摄像头(钉钉视频会议怎么看回放)

  • 手机黑屏怎么把照片导出来(手机黑屏怎么把联系人导出来)

    手机黑屏怎么把照片导出来(手机黑屏怎么把联系人导出来)

  • usp插口是什么意思(usp接口失灵怎么办)

    usp插口是什么意思(usp接口失灵怎么办)

  • 小红书点赞对方不显示(小红书点赞对方会有记录吗)

    小红书点赞对方不显示(小红书点赞对方会有记录吗)

  • 抖音直播举报人的时候会不会被对方发现(抖音直播举报人是什么后果)

    抖音直播举报人的时候会不会被对方发现(抖音直播举报人是什么后果)

  • 微信取消小米自动续费(小米手机怎么关闭微信自动续费)

    微信取消小米自动续费(小米手机怎么关闭微信自动续费)

  • 自媒体mcn是什么意思(mcn?)

    自媒体mcn是什么意思(mcn?)

  • 苹果8重启方法(苹果重启方法怎么设置)

    苹果8重启方法(苹果重启方法怎么设置)

  • 苹果手机开机密码怎么取消(苹果手机开机密码怎么取消掉)

    苹果手机开机密码怎么取消(苹果手机开机密码怎么取消掉)

  • 高通和英特尔基带区别(高通和英特尔基带哪个信号更好)

    高通和英特尔基带区别(高通和英特尔基带哪个信号更好)

  • 高德地图如何横屏(高德地图如何横向显示)

    高德地图如何横屏(高德地图如何横向显示)

  • 手机淘宝怎么换付款方式(手机淘宝怎么换绑支付宝)

    手机淘宝怎么换付款方式(手机淘宝怎么换绑支付宝)

  • vivox27微信美颜在哪(vivox27微信美颜在哪里开启)

    vivox27微信美颜在哪(vivox27微信美颜在哪里开启)

  • kokos是什么牌子(koko是什么品牌)

    kokos是什么牌子(koko是什么品牌)

  • b250主板支持8代cpu吗(b250主板支持8100吗)

    b250主板支持8代cpu吗(b250主板支持8100吗)

  • 华为nova4电池耐用吗(华为nova4电池怎么样)

    华为nova4电池耐用吗(华为nova4电池怎么样)

  • 小米电视如何看电视直播(小米电视如何看电视频道)

    小米电视如何看电视直播(小米电视如何看电视频道)

  • 手机qq怎么隐藏联系人(手机qq怎么隐藏图标)

    手机qq怎么隐藏联系人(手机qq怎么隐藏图标)

  • 全民k歌怎么自己发约唱(全民k歌怎么自己练歌)

    全民k歌怎么自己发约唱(全民k歌怎么自己练歌)

  • 手机怎么设置wifi(手机怎么设置wifi网速最快)

    手机怎么设置wifi(手机怎么设置wifi网速最快)

  • 【vue3】关于ref、toRef、toRefs那些事(vue3.0中的ref)

    【vue3】关于ref、toRef、toRefs那些事(vue3.0中的ref)

  • 异地预缴税款不交可以吗
  • 累计折旧影响所得税费用吗
  • 税务开票系统如何导入客户信息
  • 现在什么情况下
  • 购货方要求退货合理吗
  • 会计核算不实
  • 监理费可以由施工方出吗
  • 企业常见的股利政策
  • 公对公房产转让税费
  • 无形资产研发成功并申请专利
  • 没有银行回单用明细账可以做账吗
  • 房租当月无发票怎么办
  • 银行结算账户的规定
  • 小规模纳税人查账征收所得税税率
  • 学校里的水电费是政府买单吗
  • 免抵退税应退税额
  • 纳税服务一体化综合监督工作情况报告
  • 航天金税盘费用怎么做账
  • 购入赠品计入什么科目
  • 企业无偿借款要缴税吗
  • 农贸市场收取管理费
  • 合伙企业个人所得税计算案例
  • 应收账款余额包括预收账款
  • 合伙企业是怎样分红的
  • 哪些金融资产的股票会涨
  • 航天信息服务费是什么费用
  • 全额拨款事业单位工资待遇
  • 不征税收入有哪些条件
  • 企业所得税职工福利扣除标准
  • 经营租赁固定资产体现实质重于形式
  • 软件开发中的业务一般指什么
  • 收到无法支付的押金收入
  • 运动目标检测算法
  • 个人合伙企业如何计算个人所得税
  • 闲置的固定电话机怎么改装
  • 新准则土地使用权计入固定资产还是无形资产
  • 蓝桥杯b组2020
  • pytorch torch
  • 如何构建自己的精神空间
  • 2021前端热门技术解读
  • cp命令复制系统文件/etc/profile
  • 删除组合命令
  • 预提费用核算内容有哪些
  • 期末调整汇兑损益计算
  • 交易性金融资产处置时的会计核算步骤
  • sqlloader语法
  • 电子发票开出后如何查看
  • 汽车的计提折旧
  • 福利费超过多少交税
  • sql server2008中删除表中记录的命令
  • 工商年报纳税总额包括个人所得税吗
  • 没有实收资本可以转让吗
  • 技术转让费如何计算
  • 以前年度多结转了成本,可以不调回了今年少结转吗
  • 垃圾清运费会计处理
  • 企业缴纳社保要下载什么软件
  • 兼职会计如何做账报税
  • 财报实收资本
  • 资产减值损失结转到本年利润吗
  • 会计电算化建账的基本流程有哪些
  • win7系统中如何禁用和启用网络
  • windowsold文件夹在哪里
  • kb5003169安装失败
  • 浅谈linux的发展方向和应用范围
  • windows xp iis安装
  • mac安装dw
  • linux 744
  • js创建对象的方法有哪些
  • 绝对给力的超经典
  • django web开发
  • jquery实战
  • Python中MySQLdb和torndb模块对MySQL的断连问题处理
  • unity做网页
  • python异常处理的关键词
  • vs开发unity教程
  • 使用jquery计算li元素的个数
  • 自然人扣缴端重置密码操作流程
  • "贴现"是什么业务,都涉及哪些费用?
  • 神马电力几号发行
  • 法制观念的问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设