# 患者端互联网小程序(Taro) > 微信小程序应用 —— 主要使用 react.js + **[taro](https://docs.taro.zone/docs/)** + **[taroui](https://taro-ui.jd.com/#/)**等技术栈
> 本项目已升级到 taro3,相关组件的具体文档参考[Taro 文档](https://docs.taro.zone/docs/)
> 为了追求更高开发效率,根据业务需求的差异,在此仓库中集成**4**个独立小程序,分别是**太和患者端**、**白云患者端**、**云平台**、**支付小程序**。
> 今后,根据具体业务需求,可以进行代码拆解。完全可以独立成全新的小程序,进行某家医院的二次开发。 ## 项目 Git #### [Gogs Git address](https://gogs.ywtinfo.com/ywt/th_net_hospital_weapp) #### 生产环境分支:publish #### 开发环境分支:视需求版本而定,具体命名规则见文末 ## 项目 Command node version: v14.17.0,yarn(包管理工具) install ```json // 安装依赖 yarn 或者 npm install // 本地开发快速切换项目 yarn replace:patient // 太和 yarn replace:by // 白云 yarn replace:pay // 支付助手 yarn replace:yun // 云平台 // qa环境运行 yarn run dev:weapp // 太和 yarn run dev:weapp-by // 白云 yarn run dev:weapp-pay // 支付助手 yarn run dev:weapp-yun // 云平台 // qa环境打包 yarn run build-qa:weapp // 太和 yarn run build-qa:weapp-by // 白云 yarn run build-qa:weapp-pay // 支付助手 yarn run build-qa:weapp-yun // 云平台 // prod环境打包 yarn run build:weapp // 太和 yarn run build:weapp-by // 白云 yarn run build:weapp-pay // 支付助手 yarn run build:weapp-yun // 云平台 ``` ## 文件目录 以下文件说明,请先参考[Taro 文档](https://docs.taro.zone/docs/) ```javascript // 只备注官方文档没有提及的文件和文件目录 . ├── README.md ├── config // 各个小程序各种环境配置文件 ├── db.json ├── dist // 太和小程序打包产物目录 ├── dist_by // 白云小程序打包产物目录 ├── dist_pay // 支付小程序打包产物目录 ├── dist_yun // 云平台小程序打包产物目录 ├── mock-server.js // mock服务器启动文件 ├── mocks // mock相关测试数据 ├── node_modules ├── nodemon.json // 动态监控mocks数据变化 ├── package.json // 项目依赖 ├── project.config.by.json // 白云小程序项目配置文件,替换使用 ├── project.config.json // 小程序项目配置文件,默认加载 ├── project.config.patient.json // 太和小程序项目配置文件,替换使用 ├── project.config.pay.json // 支付小程序项目配置文件,替换使用 ├── project.config.yun.json // 云平台小程序项目配置文件,替换使用 ├── src │   ├── app.by.js // 白云入口app.js │   ├── app.js // 小程序主入口文件,默认加载 │   ├── app.less // 全局样式,默认加载 │   ├── app.patient.js // 太和入口app.js │   ├── app.pay.js // 支付入口app.js │   ├── app.yun.js // 云平台入口app.js │   ├── assets // 资源文件 │   ├── components // 公共组件库 | │   ├── ParserRichText // 解析富文本的组件 | │   ├── guangsan // 有关广三业务的组件 | │   ├── page_componets // 页面组件,包括检验检查结果 | │   ├── privacy // 隐私声明组件 | │   ├── utils // 工具组件,如选择地址/公告等 | │   └── ywt // 最常用,细化的组件,包括鉴权按钮/icon/checkbox等 │   ├── config // 项目相关配置文件,与环境配置文件区分使用 │   ├── constants // 各种常用变量 │   ├── index.html // h5项目才能使用的 │   ├── pages // 项目页面 | │   ├── article // 科普文章页面 | │   ├── by // 白云相关业务,如检验检查,体检预约等 | │   ├── consult // 咨询模块 | │   ├── dish // 营养餐模块 | │   ├── doctor // 医生模块 | │   ├── drug // 用药查询模块 | │   ├── follow // 随访模块 | │   ├── global // 全局公告页面,包含支付,登录页面等 | │   ├── guangsan // 广三业务 | │   ├── index // 入口 | │   ├── invoice // 电子发票 | │   ├── medical_device // 检查报告 | │   ├── notice // 通知模块 | │   ├── offline_consult // 线下就诊,包含建卡绑卡流程 | │   ├── order // 订单中心 | │   ├── outPatient // 门诊缴费 | │   ├── pay // 支付模块 | │   ├── prescription // 处方 | │   ├── protocol // 富文本公告协议页面 | │   ├── qrcodes // 核酸检测缴费 | │   ├── th // 太和相关业务 | │   └── users // 用户中心 │   ├── pages_yun // 云平台项目页面 │   ├── server // 接口和服务相关 │   ├── store // 全局状态管理 │   └── utils // 工具库 └── yarn.lock ``` ## 技术/业务要点 - 项目中组件库,一般划分成**5**种类型,**页面组件(复用整个页面)**,**原子组件(由较小的元素搭建而成)**,**业务组件(以某个业务划分的)**,**第三方组件(TaroUI)**,**第三方原生组件(使用原生小程序代码编写)**; - 业务组件数据中有不少字段判断,其中的含义可以查看后端接口文档; - 患者端小程序,通过**环境变量 + 配置文件**,生成不同项目的小程序。 - 环境变量已经在 package.json 中配置好,只需要运行 replace 命令行可自动修改相关的配置文件。 - 配置文件,都包含简写项目名称加以区分: - **by**: 白云小程序; - **patient**: 太和小程序; - **pay**: 支付小程序; - **yun**: 云平台小程序; - 项目入口页面为 ·src/pages/index/index.js'。在此页面加了比较多的逻辑和判断,例如:初始化配置、获取 token、跳转二维码等等; (PS:随着业务越来越多,这里也会增加其他判断,具体请看代码;) - 本项目中, 支付分为三类;**1,本地小程序支付;2,跳转到支付小程序支付;3,跳转第三方公司以外的支付小程序**。主要根据具体业务,收钱到哪个账户来判断。 - 本地支付:/pages/by/global/pay.js、/pages/pay/index.js; - 跳转支付小程序:/pages/page/index.js,因此,此页面既包含本地支付,也包含跳转支付的代码; - 支付跳转,一般调用 src/utils/utils.js 中 jumpPay function。具体请查看相关代码备注。 - 跳转第三方公司以外的支付小程序:一般调用 Taro.navigateToMiniProgram 具体看官方文档,可以参考 /pages/by/patient_dept_pay/detailYb.js - 开发版本号以 dv 开头 x.y.z.z1.z2,分别是主版本号、副版本号、次版本号、修改版本号...,(b_vx2.y2.z2&vx1.y1.z1),括号里边是需求版本号,这个当前开分支包含两个需求版本,b\_开头是白云需求版本,没有 b\_默认代表太和需求版本; - 举例: **dv2.8.3.4&b_dv0.0.7.9.1&y_dv0.1.2&p_dv1.1.8(v4.0.6&b_v1.2.2)**: - dv2.8.3.4:太和开发版本号(互联网医院),对应括号中 v4.0.6 需求版本号; - b_dv0.0.7.9.1: 白云开发版本号,对应括号中 b_v1.2.2 需求版本号; - y_dv0.1.2: 云平台开发版本号,对应括号 v4.0.6 或 b_v1.2.2 需求版本号其中之一,具体需要看需求; - p_dv1.1.8:支付开发版本号,对应括号 v4.0.6 或 b_v1.2.2 需求版本号其中之一,具体需要看需求。 - 每一个版本对应线上正式版本,上传之前需要 run 对应版本 build 或 build:qa 压缩文件体积,开发版由于体积过大无法上传。 ## 备注 - 患者端比较多业务使用支付功能,容易出现错误,请与后端开发一起联调;