125 lines
4.9 KiB
Markdown
125 lines
4.9 KiB
Markdown
# 山峡化工 · 微信小程序(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` 基址
|