按照用户要求,为交付执行阶段添加了完整的改图工单管理系统,不包含消息面板(因为消息沟通在企业微信群内进行),保持原有简洁布局,所有数据存储在Project.data字段中。
文件: src/app/pages/services/revision-task.service.ts
核心功能:
数据存储:
Project.data = {
// 大修改工单(正式工单)
revisionTasks: [
{
id: string;
type: 'major';
spaceIds: string[]; // 涉及的空间
spaceNames: string[]; // 空间名称
estimatedDays: string; // 预计时间
description: string; // 修改描述
status: RevisionStatus;
// 创建信息、审批信息、报价信息...
}
],
// 小修改记录(内部处理)
minorRevisions: [
{
id: string;
type: 'minor';
description: string;
createdBy: string;
createdByName: string;
createdAt: Date;
}
]
}
文件:
src/modules/project/components/revision-task-modal/revision-task-modal.component.tssrc/modules/project/components/revision-task-modal/revision-task-modal.component.htmlsrc/modules/project/components/revision-task-modal/revision-task-modal.component.scss功能特性:
UI设计:
文件:
src/modules/project/components/revision-task-list/revision-task-list.component.tssrc/modules/project/components/revision-task-list/revision-task-list.component.htmlsrc/modules/project/components/revision-task-list/revision-task-list.component.scss功能特性:
权限控制:
修改文件:
src/modules/project/pages/project-detail/stages/stage-delivery.component.tssrc/modules/project/pages/project-detail/stages/stage-delivery-new.component.htmlsrc/modules/project/pages/project-detail/stages/stage-delivery-new.component.scss集成内容:
<div class="revision-toolbar">
<button class="btn-create-revision" (click)="openRevisionTaskModal()">
创建改图任务
</button>
<button class="btn-view-revisions" (click)="openRevisionTaskList()">
改图工单
<span class="task-count-badge">{{ revisionTaskCount }}</span>
</button>
</div>
// 加载工单数量
async loadRevisionTaskCount(): Promise<void>
// 打开/关闭创建工单弹窗
openRevisionTaskModal(): void
closeRevisionTaskModal(): void
// 打开/关闭工单列表
openRevisionTaskList(): void
closeRevisionTaskList(): void
// 工单创建/刷新回调
onRevisionTaskCreated(taskId: string): void
onRevisionTaskListRefresh(): void
// 获取可用空间列表
getAvailableSpacesForRevision(): SpaceOption[]
在loadData()方法中添加:
await this.loadRevisionTaskCount();
constructor(
// ... 现有依赖
private revisionTaskService: RevisionTaskService
)
组员创建工单
↓
存储到 Project.data.revisionTasks
↓
status: 'pending_approval'
↓
通知组长审批 (TODO: 企业微信通知)
↓
组长审批/驳回
↓
[批准] status: 'approved' → 通知客服报价
[驳回] status: 'rejected' → 流程结束
↓
客服报价
↓
status: 'quoted'
↓
客户/组长确认
↓
status: 'confirmed'
↓
设计师执行改图
↓
标记完成
↓
status: 'completed'
组员创建记录
↓
存储到 Project.data.minorRevisions
↓
内部可见,不通知客户
↓
直接执行修改
Project.data字段isTeamLeader: boolean // 组长权限(审批)
isCustomerService: boolean // 客服权限(报价)
type RevisionStatus =
| 'pending_approval' // 待审批
| 'approved' // 已批准
| 'quoted' // 已报价
| 'confirmed' // 执行中
| 'completed' // 已完成
| 'rejected' // 已驳回
| 'cancelled'; // 已取消
// RevisionTaskService 中
private async notifyTeamLeader(projectId: string, taskId: string): Promise<void> {
// TODO: 调用企业微信API发送通知
}
private async notifyCustomerService(projectId: string, taskId: string): Promise<void> {
// TODO: 调用企业微信API发送通知
}
src/app/pages/services/
├── revision-task.service.ts // 工单服务
src/modules/project/components/
├── revision-task-modal/
│ ├── revision-task-modal.component.ts // 创建工单弹窗组件
│ ├── revision-task-modal.component.html
│ └── revision-task-modal.component.scss
└── revision-task-list/
├── revision-task-list.component.ts // 工单列表组件
├── revision-task-list.component.html
└── revision-task-list.component.scss
src/modules/project/pages/project-detail/stages/
├── stage-delivery.component.ts // 集成工单功能
├── stage-delivery-new.component.html // 添加工单入口
└── stage-delivery-new.component.scss // 添加工单样式
DELIVERY_REVISION_IMPLEMENTATION.md // 实施总结(本文档)
DELIVERY_ENHANCEMENT_OVERVIEW.md // 原设计方案总览
DELIVERY_MESSAGE_DESIGN.md // 消息功能设计(未实施)
Project.data,易于查询和管理Project.data,易于管理完成时间:2025-11-18 实施人:Cascade AI Assistant