## 主要修改 ### 1. 登录租户选择修复 - 新增全局租户状态管理(useLoginTenantId hook) - 使用 @vueuse/core 的 createGlobalState 持久化租户选择 - 确保组件重新挂载时租户ID不丢失 - 修复登录时租户自动跳回第一个的问题 - 删除登录时强制覆盖租户ID的代码 - 用户选择的租户现在会被正确使用 - 恢复"记住登录"功能 - 自动恢复上次登录的租户、用户名、密码 ### 2. ERP 动态API迁移 - 员工门户和经销商门户的ERP API从硬编码迁移到动态API系统 - /erp/customer/* → /erp/dynamic/v1/customer/* - 新增 customer/list, customer/detail, sales-areas, brands API - 修复API响应嵌套结构问题 - 动态API返回数据嵌套在 data 字段中 - 调整响应类型定义和数据处理逻辑 ### 3. 经销商管理数据显示修复 - 处理动态API响应的嵌套数据结构 - 兼容 res.rows 和 res.data.rows 两种格式 - 添加详细调试日志便于排查问题 ## 文件清单 - 新增文件: - hzhub-portal-employee/src/hooks/useLoginTenantId.ts - hzhub-portal-dealer/src/hooks/useLoginTenantId.ts - hzhub-portal-employee/src/api/erp/index.ts - hzhub-portal-dealer/src/api/erp/index.ts - 修改文件: - 登录组件:TenantAccountPassword.vue, AccountPassword.vue - API文件:auth/index.ts, auth/types.ts - 经销商页面:dealer/index.vue ## 测试验证 - ✅ 租户下拉列表正常显示 - ✅ 选择租户后不会跳回第一个 - ✅ 记住登录功能可用 - ✅ 经销商管理页面数据正常显示 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
HZHub 员工门户
功能特性
- 🔄 审批流程: 支持多级审批、流程管理
- 📊 BI报表: 实时数据分析、可视化报表
- 🤝 CRM管理: 客户管理、销售跟踪
- 🤖 AI应用: AI助手、智能问答
- 📱 企业微信: 支持企业微信H5集成
技术栈
- 框架: Vue 3 + TypeScript
- UI组件: Element Plus
- 状态管理: Pinia
- 构建工具: Vite
- HTTP请求: hook-fetch (支持SSE流式传输)
Docker 部署
一键启动(推荐)
cd hzhub-deploy
docker-compose up -d
# 访问员工门户
# 地址: http://localhost:5137
单独部署
# 进入项目目录
cd hzhub-portal-employee
# 构建并启动
docker-compose up -d --build
服务端口
| 服务 | 端口 | 说明 |
|---|---|---|
| 员工门户 | 5137 | 员工前端访问地址 |
| 经销商门户 | 5138 | 经销商前端访问地址 |
| 管理后台 | 5666 | 管理后台访问地址 |
| 后端服务 | 6039 | 后端 API 服务 |
本地开发
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
# 类型检查
pnpm build
# 代码检查
pnpm lint
环境变量配置
项目根目录 .env.development 文件:
VITE_API_URL= # 后端API地址(默认通过Vite代理)
VITE_CLIENT_ID=e5cd7e4891bf95d1d19206ce24a7b32e
VITE_WEB_TITLE=Employee Portal 企业员工门户
登录超时配置
员工门户默认登录超时时间为30分钟,可通过修改数据库配置调整为1小时或其他时长。
详细配置说明: TIMEOUT_CONFIG.md
快速修改:
# 执行SQL更新超时时间为1小时
mysql -u root -phzhub123 hzhub < /tmp/update_timeout_1hour.sql
注意: 修改后需要重新登录才能生效。
多租户支持
系统支持多租户架构,不同公司实体(集团总部、汇亚公司、恒福公司、玛缇公司)通过登录时选择不同租户进行数据隔离。
登录方式
- URL参数方式:
http://localhost:5137/login?tenant=000002 - 手动选择方式: 在登录界面选择公司
项目结构
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 开源协议。
用 ❤️ 打造,由 HZHub 团队维护