Files
shanxia2.0/miniprogram/README.md
T
2026-07-17 21:59:47 +08:00

125 lines
4.9 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.
# 山峡化工 · 微信小程序(miniprogram)
基于 [uni-app](https://uniapp.dcloud.net.cn/) 的微信小程序工程,基础框架移植自叁强鲜配 `sqxp-wx`,已去除订单/配送等业务页面,保留可复用的基础设施,便于后续建设山峡业务。
## 技术栈
- uni-app(Vue 3 + Composition API)
- Pinia(用户态)+ Vuex(hello-uniapp 遗留壳)
- Vant Weapp(`wxcomponents`)
- uni-ui(`uni_modules`)
- RSA 登录加密(JSEncrypt)+ 请求封装(`utils/request.js`)
## 目录说明
| 路径 | 说明 |
|------|------|
| `pages/login/` | 登录、用户协议、隐私政策 |
| `pages/home/` | 占位首页(登录成功后跳转) |
| `config/` | API 基址、静态资源默认配置 |
| `stores/` | Pinia 用户 Store |
| `utils/` | 请求、RSA 登录、安全区、格式化等工具 |
| `components/` | 通用组件(安全区 Header、协议正文等) |
| `styles/` | 全局 SCSS 与 Token(对齐 `docs/miniprogram-ui-spec-sanqiang.md`) |
| `uni_modules/` | uni-app 官方/扩展组件 |
| `wxcomponents/` | Vant 小程序组件 |
## 本地开发
### 方式一:HBuilderX(推荐)
1. 安装 [HBuilderX App 开发版](https://www.dcloud.io/hbuilderx.html)
2. 用 HBuilderX 打开本目录 `miniprogram/`
3. 在 `manifest.json` → 微信小程序 中填写你的 **AppID**
4. 修改 `config/api.js` 中的 `DEV_BASE_URL` / `devBaseUrl`:
- 模拟器:`http://127.0.0.1:8000/api`
- 真机调试:改为电脑局域网 IP,如 `http://192.168.x.x:8000/api`
5. 确保 `backend/` 已启动(默认 `127.0.0.1:8000`)
6. 运行 → 运行到小程序模拟器 → 微信开发者工具
### 方式二:微信开发者工具
若已有编译产物,可导入 `unpackage/dist/dev/mp-weixin`(需先通过 HBuilderX 或 CLI 编译一次)。
## 接口约定
当前基础框架**复用 Web 管理端公共登录接口**(`backend/app/api/public.py`):
- `GET /api/web/auth/login-rsa-public-key`
- `POST /api/web/auth/login`
- `POST /api/web/auth/logout`
- `GET /api/web/auth/current-user`
后续若拆分小程序专用 `/api/mini/*` 路由,只需调整 `config/api.js` 中 `AUTH_API` 与 `stores/user.js` 调用路径。
## 发版前检查
```bash
cd miniprogram
npm run release:remind-api # 提醒核对 API 基址
npm run release:check-api # CI 严格模式:仍为本机地址则失败
```
## 视觉规范
UI Token 与页面骨架以仓库根目录 **`mobile-ui/`**(`shanxia-mp-base.css`、`shanxia-mp-*.html`)及 **`docs/miniprogram-ui-spec-sanqiang.md`** 为准。主品牌色:`#0a9f6d`(勿混用 Web Fresh Mint `#10b981`)。
## CRM(P1)
工作台 CRM 启用菜单已接业务页:
| 菜单 | 路径 |
|------|------|
| 线索 | `pages/crm/clue/*` |
| 商机 | `pages/crm/opportunity/*` |
| 客户 | `pages/crm/customer/*` |
| 公海 | `pages/crm/pool/list` |
| 报价 | `pages/crm/quote/*` |
| 合同 | `pages/crm/contract/*` |
接口复用管理端 `/web/crm/*`(需 admin 权限账号)。API 封装:`api/crm.js`。
## 报销(P2)
| 菜单 | 路径 |
|------|------|
| 待办任务 | `pages/bx/todo/list` |
| 报销申请 | `pages/bx/reimburse/*` |
| 报销/借款审批 | `pages/bx/approve/list?type=` |
| 借款申请 | `pages/bx/advance/*` |
| 我的单据 | `pages/bx/mine/list` |
接口:`/reimburses`、`/advances`、`/expense-items`、`/attachments`(协议 `code===0`)。封装:`api/bx.js`。拍照凭证走 BX 附件上传。
## 地磅(P3)
| 菜单 | 路径 |
|------|------|
| 仪表盘 | `pages/db/dashboard/index` |
| 地磅计划 | `pages/db/plans/*` |
| 地磅单 | `pages/db/weighing/*`(二次过磅 / 作废) |
| 出入库 | `pages/db/inventory/*` |
接口:`/dashboard`、`/plans`、`/weighing`、`/inventory`(**直出 JSON**,非门户信封)。封装:`api/db.js`。
## 运输(P4)
| 菜单 | 路径 |
|------|------|
| 运输计划 | `pages/pl/plan/*`(列表 Tab / 详情 / 安排运输) |
| 计划归档 | `pages/pl/archive/list` |
| 购买证上传 | `pages/pl/cert/*`(拍照凭证) |
| 运费结算 | `pages/pl/freight/list` + `detail` |
| 运费审批 | `pages/pl/freight/approval` |
接口:`/transport/plan`、`/transport/order/arrange`、`/transport/freight`(协议兼容 `code===0` 或直出)。封装:`api/pl.js`。
运费提交审批:底部 Sheet 多选审批人(`/web/admin/users/options` + `components/mp-approver-picker`),支持或签/顺序/会签。
## 后续建设建议
开发范围与分期进度见 **`docs/miniprogram-dev-checklist.md`**(含 §7.1 冒烟表)。
1. ~~P0~~ / ~~P1 CRM~~ / ~~P2 报销~~ / ~~P3 地磅~~ / ~~P4 运输~~ → **P5** 按冒烟表联调 + 合法域名 + `npm run release:check-api`
2. 灰卡菜单仍走 `biz-placeholder`;联调时核对微信合法域名与 `config/api.js` 基址