# 医院中台系统

![项目Logo](./public/projectlogo.jpg)

## 项目简介

医院中台系统是一个基于 React 和 TypeScript 开发的现代化医疗管理平台。该系统采用微前端架构，提供统一的用户界面和业务功能。

## 技术栈

- React 18
- TypeScript
- UmiJS 3
- Ant Design 4
- Monaco Editor
- 微前端架构（qiankun）

## 开发环境要求

- Node.js >= 14
- Yarn >= 1.22
- Git

## 快速开始

### 安装依赖

```bash
yarn install
```

### 开发环境运行

```bash
# 包含 mock 数据
yarn start

# 开发环境（使用真实接口）
yarn start:dev
```

### 构建生产环境

```bash
yarn build
```

### 代码质量检查

```bash
# 运行 ESLint 检查
yarn lint

# 自动修复 ESLint 问题
yarn lint:fix

# 运行 Prettier 格式化
yarn prettier
```

## 项目结构

```
.
├── config/                 # 项目配置文件
├── mock/                   # Mock 数据
├── public/                 # 静态资源
├── src/                    # 源代码
│   ├── components/        # 公共组件
│   ├── layouts/          # 布局组件
│   ├── pages/            # 页面组件
│   ├── services/         # API 服务
│   └── utils/            # 工具函数
├── .eslintrc.js          # ESLint 配置
├── .prettierrc           # Prettier 配置
├── package.json          # 项目依赖
└── tsconfig.json         # TypeScript 配置
```

## 开发规范

### 代码风格

- 使用 ESLint 和 Prettier 进行代码格式化
- 遵循 TypeScript 严格模式
- 使用函数组件和 Hooks
- 遵循 React 最佳实践

### Git 提交规范

提交信息格式：
```
<type>(<scope>): <subject>

<body>

<footer>
```

type 类型：
- feat: 新功能
- fix: 修复
- docs: 文档
- style: 格式
- refactor: 重构
- test: 测试
- chore: 构建过程或辅助工具的变动

### 分支管理

- master: 主分支
- dev: 开发分支
- feature/*: 功能分支
- hotfix/*: 紧急修复分支

## 部署

### 环境要求

- Node.js >= 14
- Nginx >= 1.18

### 部署步骤

1. 构建项目
```bash
yarn build
```

2. 配置 Nginx
```nginx
server {
    listen 80;
    server_name your-domain.com;

    location / {
        root /path/to/dist;
        try_files $uri $uri/ /index.html;
    }
}
```

## 常见问题

### 1. 安装依赖失败

解决方案：
```bash
# 清除 yarn 缓存
yarn cache clean

# 重新安装依赖
yarn install
```

### 2. 开发环境接口代理

在 `config/proxy.ts` 中配置代理规则：
```typescript
export default {
  dev: {
    '/api/': {
      target: 'http://your-api-server',
      changeOrigin: true,
      pathRewrite: { '^/api': '' },
    },
  },
};
```

## 贡献指南

1. Fork 项目
2. 创建功能分支
3. 提交变更
4. 发起 Pull Request

## 版本历史

- v1.0.0 (2023-12-01)
  - 初始版本发布
  - 基础功能实现

## 维护者

- 开发团队

## 许可证

MIT License





## 医院中台

##### 背景：





##### 安装环境依赖：

```bash
npm i
```

or

```bash
yarn
```



##### 启动项目

```bash
npm run start //包含mock
npm run start:dev //开发环境，不使用mock,所有数据通过代理接口获取

//更过查看pakage.json
```



#### 预览

![image-20211126135739479](./public/preview.jpg)





##### 项目结构

```json

.
├── README.md
├── package-lock.json
├── package.json
├── src
│   ├── app.tsx
│   ├── components
│   │   └── kc-select
│   ├── global.less
│   ├── layouts
│   │   └── index.tsx
│   ├── pages
│   │   ├── 404.tsx
│   │   ├── index
│   │   └── login
│   ├── service
│   │   ├── api.d.ts
│   │   └── login.ts
│   └── typings.d.ts
├── tree.text
├── tsconfig.json
├── typings.d.ts
└── yarn.lock

8 directories, 14 files

```



#### 创建者有话说

```javascript
//该项目运用了大量类似关系
...
    const [data,setData] = useSate<DataType>();

    useEffect(()=>{
          //处理相关逻辑
    },[data]);
...


//master前缀是主应用的代理，/api是子应用的代理
dev: {
      '/master': {
        target: 'http://192.168.50.176:7000/',
        changeOrigin: true,
        pathRewrite: { '^/master': '' },
      },
      '/api': {
        target: 'http://192.168.50.190:8083/',
        changeOrigin: true,
        pathRewrite: { '^/api': '' },
      },
},

//项目数据共享使用的是umi 的model插件，每个page对应一个model.ts文件


```



#### RoadMap

- 2022-11-25 
- 

