尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

vue 甘特图 vxe-gantt 手动增加一条依赖线,删除连接线的用法

vue 甘特图 vxe-gantt 手动增加一条依赖线,删除连接线的用法
📅 发布时间:2026/6/19 15:47:53

vue 甘特图 vxe-gantt 手动增加一条依赖线,删除连接线的用法,通过设置 links 定义连接线,from 对应源任务的行主键,tom 对应目标任务的行主键通

extend_gantt_chart_gantt_dependency_manual

过调用 setTaskLinks、clearTaskLinks 方法来设置或清除连接线可以很简单的画连接线或清除连接线

<template><div><vxe-button status="primary" @click="addLink1">新增一条线7-6</vxe-button><vxe-button status="primary" @click="addLink2">新增二条线2-9</vxe-button><vxe-button status="error" @click="delLink1">删除一条线7</vxe-button><vxe-button status="error" @click="delLink2">删除一条线2</vxe-button><vxe-button status="success" @click="updateLink1">重新设置连接线1</vxe-button><vxe-button status="success" @click="updateLink2">重新设置连接线2</vxe-button><vxe-button status="error" @click="clearLink">清除全部连接线</vxe-button><vxe-gantt ref="ganttRef" v-bind="ganttOptions"></vxe-gantt></div>
</template><script setup>
import { ref, reactive } from 'vue'
import { VxeGanttDependencyType } from 'vxe-gantt'const ganttRef = ref()const ganttOptions = reactive({border: true,height: 600,rowConfig: {keyField: 'id' // 行主键},taskBarConfig: {showProgress: true, // 是否显示进度条showContent: true, // 是否在任务条显示内容move: true, // 是否允许拖拽任务移动日期resize: true, // 是否允许拖拽任务调整日期barStyle: {round: true, // 圆角bgColor: '#fca60b', // 任务条的背景颜色completedBgColor: '#65c16f' // 已完成部分任务条的背景颜色}},taskViewConfig: {tableStyle: {width: 480 // 表格宽度}},columns: [{ type: 'seq', width: 70 },{ field: 'title', title: '任务名称' },{ field: 'start', title: '开始时间', width: 100 },{ field: 'end', title: '结束时间', width: 100 },{ field: 'progress', title: '进度(%)', width: 80 }],data: [{ id: 10001, title: '任务1', start: '2024-03-01', end: '2024-03-04', progress: 3 },{ id: 10002, title: '任务2', start: '2024-03-03', end: '2024-03-08', progress: 10 },{ id: 10003, title: '任务3', start: '2024-03-03', end: '2024-03-11', progress: 90 },{ id: 10004, title: '任务4', start: '2024-03-05', end: '2024-03-11', progress: 15 },{ id: 10005, title: '任务5', start: '2024-03-08', end: '2024-03-15', progress: 100 },{ id: 10006, title: '任务6', start: '2024-03-10', end: '2024-03-21', progress: 5 },{ id: 10007, title: '任务7', start: '2024-03-15', end: '2024-03-24', progress: 70 },{ id: 10008, title: '任务8', start: '2024-03-05', end: '2024-03-15', progress: 50 },{ id: 10009, title: '任务9', start: '2024-03-19', end: '2024-03-20', progress: 5 },{ id: 10010, title: '任务10', start: '2024-03-12', end: '2024-03-20', progress: 10 },{ id: 10011, title: '任务11', start: '2024-03-01', end: '2024-03-08', progress: 90 },{ id: 10012, title: '任务12', start: '2024-03-03', end: '2024-03-06', progress: 60 },{ id: 10013, title: '任务13', start: '2024-03-02', end: '2024-03-05', progress: 50 },{ id: 10014, title: '任务14', start: '2024-03-04', end: '2024-03-15', progress: 0 },{ id: 10015, title: '任务15', start: '2024-03-01', end: '2024-03-05', progress: 30 }]
})const addLink1 = () => {const $gantt = ganttRef.valueif ($gantt) {$gantt.addTaskLink({ from: 10007, to: 10006, type: VxeGanttDependencyType.StartToStart })}
}const addLink2 = () => {const $gantt = ganttRef.valueif ($gantt) {$gantt.addTaskLink([{ from: 10002, to: 10009, type: VxeGanttDependencyType.StartToStart },{ from: 10003, to: 10001, type: VxeGanttDependencyType.FinishToFinish }])}
}const delLink1 = () => {const $gantt = ganttRef.valueif ($gantt) {$gantt.removeTaskLink(10007)}
}const delLink2 = () => {const $gantt = ganttRef.valueif ($gantt) {$gantt.removeTaskLink(10002)}
}const updateLink1 = () => {const $gantt = ganttRef.valueif ($gantt) {$gantt.setTaskLinks([{ from: 10001, to: 10002, type: VxeGanttDependencyType.FinishToFinish },{ from: 10004, to: 10005, type: VxeGanttDependencyType.StartToStart },{ from: 10005, to: 10006, type: VxeGanttDependencyType.FinishToStart },{ from: 10013, to: 10012, type: VxeGanttDependencyType.StartToFinish }])}
}const updateLink2 = () => {const $gantt = ganttRef.valueif ($gantt) {$gantt.setTaskLinks([{ from: 10001, to: 10003, type: VxeGanttDependencyType.StartToStart },{ from: 10008, to: 10004, type: VxeGanttDependencyType.FinishToStart }])}
}const clearLink = () => {const $gantt = ganttRef.valueif ($gantt) {$gantt.clearTaskLinks()}
}
</script>

相关新闻

  • 《代码大全》读后感(8)
  • 基于节点的LangChain构建器LangFlow,让AI应用开发更高效
  • 37、Visual Studio .NET:全面开发解决方案解析

最新新闻

  • 上海汽车音响改装选哪家?上海音乐人生,二十年赛事级连锁标杆门店 - 音乐人生汽车音响
  • 技术解析:从Tri-Plane到3D GAN,如何实现高效且一致的神经渲染
  • 通过Selenium实现网页截图来生成应用封面
  • 2026苏州钻石回收实测|国标4C定级,全城无套路靠谱门店变现指南 - 薛定谔的梨花猫
  • C语言宽字符处理:wmemcmp、wmemcpy、wprintf核心函数详解与实战
  • 多模态大语言模型LISA

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号