# 企迹 (qiji) — 政企周报管理系统 面向中国电信政企客户经理团队的周报管理系统,替代传统 Excel 填报流程。 ## 功能模块 | 模块 | 说明 | |------|------| | 📊 **仪表盘** | 本周拜访/计划/商机/要客四卡统计 + 填报进度 + 按周翻看历史 | | 📋 **周报** | 按周汇总拜访记录 + 每日纪要,支局长/分管领导查看全员 | | 📅 **工作计划** | 面向未来的计划安排,支持状态流转(计划中→已完成→已取消) | | 💰 **商机跟单** | 小微业务商机管道,按状态跟踪(跟进中→已签约→已流失) | | ⭐ **要客拜访** | 重要客户拜访计划,紧急度排序,多拜访人协作 | | 🏢 **客户管理** | 客户档案 CRUD + 联系人 + 归属分配 + Excel 导入/导出 | | 👤 **用户管理** | 支局长修改用户角色(经理/支局长/分管领导) | | 📱 **移动端** | 外勤填报适配,拍照上传,底部 TabBar | ## 技术栈 | 层 | 技术 | |---|------| | 后端 | FastAPI + SQLAlchemy 2.0 (async) + asyncpg | | 数据库 | PostgreSQL | | 文件存储 | MinIO (预签名直传) | | 认证 | Casdoor OIDC + JWT | | 前端 | Vue 3 + Vite + TypeScript + Element Plus | | 状态管理 | Pinia | | 定时任务 | APScheduler (每日 18:00 填报提醒) | ## 项目结构 ``` qiji/ ├── docker-compose.yml ├── backend/ │ ├── app/ │ │ ├── main.py # FastAPI 入口 │ │ ├── config.py # 配置管理 │ │ ├── database.py # async engine + session │ │ ├── models/ # 8 张表 SQLAlchemy 模型 │ │ ├── schemas/ # Pydantic 请求/响应 │ │ ├── api/ # REST 路由 (12 模块) │ │ ├── services/ # 业务逻辑层 │ │ ├── middleware/ # JWT 鉴权 + 角色权限 │ │ └── utils/ # 工具 (JWT/时区/edit_log) │ ├── alembic/ # 数据库迁移 │ └── requirements.txt ├── frontend/ │ ├── src/ │ │ ├── router/ # 路由 (mobile + desktop) │ │ ├── stores/ # Pinia 状态管理 │ │ ├── api/ # Axios API 封装 │ │ ├── views/ │ │ │ ├── mobile/ # 移动端页面 │ │ │ └── desktop/ # PC 端页面 │ │ └── components/ # 通用组件 │ ├── Dockerfile │ └── nginx.conf └── 政企周报管理系统-设计文档.md ``` ## 快速启动 ### 1. 配置环境变量 ```bash # 后端 cd backend cp .env.example .env # 编辑 .env 填入数据库/认证/存储信息 # 前端 cd frontend cp .env.example .env ``` ### 2. 启动基础设施 ```bash # 如已有 PostgreSQL + MinIO 实例可跳过 docker-compose up -d postgres minio ``` ### 3. 启动后端 ```bash cd backend uvicorn app.main:app --reload --port 8002 --host 0.0.0.0 # API 文档 → http://localhost:8002/docs ``` ### 4. 启动前端 ```bash cd frontend npm install npm run dev -- --host 0.0.0.0 # 页面 → http://localhost:5173 ``` ### 一键部署 ```bash docker-compose up -d # 后端 :8000 + PostgreSQL :5432 + MinIO :9000/:9001 # 前端需单独部署到 nginx,见 frontend/Dockerfile ``` ## 环境变量 | 配置项 | 说明 | 必须 | |--------|------|------| | `DATABASE_URL` | PostgreSQL 连接串 | ✅ | | `CASDOOR_*` | Casdoor OIDC 地址/Client ID/Secret | ✅ | | `MINIO_*` | MinIO 地址/密钥 | ✅ | | `SECRET_KEY` | JWT 签发密钥 | ✅ | | `CORS_ORIGINS` | 前端地址白名单 | ✅ | | `WECOM_*` | 企微 Corp ID / Agent ID / Secret | ⚠️ | | `VITE_CASDOOR_*` | 前端 Casdoor 配置 | ✅ |