# 🏢 企业注册功能说明

## ✨ 功能概述

用户注册时需要选择所属企业，系统已预置5家企业供选择。用户注册后将自动关联到所选企业。

---

## 🏭 可选企业列表

### **1. 绿野农业科技有限公司**
- 企业代码：LYNY001
- 企业类型：种植企业
- 地址：江苏省南京市江宁区农业科技园区
- 联系人：李经理
- 电话：025-12345678
- 状态：✅ 运营中

### **2. 丰收农场管理集团**
- 企业代码：FSNC002
- 企业类型：综合农场
- 地址：山东省济南市章丘区现代农业示范区
- 联系人：王总
- 电话：0531-87654321
- 状态：✅ 运营中

### **3. 智慧农业示范基地**
- 企业代码：ZHNY003
- 企业类型：示范基地
- 地址：浙江省杭州市萧山区智慧农业园
- 联系人：陈主任
- 电话：0571-23456789
- 状态：✅ 运营中

### **4. 现代农业合作社**
- 企业代码：XDNY004
- 企业类型：合作社
- 地址：河南省郑州市中牟县农业园区
- 联系人：赵理事长
- 电话：0371-34567890
- 状态：✅ 运营中

### **5. 优质粮食生产基地**
- 企业代码：YZLS005
- 企业类型：粮食基地
- 地址：黑龙江省哈尔滨市五常市
- 联系人：孙场长
- 电话：0451-45678901
- 状态：✅ 运营中

---

## 📝 注册流程

### **步骤1：填写基本信息**
- 用户名（必填）
- 真实姓名（必填）
- 手机号（必填）

### **步骤2：选择所属企业** 🆕
- 从下拉列表中选择您所在的企业
- 显示企业名称、代码和类型
- 必须选择企业才能继续注册

### **步骤3：获取验证码**
- 点击"发送验证码"按钮
- 输入收到的短信验证码（测试环境固定为：123456）

### **步骤4：设置密码**
- 输入密码（至少6位）
- 确认密码

### **步骤5：完成注册**
- 输入图形验证码
- 点击"立即注册"
- 注册成功后自动登录

---

## 🎯 企业关联说明

### **用户注册后**
- ✅ 自动绑定到所选企业
- ✅ 企业名称显示在用户信息中
- ✅ 用户菜单中显示所属企业
- ✅ 个人中心显示企业信息

### **企业数据隔离**
- 同一企业的用户可以看到企业内的数据
- 不同企业的用户数据相互隔离
- 管理员可以管理本企业的所有用户

### **默认权限**
新注册用户默认权限：
- `machinery:view` - 查看农机信息
- `field:view` - 查看地块信息
- `operation:view` - 查看农事操作
- 角色：普通用户（user）
- 部门：待分配

---

## 🔒 企业验证机制

### **注册验证**
1. ✅ 检查企业ID是否存在
2. ✅ 检查企业状态是否为"active"
3. ✅ 验证企业是否可用
4. ✅ 绑定用户到企业

### **安全机制**
- 只有状态为"active"的企业可以注册新用户
- 企业停用后无法注册新用户
- 已注册用户不受企业停用影响

---

## 📊 用户信息展示

### **登录后显示**

**导航栏用户菜单**：
```
┌─────────────────────────────┐
│  👤 张三                    │
│  普通用户                    │
├─────────────────────────────┤
│  用户名: zhangsan           │
│  手机号: 13900139000        │
│  所属企业: 绿野农业科技有限公司 │  ← 新增
│  部门: 待分配               │
│  上次登录: 2024-10-15 14:30  │
├─────────────────────────────┤
│  👤 个人中心                │
│  🚪 退出登录                │
└─────────────────────────────┘
```

---

## 🎨 注册界面

### **企业选择下拉框**
```
┌────────────────────────────────────┐
│ 🏢 请选择所属企业               ▼  │
├────────────────────────────────────┤
│ 绿野农业科技有限公司                │
│ LYNY001 · 种植企业                 │
├────────────────────────────────────┤
│ 丰收农场管理集团                    │
│ FSNC002 · 综合农场                 │
├────────────────────────────────────┤
│ 智慧农业示范基地                    │
│ ZHNY003 · 示范基地                 │
├────────────────────────────────────┤
│ 现代农业合作社                      │
│ XDNY004 · 合作社                   │
├────────────────────────────────────┤
│ 优质粮食生产基地                    │
│ YZLS005 · 粮食基地                 │
└────────────────────────────────────┘
```

### **显示信息**
- 企业名称（主要显示）
- 企业代码 · 企业类型（辅助信息）
- 只显示状态为"active"的企业

---

## 💡 使用示例

### **示例1：新用户注册**
```typescript
// 用户填写信息
{
  username: 'wangwu',
  realName: '王五',
  phone: '13900139003',
  enterpriseId: 'ent-2',  // 选择"丰收农场管理集团"
  password: 'wangwu123',
  code: '123456',
  captcha: 'ABCD'
}

// 系统处理
1. 验证企业存在且可用 ✓
2. 创建用户账号 ✓
3. 关联企业信息 ✓
   - enterpriseId: 'ent-2'
   - enterpriseName: '丰收农场管理集团'
4. 自动登录系统 ✓
```

### **示例2：查看用户信息**
```typescript
// 登录后的用户信息
{
  id: 'user-12345',
  username: 'wangwu',
  realName: '王五',
  phone: '13900139003',
  role: 'user',
  enterpriseId: 'ent-2',
  enterpriseName: '丰收农场管理集团',
  department: '待分配',
  permissions: ['machinery:view', 'field:view', 'operation:view']
}
```

---

## 🔧 技术实现

### **数据结构**

**Enterprise类型**：
```typescript
interface Enterprise {
  id: string;              // 企业ID
  name: string;            // 企业名称
  code: string;            // 企业代码
  type: string;            // 企业类型
  status: 'active' | 'inactive';  // 状态
  address?: string;        // 地址
  contact?: string;        // 联系人
  phone?: string;          // 电话
  createdAt: string;       // 创建时间
}
```

**User类型（更新）**：
```typescript
interface User {
  // ... 原有字段
  enterpriseId: string;       // 企业ID（新增）
  enterpriseName: string;     // 企业名称（新增）
}
```

### **核心函数**

**获取企业列表**：
```typescript
getAllEnterprises(): Enterprise[]
// 返回所有状态为"active"的企业
```

**根据ID获取企业**：
```typescript
getEnterpriseById(id: string): Enterprise | undefined
// 根据企业ID获取企业详情
```

**注册验证**：
```typescript
registerUser(form: RegisterForm): Promise<Result>
// 验证企业ID
// 检查企业状态
// 创建用户并关联企业
```

---

## ⚠️ 注意事项

### **必须选择企业**
- 注册时必须选择所属企业
- 不选择企业无法完成注册
- 系统会提示"请选择所属企业"

### **企业验证**
- 只能选择状态为"active"的企业
- 企业停用后不会出现在列表中
- 已注册用户不受企业状态变化影响

### **测试账号**
测试账号已关联到"绿野农业科技有限公司"：
- admin（系统管理员）
- zhangsan（部门经理）

---

## 📈 未来扩展

### **可能的扩展功能**
- [ ] 企业管理模块（新增、编辑、停用企业）
- [ ] 企业审核机制（新企业需要审核）
- [ ] 企业层级结构（总部、分公司）
- [ ] 跨企业协作（企业间数据共享）
- [ ] 企业统计报表（用户数、设备数）
- [ ] 企业自定义配置（Logo、主题色）
- [ ] 企业邀请码（通过邀请码加入企业）
- [ ] 企业切换功能（用户可属于多个企业）

---

## 🆘 常见问题

**Q: 如果没有我的企业怎么办？**
A: 当前版本暂不支持自助创建企业，请联系系统管理员添加企业。

**Q: 可以更换企业吗？**
A: 当前版本不支持用户自行更换企业，需要联系管理员处理。

**Q: 企业信息可以修改吗？**
A: 企业信息由系统管理员管理，普通用户无权修改。

**Q: 不同企业的数据会互相看到吗？**
A: 不会，系统实现了企业级数据隔离。

---

## 📞 技术支持

如有问题，请联系系统管理员或查看：
- `/AUTH_SYSTEM_GUIDE.md` - 认证系统完整指南
- `/AUTH_FEATURES.md` - 功能特性清单

---

**更新时间**: 2024-10-15  
**版本**: v1.1.0  
**新功能**: ✅ 企业选择功能
