一个纯内网部署的合同进展跟踪看板。数据存储在服务器本地文件,不经过任何外部网络,所有同事通过内网地址访问同一份数据。
- 📊 KPI 概览:进行中 / 待推进 / 已逾期 / 已完成
- 🔍 按分类、生命周期阶段筛选,关键词搜索
- 🗂️ 合同卡片:生命周期进度条(拟稿 → 审核 → 审批 → 盖章 → 归档)、卡点提示、逾期/临近提醒
- ➕ 新建合同弹窗
- 📂 详情抽屉:基本信息、生命周期编辑、履约里程碑、补充合同、附件索引、原件归档位置
- 💾 内网共享:数据存服务器
data.json,所有同事看到同一份数据 - 🔒 不外泄:服务仅监听内网,不连接任何外部服务
- 📦 自动备份:每次保存自动备份到
backups/目录,保留最近 50 份 - 🔄 离线兜底:服务器不可用时自动切换到本机 localStorage 模式
设计原则:仅跟踪进展,不存储原件/附件。附件与原件只记录外部路径(NAS、档案柜等)。
在戴尔微型机上安装 Node.js(LTS 版本):
- 下载:https://nodejs.org/
- 安装时勾选「Add to PATH」
验证安装:
node --version
npm --version将整个项目文件夹复制到戴尔微型机,例如放到 C:\contract-dashboard\。
方式一:双击运行
直接双击 start.bat,首次会自动安装依赖然后启动服务。
方式二:命令行
cd C:\contract-dashboard
npm install
node server.js启动后终端会打印类似:
👥 同事访问地址:
http://192.168.1.100:3456
将内网地址(如 http://192.168.1.100:3456)发给同事,所有人浏览器打开即可使用。
确保戴尔微型机的 Windows 防火墙允许 Node.js 监听端口 3456:
# 以管理员身份运行 PowerShell:
New-NetFirewallRule -DisplayName "合同看板 3456" -Direction Inbound -Protocol TCP -LocalPort 3456 -Action Allow| 环节 | 说明 |
|---|---|
| 网络 | 服务绑定 0.0.0.0:3456,仅内网可达;不连外网则不暴露 |
| 存储 | 所有合同数据存服务器 data.json,无外部数据库、无云端同步 |
| 备份 | 每次保存自动备份到 backups/ 目录,文件名含时间戳 |
| 传输 | 内网 HTTP 明文(如需加密,可加 nginx 反向代理 + 内网证书) |
# Windows PowerShell:
$env:PORT = "8080"
node server.js打开页面后,右上角会显示连接状态:
- ● 内网共享模式(绿色)— 已连接服务器,数据多人共享
- ○ 本机离线模式(橙色)— 未连接服务器,数据仅存本浏览器
如果在家或外网打开,会自动降级为离线模式,不影响使用。
直接用浏览器打开 index.html 即可(离线模式,数据存 localStorage)。
如需启动完整服务:
npm install
npm start