|
@@ -170,34 +170,99 @@
|
|
|
<div class="right-column">
|
|
|
<div class="process-card card">
|
|
|
<h2>制作流程进度</h2>
|
|
|
- <div class="stage-progress-container">
|
|
|
- <div class="stage-progress">
|
|
|
- <div class="stage" [class.completed]="project?.currentStage !== '建模'" [class.active]="project?.currentStage === '建模'">
|
|
|
- <div class="stage-icon">
|
|
|
- <span>{{ project?.currentStage !== '建模' ? '✓' : '1' }}</span>
|
|
|
+ <!-- 项目进度看板 - 支持10个阶段的横向进度展示 -->
|
|
|
+ <div class="stage-progress-container">
|
|
|
+ <!-- 添加进度条容器包装器以支持横向滚动 -->
|
|
|
+ <div class="stage-progress-wrapper">
|
|
|
+ <div class="stage-progress">
|
|
|
+ <!-- 订单创建阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('订单创建')" [class.active]="project?.currentStage === '订单创建'" (click)="viewStageDetails('订单创建')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('订单创建') ? '✓' : '1' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">订单创建</div>
|
|
|
</div>
|
|
|
- <div class="stage-name">建模</div>
|
|
|
- </div>
|
|
|
- <div class="progress-line"></div>
|
|
|
- <div class="stage" [class.completed]="project?.currentStage !== '软装' && project?.currentStage !== '建模'" [class.active]="project?.currentStage === '软装'">
|
|
|
- <div class="stage-icon">
|
|
|
- <span>{{ project?.currentStage !== '软装' && project?.currentStage !== '建模' ? '✓' : '2' }}</span>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 需求沟通阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('需求沟通')" [class.active]="project?.currentStage === '需求沟通'" (click)="viewStageDetails('需求沟通')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('需求沟通') ? '✓' : '2' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">需求沟通</div>
|
|
|
</div>
|
|
|
- <div class="stage-name">软装</div>
|
|
|
- </div>
|
|
|
- <div class="progress-line"></div>
|
|
|
- <div class="stage" [class.completed]="project?.currentStage !== '渲染' && project?.currentStage !== '建模' && project?.currentStage !== '软装'" [class.active]="project?.currentStage === '渲染'">
|
|
|
- <div class="stage-icon">
|
|
|
- <span>{{ project?.currentStage !== '渲染' && project?.currentStage !== '建模' && project?.currentStage !== '软装' ? '✓' : '3' }}</span>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 方案确认阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('方案确认')" [class.active]="project?.currentStage === '方案确认'" (click)="viewStageDetails('方案确认')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('方案确认') ? '✓' : '3' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">方案确认</div>
|
|
|
</div>
|
|
|
- <div class="stage-name">渲染</div>
|
|
|
- </div>
|
|
|
- <div class="progress-line"></div>
|
|
|
- <div class="stage" [class.completed]="project?.currentStage !== '后期' && project?.currentStage !== '建模' && project?.currentStage !== '软装' && project?.currentStage !== '渲染'" [class.active]="project?.currentStage === '后期'">
|
|
|
- <div class="stage-icon">
|
|
|
- <span>{{ project?.currentStage !== '后期' && project?.currentStage !== '建模' && project?.currentStage !== '软装' && project?.currentStage !== '渲染' ? '✓' : '4' }}</span>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 建模阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('建模')" [class.active]="project?.currentStage === '建模'" (click)="viewStageDetails('建模')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('建模') ? '✓' : '4' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">建模</div>
|
|
|
+ </div>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 软装阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('软装')" [class.active]="project?.currentStage === '软装'" (click)="viewStageDetails('软装')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('软装') ? '✓' : '5' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">软装</div>
|
|
|
+ </div>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 渲染阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('渲染')" [class.active]="project?.currentStage === '渲染'" (click)="viewStageDetails('渲染')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('渲染') ? '✓' : '6' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">渲染</div>
|
|
|
+ </div>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 后期阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('后期')" [class.active]="project?.currentStage === '后期'" (click)="viewStageDetails('后期')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('后期') ? '✓' : '7' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">后期</div>
|
|
|
+ </div>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 尾款结算阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('尾款结算')" [class.active]="project?.currentStage === '尾款结算'" (click)="viewStageDetails('尾款结算')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('尾款结算') ? '✓' : '8' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">尾款结算</div>
|
|
|
+ </div>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 客户评价阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('客户评价')" [class.active]="project?.currentStage === '客户评价'" (click)="viewStageDetails('客户评价')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('客户评价') ? '✓' : '9' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">客户评价</div>
|
|
|
+ </div>
|
|
|
+ <div class="progress-line"></div>
|
|
|
+
|
|
|
+ <!-- 投诉处理阶段 -->
|
|
|
+ <div class="stage" [class.completed]="isStageCompleted('投诉处理')" [class.active]="project?.currentStage === '投诉处理'" (click)="viewStageDetails('投诉处理')">
|
|
|
+ <div class="stage-icon">
|
|
|
+ <span>{{ isStageCompleted('投诉处理') ? '✓' : '10' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="stage-name">投诉处理</div>
|
|
|
</div>
|
|
|
- <div class="stage-name">后期</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -208,12 +273,19 @@
|
|
|
<h3>当前阶段: <span class="stage-highlight">{{ project.currentStage }}</span></h3>
|
|
|
</div>
|
|
|
<div class="stage-actions">
|
|
|
+ <!-- 各阶段完成按钮 -->
|
|
|
+ <button *ngIf="project.currentStage === '订单创建'" (click)="updateProjectStage('需求沟通')" class="primary-btn">完成订单创建</button>
|
|
|
+ <button *ngIf="project.currentStage === '需求沟通'" (click)="updateProjectStage('方案确认')" class="primary-btn">完成需求沟通</button>
|
|
|
+ <button *ngIf="project.currentStage === '方案确认'" (click)="updateProjectStage('建模')" class="primary-btn">完成方案确认</button>
|
|
|
<button *ngIf="project.currentStage === '建模'" (click)="updateProjectStage('软装')" [disabled]="!areAllModelChecksPassed()" class="primary-btn">
|
|
|
{{ areAllModelChecksPassed() ? '完成建模' : '完成所有模型检查' }}
|
|
|
</button>
|
|
|
<button *ngIf="project.currentStage === '软装'" (click)="updateProjectStage('渲染')" class="primary-btn">完成软装</button>
|
|
|
<button *ngIf="project.currentStage === '渲染'" (click)="updateProjectStage('后期')" class="primary-btn">完成渲染</button>
|
|
|
- <button *ngIf="project.currentStage === '后期'" (click)="updateProjectStage('完成')" class="primary-btn">完成后期</button>
|
|
|
+ <button *ngIf="project.currentStage === '后期'" (click)="updateProjectStage('尾款结算')" class="primary-btn">完成后期</button>
|
|
|
+ <button *ngIf="project.currentStage === '尾款结算'" (click)="updateProjectStage('客户评价')" class="primary-btn">完成尾款结算</button>
|
|
|
+ <button *ngIf="project.currentStage === '客户评价'" (click)="updateProjectStage('投诉处理')" class="primary-btn">完成客户评价</button>
|
|
|
+ <button *ngIf="project.currentStage === '投诉处理'" (click)="updateProjectStage('投诉处理')" class="primary-btn">完成投诉处理</button>
|
|
|
</div>
|
|
|
</div>
|
|
|
|