Files
code-utils/README.md
2026-09-29 11:14:07 +08:00

154 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 年糕崽崽项目管理(PMS)
年糕崽崽 PMS(NL PMS)是一款 **本地优先** 的 Windows 桌面项目工作台:一键统计代码规模与语言分布、洞察 Git 协作热度,聚合待办、工单与排期日历,内置 AI 解读项目并规划每天工作。数据默认保存在本机 SQLite;登录后可加密同步到云端,多台设备衔接。
技术栈:**Wails v3 · Go · Vue 3**。界面支持中 / 英与浅色 / 深色主题。
## 功能清单
### 概览
- **工作台**:收藏项目、今日待办、速记与未读消息入口
- **今日任务**:聚合逾期、今天到期、进行中、未来 7 天的待办与工单
- **排期日历**:待办截止日与工单排期一览,支持跳转日期
- **消息中心**:系统 / 协作通知
### 项目与代码分析
- **我的项目**:本地目录或 Git 克隆添加项目,分组管理,语言分布与代码行统计
- **项目详情**:代码规模、目录结构、大文件、Git 热力图 / 趋势 / 贡献者、健康洞察、文件预览
- **排除规则**:按 glob 排除不参与统计的文件(设置里可配全局规则,项目也可单独配置)
- **AI 分析**:基于项目上下文的对话、解读与任务建议(支持讯飞星火 / DeepSeek 等)
### 事务
- **待办事项**:看板 / 列表,状态、优先级、截止日期
- **需求工单**:绑定项目与排期,类型含功能 / 缺陷 / 任务 / 改进,生命周期时间线,可用 AI 生成工单
- **笔记**:Markdown 速记与笔记列表
### 团队协作(登录后)
- **团队概览**:创建 / 加入团队、成员与角色
- **团队任务**:分配与跟踪团队待办
- **团队日报**:成员日报提交与 AI 摘要
- **加密云同步**:本地数据加密后同步到云端;个人主页可管理资料、素材库与同步状态
### 系统工具
- **启动台**:管理本机应用启停与分类,扫描监听端口的服务,可配置启动 / 停止命令与图标
- **端口监控**:本机 CPU / 内存 / 网络总览、监听端口列表,可将服务存为启动台应用
- **打包任务**:在项目或应用目录执行自定义构建命令,控制台输出保存在本地(不同步云端)
- **运行日志**:桌面端后台任务与运行记录
### 设置与运营
- **界面设置**:主题、语言、毛玻璃、加载动画、托盘样式、最小化到托盘、开机自启、自动更新
- **AI / 文件存储 / 种类图标 / 数据管理**:模型密钥、云端文件存储(管理员)、启动台默认种类图标、SQLite 路径与备份
- **运营后台**(管理员):用户与团队、发版与更新包、用量概览;敏感操作需二次验证
## 环境要求
- Go 1.25+
- Node.js 20+
- Wails CLI v3(`wails3`)
- Git(可选;仅 Git 分析需要)
- NSIS(打 Windows 安装包时需要,见下文)
本机数据库默认位于系统用户配置目录下的 `CodeCount/code-count.db`,可在设置 → 数据管理中修改路径。
## 开发
热更开发(推荐):
```powershell
wails3 task dev
```
等价于 `wails3 dev -config ./build/config.yml -port 9245`。
也可先装前端依赖再手动启动:
```powershell
cd frontend
npm install
cd ..
wails3 task dev
```
请在桌面程序中打开,不要用普通浏览器预览:浏览器无法访问本地目录、SQLite 或 Git。
## 测试
```powershell
go test ./...
```
## 构建与打包(Windows)
出包必须用官方任务,**禁止**裸 `go build` 交付给用户。裸编译没有图标,双击还会闪控制台黑框。
### 打安装包(推荐交付方式)
需要已安装 [NSIS](https://nsis.sourceforge.io/)。若提示 `makensis not found`,先把 NSIS 加入 PATH:
```powershell
$env:Path = "C:\Program Files (x86)\NSIS;" + $env:Path
wails3 task package
```
该任务会依次:
1. 打包云端 API(`api:package`,有改动才重编)
2. 构建前端并嵌入,生成带图标 / 版本信息、无控制台窗口的 `bin/code-count.exe`
3. 用 NSIS 生成安装程序
**安装包路径:**
`bin\年糕崽崽项目管理(PMS)-amd64-installer.exe`
安装程序为简体中文界面,会写入开始菜单和桌面快捷方式,并附带 WebView2 引导。默认按机器安装(需管理员权限)。
### 只编桌面程序(不打安装包)
```powershell
wails3 task windows:build
```
产物:`bin/code-count.exe`。只改前端时该任务会自动 `npm build` 并嵌入,无需单独跑 Vite。
### 只打包云端 API
同级仓库 `../nl-pms-api` 有改动才会重编;强制重编加 `FORCE=1`:
```powershell
wails3 task api:package
wails3 task api:package FORCE=1
```
产物目录:`bin/nl-pms-api/`(含 `nl-pms-api` 二进制、`init.sql`、`migrations/*.sql`、`config.example.yaml`)。部署到 Linux 服务器时拷该目录即可。
硬性要求:
- 目标固定为 **linux/amd64**(线上 Linux 服务器)
- 产物是 `bin/nl-pms-api/nl-pms-api`(**无** `.exe` 后缀)
- **禁止**把 Windows 本机编出的 `nl-pms-api.exe` 当作后端交付
编完会校验文件头为 ELF(`7F 45 4C 46`)。抽查:
```powershell
Format-Hex bin\nl-pms-api\nl-pms-api -Count 4
# 前 4 字节应为 7F 45 4C 46
```
### 更换 Logo
1. 替换 `build/appicon.png`(正方形 PNG)
2. `wails3 task common:generate:icons`(按 checksum 缓存,未改动会显示 up to date)
3. 重新 `wails3 task windows:build`(或再打安装包)
4. 可用 `powershell -ExecutionPolicy Bypass -File tools\extract-icon.ps1` 从 exe 抽出图标核对
5. 资源管理器仍显示旧图标时,改名或重启 explorer 即可(Windows 图标缓存)
## 项目配置
应用名称、版本、公司名等在 `build/config.yml`。修改 `info` 后执行 `wails3 task common:update:build-assets` 会同步构建资源(会覆盖已改过的资源文件,请先确认)。