# 医生端公众号(umijs 版)- 白云
> React 单页面公众号应用 —— 主要使用 **react.js + [umijs](https://umijs.org/) + [antd-mobile](https://antd-mobile-v2.surge.sh/index-cn)** 等技术栈。
> 由于目前医生端业务体系,大同小异,为了追求更高的开发效率,在此项目中,集**4**个公众号于一身,分别是**太和医生端、我的工作站、白云医生端、医生端小程序内嵌 H5**,通过环境变量加以区分。
> 今后,可以根据实际医院需求,进行必要的拆分,或是二次开发,兼顾效率同时,也有充分的扩展性。
## 项目 Git
#### [Gogs Git address](https://gogs.ywtinfo.com/ywt/th_net_hospital_doctor)
#### 生产环境分支:prod_umi_v3
#### QA 环境分支:test_by
#### 开发环境分支:视需求版本而定,具体命名规则见文末
## 项目 Command
node 版本:v12.14.0,yarn(包管理工具) install
```javascript
// dev环境
yarn run start-by // 白云
// qa环境
yarn run build-by:qa // 白云
// prod环境
yarn run build-by // 白云
```
## jenkins deploy
分支代码更新后,需要在 jenkins 进行手动构建更新
qa 环境
南方医院白云分院医院公众号-医生端 [qa-nfyybyfydocwe_fe](https://jenkins.ywtinfo.com/job/qa-nfyybyfydocwe_fe/)
太和互联网医院公众号-医生端 [qa-thnetdocwe_fe](https://jenkins.ywtinfo.com/job/qa-thnetdocwe_fe/)
我的工作站 [qa-doctorwe](https://jenkins.ywtinfo.com/job/qa-doctorwe/)
医生端小程序内嵌 H5 [qa-thnetdocweapp-fe](https://jenkins.ywtinfo.com/job/qa-thnetdocweapp-fe/)
pro 环境
南方医院白云分院医院公众号-医生端
[product-fe-nfyybyfydocwe](https://jenkins.ywtinfo.com/job/product-fe-nfyybyfydocwe/)
太和互联网医院公众号-医生端 [product-fe-thnetdocwe_fe](https://jenkins.ywtinfo.com/job/product-fe-thnetdocwe_fe-%E5%8C%BB%E5%8A%A1%E9%80%9A%E4%BA%92%E8%81%94%E7%BD%91%E5%8C%BB%E9%99%A2%E5%8C%BB%E7%94%9F%E7%AB%AF/)
我的工作站
[product-fe-doctorwe](https://jenkins.ywtinfo.com/job/product-fe-doctorwe/)
医生端小程序内嵌 H5 [product-fe-thnetdocweapp-fe](https://jenkins.ywtinfo.com/job/product-fe-thnetdocweapp-fe/)
## 文件目录
以下文件说明,请先参考[umijs v3 文档](https://umijs.org/zh-CN/docs/directory-structure)
```javascript
`只备注官方文档没有提及的文件和文件目录
.
├── README.md
├── dist
├── mock
├── node_modules
├── package.json
├── public
├── src
│ ├── app.js
│ ├── assets // 存放各种项目资源
│ ├── common // 通用hoc(高阶组件)
│ ├── components // 项目组件库
│ ├── config // 项目配置文件和项目相关的静态列表
│ ├── global.less // 全局样式,这里使用less
│ ├── layouts
│ ├── models
│ ├── pages
│ ├── routes.js // 自定义路由文件
│ ├── services // 接口服务
│ └── utils // 各种工具库
├── tsconfig.json // typescript 配置文件
├── .editorconfig // 编辑器配置
├── .env
├── .eslintrc // eslint 配置文件
├── .gitignore
├── .prettierignore // prettier 过滤配置
├── .prettierrc // prettier 配置文件
├── .umirc.js // umi 主配置文件,默认环境是dev(开发)
├── .umirc.prod.js // umi prod(生产)环境配置文件,会与主配置文件合并
├── .umirc.qa.js // umi qa环境配置文件,会与主配置文件合并
└── yarn.lock
```
## 技术/业务要点
- 通过 package.json 中不同 environment,可以很方便的切换到不同的环境和平台;
- 本项目可以使用最新 react-hook 语法,也可以和 class 类混编共存;
- 使用 postcss-px-to-viewport 插件转换 px 单位,从而实现页面宽度自适应;
- 医生端小程序内嵌 H5 项目,需要 checkout 分支 weapp,可以使用 yarn run start/build:qa/build 进行对应操作;
- 发布正式版本,一般都使用 prod_umi_v3 分支,把其他测试通过的分支合并在此分支再发布;
- 开发版本号以 dv 开头 x.y.z,分别是主版本号、副版本号、次版本号,(b_vx2.y2.z2&vx1.y1.z1),括号里边是需求版本号,这个当前开分支包含两个需求版本,b\_开头是白云需求版本,没有 b\_默认代表太和需求版本;
## 备注
- 医生端处方相关业务比较复杂,需要好好看需求再看代码;
- 目前使用 umijs v3 版本,未来可以集成 typescript 尝试混编。