Files
Docker/uniapp/youjiala/README.md
T
2026-10-13 10:47:39 +08:00

88 lines
3.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.
# 有家相册(uni-app 跨端前端)
家庭相册、家族树与文档共享的 uni-app 前端:一套源码出 H5、微信小程序、App 三端。
业务后端是 CloudBuilder(.NET),本仓库的前身是旧管理端 WebVue 的迁移工程。
## 技术栈
Vue 3 + TypeScript + Vite + uni-app + uview-pro + Pinia + vue-i18n。
**包管理器统一使用 npm**(脚手架附带的 pnpm 配置已移除,请勿提交 `pnpm-lock.yaml`)。
## 环境要求
- Node >= 18
- npm >= 9
## 快速开始
```bash
npm install
npm run dev # H5,默认连本机后端
npm run dev:mp-weixin # 微信小程序:产物在 dist/build/mp-weixin,用微信开发者工具导入该目录
npm run dev:app # App:产物在 dist/dev/app,再用 HBuilderX 打包运行
```
发布构建与检查:
| 命令 | 作用 |
| --- | --- |
| `npm run build` | H5 发布构建 |
| `npm run build:mp-weixin` | 微信小程序发布构建 |
| `npm run build:app` | App 发布构建 |
| `npm run type-check` | vue-tsc 全量类型检查 |
| `npm run lint` / `npm run lint:fix` | ESLint 检查 / 自动修复 |
## 后端地址(.env 分层)
换环境只改项目根的 `.env` / `.env.development` / `.env.production`,不要在代码里写死地址:
| 变量 | 生效场景 | 缺省回落值 |
| --- | --- | --- |
| `VITE_WEB_API_ROOT` | 发布构建 | `https://uat.youjiala.com` |
| `VITE_WEB_API_ROOT_DEV` | 开发构建(H5) | `http://localhost:5235` |
| `VITE_WEB_API_ROOT_DEV_APP` | 开发构建(App 真机/模拟器) | `https://uat.youjiala.com` |
变量缺失时由 `src/policy/custom/webSitePolicy.ts` 的常量兜底,删掉 `.env` 也能构建出可用产物。
取值口径、新增变量的步骤与三端差异见 [src/md/environment.md](src/md/environment.md)。
## 目录速览
```
src/
├── api/ service/ 后端接口封装(service/* 由代码生成器维护)
├── common/ 请求拦截器、全局错误边界、样式与常量
├── pages/ 页面:login / dashboard / error(page401,403,404)
├── permission/ 权限内核与页面权限表
├── policy/custom/ 站点配置(.env 的 fallback)
├── router/ 路径别名、导航拦截器
├── stores/ Pinia
├── md/ 工程文档(下表)
└── manifest.json 三端应用身份(appid / bundleName)
```
## 改代码前先读的文档
| 文档 | 讲什么 |
| --- | --- |
| [src/md/environment.md](src/md/environment.md) | .env 分层、mode 映射、三端读取差异 |
| [src/md/error-handling.md](src/md/error-handling.md) | 全局错误边界与「已提示过就不再打扰」的口径 |
| [src/md/permission.md](src/md/permission.md) | 权限模型、页面权限表、菜单可见性 |
| [src/md/page-routing.md](src/md/page-routing.md) | 路由别名、导航拦截、错误页跳转链 |
代码风格由 ESLint 约束,但 IDE 里同时生效的 Prettier 与它存在少量对撞规则(箭头括号、运算符换行位置);
冲突写法已在文档里给了规避方式,遇到 `--fix` 反复回退请改写构造而不是硬碰。
## 待替换的应用身份
`src/manifest.json` 与 `harmony-configs/build-profile.json5` 里的脚手架身份已清成占位,正式发布前需逐项替换:
- DCloud `appid`:当前为占位 `__UNI__YJL0001`,需在 HBuilderX 登录自有账号后重新领取
- 微信小程序 `appid`:故意留空(构建时回落为 `touristappid`,只能本地预览),发布前换成自有 AppID
- 鸿蒙 `bundleName`:当前 `com.youjiala.app`,需与华为侧注册的包名一致
- 鸿蒙签名材料路径:`harmony-configs/build-profile.json5` 里指向 `./signing/youjiala.*`,需放入自有证书
## 许可
界面组件库 uview-pro 与其脚手架遵循 MIT(见 `LICENSE`);业务代码版权归本项目所有。