# 医生端公众号（umijs 版）- 太和

> React 单页面公众号应用 —— 主要使用 **react.js + [umijs](https://umijs.org/) + [antd-mobile](https://antd-mobile-v2.surge.sh/index-cn)** 等技术栈。<br/>
> 由于目前医生端业务体系，大同小异，为了追求更高的开发效率，在此项目中，集**4**个公众号于一身，分别是**太和医生端、我的工作站、白云医生端、医生端小程序内嵌 H5**，通过环境变量加以区分。<br/>
> 今后，可以根据实际医院需求，进行必要的拆分，或是二次开发，兼顾效率同时，也有充分的扩展性。

## 项目 Git

#### [Gogs Git address](https://gogs.ywtinfo.com/ywt/th_net_hospital_doctor)

#### 生产环境分支：prod_umi_v3

#### QA 环境分支：test

#### 开发环境分支：视需求版本而定，具体命名规则见文末

## 项目 Command

node 版本：v12.14.0，yarn(包管理工具) install

```javascript
// dev环境
yarn run start  // 太和

// qa环境
yarn run build:qa  // 太和

// prod环境
yarn run build  // 太和
```

## jenkins deploy

分支代码更新后，需要在 jenkins 进行手动构建更新

qa 环境 <br />
南方医院白云分院医院公众号-医生端 [qa-nfyybyfydocwe_fe](https://jenkins.ywtinfo.com/job/qa-nfyybyfydocwe_fe/) <br />
太和互联网医院公众号-医生端 [qa-thnetdocwe_fe](https://jenkins.ywtinfo.com/job/qa-thnetdocwe_fe/) <br />
我的工作站 [qa-doctorwe](https://jenkins.ywtinfo.com/job/qa-doctorwe/) <br />
医生端小程序内嵌 H5 [qa-thnetdocweapp-fe](https://jenkins.ywtinfo.com/job/qa-thnetdocweapp-fe/) <br />
　<br />
pro 环境 <br />
南方医院白云分院医院公众号-医生端
[product-fe-nfyybyfydocwe](https://jenkins.ywtinfo.com/job/product-fe-nfyybyfydocwe/) <br />
太和互联网医院公众号-医生端 [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/) <br />
我的工作站
[product-fe-doctorwe](https://jenkins.ywtinfo.com/job/product-fe-doctorwe/) <br />
医生端小程序内嵌 H5 [product-fe-thnetdocweapp-fe](https://jenkins.ywtinfo.com/job/product-fe-thnetdocweapp-fe/) <br />

## 文件目录

以下文件说明，请先参考[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 尝试混编。
