# 快速使用指南 - 项目负责人和空间场景

**日期**: 2025-10-24

---

## 🎯 已修复的问题

1. ✅ **项目列表负责人显示"未分配"** → 现在自动显示组长名字
2. ⚠️ **分配设计师时没有空间场景可选** → 需要先添加空间

---

## 📝 使用说明

### 1. 如何让项目显示组长作为负责人

**方法1: 在项目详情页选择项目组（推荐）**

1. 访问项目详情页：
   ```
   http://localhost:4200/admin/project-detail/{项目ID}/order
   ```

2. 在"设计师分配"卡片中，点击选择一个项目组

3. **自动效果**：
   - ✅ 项目的 `assignee` 自动设置为该项目组的组长
   - ✅ 控制台输出：`✅ 项目负责人已设置为组长: xxx`
   - ✅ 数据保存到数据库

4. 刷新项目管理页面：
   ```
   http://localhost:4200/admin/project-management
   ```

5. **验证**：该项目的"负责人"列应显示组长名字

---

**方法2: 创建项目时指定项目组**

```typescript
await projectService.createProject({
  title: '新项目',
  departmentId: '项目组ID', // ✅ 指定项目组ID
  customerId: '客户ID',
  status: '待分配'
});
```

效果：自动将该项目组的组长设置为项目负责人。

---

### 2. 如何添加空间场景

**问题**：分配设计师时，"指派空间场景"没有选项。

**原因**：该项目在 `Product` 表中没有空间记录。

**解决方案A: 在订单分配阶段添加空间（推荐）**

1. 进入项目详情页的"订单分配"阶段
2. 找到"空间配置"或类似区域
3. 点击"添加空间"按钮
4. 填写空间信息：
   - 空间名称：客厅、卧室、厨房等
   - 空间类型：living_room、bedroom、kitchen等
   - 面积、预算等
5. **保存** → 系统会调用 `ProductSpaceService.createProductSpace()` 创建记录

---

**解决方案B: Parse Dashboard 手动添加**

1. 打开Parse Dashboard

2. 进入 `Product` 表

3. 点击"Add Row"添加新行

4. 设置字段：
   ```
   project: Pointer<Project> → 选择项目
   productName: "客厅"
   productType: "living_room"
   space: {
     "spaceName": "客厅",
     "area": 30,
     "priority": 5,
     "complexity": "medium"
   }
   status: "not_started"
   ```

5. 保存

6. 刷新项目详情页，现在分配设计师时应该能看到"客厅"选项了

---

## 🧪 测试步骤

### 测试1: 验证负责人显示

1. **打开项目详情页**
   ```
   http://localhost:4200/admin/project-detail/APwk78jnrh/order
   ```

2. **选择项目组**
   - 在"设计师分配"区域
   - 选择任意项目组（如"汪奥组"）

3. **查看控制台**
   - 应该看到：`✅ 项目负责人已设置为组长: 汪奥`

4. **刷新项目列表**
   ```
   http://localhost:4200/admin/project-management
   ```

5. **验证**
   - "负责人"列应显示"汪奥"（组长名字）
   - 不再显示"未分配"

---

### 测试2: 验证空间场景

1. **添加空间**（使用解决方案A或B）

2. **刷新项目详情页**
   ```
   http://localhost:4200/admin/project-detail/APwk78jnrh/order
   ```

3. **选择项目组和设计师**
   - 选择项目组
   - 选择一个设计师

4. **查看弹窗**
   - "指派空间场景"区域应该显示空间列表
   - 例如：☑ 客厅、☐ 卧室、☐ 厨房

5. **选择空间并确认分配**

---

## 💡 重要提示

### 关于项目负责人

- **自动规则**：选择项目组时，自动将组长设置为项目负责人
- **优先级**：
  1. 明确指定的 `assignee`（最高优先级）
  2. 项目组的 `department.leader`（自动设置）
  3. "未分配"（兜底）

### 关于空间场景

- **数据来源**：从 `Product` 表查询
- **创建时机**：订单分配阶段添加空间
- **必要性**：分配设计师前必须先有空间

---

## 🔧 排查问题

### 问题1: 项目列表仍显示"未分配"

**可能原因**:
- 项目没有 `department` 字段
- 项目组没有 `leader` 字段

**解决方法**:
1. 访问项目详情页，选择一个项目组
2. 或在Parse Dashboard中手动设置：
   ```
   Project表 → 找到该项目
   → department字段 → 选择一个Department
   → assignee字段 → 选择该Department的leader
   → 保存
   ```

---

### 问题2: 没有空间场景可选

**可能原因**:
- `Product` 表中该项目没有记录

**解决方法**:
1. 在项目详情页的订单分配阶段添加空间
2. 或使用Parse Dashboard手动添加Product记录（见解决方案B）

---

### 问题3: 控制台报错

**如果看到**:
```
❌ 设置项目负责人失败: ...
```

**检查**:
- 项目组是否有组长（`department.leader` 不为空）
- Parse权限配置是否正确
- 网络连接是否正常

---

## 📚 相关文档

- 详细分析：`docs/task/2025102221-fix-project-assignee-and-spaces.md`
- 实现总结：`docs/task/2025102221-implementation-summary.md`

---

## 🎉 总结

### 核心改进

1. **自动化**：选择项目组 → 自动设置组长为负责人
2. **智能降级**：优先使用assignee，没有则使用leader
3. **数据完整**：查询时include department和leader

### 用户体验

- ✅ 项目列表清晰显示负责人
- ✅ 无需手动分配负责人
- ✅ 数据一致性保证

---

**修改完成！刷新浏览器测试吧！** 🚀


