夜雨聆风学习资料网

ARTICLE · 1287080

做项目计划,嫌 MPP 太厚重、Excel 太难排版,我写了一个 Project Tracker

做项目计划,嫌 MPP 太厚重、Excel 太难排版,我写了一个 Project Tracker
  • 我想管理项目,而不是反复调整表格

在日常工作里,我经常需要编写项目计划。任务什么时候开始、谁负责、哪些节点不能推迟,都是计划里必须说清楚的事;以及项目进度完成了多少,跟预期差距有多大,是否有风险等。

我之前用过 Project 的 .mpp 文件,也用 Excel 编写。MPP 工具对我的日常需求来说太厚重,界面也不够美观;Excel 虽然灵活,但我总觉得呈现不够正式,排版难,颜色搭配也不好看。

我想把注意力放回任务本身:列清楚计划,看得懂时间关系,修改后不用重新整理版式。于是,我开发了 Project Tracker,把这些操作收进一个可以直接打开的 HTML 文件。

  • 把边界收在日常工程项目计划里

我把它定位为轻量的项目计划与跟踪工具,面向需要维护任务、负责人和里程碑的工程同事。任务列表和甘特图放在同一张视图里:前者说明做什么,后者用时间条说明什么时候做。

多项目、复制项目、中英文切换和深浅主题都在同一个文件里。计划也能作为副本交给别人查看。

我没有实现 MPP 格式兼容,也不把它当作资源成本核算工具。单机版的重点是计划编辑、直观展示和文件交付;发出去的副本不会自动跟随原计划更新。

  • 一个HTML,分清编辑、计算和保存

界面由 HTML 和 CSS 组成,JavaScript负责交互、日期计算和绘图,三者都在同一个文件内。任务按父子结构组织,项目索引记录有哪些项目、当前打开哪一个;每个项目分别保存任务和显示设置。

编辑操作先更新任务数据,再由排期逻辑处理依赖,最后重新绘制列表、时间轴和统计卡片。甘特图与表格读取同一份数据,不需要各维护一份计划。

日常修改写入 localStorage,也就是浏览器的本地存储。JSON 用于备份,分享则把选定项目嵌入新的 HTML;数据文件、可交互副本和打印结果各有用途。

图1|单文件内完成编辑、计算与绘图,本地保存与文件交付各司其职。

  • 拖日期、调层级,勾选今天看清进展

第一组功能是直接编辑计划。填写任务名称、负责人和日期,生成层级列表与时间条;未定日期的任务仍可保留。甘特条可以左右拖动调整排期,拖两端改变起止日期,操作始终对应原任务,不会因鼠标上下偏移而串到另一行。

双击任务条或所在时间轨道,可以添加 milestone 重要节点,用菱形、星形或圆点标记关键日期;标记也能拖动和编辑。它是任务内的关键节点标记,与任务所属的里程碑分区不同。

任务从属关系不必靠剪切粘贴:点击左移升级、右移降级,便能调整父子层级;上移、下移按钮一键调整任务顺序。拖日期不改变任务所在行,改变顺序和层级则使用独立按钮,避免把两种操作混在一起。

第二组是进度查看。勾选“显示今天线”,一键显示今天的位置、甘特条的进度填充和百分比;取消后回到以排期为主的视图。自动进度按日期计算,也可手动覆盖,时间过去多少不能直接等同于实际完成多少。

顶部任务总结卡片集中显示总体进度、条目总数、进行中、未开始、已完成、待定以及各风险等级数量,一眼就能看到计划概况。可交互的状态和风险卡片还能点击高亮、再次点击筛选对应任务,不必逐行找。

图2|示例:勾选今天显示进度,顶部总结卡片集中呈现任务状态。

第三组是风险与交付。我填写发生概率、影响、说明和应对措施,得到风险等级与详情提示;前置依赖和周末工作日设置参与排期。JSON 用于备份和导入,分享可选当前、全部或指定项目生成独立 HTML,打印/PDF 用于静态展示。

图3|风险编辑:概率、影响、说明与应对措施,填写内容为演示。

图4|分享界面:选择要嵌入独立 HTML 的项目范围。

  • 把排版规则交给界面,而不是每次手工修

在 Excel 里,任务数据和呈现格式混在一起,新增一行或调整日期后,我还要照顾单元格与颜色。Tracker 把信息保存成结构化数据,显示时统一生成任务行和时间条,分组颜色由规则处理,减少逐条修饰的动作。

屏幕上的视图也不能直接照搬到纸上。打印前,程序重新布局时间轴并隐藏编辑按钮;打印结束后再恢复交互界面。适应屏幕和只读全屏则服务于日常查看,不需要把编辑控件一起带进展示画面。

没有可核实的耗时数据,我不写效率提升比例。能确认的是,同一份任务数据用于编辑、展示与交付,版式不必每次重新拼。

  • 连线合法,不代表导入的数据也合法

排期里一个容易漏掉的判断,是只检查编辑器新建的连线。编辑界面能拒绝循环,但导入文件仍可能带着循环关系;如果直接调整日期,计算过程就可能失去明确的先后顺序。

我把校验放到实际排期之前:检查整个依赖图,确认没有循环再修改日期。这里使用拓扑排序,也就是按前置关系逐步排列任务;重复的前置项先去重,避免被错误地判成循环。父子关系也要单独约束,不能仅靠画出的连线判断。

分享文件还有数据隔离的问题。只复制页面不足以区分不同副本,所以生成文件时加入独立快照标识,用它区分本地存储键;同时剔除临时筛选状态,避免接收者打开后误以为某些任务消失了。

自动保存不等于写回原 HTML,数据留在当前浏览器里。换电脑或清理数据可能影响它,所以我保留 JSON 备份,不把本地存储当作唯一副本。

  • 让计划回到任务本身,而不是版式

我做这个工具,是想在日常项目管理里少花一些精力照顾版式,多关注任务、日期和风险。一个可以直接打开的文件,加上清楚的时间表达,比堆叠功能更贴近我最初的需求。

它仍需要认真维护计划、确认真实进度和定期备份。如果你也嫌 MPP 厚重,又不想反复调整 Excel,可以借鉴这个思路:先区分任务数据和显示方式,再把编辑、展示与交付做成一条清楚的流程。

如果你也有这方面的痛点,欢迎评论区交流!

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料