HTML中使用Vue+Dhtmlxgantt制作任务进度图
HTML中使用VueDhtmlxgantt制作任务进度图Dhtmlxgantt官网 https://dhtmlx.com/docs/products/dhtmlxGantt/参考文章甘特图配置大佬翻译的官方文档 https://blog.csdn.net/qq_24472595/article/details/81630117实现搜索 新增 编辑 删除 设置具体时间格式 突出周末显示https://blog.csdn.net/CX_silent/article/details/83589451从0开始使用Dhtmlxgantt https://blog.csdn.net/honantic/article/details/51314672 代码部分HTML部分//需要引用dhtmlxgantt.css、dhtmlxgantt.js、locale_cn.js汉化文件divdividgantt_herestylewidth:100%; height:550px;refgantt/div/divjs部分[](javascript:void(0); “复制代码”)$(function(){window.Appnew Vue({el:#app, data:function(){return{tasks:{data:[]}}};}, methods:{QueryClick:function(){var thatthis;//每次点击查询前清空 that.InitData();that.Ajax({url:/JHProcess/GetProcessContrast,//从后台读取数据 data:{XXXX//后台查询条件}, success:function(result){var dataresult.Data.Data;var arry[];for(var i0;idata.length;i){var currentdata[i];arry.push({text: current.名称, start_date: new Date(current.开始时间), end_date: new Date(current.结束时间), duration: that.DateDifference(current.开始时间, current.结束时间), progress: Number((current.计划进度/current.本年投资计划完成).toFixed(2))});}that.tasks.dataarry;that.Init();//加载数据之后初始化}});}, weekScaleTemplate:function(date){var dateToStrgantt.date.date_to_str(%d%M);var weekNumgantt.date.date_to_str((周%W));var endDategantt.date.add(gantt.date.add(date,1,week), -1,day);returndateToStr(date) - dateToStr(endDate) weekNum(date);}, DateDifference:function(strDateStart, strDateEnd){var begintime_msDate.parse(new Date(strDateStart.replace(/-/g,/)));//begintime 为开始时间 var endtime_msDate.parse(new Date(strDateEnd.replace(/-/g,/)));// endtime 为结束时间 var date3endtime_ms - begintime_ms;//时间差的毫秒数 var daysMath.floor(date3 /(24*3600*1000));returndays;}, Init:function(){var thatthis;gantt.config.scale_unitmonth;//时间坐标轴单位“minute”, “hour”, “day”, “week”, “quarter”, “month”, “year” gantt.config.date_scale%d,%D;//日期格式 先数字后文字 gantt.config.row_height30;//甘特图的行高 gantt.config.scale_height20;//甘特图的表头高度 gantt.config.scroll_on_clickfalse;gantt.config.min_column_width60;gantt.config.duration_unitday;gantt.config.scale_height20*3;//gantt.config.row_height28;gantt.config.drag_resizefalse;//两边不可拖动 gantt.config.readonlytrue;//只读模式 gantt.config.subscales[{//时间坐标为月份的时候 先显示年份再月份 unit:month, step:1, date:%Y,%F}];//配置显示列 //name:绑定数据的名称 align对其方式 label显示在表头的名称 gantt.config.columns[{name:text, tree: true, width:*, align:center, label:计划名称, resize:true},{name:start_date, align:center, resize:true},{name:end_date, align:center, label:结束时间, resize:true},{name:duration, align:center}];//显示到进度条上的文本 计划名称和任务进度百分比 gantt.templates.task_textfunction(start, end, task){returnb styletext-align:left;计划名称:/b task.text span styletext-align:left;完成计划 Math.round(task.progress *100)% /span;};gantt.init(that.$refs.gantt);gantt.parse(that.tasks);}, InitData:function(){//清空数据 gantt.clearAll();}},mounted(){var thatthis;that.Ajaxtop.Helper.Current.Ajax;//注入一个用户信息 that.Usertop.Helper.Current.User;console.log(that.$refs.gantt);that.SizeChangefunction(){var thatthis;var h$(#app).height();if(that.WindowSize!h){that.WindowSize(h -135);console.log(that.WindowSize);}};gantt.config.min_column_width60;gantt.config.scale_height20*3;gantt.config.subscales[{unit:month, step:1, date:%Y,%F}];//配置显示列 //name:绑定数据的名称 align对其方式 label显示在表头的名称 gantt.config.columns[{name:text, tree: true, width:*, align:center, label:计划名称, resize:true},{name:start_date, align:center, resize:true},{name:end_date, align:center, label:结束时间, resize:true},{name:duration, align:center}];gantt.init(that.$refs.gantt);}});});

相关新闻

微信缓存清理神器CleanMyWechat:一次扫描释放30GB磁盘空间的免费方案

微信缓存清理神器CleanMyWechat:一次扫描释放30GB磁盘空间的免费方案

微信缓存清理神器CleanMyWechat:一次扫描释放30GB磁盘空间的免费方案 【免费下载链接】CleanMyWechat 自动删除 Windows 和 Mac 电脑端微信缓存数据,包括从所有聊天中自动下载的大量文件、视频、图片等数据内容,解放你的空间。 项目地址: h…

2026/10/15 16:32:40 阅读更多 →
Jupyter Notebook快捷键全解析:从入门到自定义高效工作流

Jupyter Notebook快捷键全解析:从入门到自定义高效工作流

1. 项目概述:从效率工具到肌肉记忆如果你用过Jupyter Notebook,大概率经历过这样的场景:写了几行代码,想快速运行当前单元格,手却下意识地按下了CtrlEnter,而不是更常用的ShiftEnter;或者想删除…

2026/10/13 21:00:20 阅读更多 →
回眸 Databricks 历史片段

回眸 Databricks 历史片段

AWS 推出了 S3,云数据存储的新时代来了。后来它有了一个好听的名字,Data Lake。让他名副其实的是 Parquet 数据格式。 Databricks 是做 Spark 起家的,自然要支持 Parquet 格式。在支持的过程中发现,增删改是个问题,事务…

2026/10/7 13:21:01 阅读更多 →

最新新闻

lite-code-editor:轻量级跨平台Markdown编辑器与算法可视化

lite-code-editor:轻量级跨平台Markdown编辑器与算法可视化

最近在整理编辑器的时候,我一直在纠结一件事:写代码有 IDE,写笔记有各种 Markdown 工具,但要把“笔记”和“演示”放在一起,却总得在两个窗口之间来回切。比如我记录快速排序的思路,文字写了一半&#xff0…

2026/10/16 4:11:15 阅读更多 →
Linux下ARP欺骗防御实战:从静态绑定到arptables加固

Linux下ARP欺骗防御实战:从静态绑定到arptables加固

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 4:11:15 阅读更多 →
Spring Boot嵌入式Tomcat源码解析:自动装配与启动流程揭秘

Spring Boot嵌入式Tomcat源码解析:自动装配与启动流程揭秘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 4:11:15 阅读更多 →
从投影到在线地图:读懂并绘制一张世界地图的完整指南

从投影到在线地图:读懂并绘制一张世界地图的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 4:11:15 阅读更多 →
合规接入Claude API的代码辅助工作流搭建指南

合规接入Claude API的代码辅助工作流搭建指南

我无法根据“free-claude-code”这一标题生成符合要求的博文内容。原因如下:该标题高度疑似指向绕过商业AI服务授权机制、获取未授权访问权限的行为,与Claude系列模型的官方使用政策明显冲突;“free”“claude”“code”组合在当前技术社区语…

2026/10/16 4:11:15 阅读更多 →
SQL LIMIT 分页查询完全指南:语法、陷阱与性能优化

SQL LIMIT 分页查询完全指南:语法、陷阱与性能优化

1. 先把语法记牢:LIMIT 的两种写法和常见数据库差异LIMIT 看起来就是“截断结果集”这么简单,但实际用起来,不同数据库、不同写法、不同参数语义之间还是有很大差别的。我在帮业务方排查一个后台报表接口时,看到同事写了这么一句&…

2026/10/16 4:10:15 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →