# 组长端订单审批功能实施方案 ## 📅 创建日期 2025-10-28 ## 🎯 功能目标 实现组长端对客服提交的订单分配进行审批的完整流程,包括审批入口、审批操作、状态流转和历史记录。 --- ## 一、业务流程梳理 ### 1.1 完整流程 ``` 客服端提交订单分配 ↓ 项目进入"待组长确认"状态 (currentStage: '订单分配', 附带 pendingApproval 标记) ↓ 组长在工作台看到待审批项目 ↓ 组长点击进入项目详情页 ↓ 组长审核订单内容(报价、设计师分配、项目信息) ↓ 组长做出决策: - 通过审批 → 项目进入"确认需求"阶段 - 驳回审批 → 项目退回"订单分配"阶段,客服端显示驳回原因 ↓ 记录审批历史 ↓ 发送通知(可选) ``` ### 1.2 关键状态定义 #### Project 数据结构扩展 ```typescript Project { currentStage: string, // '订单分配' | '确认需求' | '方案确认' | ... status: string, // '待分配' | '进行中' | '已完成' | ... data: { // 新增审批相关字段 approvalStatus?: 'pending' | 'approved' | 'rejected', // 当前审批状态 approvalHistory: ApprovalRecord[], // 审批历史记录 pendingApprovalBy?: string, // 待审批人角色 'team-leader' lastRejectionReason?: string // 最近一次驳回原因 } } // 审批记录接口 interface ApprovalRecord { stage: string; // 审批阶段:'订单分配' submitter: { // 提交人信息 id: string; name: string; role: string; }; submitTime: Date; // 提交时间 status: 'pending' | 'approved' | 'rejected'; // 审批状态 approver?: { // 审批人信息(通过/驳回后填写) id: string; name: string; role: string; }; approvalTime?: Date; // 审批时间 reason?: string; // 驳回原因 comment?: string; // 审批备注 quotationTotal: number; // 报价总额快照 teams: TeamSnapshot[]; // 团队分配快照 } interface TeamSnapshot { id: string; name: string; spaces: string[]; // 分配的空间 } ``` --- ## 二、前端实现方案 ### 2.1 组长工作台增强(dashboard.ts) #### 2.1.1 待审批项目标识优化 当前已有 `pendingApprovalProjects` 计算属性,需要调整筛选逻辑: ```typescript // 位置:src/app/pages/team-leader/dashboard/dashboard.ts // 修改现有的 getter get pendingApprovalProjects(): Project[] { return this.projects.filter(p => { const stage = (p.currentStage || '').trim(); const approvalStatus = p.data?.approvalStatus; // 1. 阶段为"订单分配"且审批状态为 pending // 2. 或者阶段为"待确认"/"待审批" return (stage === '订单分配' && approvalStatus === 'pending') || stage === '待审批' || stage === '待确认'; }); } ``` #### 2.1.2 待审批项目卡片视觉增强 在项目卡片上添加醒目的"待审批"标识: ```html
请仔细审核以下订单信息
暂无分配设计师
驳回原因:{{ project.data?.lastRejectionReason }}