# HZHub 员工门户

<div align="center">

### 企业员工门户系统

*HZHub 企业员工门户，提供审批流程、销售CRM、BI报表、AI应用集成等功能*

**[后端服务](https://github.com/hzhub/hzhub-ai)** | **[管理后台](https://github.com/hzhub/hzhub-admin)** | **[经销商门户](https://github.com/hzhub/hzhub-portal-dealer)**

</div>

## 功能特性

- 🔄 **审批流程**: 支持多级审批、流程管理
- 📊 **BI报表**: 实时数据分析、可视化报表
- 🤝 **CRM管理**: 客户管理、销售跟踪
- 🤖 **AI应用**: AI助手、智能问答
- 📱 **企业微信**: 支持企业微信H5集成

## 技术栈

- **框架**: Vue 3 + TypeScript
- **UI组件**: Element Plus
- **状态管理**: Pinia
- **构建工具**: Vite
- **HTTP请求**: hook-fetch (支持SSE流式传输)

## Docker 部署

### 一键启动（推荐）

```bash
cd hzhub-deploy
docker-compose up -d

# 访问员工门户
# 地址: http://localhost:5137
```

### 单独部署

```bash
# 进入项目目录
cd hzhub-portal-employee

# 构建并启动
docker-compose up -d --build
```

### 服务端口

| 服务 | 端口 | 说明 |
|------|------|------|
| 员工门户 | 5137 | 员工前端访问地址 |
| 经销商门户 | 5138 | 经销商前端访问地址 |
| 管理后台 | 5666 | 管理后台访问地址 |
| 后端服务 | 6039 | 后端 API 服务 |

## 本地开发

```bash
# 安装依赖
pnpm install

# 启动开发服务器
pnpm dev

# 类型检查
pnpm build

# 代码检查
pnpm lint
```

## 环境变量配置

项目根目录 `.env.development` 文件：

```bash
VITE_API_URL=              # 后端API地址（默认通过Vite代理）
VITE_CLIENT_ID=e5cd7e4891bf95d1d19206ce24a7b32e
VITE_WEB_TITLE=Employee Portal 企业员工门户
```

## 登录超时配置

员工门户默认登录超时时间为30分钟，可通过修改数据库配置调整为1小时或其他时长。

**详细配置说明**: [TIMEOUT_CONFIG.md](./TIMEOUT_CONFIG.md)

**快速修改**:
```bash
# 执行SQL更新超时时间为1小时
mysql -u root -phzhub123 hzhub < /tmp/update_timeout_1hour.sql
```

**注意**: 修改后需要重新登录才能生效。

## 多租户支持

系统支持多租户架构，不同公司实体（集团总部、汇亚公司、恒福公司、玛缇公司）通过登录时选择不同租户进行数据隔离。

### 登录方式

1. **URL参数方式**: `http://localhost:5137/login?tenant=000002`
2. **手动选择方式**: 在登录界面选择公司

## 项目结构

```
hzhub-portal-employee/
├── src/
│   ├── api/           # API模块
│   ├── components/    # 可复用组件
│   ├── layouts/       # 布局组件
│   ├── pages/         # 页面组件
│   ├── routers/       # 路由配置
│   ├── stores/        # Pinia状态管理
│   ├── styles/        # 样式文件
│   └── utils/         # 工具函数
├── public/            # 静态资源
├── .env.development   # 开发环境配置
├── Dockerfile         # Docker构建文件
├── nginx.conf         # Nginx配置
└── package.json       # 项目配置
```

## 常见问题

**Q: 如何切换不同公司登录？**

A: 通过URL参数 `?tenant=租户ID` 或在登录页面手动选择公司。

**Q: 如何连接后端服务？**

A: 开发环境通过Vite代理，生产环境通过Nginx代理配置 `UPSTREAM_URL`。

## 开源协议

本项目采用 **MIT 开源协议**。

---

<div align="center">

*用 ❤️ 打造，由 HZHub 团队维护*

</div>
