面向弱电智能化工程现场的团队协同系统:后端 RESTful API + Web 管理控制台 + 微信小程序。 支持多工地、多成员协作,管理施工任务 / 进度 / 人员 / 设备,现场拍照上传、进度更新,含登录与站点级权限控制。
- 后端:Python 标准库
http.server+sqlite3,零第三方依赖,单进程即可运行 - 前端控制台:单文件
public/index.html(内联 CSS/JS,localStorage 存 Token,同源托管) - 小程序:微信小程序原生(WXML/WXSS/JS),通过
wx.request/wx.uploadFile与后端通信 - 鉴权:Bearer Token(登录签发,API 走
Authorization头);密码用 PBKDF2-HMAC-SHA256 加盐哈希 - 权限:站点级
admin / member / viewer三角色
weakcurrent_site_mgmt/
├── server.py # 后端 API(零依赖)
├── public/index.html # Web 管理控制台(同端口托管)
├── test_api.py # 后端端到端联调脚本
├── miniprogram/ # 微信小程序源码
│ ├── config.js # ⚠️ 改成你的公网 HTTPS 域名
│ ├── utils/api.js # 请求封装(含照片上传)
│ ├── app.js/json/wxss
│ └── pages/ # login / sites / tasks / task-detail / equipment / profile
├── deploy/ # 服务器部署包
│ ├── Dockerfile
│ ├── docker-compose.yml
│ ├── nginx.conf
│ ├── weakcurrent-site-mgmt.service # systemd 单元
│ └── DEPLOY.md # 上线运行手册
└── uploads/ # 运行时生成的现场照片(已在 .gitignore 排除)
cd weakcurrent_site_mgmt
PYTHONIOENCODING=utf-8 python server.py 8000
# 浏览器打开 http://127.0.0.1:8000 → Web 控制台小程序用微信开发者工具打开 miniprogram/ 目录,先把 config.js 的 BASE_URL 指向本机
(开发时可在开发者工具勾选「不校验合法域名」)。
python test_api.py # 注册/登录/工地/成员/任务/进度/拍照/设备/权限 全流程 21 项断言| 角色 | 能力 |
|---|---|
| admin(工地创建者自动获得) | 管理成员、改角色、删成员、改工地信息、增删设备 |
| member | 建任务、更新进度、上传照片、增删设备 |
| viewer | 只读(看任务/设备/成员/统计) |
未登录访问任何 /api/*(除 register/login)返回 401;非工地成员访问返回 403。
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| POST | /api/register | 注册用户 | 公开 |
| POST | /api/login | 登录拿 Token | 公开 |
| POST | /api/logout | 注销 | 登录 |
| GET | /api/me | 当前用户+我的工地 | 登录 |
| GET/POST | /api/sites | 工地列表 / 新建 | 登录 / 登录 |
| GET/PUT | /api/sites/<id> |
工地详情 / 改信息 | member / admin |
| GET/POST | /api/sites/<id>/members |
成员列表 / 邀请 | 成员 / admin |
| PUT/DELETE | /api/sites/<id>/members/<uid> |
改角色 / 移除 | admin |
| GET/POST | /api/sites/<id>/tasks |
任务列表 / 新建 | 成员 / member |
| GET/PUT | /api/tasks/<id> |
任务详情 / 改 | 成员 / member |
| POST | /api/tasks/<id>/progress |
更新进度(可带照片) | member |
| GET/POST | /api/sites/<id>/equipment |
设备列表 / 新建 | 成员 / member |
| PUT | /api/equipment/<id> |
改设备状态 | member |
| GET | /api/sites/<id>/stats |
统计 | 成员 |
| POST | /api/upload | 现场照片上传(multipart) | member |
数据格式:请求/响应均为 JSON(除
/api/upload为multipart/form-data)。 小程序与控制台共用同一套接口与字段命名,无需任何转换。