|
@@ -194,8 +194,8 @@ interface DeliverySpace {
|
|
|
|
|
|
interface DeliveryProcess {
|
|
interface DeliveryProcess {
|
|
id: string;
|
|
id: string;
|
|
- name: string; // 流程名称:建模、软装、渲染
|
|
|
|
- type: 'modeling' | 'softDecor' | 'rendering';
|
|
|
|
|
|
+ name: string; // 流程名称:建模、软装、渲染、后期
|
|
|
|
+ type: 'modeling' | 'softDecor' | 'rendering' | 'postProcess';
|
|
spaces: DeliverySpace[]; // 该流程下的空间列表
|
|
spaces: DeliverySpace[]; // 该流程下的空间列表
|
|
isExpanded: boolean; // 是否展开
|
|
isExpanded: boolean; // 是否展开
|
|
content: {
|
|
content: {
|
|
@@ -253,8 +253,8 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
referenceImages: any[] = [];
|
|
referenceImages: any[] = [];
|
|
cadFiles: any[] = [];
|
|
cadFiles: any[] = [];
|
|
|
|
|
|
- // 新增:9阶段顺序(串式流程)- 删除后期阶段
|
|
|
|
- stageOrder: ProjectStage[] = ['订单创建', '需求沟通', '方案确认', '建模', '软装', '渲染', '尾款结算', '客户评价', '投诉处理'];
|
|
|
|
|
|
+ // 新增:9阶段顺序(串式流程)- 包含后期阶段
|
|
|
|
+ stageOrder: ProjectStage[] = ['订单创建', '需求沟通', '方案确认', '建模', '软装', '渲染', '后期', '尾款结算', '客户评价', '投诉处理'];
|
|
// 新增:阶段展开状态(默认全部收起,当前阶段在数据加载后自动展开)
|
|
// 新增:阶段展开状态(默认全部收起,当前阶段在数据加载后自动展开)
|
|
expandedStages: Partial<Record<ProjectStage, boolean>> = {
|
|
expandedStages: Partial<Record<ProjectStage, boolean>> = {
|
|
'订单创建': false,
|
|
'订单创建': false,
|
|
@@ -263,6 +263,7 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
'建模': false,
|
|
'建模': false,
|
|
'软装': false,
|
|
'软装': false,
|
|
'渲染': false,
|
|
'渲染': false,
|
|
|
|
+ '后期': false,
|
|
'尾款结算': false,
|
|
'尾款结算': false,
|
|
'客户评价': false,
|
|
'客户评价': false,
|
|
'投诉处理': false,
|
|
'投诉处理': false,
|
|
@@ -272,7 +273,7 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
sections: Array<{ key: SectionKey; label: string; stages: ProjectStage[] }> = [
|
|
sections: Array<{ key: SectionKey; label: string; stages: ProjectStage[] }> = [
|
|
{ key: 'order', label: '订单创建', stages: ['订单创建'] },
|
|
{ key: 'order', label: '订单创建', stages: ['订单创建'] },
|
|
{ key: 'requirements', label: '确认需求', stages: ['需求沟通', '方案确认'] },
|
|
{ key: 'requirements', label: '确认需求', stages: ['需求沟通', '方案确认'] },
|
|
- { key: 'delivery', label: '交付执行', stages: ['建模', '软装', '渲染'] },
|
|
|
|
|
|
+ { key: 'delivery', label: '交付执行', stages: ['建模', '软装', '渲染', '后期'] },
|
|
{ key: 'aftercare', label: '售后', stages: ['尾款结算', '客户评价', '投诉处理'] }
|
|
{ key: 'aftercare', label: '售后', stages: ['尾款结算', '客户评价', '投诉处理'] }
|
|
];
|
|
];
|
|
expandedSection: SectionKey | null = null;
|
|
expandedSection: SectionKey | null = null;
|
|
@@ -374,6 +375,22 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
'living': { images: [], progress: 0, status: 'pending', notes: '', lastUpdated: new Date() },
|
|
'living': { images: [], progress: 0, status: 'pending', notes: '', lastUpdated: new Date() },
|
|
'kitchen': { images: [], progress: 0, status: 'pending', notes: '', lastUpdated: new Date() }
|
|
'kitchen': { images: [], progress: 0, status: 'pending', notes: '', lastUpdated: new Date() }
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ id: 'postProcess',
|
|
|
|
+ name: '后期',
|
|
|
|
+ type: 'postProcess',
|
|
|
|
+ isExpanded: false,
|
|
|
|
+ spaces: [
|
|
|
|
+ { id: 'bedroom', name: '卧室', isExpanded: false, order: 1 },
|
|
|
|
+ { id: 'living', name: '客厅', isExpanded: false, order: 2 },
|
|
|
|
+ { id: 'kitchen', name: '厨房', isExpanded: false, order: 3 }
|
|
|
|
+ ],
|
|
|
|
+ content: {
|
|
|
|
+ 'bedroom': { images: [], progress: 0, status: 'pending', notes: '', lastUpdated: new Date() },
|
|
|
|
+ 'living': { images: [], progress: 0, status: 'pending', notes: '', lastUpdated: new Date() },
|
|
|
|
+ 'kitchen': { images: [], progress: 0, status: 'pending', notes: '', lastUpdated: new Date() }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
];
|
|
];
|
|
|
|
|
|
@@ -1230,6 +1247,7 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
'建模': '项目执行',
|
|
'建模': '项目执行',
|
|
'软装': '项目执行',
|
|
'软装': '项目执行',
|
|
'渲染': '项目执行',
|
|
'渲染': '项目执行',
|
|
|
|
+ '后期': '项目执行',
|
|
'尾款结算': '收尾验收',
|
|
'尾款结算': '收尾验收',
|
|
'客户评价': '收尾验收',
|
|
'客户评价': '收尾验收',
|
|
'投诉处理': '收尾验收'
|
|
'投诉处理': '收尾验收'
|
|
@@ -1788,10 +1806,10 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
this.postProcessImages = this.postProcessImages.filter(i => i.id !== id);
|
|
this.postProcessImages = this.postProcessImages.filter(i => i.id !== id);
|
|
}
|
|
}
|
|
|
|
|
|
- // 新增:后期阶段确认上传并自动进入下一阶段(已删除后期阶段,此方法保留但不会被调用)
|
|
|
|
|
|
+ // 新增:后期阶段 确认上传并自动进入下一阶段(尾款结算)
|
|
confirmPostProcessUpload(): void {
|
|
confirmPostProcessUpload(): void {
|
|
- // 由于删除了后期阶段,此方法不再使用
|
|
|
|
- console.log('后期阶段已删除,此方法不再使用');
|
|
|
|
|
|
+ if (this.postProcessImages.length === 0) return;
|
|
|
|
+ this.advanceToNextStage('后期');
|
|
}
|
|
}
|
|
|
|
|
|
// 新增:尾款结算阶段确认并自动进入下一阶段(客户评价)
|
|
// 新增:尾款结算阶段确认并自动进入下一阶段(客户评价)
|
|
@@ -1896,6 +1914,7 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
case '建模':
|
|
case '建模':
|
|
case '软装':
|
|
case '软装':
|
|
case '渲染':
|
|
case '渲染':
|
|
|
|
+ case '后期':
|
|
return 'delivery';
|
|
return 'delivery';
|
|
case '尾款结算':
|
|
case '尾款结算':
|
|
case '客户评价':
|
|
case '客户评价':
|
|
@@ -1957,6 +1976,7 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
'建模': 'modeling',
|
|
'建模': 'modeling',
|
|
'软装': 'softdecor',
|
|
'软装': 'softdecor',
|
|
'渲染': 'render',
|
|
'渲染': 'render',
|
|
|
|
+ '后期': 'postprocess',
|
|
'尾款结算': 'settlement',
|
|
'尾款结算': 'settlement',
|
|
'客户评价': 'customer-review',
|
|
'客户评价': 'customer-review',
|
|
'投诉处理': 'complaint'
|
|
'投诉处理': 'complaint'
|
|
@@ -2476,6 +2496,7 @@ export class ProjectDetail implements OnInit, OnDestroy {
|
|
'建模': 40,
|
|
'建模': 40,
|
|
'软装': 55,
|
|
'软装': 55,
|
|
'渲染': 70,
|
|
'渲染': 70,
|
|
|
|
+ '后期': 80,
|
|
'尾款结算': 90,
|
|
'尾款结算': 90,
|
|
'客户评价': 95,
|
|
'客户评价': 95,
|
|
'投诉处理': 100
|
|
'投诉处理': 100
|