/* 调试样式文件 - 增强版本,确保布局正确显示 */ @import '../../../../styles/_variables'; /* 重置所有可能冲突的样式 - 使用最高优先级 */ * { box-sizing: border-box !important; } /* 重置主内容区域样式 */ .main-content { width: 100% !important; margin: 0 !important; padding: 0 !important; } /* 重置内容包装器样式 */ .content-wrapper { width: 100% !important; margin: 0 !important; padding: 0 !important; } /* 重置项目详情容器 */ .project-detail-container { padding: 20px !important; width: 100% !important; margin: 0 !important; } /* 重置标签页内容容器 */ .tab-content { width: 100% !important; padding: 0 !important; margin: 0 !important; /* 减少标签页内容的垂直间距 */ > * { margin-bottom: 12px !important; /* 统一减少子元素的底部间距 */ &:last-child { margin-bottom: 0 !important; } } } /* 重置项目进度标签页内容 */ .progress-tab-content { width: 100% !important; padding: 0 !important; margin: 0 !important; /* 减少进度标签页内容的垂直间距 */ > * { margin-bottom: 12px !important; /* 统一减少子元素的底部间距 */ &:last-child { margin-bottom: 0 !important; } } } /* 上传区域样式优化 - 确保在并排显示时内容清晰可读 */ .upload-section { /* 基础样式保持不变 */ margin-bottom: 12px !important; /* 从16px减少到12px */ /* 针对四个卡片并排时的特殊优化 */ .stage-progress-container:has(.vertical-stage-block:nth-child(4):last-child) & { /* 笔记本端和PC端的上传区域优化 */ @media (min-width: 1366px) { margin-bottom: 12px !important; .upload-dropzone { min-height: 120px !important; padding: 12px !important; .upload-text { font-size: 12px !important; line-height: 1.4 !important; } .upload-hint { font-size: 11px !important; margin-top: 4px !important; } } } /* 24寸PC端的上传区域优化 */ @media (min-width: 1920px) { margin-bottom: 16px !important; .upload-dropzone { min-height: 140px !important; padding: 16px !important; .upload-text { font-size: 13px !important; line-height: 1.4 !important; } .upload-hint { font-size: 12px !important; margin-top: 6px !important; } } } /* 较小屏幕时保持紧凑布局 */ @media (max-width: 1365px) { margin-bottom: 10px !important; .upload-dropzone { min-height: 100px !important; padding: 10px !important; .upload-text { font-size: 11px !important; line-height: 1.3 !important; } .upload-hint { font-size: 10px !important; margin-top: 3px !important; } } } } } /* 阶段标题样式优化 */ .vertical-stage-header { /* 针对四个卡片并排时的标题优化 */ .stage-progress-container:has(.vertical-stage-block:nth-child(4):last-child) & { margin-bottom: 12px !important; h4 { font-size: 14px !important; line-height: 1.3 !important; margin: 0 !important; /* 笔记本端和PC端的标题优化 */ @media (min-width: 1366px) { font-size: 15px !important; } /* 24寸PC端的标题优化 */ @media (min-width: 1920px) { font-size: 16px !important; } } } } /* 强制覆盖主内容布局样式 - 使用最高优先级 */ .progress-tab-content > .main-content-layout { display: flex !important; flex-wrap: nowrap !important; gap: 20px !important; margin-top: 20px !important; width: 100% !important; background-color: transparent !important; /* 去除调试底色 */ padding: 20px !important; border-radius: 8px !important; } /* 强制覆盖左侧列样式 - 使用最高优先级 */ .progress-tab-content > .main-content-layout > .left-column { width: 28% !important; min-width: 28% !important; max-width: 28% !important; display: flex !important; flex-direction: column !important; gap: 16px !important; background-color: transparent !important; // 去除左侧粉色底色 padding: 8px !important; border-radius: 6px !important; } /* 强制覆盖右侧列样式 - 使用最高优先级 */ .progress-tab-content > .main-content-layout > .right-column { width: 72% !important; min-width: 72% !important; max-width: 72% !important; display: flex !important; flex-direction: column !important; gap: 16px !important; background-color: transparent !important; // 去除右侧调试底色 padding: 8px !important; border-radius: 6px !important; } /* 优化卡片样式 */ .left-column .card, .right-column .card { background-color: white !important; border-radius: 8px !important; padding: 16px !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; border: 1px solid #eaeaea !important; } /* 客户信息卡片样式优化 */ .left-column .project-info-card { background: white !important; border-radius: 8px !important; padding: 12px !important; margin-bottom: 16px !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; border: 1px solid #eaeaea !important; } /* 客户信息卡片标题栏交互效果 */ .left-column .project-info-card .card-header { transition: background-color 0.2s ease, box-shadow 0.2s ease !important; border-radius: 6px !important; padding: 8px 12px !important; margin: -8px -8px 8px -8px !important; } .left-column .project-info-card .card-header:hover { background-color: #f8f9fa !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; } .left-column .project-info-card .card-header:active { background-color: #e9ecef !important; transform: translateY(1px) !important; } /* 箭头图标动画效果 */ .left-column .project-info-card .toggle-icon { transition: transform 0.3s ease !important; } .left-column .project-info-card .toggle-icon.expanded { transform: rotate(180deg) !important; } /* 客户信息卡片内部元素优化 */ .left-column .project-info-card .info-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 6px !important; // 从8px减少到6px margin-bottom: 8px !important; // 从12px减少到8px } .left-column .project-info-card .info-item { display: flex !important; flex-direction: column !important; padding: 6px !important; // 从8px减少到6px background: #f8f9fa !important; border-radius: 6px !important; border: 1px solid #e9ecef !important; font-size: 12px !important; } .left-column .project-info-card .info-item label { font-weight: 500 !important; color: #6c757d !important; margin-bottom: 2px !important; // 从4px减少到2px font-size: 11px !important; } .left-column .project-info-card .info-item span { color: #212529 !important; font-weight: 600 !important; font-size: 12px !important; } .left-column .project-info-card .tags-container { margin-top: 6px !important; // 从8px减少到6px } .left-column .project-info-card .tag-section { margin-bottom: 6px !important; // 从8px减少到6px } .left-column .project-info-card .tag-section h3 { font-size: 12px !important; font-weight: 600 !important; color: #495057 !important; margin-bottom: 4px !important; // 从6px减少到4px } .left-column .project-info-card .tags .tag { font-size: 10px !important; padding: 4px 8px !important; margin: 2px 4px 2px 0 !important; background-color: rgba(24, 144, 255, 0.08) !important; color: #1890ff !important; border-radius: 4px !important; } .left-column .project-info-card .need-list { margin: 0 !important; padding-left: 12px !important; } .left-column .project-info-card .need-list li { font-size: 11px !important; color: #495057 !important; margin-bottom: 3px !important; } .left-column .project-info-card .requirement-sync-info { margin-top: 8px !important; padding: 8px !important; background: #f1f3f4 !important; border-radius: 6px !important; } .left-column .project-info-card .requirement-sync-info h4 { font-size: 11px !important; font-weight: 600 !important; color: #495057 !important; margin-bottom: 6px !important; } /* 确保响应式布局正常工作 */ @media (max-width: 1024px) { .progress-tab-content > .main-content-layout { flex-direction: column !important; } .progress-tab-content > .main-content-layout > .left-column, .progress-tab-content > .main-content-layout > .right-column { width: 100% !important; min-width: 100% !important; max-width: 100% !important; } } /* ===================== 四大板块:工具条与内容样式(调试版) ===================== */ .sections-toolbar { display: flex; gap: $ios-spacing-md; padding: $ios-spacing-sm; background: $ios-background-secondary; border-radius: $ios-radius-lg; border: 1px solid $ios-border; margin: $ios-spacing-md 0 $ios-spacing-lg; } .section-btn { appearance: none; border: 1px solid $ios-border; background: $ios-background; color: $ios-text-primary; padding: $ios-spacing-sm $ios-spacing-lg; border-radius: $ios-radius-md; font-size: $ios-font-size-sm; font-weight: $ios-font-weight-medium; cursor: pointer; transition: all 0.15s ease; } .section-btn:hover { transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0,0,0,0.05); } .section-btn.completed { background: #e6f7e6; color: $ios-success; border-color: rgba(0,0,0,0.06); } .section-btn.active { background: #fff2f0; color: #ff4d4f; border-color: #ff4d4f; } .section-btn.pending { background: $ios-background; color: $ios-text-secondary; } .sections-content { margin-top: $ios-spacing-md; } .section-panel { background: $ios-background; border: 1px solid $ios-border; border-radius: $ios-radius-lg; padding: $ios-spacing-lg; } /* 交付执行:三列布局 */ .delivery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: $ios-spacing-lg; } @media (max-width: 1024px) { .delivery-grid { grid-template-columns: 1fr; } } .delivery-col { background: $ios-background-secondary; border: 1px solid $ios-border; border-radius: $ios-radius-md; padding: $ios-spacing-md; display: flex; flex-direction: column; gap: $ios-spacing-md; } .delivery-stage-header { display: flex; align-items: center; gap: $ios-spacing-sm; } .delivery-stage-header .dot { width: 10px; height: 10px; border-radius: 50%; background: $ios-border; } .delivery-stage-header .dot.completed { background: $ios-success; } .delivery-stage-header .dot.active { background: $ios-primary; } /* 优化垂直间距和内边距 - 减少空白 */ .delivery-stage-body { display: flex; flex-direction: column; gap: $ios-spacing-xs; // 从 $ios-spacing-sm 减少到 $ios-spacing-xs } /* 减少垂直区域间距 */ .section-vertical { display: flex; flex-direction: column; gap: $ios-spacing-sm; // 从 $ios-spacing-md 减少到 $ios-spacing-sm } /* 减少垂直阶段块的内边距 */ .vertical-stage-block { border-radius: 8px; // 替换未定义的变量为固定值 background: white; // 替换未定义的变量为固定值 padding: 10px; // 进一步减少内边距,从 $ios-spacing-xs 减少到固定值10px margin-bottom: 10px; // 添加底部间距控制 } .vertical-stage-header { display: flex; align-items: center; gap: 8px; // 从 $ios-spacing-xs 减少到固定值8px margin-bottom: 8px; // 从 $ios-spacing-xs 减少到固定值8px } /* 减少垂直阶段主体间距 */ .vertical-stage-body { display: flex; flex-direction: column; gap: 10px; // 从 $ios-spacing-sm 减少到固定值10px } /* 缩略图列表适配到新容器 */ .section-panel .thumb-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: $ios-spacing-md; } .section-panel .thumb-item { background: white; border: 1px solid $ios-border; border-radius: $ios-radius-sm; overflow: hidden; display: flex; flex-direction: column; } .section-panel .thumb-item img { width: 100%; height: 120px; object-fit: cover; } .section-panel .thumb-meta { display: flex; justify-content: space-between; padding: $ios-spacing-xs $ios-spacing-sm; font-size: $ios-font-size-xs; color: $ios-text-secondary; } /* 上传区小幅适配 */ .section-panel .upload-header { display: flex; align-items: center; justify-content: space-between; gap: $ios-spacing-sm; padding: $ios-spacing-sm $ios-spacing-md; background: $ios-background; border: 1px dashed $ios-border; border-radius: $ios-radius-sm; } /* 强调版:客户信息卡片更突出、边缘更清晰 */ /* 顶部强调条、圆角与阴影调整,以及关键信息高亮 */ .left-column .project-info-card.card { border: 1px solid $ios-border !important; border-radius: 12px !important; /* 圆角加大 */ box-shadow: 0 10px 24px rgba(0,0,0,0.06), 0 2px 6px rgba(0,0,0,0.05) !important; /* 阴影减弱些 */ position: relative; } .left-column .project-info-card.card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; /* 顶部强调条 */ background: $ios-primary; border-top-left-radius: 12px; border-top-right-radius: 12px; } /* 关键信息轻微高亮:客户姓名 */ .left-column .project-info-card .info-item.key-info span { font-weight: $ios-font-weight-semibold; color: $ios-text-primary; } .left-column .project-info-card .info-item.key-info label { color: $ios-primary; } /* 标签轻微高亮:提升标签显著性但不过度 */ .left-column .project-info-card .tags .tag { background-color: rgba(24, 144, 255, 0.08); /* 以主色系的淡背景形成层级 */ color: $ios-primary; } .left-column .project-info-card.card h2 { color: $ios-primary !important; /* 标题与强调条呼应 */ } /* 客户信息卡片头部和同步状态 */ .left-column .project-info-card .card-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 12px !important; // 从16px减少到12px padding-bottom: 8px !important; // 从12px减少到8px border-bottom: 1px solid #f0f0f0 !important; transition: all 0.3s ease !important; } .left-column .project-info-card .card-header:hover { background-color: rgba(0, 0, 0, 0.02) !important; } .left-column .project-info-card .card-header h2 { margin: 0 !important; font-size: 18px !important; font-weight: 600 !important; color: #262626 !important; } .left-column .project-info-card .card-header .header-actions { display: flex !important; align-items: center !important; gap: 12px !important; } .left-column .project-info-card .sync-status { display: flex !important; align-items: center !important; font-size: 12px !important; color: #8c8c8c !important; } .left-column .project-info-card .sync-status.syncing { color: #1890ff !important; } .left-column .project-info-card .sync-indicator { display: flex !important; align-items: center !important; gap: 4px !important; } .left-column .project-info-card .sync-spinner { width: 12px !important; height: 12px !important; border: 2px solid #f0f0f0 !important; border-top: 2px solid #1890ff !important; border-radius: 50% !important; animation: spin 1s linear infinite !important; } .left-column .project-info-card .sync-time { display: flex !important; align-items: center !important; gap: 4px !important; } .left-column .project-info-card .icon-sync { width: 12px !important; height: 12px !important; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%238c8c8c'%3E%3Cpath d='M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z'/%3E%3C/svg%3E") no-repeat center !important; background-size: contain !important; } /* 展开/收起图标样式 */ .left-column .project-info-card .toggle-icon { display: flex !important; align-items: center !important; justify-content: center !important; width: 24px !important; height: 24px !important; border-radius: 50% !important; background-color: rgba(0, 0, 0, 0.04) !important; transition: all 0.3s ease !important; cursor: pointer !important; } .left-column .project-info-card .toggle-icon:hover { background-color: rgba(0, 0, 0, 0.08) !important; } .left-column .project-info-card .toggle-icon svg { transition: transform 0.3s ease !important; color: #666 !important; } .left-column .project-info-card .toggle-icon.expanded svg { transform: rotate(180deg) !important; } /* 折叠展开动画效果 */ .left-column .project-info-card .info-grid { max-height: 1000px !important; overflow: hidden !important; transition: max-height 0.3s ease, opacity 0.3s ease !important; opacity: 1 !important; } .left-column .project-info-card .info-grid.collapsed { max-height: 0 !important; opacity: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; } .left-column .project-info-card .tags-container { max-height: 1000px !important; overflow: hidden !important; transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease, margin 0.3s ease !important; opacity: 1 !important; } .left-column .project-info-card .tags-container.collapsed { max-height: 0 !important; opacity: 0 !important; margin: 0 !important; padding: 0 !important; border: none !important; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* 方案展示相关样式 */ .proposal-confirm-card { /* 固定高度和滚动条 */ max-height: 600px; /* 固定显示区域高度 */ overflow-y: auto; /* 垂直滚动条 */ /* 自定义滚动条样式 */ &::-webkit-scrollbar { width: 8px; } &::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; } &::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 4px; &:hover { background: #a8a8a8; } } .analysis-progress { padding: 24px; background: linear-gradient(135deg, #f8f9ff 0%, #e8f2ff 100%); border-radius: 12px; margin-bottom: 20px; border: 1px solid #e1e8ff; .progress-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; h4 { margin: 0; color: #2c3e50; font-size: 16px; font-weight: 600; } .progress-percentage { font-size: 18px; font-weight: 700; color: #3498db; } } .progress-bar { width: 100%; height: 8px; background: #e9ecef; border-radius: 4px; overflow: hidden; margin-bottom: 12px; .progress-fill { height: 100%; background: linear-gradient(90deg, #3498db 0%, #2ecc71 100%); border-radius: 4px; transition: width 0.3s ease; } } .progress-description { margin: 0; color: #6c757d; font-size: 14px; text-align: center; } } .proposal-display { .proposal-overview { background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%); border-radius: 12px; padding: 24px; margin-bottom: 24px; border: 1px solid #e9ecef; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); .overview-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; h3 { margin: 0; color: #2c3e50; font-size: 20px; font-weight: 700; } .proposal-meta { display: flex; gap: 12px; align-items: center; .version { background: #e3f2fd; color: #1976d2; padding: 4px 12px; border-radius: 16px; font-size: 12px; font-weight: 600; } .feasibility-score { background: #e8f5e8; color: #2e7d32; padding: 4px 12px; border-radius: 16px; font-size: 12px; font-weight: 600; } } } .quick-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; .summary-item { display: flex; flex-direction: column; gap: 4px; .label { font-size: 12px; color: #6c757d; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } .value { font-size: 14px; color: #2c3e50; font-weight: 500; line-height: 1.4; } } } } .proposal-details { .detail-section { background: #fff; border-radius: 12px; padding: 24px; margin-bottom: 20px; border: 1px solid #e9ecef; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04); .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid #f8f9fa; h4 { margin: 0; color: #2c3e50; font-size: 18px; font-weight: 700; } .section-count, .style-name, .harmony-type, .total-area, .total-budget { background: #f8f9fa; color: #495057; padding: 6px 12px; border-radius: 20px; font-size: 13px; font-weight: 600; } } // 材质网格样式 .materials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; .material-card { background: #f8f9fa; border-radius: 8px; padding: 16px; border-left: 4px solid #dee2e6; transition: all 0.3s ease; &.primary { border-left-color: #28a745; background: linear-gradient(135deg, #f8fff9 0%, #e8f5e8 100%); } &.secondary { border-left-color: #ffc107; background: linear-gradient(135deg, #fffdf8 0%, #fff3cd 100%); } &:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .material-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; h5 { margin: 0; color: #2c3e50; font-size: 16px; font-weight: 600; } .usage-percentage { background: #007bff; color: white; padding: 4px 8px; border-radius: 12px; font-size: 12px; font-weight: 700; } } .material-specs { margin-bottom: 12px; .spec-item { display: flex; justify-content: space-between; margin-bottom: 6px; .spec-label { color: #6c757d; font-size: 13px; font-weight: 500; } .spec-value { color: #2c3e50; font-size: 13px; font-weight: 600; } } } .material-properties { display: flex; gap: 8px; flex-wrap: wrap; .property-tag { background: #e9ecef; color: #495057; padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 500; } } } } // 设计风格样式 .style-elements { margin-bottom: 20px; .style-element { background: #f8f9fa; border-radius: 8px; padding: 16px; margin-bottom: 12px; .element-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; .element-name { font-weight: 600; color: #2c3e50; font-size: 14px; } .influence-score { background: #007bff; color: white; padding: 2px 8px; border-radius: 10px; font-size: 12px; font-weight: 600; } } .element-description { color: #6c757d; font-size: 13px; margin-bottom: 8px; line-height: 1.4; } .influence-bar { width: 100%; height: 4px; background: #e9ecef; border-radius: 2px; overflow: hidden; .influence-fill { height: 100%; background: linear-gradient(90deg, #007bff 0%, #28a745 100%); border-radius: 2px; transition: width 0.3s ease; } } } } .style-characteristics { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; .characteristic-item { background: #f8f9fa; padding: 12px; border-radius: 8px; text-align: center; border: 2px solid transparent; &.high { border-color: #28a745; background: linear-gradient(135deg, #f8fff9 0%, #e8f5e8 100%); } &.medium { border-color: #ffc107; background: linear-gradient(135deg, #fffdf8 0%, #fff3cd 100%); } .char-feature { display: block; font-size: 12px; color: #6c757d; font-weight: 600; margin-bottom: 4px; } .char-value { display: block; font-size: 14px; color: #2c3e50; font-weight: 700; } } } // 色彩方案样式 .color-palette { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-bottom: 20px; .color-item { background: #fff; border-radius: 8px; padding: 16px; border: 1px solid #e9ecef; transition: all 0.3s ease; &.dominant { border-color: #007bff; box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.1); } &.accent { border-color: #28a745; box-shadow: 0 0 0 2px rgba(40, 167, 69, 0.1); } &:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .color-swatch { width: 100%; height: 60px; border-radius: 6px; margin-bottom: 12px; border: 1px solid rgba(0, 0, 0, 0.1); } .color-info { text-align: center; margin-bottom: 8px; .color-name { font-weight: 600; color: #2c3e50; font-size: 14px; margin-bottom: 4px; } .color-percentage { font-size: 18px; font-weight: 700; color: #007bff; margin-bottom: 4px; } .color-role { font-size: 11px; color: #6c757d; text-transform: uppercase; letter-spacing: 0.5px; } } .color-codes { display: flex; flex-direction: column; gap: 2px; .hex-code, .rgb-code { font-family: 'Courier New', monospace; font-size: 11px; color: #6c757d; text-align: center; } } } } .color-psychology { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; .psychology-item { background: #f8f9fa; padding: 12px; border-radius: 8px; display: flex; flex-direction: column; gap: 4px; .label { font-size: 12px; color: #6c757d; font-weight: 600; } .value { font-size: 14px; color: #2c3e50; font-weight: 600; } } } // 空间布局样式 .space-dimensions { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; margin-bottom: 20px; .dimension-item { background: #f8f9fa; padding: 12px; border-radius: 8px; text-align: center; .dim-label { display: block; font-size: 12px; color: #6c757d; font-weight: 600; margin-bottom: 4px; } .dim-value { display: block; font-size: 16px; color: #2c3e50; font-weight: 700; } } } .functional-zones { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; .zone-card { background: #f8f9fa; border-radius: 8px; padding: 16px; border-left: 4px solid #007bff; .zone-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; h5 { margin: 0; color: #2c3e50; font-size: 16px; font-weight: 600; } .zone-stats { display: flex; gap: 8px; .zone-area { background: #007bff; color: white; padding: 4px 8px; border-radius: 12px; font-size: 12px; font-weight: 600; } .zone-percentage { background: #28a745; color: white; padding: 4px 8px; border-radius: 12px; font-size: 12px; font-weight: 600; } } } .zone-requirements, .zone-furniture { margin-bottom: 12px; .requirements-label, .furniture-label { font-size: 12px; color: #6c757d; font-weight: 600; margin-bottom: 6px; } .requirements-tags { display: flex; gap: 6px; flex-wrap: wrap; .requirement-tag { background: #e9ecef; color: #495057; padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 500; } } .furniture-list { color: #2c3e50; font-size: 13px; line-height: 1.4; } } } } // 预算与时间线样式 .budget-breakdown { margin-bottom: 20px; .budget-item { background: #f8f9fa; border-radius: 8px; padding: 16px; margin-bottom: 12px; display: grid; grid-template-columns: 1fr auto auto; gap: 16px; align-items: center; .budget-category { font-weight: 600; color: #2c3e50; font-size: 14px; } .budget-amount { font-weight: 700; color: #28a745; font-size: 16px; } .budget-percentage { background: #007bff; color: white; padding: 4px 8px; border-radius: 12px; font-size: 12px; font-weight: 600; } .budget-bar { grid-column: 1 / -1; width: 100%; height: 6px; background: #e9ecef; border-radius: 3px; overflow: hidden; margin-top: 8px; .budget-fill { height: 100%; background: linear-gradient(90deg, #28a745 0%, #20c997 100%); border-radius: 3px; transition: width 0.3s ease; } } } } .timeline { display: flex; gap: 12px; flex-wrap: wrap; .timeline-item { background: #f8f9fa; padding: 12px 16px; border-radius: 8px; text-align: center; flex: 1; min-width: 120px; .phase-name { font-size: 13px; color: #2c3e50; font-weight: 600; margin-bottom: 4px; } .phase-duration { font-size: 14px; color: #007bff; font-weight: 700; } } } } } .proposal-actions { display: flex; gap: 12px; justify-content: center; padding: 20px 0; .confirm-btn, .adjust-btn { padding: 12px 24px; border-radius: 8px; font-weight: 600; font-size: 14px; border: none; cursor: pointer; transition: all 0.3s ease; &.primary { background: linear-gradient(135deg, #28a745 0%, #20c997 100%); color: white; &:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(40, 167, 69, 0.3); } } &.secondary { background: #f8f9fa; color: #6c757d; border: 1px solid #dee2e6; &:hover { background: #e9ecef; color: #495057; } } } } } } /* 活动阶段卡片:浅红底色突显(更显眼版) */ .delivery-col.active, .vertical-stage-block.active { background: #ffeaea; /* 比 #fff2f0 更显眼 */ border-color: #ffccc7; /* 维持柔和的红系边框 */ box-shadow: 0 8px 22px rgba(255, 85, 62, 0.12), 0 2px 8px rgba(255, 85, 62, 0.10); position: relative; /* 提供定位上下文给badge */ padding-right: $ios-spacing-lg; /* 让出badge空间,避免内容压贴 */ } /* 活动阶段标题与圆点颜色呼应 */ .delivery-col.active .delivery-stage-header h3, .vertical-stage-block.active .vertical-stage-header h3 { color: #ff4d4f; } .delivery-col.active .dot, .vertical-stage-block.active .dot { background: #ff4d4f; } /* 右上角状态badge:进行中 */ .delivery-col.active::after, .vertical-stage-block.active::after { content: '进行中'; position: absolute; top: 8px; right: 8px; padding: 2px 8px; background: #ff4d4f; color: #fff; border-radius: 999px; font-size: 12px; line-height: 1.4; font-weight: 600; box-shadow: 0 4px 10px rgba(255, 77, 79, 0.25); } /* 阶段卡片横向排列(按板块的阶段数量自适应列数) */ .stage-progress-container { display: grid !important; gap: 8px !important; // 从10px进一步减少到8px align-items: stretch !important; // 保证同一行的卡片等高 margin-top: 0 !important; // 删除标题后,移除上边距以优化空间利用 /* 针对交付执行阶段的四个卡片进行特殊处理 */ &:has(.vertical-stage-block:nth-child(4):last-child) { /* 当有且仅有4个卡片时,强制并排显示 */ grid-template-columns: repeat(4, 1fr) !important; /* 笔记本端适配(1366px及以上) */ @media (min-width: 1366px) { grid-template-columns: repeat(4, 1fr) !important; gap: 12px !important; // 从16px减少到12px } /* 24寸PC端适配(1920px及以上) */ @media (min-width: 1920px) { grid-template-columns: repeat(4, 1fr) !important; gap: 16px !important; // 从20px减少到16px } /* 较小屏幕的降级处理(小于1366px) */ @media (max-width: 1365px) { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; // 从12px减少到10px } } /* 其他情况保持原有的自适应布局 */ &:not(:has(.vertical-stage-block:nth-child(4):last-child)) { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important; gap: 10px !important; // 添加间距控制 } } .vertical-stage-block { display: flex !important; flex-direction: column !important; height: 100% !important; padding: 8px !important; // 从10px进一步减少到8px background: white !important; border-radius: 8px !important; border: 1px solid #e9ecef !important; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08) !important; /* 确保卡片内容在并排显示时保持可读性 */ min-width: 0 !important; /* 防止内容溢出 */ /* 针对四个卡片并排时的特殊样式 */ .stage-progress-container:has(.vertical-stage-block:nth-child(4):last-child) & { /* 笔记本端和PC端的内容优化 */ @media (min-width: 1366px) { padding: 12px !important; // 从16px减少到12px min-height: 280px !important; /* 从300px减少到280px */ } /* 24寸PC端的内容优化 */ @media (min-width: 1920px) { padding: 16px !important; // 从20px减少到16px min-height: 300px !important; // 从320px减少到300px } /* 较小屏幕时保持紧凑布局 */ @media (max-width: 1365px) { padding: 10px !important; // 从12px减少到10px min-height: 260px !important; // 从280px减少到260px } } } .vertical-stage-header { display: flex !important; align-items: center !important; gap: 8px !important; margin-bottom: 8px !important; padding-bottom: 6px !important; border-bottom: 1px solid #f1f3f4 !important; } .vertical-stage-header h3 { font-size: 13px !important; font-weight: 600 !important; color: #495057 !important; margin: 0 !important; } .vertical-stage-header .dot { width: 8px !important; height: 8px !important; border-radius: 50% !important; background: #dee2e6 !important; flex-shrink: 0 !important; } .vertical-stage-header .dot.completed { background: #28a745 !important; } .vertical-stage-header .dot.active { background: #ff4d4f !important; } .vertical-stage-body { display: flex !important; flex-direction: column !important; gap: 8px !important; flex: 1 1 auto !important; } /* 活动阶段卡片优化 */ .vertical-stage-block.active { background: #fff2f0 !important; border-color: #ffccc7 !important; box-shadow: 0 2px 8px rgba(255, 77, 79, 0.2) !important; } .vertical-stage-block.active .vertical-stage-header h3 { color: #ff4d4f !important; } .vertical-stage-block.active .dot { background: #ff4d4f !important; } /* 订单创建阶段完成后的绿色高亮 */ .vertical-stage-block.completed { background: #f6ffed !important; border-color: #b7eb8f !important; box-shadow: 0 2px 8px rgba(183, 235, 143, 0.3) !important; } .vertical-stage-block.completed .vertical-stage-header h3 { color: #389e0d !important; font-weight: 600 !important; } .vertical-stage-block.completed .dot { background: #52c41a !important; } /* 需求沟通阶段激活时的高亮 */ .vertical-stage-block[id="stage-requirements-talk"].active { background: linear-gradient(135deg, #fff2f0 0%, #ffe6e6 100%) !important; border-color: #ff7875 !important; box-shadow: 0 4px 16px rgba(255, 77, 79, 0.2) !important; transform: translateY(-2px) !important; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important; } .vertical-stage-block[id="stage-requirements-talk"].active .vertical-stage-header h3 { color: #ff4d4f !important; font-weight: 700 !important; } .vertical-stage-block[id="stage-requirements-talk"].active .dot { background: #ff4d4f !important; box-shadow: 0 0 0 4px rgba(255, 77, 79, 0.2) !important; } /* 新增:三板块垂直高度填充 —— 客户信息、需求沟通、方案确认 */ /* 让主布局的两列在同一行内等高伸展 */ .progress-tab-content > .main-content-layout { align-items: stretch !important; } /* 客户信息卡片设定统一的最低高度以填补左侧空白 - 仅在展开状态下应用 */ .left-column .project-info-card.card:not(.collapsed-card) { min-height: 420px !important; } /* 当右侧仅展示 需求沟通 + 方案确认 两个阶段时,强制两列并排,设定统一最低高度 */ .right-column .stage-progress-container:has(#stage-requirements-talk):has(#stage-proposal-confirm) { grid-template-columns: repeat(2, 1fr) !important; } .right-column .stage-progress-container:has(#stage-requirements-talk):has(#stage-proposal-confirm) .vertical-stage-block { min-height: 420px !important; } /* 根据屏幕尺寸微调高度,保证在大屏下更饱满,在小屏下不压迫 */ @media (min-width: 1920px) { .left-column .project-info-card.card:not(.collapsed-card) { min-height: 480px !important; } .right-column .stage-progress-container:has(#stage-requirements-talk):has(#stage-proposal-confirm) .vertical-stage-block { min-height: 480px !important; } } @media (max-width: 1365px) { .left-column .project-info-card.card:not(.collapsed-card) { min-height: 360px !important; } .right-column .stage-progress-container:has(#stage-requirements-talk):has(#stage-proposal-confirm) .vertical-stage-block { min-height: 360px !important; } /* 方案确认卡片样式 - 与客户信息卡片保持一致 */ /* 方案确认卡片样式 - 独立样式,不继承通用卡片样式 */ .left-column .proposal-confirm-card { background-color: white !important; border-radius: 16px !important; /* 与客户信息卡片区分 */ padding: 28px !important; /* 更大的内边距 */ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12) !important; /* 更深的阴影 */ border: 2px solid #f0f0f0 !important; /* 更粗的边框 */ margin-top: 24px !important; margin-bottom: 24px !important; max-height: 650px !important; overflow-y: auto !important; position: relative !important; /* 添加独特的视觉标识 */ &::before { content: "" !important; position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; height: 6px !important; background: linear-gradient(90deg, #4CAF50, #2196F3) !important; border-top-left-radius: 14px !important; border-top-right-radius: 14px !important; } } /* 方案确认卡片头部样式 - 独立设计 */ .left-column .proposal-confirm-card .card-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 24px !important; padding-bottom: 20px !important; border-bottom: 2px solid #f5f5f5 !important; /* 更粗的分割线 */ background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%) !important; border-radius: 12px !important; padding: 16px 20px !important; margin: -8px -8px 24px -8px !important; } /* 方案确认卡片标题样式 - 独立设计 */ .left-column .proposal-confirm-card .card-header h2 { margin: 0 !important; font-size: 22px !important; /* 更大的字体 */ font-weight: 700 !important; /* 更粗的字体 */ color: #2c3e50 !important; /* 独特的颜色 */ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important; line-height: 1.4 !important; } .left-column .proposal-confirm-card .sync-status { display: flex !important; align-items: center !important; font-size: 13px !important; color: #8c8c8c !important; font-weight: 500 !important; } .left-column .proposal-confirm-card .info-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; margin-bottom: 16px !important; } .left-column .proposal-confirm-card .info-item { display: flex !important; flex-direction: column !important; padding: 8px !important; background: #f8f9fa !important; border-radius: 6px !important; border: 1px solid #e9ecef !important; font-size: 12px !important; } .left-column .proposal-confirm-card .info-item label { font-weight: 500 !important; color: #6c757d !important; margin-bottom: 4px !important; font-size: 11px !important; } .left-column .proposal-confirm-card .info-item span { color: #212529 !important; font-weight: 600 !important; font-size: 12px !important; } .left-column .proposal-confirm-card .color-preview { width: 16px !important; height: 16px !important; border-radius: 4px !important; border: 1px solid #ddd !important; margin-top: 4px !important; } .left-column .proposal-confirm-card .proposal-actions { margin-top: 16px !important; padding-top: 12px !important; border-top: 1px solid #f0f0f0 !important; text-align: center !important; } .left-column .proposal-confirm-card .confirm-btn { background: #1890ff !important; color: white !important; border: none !important; padding: 8px 24px !important; border-radius: 6px !important; font-size: 14px !important; font-weight: 500 !important; cursor: pointer !important; transition: background-color 0.3s ease !important; } .left-column .proposal-confirm-card .confirm-btn:hover { background: #40a9ff !important; } .left-column .proposal-confirm-card .waiting-state { text-align: center !important; padding: 24px 16px !important; color: #8c8c8c !important; } .left-column .proposal-confirm-card .waiting-content h5 { margin: 0 0 8px 0 !important; font-size: 16px !important; font-weight: 600 !important; color: #595959 !important; } .left-column .proposal-confirm-card .waiting-content p { margin: 0 0 12px 0 !important; font-size: 14px !important; line-height: 1.4 !important; } /* 方案展示区域样式 */ .left-column .proposal-confirm-card .proposal-display { margin-top: 16px !important; } .left-column .proposal-confirm-card .proposal-overview { margin-bottom: 24px !important; padding: 16px !important; background: #f8f9fa !important; border-radius: 8px !important; border: 1px solid #e9ecef !important; } .left-column .proposal-confirm-card .overview-header { display: flex !important; justify-content: space-between !important; align-items: flex-start !important; margin-bottom: 16px !important; } .left-column .proposal-confirm-card .overview-header h3 { margin: 0 !important; font-size: 18px !important; font-weight: 600 !important; color: #262626 !important; line-height: 1.4 !important; } .left-column .proposal-confirm-card .proposal-meta { display: flex !important; flex-direction: column !important; align-items: flex-end !important; gap: 4px !important; } .left-column .proposal-confirm-card .proposal-meta .version, .left-column .proposal-confirm-card .proposal-meta .feasibility-score { font-size: 12px !important; padding: 4px 8px !important; border-radius: 4px !important; font-weight: 500 !important; } .left-column .proposal-confirm-card .proposal-meta .version { background: #e6f7ff !important; color: #1890ff !important; } .left-column .proposal-confirm-card .proposal-meta .feasibility-score { background: #f6ffed !important; color: #52c41a !important; } .left-column .proposal-confirm-card .quick-summary { display: grid !important; grid-template-columns: 1fr !important; gap: 8px !important; } .left-column .proposal-confirm-card .summary-item { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 8px 12px !important; background: white !important; border-radius: 6px !important; border: 1px solid #e9ecef !important; } .left-column .proposal-confirm-card .summary-item .label { font-size: 13px !important; color: #6c757d !important; font-weight: 500 !important; } .left-column .proposal-confirm-card .summary-item .value { font-size: 13px !important; color: #212529 !important; font-weight: 600 !important; } /* 详细方案内容样式 */ .left-column .proposal-confirm-card .proposal-details { margin-top: 20px !important; } .left-column .proposal-confirm-card .detail-section { margin-bottom: 24px !important; padding: 16px !important; background: white !important; border: 1px solid #e9ecef !important; border-radius: 8px !important; } .left-column .proposal-confirm-card .section-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; padding-bottom: 12px !important; border-bottom: 1px solid #f0f0f0 !important; } .left-column .proposal-confirm-card .section-header h4 { margin: 0 !important; font-size: 16px !important; font-weight: 600 !important; color: #262626 !important; line-height: 1.4 !important; } .left-column .proposal-confirm-card .section-count, .left-column .proposal-confirm-card .style-name, .left-column .proposal-confirm-card .harmony-type, .left-column .proposal-confirm-card .total-area { font-size: 12px !important; padding: 4px 8px !important; background: #f0f0f0 !important; color: #595959 !important; border-radius: 4px !important; font-weight: 500 !important; } /* 材质网格样式 */ .left-column .proposal-confirm-card .materials-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 12px !important; } .left-column .proposal-confirm-card .material-card { padding: 12px !important; background: #f8f9fa !important; border: 1px solid #e9ecef !important; border-radius: 6px !important; } .left-column .proposal-confirm-card .material-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 8px !important; } .left-column .proposal-confirm-card .material-header h5 { margin: 0 !important; font-size: 14px !important; font-weight: 600 !important; color: #262626 !important; } .left-column .proposal-confirm-card .usage-percentage { font-size: 12px !important; font-weight: 600 !important; color: #1890ff !important; } .left-column .proposal-confirm-card .material-specs { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 6px !important; margin-bottom: 8px !important; } .left-column .proposal-confirm-card .spec-item { display: flex !important; justify-content: space-between !important; font-size: 11px !important; } .left-column .proposal-confirm-card .spec-label { color: #6c757d !important; font-weight: 500 !important; } .left-column .proposal-confirm-card .spec-value { color: #212529 !important; font-weight: 600 !important; } .left-column .proposal-confirm-card .material-properties { display: flex !important; gap: 6px !important; flex-wrap: wrap !important; } .left-column .proposal-confirm-card .property-tag { font-size: 10px !important; padding: 2px 6px !important; background: #e6f7ff !important; color: #1890ff !important; border-radius: 3px !important; font-weight: 500 !important; } /* 设计风格特征样式 */ .left-column .proposal-confirm-card .style-elements { margin-bottom: 16px !important; } .left-column .proposal-confirm-card .style-element { margin-bottom: 12px !important; padding: 10px !important; background: #f8f9fa !important; border-radius: 6px !important; border: 1px solid #e9ecef !important; } .left-column .proposal-confirm-card .element-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 6px !important; } .left-column .proposal-confirm-card .element-name { font-size: 13px !important; font-weight: 600 !important; color: #262626 !important; } .left-column .proposal-confirm-card .influence-score { font-size: 12px !important; font-weight: 600 !important; color: #1890ff !important; } .left-column .proposal-confirm-card .element-description { font-size: 11px !important; color: #6c757d !important; margin-bottom: 6px !important; line-height: 1.4 !important; } .left-column .proposal-confirm-card .influence-bar { height: 4px !important; background: #e9ecef !important; border-radius: 2px !important; overflow: hidden !important; } .left-column .proposal-confirm-card .influence-fill { height: 100% !important; background: #1890ff !important; transition: width 0.3s ease !important; } .left-column .proposal-confirm-card .style-characteristics { display: grid !important; grid-template-columns: 1fr !important; gap: 6px !important; } .left-column .proposal-confirm-card .characteristic-item { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 6px 10px !important; background: white !important; border-radius: 4px !important; border: 1px solid #e9ecef !important; font-size: 11px !important; } .left-column .proposal-confirm-card .char-feature { color: #6c757d !important; font-weight: 500 !important; } .left-column .proposal-confirm-card .char-value { color: #212529 !important; font-weight: 600 !important; } /* 色彩搭配方案样式 */ .left-column .proposal-confirm-card .color-palette { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; margin-bottom: 16px !important; } .left-column .proposal-confirm-card .color-item { display: flex !important; align-items: center !important; padding: 10px !important; background: #f8f9fa !important; border-radius: 6px !important; border: 1px solid #e9ecef !important; gap: 12px !important; } .left-column .proposal-confirm-card .color-swatch { width: 32px !important; height: 32px !important; border-radius: 4px !important; border: 1px solid #ddd !important; flex-shrink: 0 !important; } .left-column .proposal-confirm-card .color-info { flex: 1 !important; display: flex !important; flex-direction: column !important; gap: 2px !important; } .left-column .proposal-confirm-card .color-name { font-size: 13px !important; font-weight: 600 !important; color: #262626 !important; } .left-column .proposal-confirm-card .color-percentage { font-size: 12px !important; font-weight: 600 !important; color: #1890ff !important; } .left-column .proposal-confirm-card .color-role { font-size: 11px !important; color: #6c757d !important; } .left-column .proposal-confirm-card .color-codes { display: flex !important; flex-direction: column !important; gap: 2px !important; font-size: 10px !important; color: #8c8c8c !important; font-family: monospace !important; } .left-column .proposal-confirm-card .color-psychology { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; } .left-column .proposal-confirm-card .psychology-item { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 8px 10px !important; background: white !important; border-radius: 4px !important; border: 1px solid #e9ecef !important; font-size: 11px !important; } .left-column .proposal-confirm-card .psychology-item .label { color: #6c757d !important; font-weight: 500 !important; } .left-column .proposal-confirm-card .psychology-item .value { color: #212529 !important; font-weight: 600 !important; } /* 空间尺寸数据样式 */ .left-column .proposal-confirm-card .space-dimensions { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; margin-bottom: 16px !important; } .left-column .proposal-confirm-card .dimension-item { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 8px 10px !important; background: #f8f9fa !important; border-radius: 4px !important; border: 1px solid #e9ecef !important; font-size: 11px !important; } .left-column .proposal-confirm-card .dim-label { color: #6c757d !important; font-weight: 500 !important; } .left-column .proposal-confirm-card .dim-value { color: #212529 !important; font-weight: 600 !important; } .left-column .proposal-confirm-card .functional-zones { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; } .left-column .proposal-confirm-card .zone-card { padding: 12px !important; background: #f8f9fa !important; border-radius: 6px !important; border: 1px solid #e9ecef !important; } .left-column .proposal-confirm-card .zone-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 8px !important; } .left-column .proposal-confirm-card .zone-header h5 { margin: 0 !important; font-size: 14px !important; font-weight: 600 !important; color: #262626 !important; } .left-column .proposal-confirm-card .zone-stats { display: flex !important; gap: 8px !important; font-size: 11px !important; } .left-column .proposal-confirm-card .zone-area { color: #1890ff !important; font-weight: 600 !important; } .left-column .proposal-confirm-card .zone-percentage { color: #6c757d !important; font-weight: 500 !important; } }