|
@@ -159,8 +159,19 @@
|
|
|
<h2>客户信息</h2>
|
|
|
@if (project) {
|
|
|
<div class="info-grid">
|
|
|
- <div class="info-item key-info"><label>客户姓名</label><span>{{ project.customerName }}</span></div>
|
|
|
- <div class="info-item key-info"><label>项目负责人</label><span>{{ project.assigneeName }}</span></div>
|
|
|
+ <!-- 显示订单创建时填写的客户信息,如果有的话 -->
|
|
|
+ @if (orderCreationData?.customerInfo) {
|
|
|
+ <div class="info-item key-info"><label>客户姓名</label><span>{{ orderCreationData.customerInfo.name }}</span></div>
|
|
|
+ <div class="info-item key-info"><label>手机号码</label><span>{{ orderCreationData.customerInfo.phone }}</span></div>
|
|
|
+ @if (orderCreationData.customerInfo.wechat) {
|
|
|
+ <div class="info-item"><label>微信号</label><span>{{ orderCreationData.customerInfo.wechat }}</span></div>
|
|
|
+ }
|
|
|
+ <div class="info-item"><label>客户类型</label><span>{{ orderCreationData.customerInfo.customerType }}</span></div>
|
|
|
+ } @else {
|
|
|
+ <!-- 默认显示项目信息 -->
|
|
|
+ <div class="info-item key-info"><label>客户姓名</label><span>{{ project.customerName }}</span></div>
|
|
|
+ <div class="info-item key-info"><label>项目负责人</label><span>{{ project.assigneeName }}</span></div>
|
|
|
+ }
|
|
|
<div class="info-item"><label>项目创建</label><span>{{ formatDate(project.createdAt) }}</span></div>
|
|
|
<div class="info-item"><label>截止日期</label><span>{{ formatDate(project.deadline) }}</span></div>
|
|
|
</div>
|
|
@@ -185,55 +196,111 @@
|
|
|
|
|
|
<!-- 新增:需求关键信息同步区域 -->
|
|
|
<div class="requirement-sync-info">
|
|
|
- <h4>确认需求关键信息</h4>
|
|
|
- <div class="key-info-grid">
|
|
|
- @if (requirementKeyInfo.colorAtmosphere.description) {
|
|
|
- <div class="info-item">
|
|
|
- <span class="info-label">色彩氛围</span>
|
|
|
- <span class="info-value">{{ requirementKeyInfo.colorAtmosphere.description }}</span>
|
|
|
- <div class="color-preview" [style.background-color]="requirementKeyInfo.colorAtmosphere.mainColor"></div>
|
|
|
- </div>
|
|
|
- }
|
|
|
-
|
|
|
- @if (requirementKeyInfo.spaceStructure.aspectRatio > 0) {
|
|
|
- <div class="info-item">
|
|
|
- <span class="info-label">空间结构</span>
|
|
|
- <span class="info-value">比例 {{ requirementKeyInfo.spaceStructure.aspectRatio.toFixed(1) }}</span>
|
|
|
+ <h4>项目需求信息</h4>
|
|
|
+
|
|
|
+ <!-- 显示订单创建时填写的需求信息 -->
|
|
|
+ @if (orderCreationData?.requirementInfo) {
|
|
|
+ <div class="order-requirement-info">
|
|
|
+ <h5>订单创建阶段需求</h5>
|
|
|
+ <div class="key-info-grid">
|
|
|
+ @if (orderCreationData.requirementInfo.decorationType) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">装修类型</span>
|
|
|
+ <span class="info-value">{{ orderCreationData.requirementInfo.decorationType }}</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ @if (orderCreationData.requirementInfo.downPayment) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">首付款</span>
|
|
|
+ <span class="info-value">¥{{ orderCreationData.requirementInfo.downPayment }}</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ @if (orderCreationData.requirementInfo.firstDraftDate) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">首稿时间</span>
|
|
|
+ <span class="info-value">{{ orderCreationData.requirementInfo.firstDraftDate }}</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ @if (orderCreationData.requirementInfo.style) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">装修风格</span>
|
|
|
+ <span class="info-value">{{ orderCreationData.requirementInfo.style }}</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ @if (orderCreationData.requirementInfo.spaceRequirements) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">涉及空间</span>
|
|
|
+ <span class="info-value">{{ orderCreationData.requirementInfo.spaceRequirements }}</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
</div>
|
|
|
- }
|
|
|
-
|
|
|
- @if (requirementKeyInfo.materialWeights.woodRatio > 0 || requirementKeyInfo.materialWeights.fabricRatio > 0) {
|
|
|
- <div class="info-item">
|
|
|
- <span class="info-label">材质权重</span>
|
|
|
- <div class="material-weights">
|
|
|
- @if (requirementKeyInfo.materialWeights.woodRatio > 0) {
|
|
|
- <span class="weight-item">木质 {{ requirementKeyInfo.materialWeights.woodRatio }}%</span>
|
|
|
- }
|
|
|
- @if (requirementKeyInfo.materialWeights.fabricRatio > 0) {
|
|
|
- <span class="weight-item">布艺 {{ requirementKeyInfo.materialWeights.fabricRatio }}%</span>
|
|
|
- }
|
|
|
- @if (requirementKeyInfo.materialWeights.metalRatio > 0) {
|
|
|
- <span class="weight-item">金属 {{ requirementKeyInfo.materialWeights.metalRatio }}%</span>
|
|
|
- }
|
|
|
+
|
|
|
+ <!-- 显示偏好标签 -->
|
|
|
+ @if (orderCreationData.preferenceTags && orderCreationData.preferenceTags.length > 0) {
|
|
|
+ <div class="preference-tags">
|
|
|
+ <span class="info-label">偏好标签:</span>
|
|
|
+ <div class="tags">
|
|
|
+ @for (tag of orderCreationData.preferenceTags; track tag) {
|
|
|
+ <span class="tag">{{ tag }}</span>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- }
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+
|
|
|
+ <!-- 确认需求阶段的关键信息 -->
|
|
|
+ <div class="confirmed-requirement-info">
|
|
|
+ <h5>确认需求关键信息</h5>
|
|
|
+ <div class="key-info-grid">
|
|
|
+ @if (requirementKeyInfo.colorAtmosphere.description) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">色彩氛围</span>
|
|
|
+ <span class="info-value">{{ requirementKeyInfo.colorAtmosphere.description }}</span>
|
|
|
+ <div class="color-preview" [style.background-color]="requirementKeyInfo.colorAtmosphere.mainColor"></div>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+
|
|
|
+ @if (requirementKeyInfo.spaceStructure.aspectRatio > 0) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">空间结构</span>
|
|
|
+ <span class="info-value">比例 {{ requirementKeyInfo.spaceStructure.aspectRatio.toFixed(1) }}</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+
|
|
|
+ @if (requirementKeyInfo.materialWeights.woodRatio > 0 || requirementKeyInfo.materialWeights.fabricRatio > 0) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">材质权重</span>
|
|
|
+ <div class="material-weights">
|
|
|
+ @if (requirementKeyInfo.materialWeights.woodRatio > 0) {
|
|
|
+ <span class="weight-item">木质 {{ requirementKeyInfo.materialWeights.woodRatio }}%</span>
|
|
|
+ }
|
|
|
+ @if (requirementKeyInfo.materialWeights.fabricRatio > 0) {
|
|
|
+ <span class="weight-item">布艺 {{ requirementKeyInfo.materialWeights.fabricRatio }}%</span>
|
|
|
+ }
|
|
|
+ @if (requirementKeyInfo.materialWeights.metalRatio > 0) {
|
|
|
+ <span class="weight-item">金属 {{ requirementKeyInfo.materialWeights.metalRatio }}%</span>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+
|
|
|
+ @if (requirementKeyInfo.presetAtmosphere.name) {
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">预设氛围</span>
|
|
|
+ <span class="info-value">{{ requirementKeyInfo.presetAtmosphere.name }}</span>
|
|
|
+ <span class="color-temp">{{ requirementKeyInfo.presetAtmosphere.colorTemp }}</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
|
|
|
- @if (requirementKeyInfo.presetAtmosphere.name) {
|
|
|
- <div class="info-item">
|
|
|
- <span class="info-label">预设氛围</span>
|
|
|
- <span class="info-value">{{ requirementKeyInfo.presetAtmosphere.name }}</span>
|
|
|
- <span class="color-temp">{{ requirementKeyInfo.presetAtmosphere.colorTemp }}</span>
|
|
|
+ @if (getRequirementSummary().length === 0 && !orderCreationData?.requirementInfo) {
|
|
|
+ <div class="sync-placeholder">
|
|
|
+ <span class="placeholder-text">暂无同步的需求信息</span>
|
|
|
+ <button class="sync-btn" (click)="syncRequirementKeyInfo({})">手动同步</button>
|
|
|
</div>
|
|
|
}
|
|
|
</div>
|
|
|
-
|
|
|
- @if (getRequirementSummary().length === 0) {
|
|
|
- <div class="sync-placeholder">
|
|
|
- <span class="placeholder-text">暂无同步的需求信息</span>
|
|
|
- <button class="sync-btn" (click)="syncRequirementKeyInfo({})">手动同步</button>
|
|
|
- </div>
|
|
|
- }
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|