Files
iotlcm/app/README.md
MiFaZhan 42d12d905a
mirror-to-gitee / mirror (push) Successful in 5s
chore: 小程序线(app)固定 v1.0.2,不跟随平台 tag
版本号与功能一一对应:小程序线功能停在 v1.0.2,镜像 tag 也停在 v1.0.2,
平台后续发 v1.0.5 时它不动。

- deploy/docker-compose.yml:app-server / app-web 两行回退 v1.0.2
- Makefile:IMAGE_MAP 增加第 5 列「固定版本」,app 两行填 v1.0.2,
  本地构建与 CI 行为一致
- 根 README:新增「小程序线是独立版本线」说明
- app/README.md:标注本目录对应 v1.0.2,不跟随平台 tag
- 文档:deploy/README 版本表、build-image 的 tag 表与说明、
  offline / prerequisites / configuration 示例 tag 全部回退 v1.0.2

CI 侧由 Jenkins 流水线的 PIN 表(app|v1.0.2)保证:tag 构建自动跳过 app,
需要重建时单独触发 SERVICES=app VERSION=v1.0.2。
2026-11-02 14:11:13 +08:00

113 lines
3.8 KiB
Markdown
Raw Permalink 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.
# iotlcm-app
iotLCM 物联网卡全生命周期管理平台的**小程序端 + 用户端服务**。
> **版本线独立**:本目录对应小程序线的 **v1.0.2**,不跟随平台 tag(平台当前为 v1.0.4)。
> 功能变更时才提升本线版本,镜像 tag 仍为 `iotlcm-app-server-<版本>` / `iotlcm-app-web-<版本>`。
- `app/` —— uni-app 小程序前端(基于 [unibest](https://github.com/unibest-tech/unibest),MIT)
- `server/` —— 用户端 GoFrame 服务(基于 XiuAdmin 框架,Apache-2.0)
配套管理后台:同仓 [`admin-svr/`](../admin-svr) / [`admin-ui/`](../admin-ui)
## 特性
**小程序端**(`app/`)
- 公开查卡:输入卡号即可查状态、流量、到期时间
- 卡片详情与用量曲线(日/月分库)
- 一键诊断:拍卡号或手输,问题排查直达
- 账号体系:组织下个人账号、角色权限
**用户端服务**(`server/`)
- 小程序端的业务后端:卡映射、诊断、订单、余额、消息、工单
- 独立于管理后台的用户域数据与权限
- 对接上游通道完成真实查卡与诊断
## 技术栈
- 前端:uni-app + Vue 3 + TypeScript + Vite 5 + UnoCSS + wot-ui + z-paging
- 后端:Go 1.25 + GoFrame v2 + MySQL + Redis
## 快速开始
### 后端
将 `server/config/config.example.yaml` 复制为 `server/config/config.yaml` 并填写自己的凭据;使用代码生成前同样将 `server/hack/config.example.yaml` 复制为 `server/hack/config.yaml`。
```bash
cd server
go mod tidy
go run .
```
默认监听 `:8199`。
### 小程序前端
```bash
cd app
pnpm install
pnpm dev:mp-weixin # 微信小程序,产物用微信开发者工具打开 dist/dev/mp-weixin
```
## 配置
| 位置 | 说明 |
| --- | --- |
| `server/config/config.example.yaml` | 后端配置(**公开版凭据为占位符**) |
| `app/env/.env*` | 前端环境变量(**公开版 AppID 为占位符**) |
后端配置占位:
| 配置项 | 占位 |
| --- | --- |
| `database.default.link` | `mysql:${DB_USER}:${DB_PASSWORD}@tcp(${DB_HOST}:3306)` |
| `redis.default.address` / `pass` | `${REDIS_ADDR}` / `${REDIS_PASSWORD}` |
| `jwt.signingKey` | `${JWT_SIGNING_KEY}` |
前端配置占位:
| 变量 | 占位 |
| --- | --- |
| `VITE_WX_APPID` | `YOUR_WX_APPID` |
| `VITE_UNI_APPID` | `__UNI__YOURAPPID` |
| `VITE_MP_SERVER_BASEURL` | `https://admin.iotlcm.example.com/app/api/v1` |
## 目录结构
```text
iotlcm-app/
├── app/ # uni-app 小程序前端
│ ├── src/pages/ # 页面(首页、查卡、诊断、登录等)
│ ├── src/constant/ # 常量与路由定义
│ ├── env/ # 环境变量
│ └── src/static/logo.svg # 应用图标
└── server/ # GoFrame 用户端服务
├── api/ # API 契约(app / common / gen)
├── internal/
│ ├── logic/app/ # 用户端业务逻辑
│ ├── model/ consts/ # 模型与常量
│ └── utility/ # 工具(含启动 banner)
├── config/ # 配置
└── storage/data/ # 框架基座初始化数据
```
## 初始化数据
`server/storage/data/xiu_admin.sql` 是框架基座初始化数据(系统菜单、字典、角色、示例账号),是运行起点的必要输入。
> **数据库 schema 不随本仓发布** —— 生产库的完整 DDL 已过时,请按需自建表结构。
## 上游与许可
| 部分 | 上游 | 许可 |
| --- | --- | --- |
| `app/` | [unibest](https://github.com/unibest-tech/unibest) | MIT(见 [`app/LICENSE`](./app/LICENSE)) |
| `server/` | XiuAdmin(GoFrame 中后台框架基座) | Apache-2.0(见 [`server/LICENSE`](./server/LICENSE)) |
## License
根目录 [LICENSE](./LICENSE) 为 Apache-2.0。