跳到主要内容
返回案例列表
法务Windows 应用

合同到期与审批跟进台账

把公司所有合同集中登记,到期前自动提醒,未签回、未寄送的一目了然,不会再漏掉续约。

要解决的问题

法务同事每天要盯一堆合同:有没有寄出去、对方签回来没、什么时候到期、要不要续签。信息散在邮件、微信、Excel 里,一不小心就漏。

解决方案

做一个本地台账软件:每份合同一张卡片,记录对方、类型、金额、关键日期、当前状态。到期前 30 天自动红色提醒;长期卡在"待寄送 / 待签回"的单独列出,方便催办。

预期效果

  • 首页是合同卡片列表,可按状态筛选:起草中 / 待寄送 / 待签回 / 已生效 / 到期 / 已终止。
  • 每张卡片显示:对方名称、合同类型、金额、签署日、到期日、当前状态。
  • 到期前 30 天自动红色,60 天黄色,其他绿色。
  • "待办看板"汇总所有需要跟进的合同,便于周会使用。
  • 支持从 Excel 批量导入,导出待办清单到 Excel。
  • 敏感字段(金额、甲方/乙方)支持查看权限开关,避免同事共享屏幕时误读。

示例输入字段

复制提示词前,把你的 Excel / CSV 表头改成这些字段名,或把真实表头一起贴给 Codex。

合同编号对方公司负责人生效日期到期日期

可直接使用的提示词

你是一名擅长本地桌面小工具的资深工程师。请帮我做一个本地运行的桌面小工具,用户是公司法务同事,关注业务结果和操作体验。

【目标】

把所有合同集中登记、按状态跟进、到期前自动提醒,避免漏签漏催。

【平台与技术】

- Windows 10/11 桌面应用
- Electron + React + TypeScript
- 本地 SQLite
- 打包成 Windows .exe 安装包
- 完全离线

【核心功能】

1. 首页卡片列表:可按状态筛选;可按到期日排序;每张卡片左侧有状态色块(红黄绿)。
2. 新建 / 编辑合同:表单清晰,必填项标注;"附件"字段支持选本地文件,保存相对路径而非复制。
3. 待办看板:单独一页,汇总所有"待寄送 / 待签回 / 30 天内到期"的合同,便于每周例会使用。
4. 自动提醒规则(可在设置里改):
   - 到期前 30 天 -> 红色
   - 到期前 60 天 -> 黄色
   - 其他 -> 绿色
5. 风险视图:集中列出缺附件、到期日为空、待签回超过 7 天、到期未续约、金额为空但合同类型需要金额的记录。
6. 导入 / 导出:
   - Excel 批量导入,表头:对方 / 类型 / 金额 / 币种 / 签署日 / 生效日 / 到期日 / 状态 / 备注。
   - 导出待办清单到 Excel,字段包括:编号 / 对方 / 状态 / 到期日 / 剩余天数 / 风险原因 / 建议动作,作为法务周会材料。
7. 隐私保护:
   - 敏感字段(金额、对方名称)在列表页可切换"隐藏"按钮,临时遮蔽便于共享屏幕。
   - 不联网,不上传。
8. 搜索 / 筛选:支持关键词搜索合同编号、对方、备注。

【界面风格】

- 业务型:表格清晰、信息密度适中、分隔线柔和。
- 状态色块饱和度低;不用刺眼红。
- 字体系统默认;中英双语可切换。
- 深浅模式跟随系统。

【稳健性】

- 数据库损坏自动恢复到最近备份。
- 表单必填项缺失时友好提示不崩溃。
- 日期错乱(生效日晚于到期日)给出提示。
- 附 3 份示例数据:正常合同、待签回超期、到期日缺失 / 日期错乱。

【数据模型】
合同字段:编号(自动)、对方名称、合同类型、金额、币种、签署日、生效日、到期日、续约周期、经办人、当前状态、续约负责人、提前提醒天数、备注、附件路径(指向本地文件)。

状态:起草中、待寄送、待签回、已生效、到期、已终止。

【约束】
- 收到提示词后直接动手实现,不要先问方案、不要等确认。
- 全部本地处理,数据不上传外部服务。
- 缺真实数据时先造脱敏 sample-data,不等用户提供文件才开工。
- 不引入不存在的 npm 包;不确定时先查 npm view。
- 不写死 API Key、绝对路径、个人邮箱或内网地址。
- 输出不覆盖原文件,冲突加时间后缀。
- 同一问题 3 次失败 → 降级边缘功能,先交付主流程。
- 每个功能写完立即运行验证,不要攒到最后才测。

【项目结构】
├── src/main/          # Electron 主进程(main.ts, preload.ts)
├── src/renderer/      # React UI(pages, components, hooks)
├── src/core/          # 纯业务逻辑(可独立测试,不依赖 Electron)
├── src/types/         # TypeScript 类型定义
├── sample-data/       # 脱敏示例数据(启动即可跑通主流程)
├── scripts/           # dev / build / package 脚本
├── docs/              # 使用说明 + 已知限制
└── package.json       # 入口、脚本、依赖

【错误自救】
遇到问题时按以下策略处理,不要反复尝试同一方法:
- 依赖安装失败 → 检查包名拼写,尝试降一个大版本,或换 --legacy-peer-deps
- TypeScript 报错过多 → 先用 any 跑通主流程,再逐步补类型
- Electron 白屏 → 检查 preload 路径、CSP 策略、console 报错
- 打包失败 → 先确认 dev 模式完全正常,再排查打包配置
- 样式错乱 → 检查 CSS 加载顺序和选择器优先级
- 同一错误 3 次 → 换方案或降级该功能,不要死磕

【交付】
1. 摘要需包含首页 / 编辑页 / 待办看板界面安排。
2. 分三步:卡片列表 + 新建 -> 待办看板 + 自动染色 -> 导入导出 + 隐私遮蔽。
3. 打包 .exe,附 500 字内中文使用说明。

验收清单(全部通过才算完成):
□ 双击 .exe 启动,首页是合同卡片列表
□ 新建合同 → 表单填写 → 保存 → 列表显示
□ 到期前 30 天自动红色,60 天黄色
□ 待办看板汇总需跟进合同 → 导出 Excel
□ 敏感字段可切换隐藏/显示
□ 日期错乱、缺必填项 → 友好提示,不闪退

【高质量交付补充】
若上文要求等待确认,改为:≤8 行摘要后直接实现、运行、修复、验证;只因真实文件、账号、证书或不可逆操作停下。

【快速启动协议】
收到提示词后立即按以下顺序执行,不要先输出方案等确认:
1. 创建项目目录,初始化 package.json + tsconfig.json
2. 安装核心依赖:electron, react, react-dom, typescript, @types/react
3. 写最小 main.ts(创建窗口)+ index.html + renderer 入口,确认窗口能弹出
4. 创建 sample-data/ 目录,放入贴近业务的脱敏示例数据
5. 按功能逐个实现,每完成一个功能立即运行验证
6. 最后补文档、打包脚本、使用说明

【桌面交付契约】
- 交付本地可运行应用,不是方案;第一屏就是主工作台。M1≤15 分钟先出可启动窗口+示例数据/试用模式,M2 接通真实主流程,M3 补异常/UI/隐私,M4 测试+打包+文档。
- 没有用户真实文件时,先创建贴近业务的脱敏 sample-data 并继续推进。
- 每个里程碑卡住时的降级策略:M1 卡住 → 换更简单的实现方式先出窗口;M2 卡住 → 先跑通核心 3 步,边缘路径后面补;同一问题 3 次失败 → 降级或禁用边缘功能,先交付主流程。
- 每次汇报≤6行:完成、验证、跳过原因、下一步+预计时间,让进度清楚。
- 用业务语言写按钮、错误和说明;支持拖拽+系统打开/保存;空/错格式/取消/无权限/大文件/重名冲突都友好处理,不暴露堆栈。
- 路径兼容中文、空格、括号、长路径和 Windows/macOS 分隔差异;Windows 快捷键用 Ctrl/Alt,macOS 用 Command/Option。
- 默认离线、本地处理;不覆盖原文件;不写死密钥、绝对路径、个人邮箱或内网地址。
- 项目分层:desktop shell / controlled API / UI / core / tests / sample-data / docs;IPC 白名单化,UI 不直接执行本地命令。
- 真实接线:导入、预览、生成/保存、导出、错误状态都可用;不把 TODO、空函数、未用大组件或假数据当完成。

【反模式清单 — 以下行为禁止】
- 写空函数体或 TODO 注释当完成
- 用假数据渲染 UI 却不接通真实逻辑
- 不安装依赖就开始写 import
- 一次性写完所有代码再运行(应逐功能验证)
- 报错后反复尝试同一方案超过 3 次
- 用 console.log 代替真实的错误处理 UI
- 忽略空状态和加载状态

【DoD / 停止 Vibe Coding】
完成标准(逐条检查,全部通过才停手):
□ 能启动;示例数据跑通真实主流程并产生产物
□ 异常路径友好(空数据、错格式、取消、重名冲突 → 不闪退)
□ UI 符合最低视觉标准(字号层级清晰、间距舒适、空状态有引导)
□ lint/typecheck/test/build 通过
□ 已用 sample-data 完成 启动 → 主流程 → 导出/保存 烟测,并记录结果
□ 有 setup/dev/package 脚本、README、使用说明、已知限制、示例数据
满足即停,新想法写 v2;同一 bug 3 次失败就降级或禁用边缘功能,先交付主流程。

复制之后

1

打开 Codex 桌面版,新建任务

2

整段粘贴到对话框,发送

3

让 Codex 实现并验证,再根据需要调整名称、字段和按钮

同部门其他案例