|
|
@@ -1,1446 +1,2257 @@
|
|
|
-/* 项目详情页面样式文件 - 简化版本,直接针对HTML元素 */
|
|
|
-@use '../ios-theme.scss' as *;
|
|
|
-
|
|
|
-/* 重置所有可能冲突的样式 */
|
|
|
-* {
|
|
|
- box-sizing: border-box;
|
|
|
-}
|
|
|
-
|
|
|
-/* 全局侧边栏彻底隐藏 - 高优先级规则 */
|
|
|
-.sidebar {
|
|
|
- display: none !important;
|
|
|
- width: 0 !important;
|
|
|
- visibility: hidden !important;
|
|
|
-}
|
|
|
-
|
|
|
-/* 主容器样式 - 确保内容区域占满整个屏幕 */
|
|
|
-.content-wrapper {
|
|
|
- width: 100% !important;
|
|
|
- margin-left: 0 !important;
|
|
|
- padding: 0 !important;
|
|
|
-}
|
|
|
-
|
|
|
-/* 主内容区域样式 - 重置为默认值 */
|
|
|
-.main-content {
|
|
|
- padding: 0 !important;
|
|
|
- margin: 0 !important;
|
|
|
-}
|
|
|
+@use '../../../shared/styles/_ios-theme.scss' as *;
|
|
|
+@import './components/vertical-nav/vertical-nav-styles';
|
|
|
|
|
|
/* 项目详情容器 */
|
|
|
.project-detail-container {
|
|
|
- padding: 20px;
|
|
|
+ padding: 2%; // 使用百分比单位
|
|
|
background-color: #f5f7fa;
|
|
|
color: #333;
|
|
|
min-height: 100vh;
|
|
|
+ box-sizing: border-box; // 确保内边距计算正确
|
|
|
+ overflow-x: auto; // 允许水平滚动以防内容过宽
|
|
|
}
|
|
|
|
|
|
-/* 项目标题栏 */
|
|
|
-.project-header {
|
|
|
+/* 四大板块按钮组 - 位于项目标题区域正下方 */
|
|
|
+.sections-toolbar-header {
|
|
|
display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: 20px;
|
|
|
- background-color: white;
|
|
|
- padding: 20px;
|
|
|
- border-radius: 8px;
|
|
|
- width: 100% !important;
|
|
|
-}
|
|
|
-
|
|
|
-/* 强制覆盖主内容布局样式 - 使用最高优先级 */
|
|
|
-.progress-tab-content > .main-content-layout {
|
|
|
- display: flex !important;
|
|
|
- gap: 20px !important;
|
|
|
- margin-top: 20px !important;
|
|
|
- width: 100% !important;
|
|
|
- background-color: rgba(200, 200, 255, 0.5) !important; /* 明显的背景色 */
|
|
|
-}
|
|
|
-
|
|
|
-/* 强制覆盖左侧列样式 - 使用最高优先级 */
|
|
|
-.progress-tab-content > .main-content-layout > .left-column {
|
|
|
- width: 33.333% !important;
|
|
|
- display: flex !important;
|
|
|
- flex-direction: column !important;
|
|
|
- gap: 20px !important;
|
|
|
- background-color: rgba(255, 200, 200, 0.3) !important; /* 左侧列背景色 */
|
|
|
-}
|
|
|
-
|
|
|
-/* 强制覆盖右侧列样式 - 使用最高优先级 */
|
|
|
-.progress-tab-content > .main-content-layout > .right-column {
|
|
|
- width: 66.667% !important;
|
|
|
- display: flex !important;
|
|
|
- flex-direction: column !important;
|
|
|
- gap: 20px !important;
|
|
|
- background-color: rgba(200, 255, 200, 0.3) !important; /* 右侧列背景色 */
|
|
|
+ gap: 1%; // 使用百分比间距
|
|
|
+ width: 100%;
|
|
|
+ margin: 1.5% 0 2% 0; // 使用百分比边距
|
|
|
+ padding: 0 2%; /* 与项目详情容器保持一致的左右边距 */
|
|
|
+
|
|
|
+ .section-btn {
|
|
|
+ flex: 1;
|
|
|
+ appearance: none;
|
|
|
+ border: 1px solid $ios-border;
|
|
|
+ background: $ios-background;
|
|
|
+ color: $ios-text-primary;
|
|
|
+ padding: 0.9rem 1.2rem; // 使用rem单位
|
|
|
+ border-radius: $ios-radius-md;
|
|
|
+ font-size: 0.9rem; // 使用rem单位
|
|
|
+ font-weight: 500;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+ text-align: center;
|
|
|
+ min-height: 3rem; // 使用rem单位
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ .section-label {
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-0.08rem); // 使用rem单位
|
|
|
+ box-shadow: 0 0.3rem 0.9rem rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ &.completed {
|
|
|
+ background: linear-gradient(135deg, #e6f7e6 0%, #d4edda 100%);
|
|
|
+ color: $ios-success;
|
|
|
+ border-color: $ios-success;
|
|
|
+ box-shadow: 0 0.15rem 0.6rem rgba(40, 167, 69, 0.15);
|
|
|
+ }
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ background: linear-gradient(135deg, #e8f0fe 0%, #cce7ff 100%);
|
|
|
+ color: $ios-primary;
|
|
|
+ border-color: $ios-primary;
|
|
|
+ box-shadow: 0 0.15rem 0.6rem rgba(0, 122, 255, 0.2);
|
|
|
+ }
|
|
|
+
|
|
|
+ &.pending {
|
|
|
+ background: $ios-background;
|
|
|
+ color: $ios-text-secondary;
|
|
|
+ border-color: rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 确保响应式布局正常工作 */
|
|
|
-@media (max-width: 1024px) {
|
|
|
- .progress-tab-content > .main-content-layout {
|
|
|
- flex-direction: column !important;
|
|
|
+// 图片预览模态框样式
|
|
|
+.image-preview-modal {
|
|
|
+ position: fixed;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ z-index: 1000;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ .modal-backdrop {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ background: rgba(0, 0, 0, 0.8);
|
|
|
+ backdrop-filter: blur(4px);
|
|
|
}
|
|
|
|
|
|
- .progress-tab-content > .main-content-layout > .left-column,
|
|
|
- .progress-tab-content > .main-content-layout > .right-column {
|
|
|
- width: 100% !important;
|
|
|
+ .modal-content {
|
|
|
+ position: relative;
|
|
|
+ background: white;
|
|
|
+ border-radius: 12px;
|
|
|
+ max-width: 90vw;
|
|
|
+ max-height: 90vh;
|
|
|
+ overflow: hidden;
|
|
|
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
|
|
|
+ animation: modalFadeIn 0.3s ease-out;
|
|
|
+
|
|
|
+ .modal-header {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ padding: 16px 20px;
|
|
|
+ border-bottom: 1px solid #e9ecef;
|
|
|
+
|
|
|
+ h3 {
|
|
|
+ margin: 0;
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #333;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ max-width: 400px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .close-btn {
|
|
|
+ width: 40px;
|
|
|
+ height: 40px;
|
|
|
+ border: none;
|
|
|
+ background: #f8f9fa;
|
|
|
+ border-radius: 8px;
|
|
|
+ cursor: pointer;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: #e9ecef;
|
|
|
+ color: #dc3545;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .modal-body {
|
|
|
+ padding: 20px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ max-height: 60vh;
|
|
|
+
|
|
|
+ img {
|
|
|
+ max-width: 100%;
|
|
|
+ max-height: 100%;
|
|
|
+ object-fit: contain;
|
|
|
+ border-radius: 8px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .modal-footer {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ padding: 16px 20px;
|
|
|
+ border-top: 1px solid #e9ecef;
|
|
|
+ background: #f8f9fa;
|
|
|
+
|
|
|
+ .image-info {
|
|
|
+ display: flex;
|
|
|
+ gap: 12px;
|
|
|
+ align-items: center;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #666;
|
|
|
+
|
|
|
+ .status-badge {
|
|
|
+ padding: 4px 8px;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+ background: #e9ecef;
|
|
|
+ color: #495057;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .modal-actions {
|
|
|
+ display: flex;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ button {
|
|
|
+ padding: 8px 16px;
|
|
|
+ border: none;
|
|
|
+ border-radius: 6px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+
|
|
|
+ &.secondary-btn {
|
|
|
+ background: #6c757d;
|
|
|
+ color: white;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: #5a6268;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &.danger-btn {
|
|
|
+ background: #dc3545;
|
|
|
+ color: white;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: #c82333;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 需求关键信息同步区域样式
|
|
|
+ .requirement-sync-info {
|
|
|
+ margin-top: 16px;
|
|
|
+ padding: 16px;
|
|
|
+ background: rgba(0, 122, 255, 0.02);
|
|
|
+ border: 1px solid rgba(0, 122, 255, 0.1);
|
|
|
+ border-radius: 8px;
|
|
|
+
|
|
|
+ h4 {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+ margin: 0 0 16px 0;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 6px;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ width: 3px;
|
|
|
+ height: 14px;
|
|
|
+ background: #007aff;
|
|
|
+ border-radius: 2px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ h5 {
|
|
|
+ font-size: 13px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+ margin: 0 0 12px 0;
|
|
|
+ padding-bottom: 6px;
|
|
|
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06);
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-requirement-info {
|
|
|
+ margin-bottom: 20px;
|
|
|
+ padding: 12px;
|
|
|
+ background: rgba(52, 199, 89, 0.02);
|
|
|
+ border: 1px solid rgba(52, 199, 89, 0.1);
|
|
|
+ border-radius: 6px;
|
|
|
+
|
|
|
+ .preference-tags {
|
|
|
+ margin-top: 12px;
|
|
|
+ padding-top: 12px;
|
|
|
+ border-top: 1px solid rgba(0, 0, 0, 0.06);
|
|
|
+
|
|
|
+ .info-label {
|
|
|
+ font-weight: 500;
|
|
|
+ color: #666;
|
|
|
+ margin-bottom: 6px;
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tags {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ gap: 6px;
|
|
|
+
|
|
|
+ .tag {
|
|
|
+ font-size: 11px;
|
|
|
+ background: rgba(52, 199, 89, 0.1);
|
|
|
+ color: #34c759;
|
|
|
+ padding: 4px 8px;
|
|
|
+ border-radius: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+ border: 1px solid rgba(52, 199, 89, 0.2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmed-requirement-info {
|
|
|
+ padding: 12px;
|
|
|
+ background: rgba(255, 149, 0, 0.02);
|
|
|
+ border: 1px solid rgba(255, 149, 0, 0.1);
|
|
|
+ border-radius: 6px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .key-info-grid {
|
|
|
+ display: grid;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ .info-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ padding: 8px 12px;
|
|
|
+ background: white;
|
|
|
+ border-radius: 6px;
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.06);
|
|
|
+ font-size: 13px;
|
|
|
+
|
|
|
+ .info-label {
|
|
|
+ font-weight: 500;
|
|
|
+ color: #666;
|
|
|
+ min-width: 60px;
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .info-value {
|
|
|
+ color: #1d1d1f;
|
|
|
+ font-weight: 500;
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ .color-preview {
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ border-radius: 3px;
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .color-temp {
|
|
|
+ font-size: 11px;
|
|
|
+ color: #8e8e93;
|
|
|
+ background: rgba(142, 142, 147, 0.1);
|
|
|
+ padding: 2px 6px;
|
|
|
+ border-radius: 4px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .material-weights {
|
|
|
+ display: flex;
|
|
|
+ gap: 6px;
|
|
|
+ flex-wrap: wrap;
|
|
|
+
|
|
|
+ .weight-item {
|
|
|
+ font-size: 11px;
|
|
|
+ background: rgba(52, 199, 89, 0.1);
|
|
|
+ color: #34c759;
|
|
|
+ padding: 2px 6px;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .sync-placeholder {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 12px;
|
|
|
+ background: rgba(142, 142, 147, 0.05);
|
|
|
+ border-radius: 6px;
|
|
|
+ border: 1px dashed rgba(142, 142, 147, 0.3);
|
|
|
+
|
|
|
+ .placeholder-text {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #8e8e93;
|
|
|
+ }
|
|
|
+
|
|
|
+ .sync-btn {
|
|
|
+ padding: 6px 12px;
|
|
|
+ background: #007aff;
|
|
|
+ color: white;
|
|
|
+ border: none;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: background-color 0.2s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: #0056cc;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ background: #004499;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
-.header-content{display:flex;flex-direction:column;gap:$ios-spacing-sm}
|
|
|
-.project-header h1{font-size:$ios-font-size-xl;font-weight:$ios-font-weight-bold;color:$ios-text-primary;margin:0}
|
|
|
-.project-meta{display:flex;align-items:center;gap:$ios-spacing-lg;font-size:$ios-font-size-sm;color:$ios-text-secondary}
|
|
|
-.project-id{font-weight:$ios-font-weight-medium}
|
|
|
-.project-status{padding:$ios-spacing-xs $ios-spacing-md;border-radius:$ios-radius-full;background-color:#e8f0fe;color:$ios-primary}
|
|
|
-
|
|
|
-/* 按钮样式 */
|
|
|
-.header-actions{display:flex;gap:$ios-spacing-md;align-items:center}
|
|
|
-.back-btn{background-color:$ios-primary;color:white;border:none;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;white-space:nowrap}
|
|
|
-.back-btn:hover{background-color:#0056b3;transform:translateY(-1px)}
|
|
|
-.project-switcher{position:relative}
|
|
|
-.switch-btn{background-color:$ios-background-tertiary;color:$ios-text-primary;border:none;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;white-space:nowrap}
|
|
|
-.switch-btn:hover{background-color:#f0f0f0;transform:translateY(-1px)}
|
|
|
-.switch-dropdown{position:absolute;top:100%;right:0;margin-top:$ios-spacing-xs;background-color:$ios-background-secondary;border-radius:$ios-radius-md;overflow:hidden;min-width:200px;max-height:300px;overflow-y:auto;z-index:1000}
|
|
|
-.project-item{display:flex;justify-content:space-between;align-items:center;padding:$ios-spacing-md;cursor:pointer;border-bottom:1px solid $ios-border}
|
|
|
-.project-item:last-child{border-bottom:none}
|
|
|
-.project-item:hover{background-color:$ios-background}
|
|
|
-.project-item.active{background-color:#e8f0fe}
|
|
|
-.project-name{font-size:$ios-font-size-sm;color:$ios-text-primary;font-weight:$ios-font-weight-medium}
|
|
|
-.project-status-badge{font-size:$ios-font-size-xs;padding:$ios-spacing-xs $ios-spacing-sm;border-radius:$ios-radius-full;background-color:$ios-background-tertiary;color:$ios-text-secondary}
|
|
|
-.project-status-badge.ongoing{background-color:#e8f0fe;color:$ios-primary}
|
|
|
-.project-status-badge.completed{background-color:#e6f7e6;color:$ios-success}
|
|
|
-.project-status-badge.pending{background-color:#fff3cd;color:$ios-warning}
|
|
|
-
|
|
|
-.stagnation-btn{background-color:$ios-warning;color:white;border:none;padding:$ios-spacing-sm $ios-spacing-md;border-radius:$ios-radius-md;font-size:$ios-font-size-sm;cursor:pointer;font-weight:$ios-font-weight-medium}
|
|
|
-.stagnation-btn:hover{background-color:#d4a72c;transform:translateY(-1px)}
|
|
|
-
|
|
|
-/* 顶部导航标签页样式 */
|
|
|
-.project-tabs{
|
|
|
- display:flex;
|
|
|
- margin-bottom:$ios-spacing-xl;
|
|
|
- border-bottom:1px solid $ios-border;
|
|
|
- background-color:$ios-background-secondary;
|
|
|
- border-radius:$ios-radius-lg $ios-radius-lg 0 0;
|
|
|
- padding:$ios-spacing-xs 0;
|
|
|
-}
|
|
|
-
|
|
|
-.tab-item{
|
|
|
- padding:$ios-spacing-md $ios-spacing-xl;
|
|
|
- font-size:$ios-font-size-base;
|
|
|
- font-weight:$ios-font-weight-medium;
|
|
|
- color:$ios-text-secondary;
|
|
|
- cursor:pointer;
|
|
|
- transition:all 0.2s ease;
|
|
|
- border-bottom:2px solid transparent;
|
|
|
- background-color:transparent;
|
|
|
- border:none;
|
|
|
-}
|
|
|
-
|
|
|
-.tab-item:hover{
|
|
|
- color:$ios-text-primary;
|
|
|
- background-color:$ios-background;
|
|
|
-}
|
|
|
-
|
|
|
-.tab-item.active{
|
|
|
- color:$ios-primary;
|
|
|
- border-bottom-color:$ios-primary;
|
|
|
- background-color:$ios-background;
|
|
|
-}
|
|
|
-
|
|
|
-/* 标签页内容容器样式 */
|
|
|
-.tab-content{
|
|
|
- background-color:$ios-background;
|
|
|
- border-radius:0 0 $ios-radius-lg $ios-radius-lg;
|
|
|
- padding:$ios-spacing-xl;
|
|
|
- min-height:calc(100vh - 320px);
|
|
|
-}
|
|
|
-
|
|
|
-.tab-content.hidden{
|
|
|
- display:none;
|
|
|
-}
|
|
|
-
|
|
|
-/* 项目成员列表样式 */
|
|
|
-.member-list{
|
|
|
- display:grid;
|
|
|
- grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
|
|
|
- gap:$ios-spacing-lg;
|
|
|
- margin-bottom:$ios-spacing-xl;
|
|
|
-}
|
|
|
-
|
|
|
-.member-card{
|
|
|
- background-color:$ios-background-secondary;
|
|
|
- border-radius:$ios-radius-lg;
|
|
|
- padding:$ios-spacing-lg;
|
|
|
- display:flex;
|
|
|
- align-items:center;
|
|
|
- gap:$ios-spacing-lg;
|
|
|
- transition:transform 0.2s ease, box-shadow 0.2s ease;
|
|
|
-}
|
|
|
-
|
|
|
-.member-card:hover{
|
|
|
- transform:translateY(-2px);
|
|
|
- box-shadow:0 4px 12px rgba(0,0,0,0.05);
|
|
|
-}
|
|
|
-
|
|
|
-.member-avatar{
|
|
|
- width:64px;
|
|
|
- height:64px;
|
|
|
- border-radius:50%;
|
|
|
- background-color:$ios-primary;
|
|
|
- color:white;
|
|
|
- display:flex;
|
|
|
- align-items:center;
|
|
|
- justify-content:center;
|
|
|
- font-size:$ios-font-size-lg;
|
|
|
- font-weight:$ios-font-weight-semibold;
|
|
|
- flex-shrink:0;
|
|
|
-}
|
|
|
-
|
|
|
-.member-info{
|
|
|
- flex:1;
|
|
|
- min-width:0;
|
|
|
-}
|
|
|
-
|
|
|
-.member-name{
|
|
|
- font-size:$ios-font-size-base;
|
|
|
- font-weight:$ios-font-weight-semibold;
|
|
|
- color:$ios-text-primary;
|
|
|
- margin-bottom:$ios-spacing-xs;
|
|
|
-}
|
|
|
-
|
|
|
-.member-role{
|
|
|
- font-size:$ios-font-size-sm;
|
|
|
- color:$ios-text-secondary;
|
|
|
- margin-bottom:$ios-spacing-md;
|
|
|
-}
|
|
|
-
|
|
|
-.member-metrics{
|
|
|
- display:flex;
|
|
|
- gap:$ios-spacing-md;
|
|
|
- flex-wrap:wrap;
|
|
|
-}
|
|
|
-
|
|
|
-.metric-item{
|
|
|
- display:flex;
|
|
|
- flex-direction:column;
|
|
|
- gap:$ios-spacing-xs;
|
|
|
-}
|
|
|
-
|
|
|
-.metric-label{
|
|
|
- font-size:$ios-font-size-xs;
|
|
|
- color:$ios-text-secondary;
|
|
|
-}
|
|
|
-
|
|
|
-.metric-value{
|
|
|
- font-size:$ios-font-size-sm;
|
|
|
- color:$ios-text-primary;
|
|
|
- font-weight:$ios-font-weight-medium;
|
|
|
-}
|
|
|
-
|
|
|
-/* 团队协作时间轴样式 */
|
|
|
-.team-timeline{
|
|
|
- position:relative;
|
|
|
- padding-left:$ios-spacing-xxl;
|
|
|
- margin-bottom:$ios-spacing-xl;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-item{
|
|
|
- position:relative;
|
|
|
- padding-bottom:$ios-spacing-xl;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-item:last-child{
|
|
|
- padding-bottom:0;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-item::before{
|
|
|
- content:'';
|
|
|
- position:absolute;
|
|
|
- left: -$ios-spacing-lg;
|
|
|
- top:$ios-spacing-sm;
|
|
|
- width:12px;
|
|
|
- height:12px;
|
|
|
- border-radius:50%;
|
|
|
- background-color:$ios-primary;
|
|
|
- border:3px solid #e8f0fe;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-item:not(:last-child)::after{
|
|
|
- content:'';
|
|
|
- position:absolute;
|
|
|
- left:-$ios-spacing-lg + 4px;
|
|
|
- top:24px;
|
|
|
- bottom:0;
|
|
|
- width:2px;
|
|
|
- background-color:$ios-border;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-time{
|
|
|
- font-size:$ios-font-size-sm;
|
|
|
- color:$ios-text-secondary;
|
|
|
- margin-bottom:$ios-spacing-xs;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-content{
|
|
|
- background-color:$ios-background-secondary;
|
|
|
- border-radius:$ios-radius-md;
|
|
|
- padding:$ios-spacing-md;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-header{
|
|
|
- display:flex;
|
|
|
- justify-content:space-between;
|
|
|
- align-items:center;
|
|
|
- margin-bottom:$ios-spacing-sm;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-title{
|
|
|
- font-size:$ios-font-size-base;
|
|
|
- font-weight:$ios-font-weight-medium;
|
|
|
- color:$ios-text-primary;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-action{
|
|
|
- font-size:$ios-font-size-xs;
|
|
|
- background-color:$ios-primary;
|
|
|
- color:white;
|
|
|
- padding:$ios-spacing-xs $ios-spacing-sm;
|
|
|
- border-radius:$ios-radius-full;
|
|
|
-}
|
|
|
-
|
|
|
-.timeline-description{
|
|
|
- font-size:$ios-font-size-sm;
|
|
|
- color:$ios-text-secondary;
|
|
|
- line-height:1.5;
|
|
|
-}
|
|
|
|
|
|
-/* 项目文件列表样式 */
|
|
|
-.file-list{
|
|
|
- background-color:$ios-background-secondary;
|
|
|
- border-radius:$ios-radius-lg;
|
|
|
- overflow:hidden;
|
|
|
- margin-bottom:$ios-spacing-xl;
|
|
|
-}
|
|
|
-
|
|
|
-.file-header{
|
|
|
- display:flex;
|
|
|
- justify-content:space-between;
|
|
|
- align-items:center;
|
|
|
- padding:$ios-spacing-lg;
|
|
|
- border-bottom:1px solid $ios-border;
|
|
|
- background-color:$ios-background-tertiary;
|
|
|
-}
|
|
|
-
|
|
|
-.file-header h3{
|
|
|
- margin:0;
|
|
|
- font-size:$ios-font-size-base;
|
|
|
-}
|
|
|
-
|
|
|
-.file-upload-btn{
|
|
|
- background-color:$ios-primary;
|
|
|
- color:white;
|
|
|
- border:none;
|
|
|
- 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;
|
|
|
- display:flex;
|
|
|
- align-items:center;
|
|
|
- gap:$ios-spacing-xs;
|
|
|
-}
|
|
|
-
|
|
|
-.file-upload-btn:hover{
|
|
|
- background-color:#0056b3;
|
|
|
- transform:translateY(-1px);
|
|
|
-}
|
|
|
-
|
|
|
-.file-grid{
|
|
|
- display:grid;
|
|
|
- grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
|
|
|
- gap:$ios-spacing-md;
|
|
|
- padding:$ios-spacing-lg;
|
|
|
-}
|
|
|
-
|
|
|
-.file-item{
|
|
|
- background-color:$ios-background;
|
|
|
- border-radius:$ios-radius-md;
|
|
|
- padding:$ios-spacing-md;
|
|
|
- text-align:center;
|
|
|
- transition:transform 0.2s ease, box-shadow 0.2s ease;
|
|
|
- cursor:pointer;
|
|
|
-}
|
|
|
-
|
|
|
-.file-item:hover{
|
|
|
- transform:translateY(-2px);
|
|
|
- box-shadow:0 4px 12px rgba(0,0,0,0.05);
|
|
|
-}
|
|
|
-
|
|
|
-.file-icon{
|
|
|
- font-size:$ios-font-size-xl;
|
|
|
- color:$ios-primary;
|
|
|
- margin-bottom:$ios-spacing-sm;
|
|
|
-}
|
|
|
-
|
|
|
-.file-name{
|
|
|
- font-size:$ios-font-size-sm;
|
|
|
- color:$ios-text-primary;
|
|
|
- margin-bottom:$ios-spacing-xs;
|
|
|
- white-space:nowrap;
|
|
|
- overflow:hidden;
|
|
|
- text-overflow:ellipsis;
|
|
|
-}
|
|
|
-
|
|
|
-.file-meta{
|
|
|
- font-size:$ios-font-size-xs;
|
|
|
- color:$ios-text-secondary;
|
|
|
-}
|
|
|
-
|
|
|
-/* 任务卡片样式优化 */
|
|
|
-.stage-specific-card{
|
|
|
- background-color:$ios-background-secondary;
|
|
|
- border-radius:$ios-radius-lg;
|
|
|
- padding:$ios-spacing-lg;
|
|
|
- margin-bottom:$ios-spacing-xl;
|
|
|
- border-left:4px solid $ios-primary;
|
|
|
-}
|
|
|
-
|
|
|
-.stage-specific-card.warning{
|
|
|
- border-left-color:$ios-warning;
|
|
|
-}
|
|
|
-
|
|
|
-.stage-specific-card.danger{
|
|
|
- border-left-color:$ios-danger;
|
|
|
-}
|
|
|
-
|
|
|
-.stage-specific-card.success{
|
|
|
- border-left-color:$ios-success;
|
|
|
-}
|
|
|
-
|
|
|
-/* 整理按钮样式 */
|
|
|
-.organize-btn{
|
|
|
- background-color:$ios-background-tertiary;
|
|
|
- color:$ios-text-primary;
|
|
|
- border:none;
|
|
|
- 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;
|
|
|
- margin-right:$ios-spacing-md;
|
|
|
- display:flex;
|
|
|
- align-items:center;
|
|
|
- gap:$ios-spacing-xs;
|
|
|
-}
|
|
|
-
|
|
|
-.organize-btn:hover{
|
|
|
- background-color:#f0f0f0;
|
|
|
- transform:translateY(-1px);
|
|
|
-}
|
|
|
-
|
|
|
-/* 技能匹配度样式 */
|
|
|
-.skills-match-bar{
|
|
|
- width:100%;
|
|
|
- height:8px;
|
|
|
- background-color:$ios-background-tertiary;
|
|
|
- border-radius:$ios-radius-full;
|
|
|
- overflow:hidden;
|
|
|
- margin-bottom:$ios-spacing-sm;
|
|
|
-}
|
|
|
-
|
|
|
-.skills-match-fill{
|
|
|
- height:100%;
|
|
|
- background-color:$ios-primary;
|
|
|
- border-radius:$ios-radius-full;
|
|
|
-}
|
|
|
-
|
|
|
-.skills-match-text{
|
|
|
- font-size:$ios-font-size-sm;
|
|
|
- color:$ios-text-secondary;
|
|
|
- text-align:right;
|
|
|
-}
|
|
|
-
|
|
|
-/* 主内容布局样式 - 强制使用主容器内的布局定义 */
|
|
|
-.progress-tab-content > .main-content-layout {
|
|
|
- display: flex !important;
|
|
|
- gap: $ios-spacing-xl !important;
|
|
|
- margin-top: $ios-spacing-xl;
|
|
|
- width: 100% !important;
|
|
|
- background-color: rgba(200, 200, 255, 0.2) !important; /* 临时背景色用于调试 */
|
|
|
-}
|
|
|
-
|
|
|
-.progress-tab-content > .main-content-layout > .left-column {
|
|
|
- width: 33.333% !important;
|
|
|
- display: flex !important;
|
|
|
- flex-direction: column !important;
|
|
|
- gap: $ios-spacing-xl !important;
|
|
|
-}
|
|
|
-
|
|
|
-.progress-tab-content > .main-content-layout > .right-column {
|
|
|
- width: 66.667% !important;
|
|
|
- display: flex !important;
|
|
|
- flex-direction: column !important;
|
|
|
- gap: $ios-spacing-xl !important;
|
|
|
-}
|
|
|
-
|
|
|
-/* 标题样式 */
|
|
|
-h2{font-size:$ios-font-size-lg;font-weight:$ios-font-weight-semibold;color:$ios-text-primary;margin-top:0;margin-bottom:$ios-spacing-lg;padding-bottom:$ios-spacing-sm;border-bottom:1px solid $ios-border}
|
|
|
-h3{font-size:$ios-font-size-base;font-weight:$ios-font-weight-medium;color:$ios-text-primary;margin-top:$ios-spacing-lg;margin-bottom:$ios-spacing-md}
|
|
|
-h4{font-size:$ios-font-size-sm;font-weight:$ios-font-weight-medium;color:$ios-text-primary;margin-top:$ios-spacing-md;margin-bottom:$ios-spacing-sm}
|
|
|
-
|
|
|
-/* 项目基本信息卡片 */
|
|
|
-.project-info-card .info-grid{display:grid;grid-template-columns:1fr 1fr;gap:$ios-spacing-md}
|
|
|
-.info-item{display:flex;flex-direction:column;gap:$ios-spacing-xs}
|
|
|
-.info-item label{font-size:$ios-font-size-sm;color:$ios-text-secondary;font-weight:$ios-font-weight-medium}
|
|
|
-.info-item span{font-size:$ios-font-size-base;color:$ios-text-primary;font-weight:$ios-font-weight-regular}
|
|
|
-.stage-tag{display:inline-block;padding:$ios-spacing-xs $ios-spacing-md;border-radius:$ios-radius-full;background-color:#e6f7e6;color:$ios-success;font-size:$ios-font-size-sm;font-weight:$ios-font-weight-medium}
|
|
|
-
|
|
|
-/* 客户画像卡片 */
|
|
|
-.warning-banner{background-color:#ffebee;color:$ios-danger;padding:$ios-spacing-md $ios-spacing-lg;border-radius:$ios-radius-md;margin-bottom:$ios-spacing-xl;border-left:4px solid $ios-danger;font-size:$ios-font-size-base;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:$ios-spacing-md}
|
|
|
-.warning-content{display:flex;align-items:center;gap:$ios-spacing-sm;flex:1}
|
|
|
-.warning-icon{font-size:$ios-font-size-lg}
|
|
|
-.contact-leader-btn{background-color:$ios-danger;color:white;border:none;padding:$ios-spacing-xs $ios-spacing-md;border-radius:$ios-radius-md;font-size:$ios-font-size-sm;cursor:pointer;font-weight:$ios-font-weight-medium}
|
|
|
-.contact-leader-btn:hover{background-color:#c62828;transform:translateY(-1px)}
|
|
|
-
|
|
|
-/* 标签样式 */
|
|
|
-.tags-container{display:flex;flex-direction:column;gap:$ios-spacing-lg}
|
|
|
-.tag-section{margin-bottom:$ios-spacing-md}
|
|
|
-.tag-section h3{margin-top:0;font-size:$ios-font-size-base}
|
|
|
-.tags-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));gap:$ios-spacing-md}
|
|
|
-.tag-item{display:flex;flex-direction:column;gap:$ios-spacing-xs}
|
|
|
-.tag-label{font-size:$ios-font-size-xs;color:$ios-text-secondary;font-weight:$ios-font-weight-medium}
|
|
|
-.tag{display:inline-block;padding:$ios-spacing-xs $ios-spacing-md;border-radius:$ios-radius-full;background-color:$ios-background-tertiary;color:$ios-text-primary;font-size:$ios-font-size-sm;font-weight:$ios-font-weight-medium;align-self:flex-start}
|
|
|
-.tags-flex{display:flex;flex-direction:column;gap:$ios-spacing-md}
|
|
|
-.tag-group{display:flex;flex-direction:column;gap:$ios-spacing-sm}
|
|
|
-.group-label{font-size:$ios-font-size-sm;color:$ios-text-secondary;font-weight:$ios-font-weight-medium}
|
|
|
-.tags{display:flex;flex-wrap:wrap;gap:$ios-spacing-sm}
|
|
|
-.priority-tag,.skill-tag{display:inline-block;padding:$ios-spacing-xs $ios-spacing-sm;border-radius:$ios-radius-full;background-color:$ios-background-tertiary;color:$ios-text-primary;font-size:$ios-font-size-xs;font-weight:$ios-font-weight-medium}
|
|
|
-.priority-tag{background-color:#fff3cd;color:$ios-warning}
|
|
|
-.skill-tag{background-color:#e8f0fe;color:$ios-primary}
|
|
|
-
|
|
|
-/* 项目进度看板 - 支持10个阶段的横向进度展示 */
|
|
|
-.stage-progress-container{
|
|
|
- margin-bottom:$ios-spacing-xl;
|
|
|
- background-color:$ios-background-secondary;
|
|
|
- border-radius:$ios-radius-lg;
|
|
|
- padding:$ios-spacing-lg;
|
|
|
- box-shadow:0 2px 8px rgba(0,0,0,0.03);
|
|
|
-}
|
|
|
+ // 确认方案按钮样式 - 优化版本
|
|
|
+ .proposal-confirm-actions {
|
|
|
+ margin-top: 40px;
|
|
|
+ padding-top: 32px;
|
|
|
+ border-top: 1px solid rgba(0, 0, 0, 0.06);
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ // 添加背景装饰
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ width: 60px;
|
|
|
+ height: 3px;
|
|
|
+ background: linear-gradient(90deg, transparent 0%, #007aff 50%, transparent 100%);
|
|
|
+ border-radius: 2px;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 使用更高特异性的选择器确保样式生效
|
|
|
+ .proposal-confirm-actions .confirm-proposal-btn,
|
|
|
+ button.confirm-proposal-btn {
|
|
|
+ appearance: none !important;
|
|
|
+ border: none !important;
|
|
|
+ background: linear-gradient(135deg, #007aff 0%, #0066ff 50%, #0051d5 100%) !important;
|
|
|
+ color: white !important;
|
|
|
+ padding: 16px 40px !important;
|
|
|
+ border-radius: 16px !important;
|
|
|
+ font-size: 16px !important;
|
|
|
+ font-weight: 600 !important;
|
|
|
+ cursor: pointer !important;
|
|
|
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
|
|
|
+ display: flex !important;
|
|
|
+ align-items: center !important;
|
|
|
+ gap: 10px !important;
|
|
|
+ box-shadow:
|
|
|
+ 0 8px 24px rgba(0, 122, 255, 0.25),
|
|
|
+ 0 4px 12px rgba(0, 122, 255, 0.15),
|
|
|
+ inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
|
|
|
+ min-width: 180px !important;
|
|
|
+ justify-content: center !important;
|
|
|
+ position: relative !important;
|
|
|
+ overflow: hidden !important;
|
|
|
+ backdrop-filter: blur(10px) !important;
|
|
|
+
|
|
|
+ // 重置可能的Material Design样式
|
|
|
+ text-transform: none !important;
|
|
|
+ letter-spacing: normal !important;
|
|
|
+ line-height: normal !important;
|
|
|
+
|
|
|
+ // 添加内部光泽效果
|
|
|
+ &::before {
|
|
|
+ content: '' !important;
|
|
|
+ position: absolute !important;
|
|
|
+ top: 0 !important;
|
|
|
+ left: -100% !important;
|
|
|
+ width: 100% !important;
|
|
|
+ height: 100% !important;
|
|
|
+ background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.2) 50%, transparent 100%) !important;
|
|
|
+ transition: left 0.6s ease !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ svg {
|
|
|
+ width: 20px !important;
|
|
|
+ height: 20px !important;
|
|
|
+ stroke-width: 2.5 !important;
|
|
|
+ filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)) !important;
|
|
|
+ transition: transform 0.3s ease !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 悬停状态优化
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-3px) scale(1.02) !important;
|
|
|
+ box-shadow:
|
|
|
+ 0 12px 32px rgba(0, 122, 255, 0.35),
|
|
|
+ 0 6px 16px rgba(0, 122, 255, 0.25),
|
|
|
+ inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
|
|
|
+ background: linear-gradient(135deg, #0066ff 0%, #007aff 50%, #0051d5 100%) !important;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ left: 100% !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ svg {
|
|
|
+ transform: scale(1.1) rotate(5deg) !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 点击状态优化
|
|
|
+ &:active {
|
|
|
+ transform: translateY(-1px) scale(0.98) !important;
|
|
|
+ box-shadow:
|
|
|
+ 0 4px 16px rgba(0, 122, 255, 0.3),
|
|
|
+ 0 2px 8px rgba(0, 122, 255, 0.2),
|
|
|
+ inset 0 2px 4px rgba(0, 0, 0, 0.1) !important;
|
|
|
+ transition: all 0.15s ease !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 焦点状态
|
|
|
+ &:focus {
|
|
|
+ outline: none !important;
|
|
|
+ box-shadow:
|
|
|
+ 0 8px 24px rgba(0, 122, 255, 0.25),
|
|
|
+ 0 4px 12px rgba(0, 122, 255, 0.15),
|
|
|
+ 0 0 0 3px rgba(0, 122, 255, 0.3) !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 禁用状态
|
|
|
+ &:disabled {
|
|
|
+ opacity: 0.6 !important;
|
|
|
+ cursor: not-allowed !important;
|
|
|
+ transform: none !important;
|
|
|
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: none;
|
|
|
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 响应式设计
|
|
|
+ @media (max-width: 768px) {
|
|
|
+ padding: 14px 32px;
|
|
|
+ font-size: 15px;
|
|
|
+ min-width: 160px;
|
|
|
+ border-radius: 14px;
|
|
|
+
|
|
|
+ svg {
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-2px) scale(1.01);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @media (max-width: 480px) {
|
|
|
+ padding: 12px 24px;
|
|
|
+ font-size: 14px;
|
|
|
+ min-width: 140px;
|
|
|
+ border-radius: 12px;
|
|
|
+ gap: 8px;
|
|
|
+
|
|
|
+ svg {
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-1px);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 高对比度模式支持
|
|
|
+ @media (prefers-contrast: high) {
|
|
|
+ border: 2px solid #007aff;
|
|
|
+ box-shadow:
|
|
|
+ 0 4px 12px rgba(0, 0, 0, 0.3),
|
|
|
+ inset 0 1px 0 rgba(255, 255, 255, 0.4);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 减少动画模式支持
|
|
|
+ @media (prefers-reduced-motion: reduce) {
|
|
|
+ transition: none;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ transition: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ svg {
|
|
|
+ transition: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: none;
|
|
|
+
|
|
|
+ svg {
|
|
|
+ transform: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 响应式容器调整
|
|
|
+ @media (max-width: 768px) {
|
|
|
+ margin-top: 32px;
|
|
|
+ padding-top: 24px;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ width: 50px;
|
|
|
+ height: 2px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @media (max-width: 480px) {
|
|
|
+ margin-top: 24px;
|
|
|
+ padding-top: 20px;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ width: 40px;
|
|
|
+ height: 2px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/* 方案确认阶段样式 */
|
|
|
+.proposal-confirm-section {
|
|
|
+ background: white;
|
|
|
+ border-radius: 12px;
|
|
|
+ padding: 24px;
|
|
|
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.06);
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
|
-/* 进度条容器 - 支持滚动查看所有10个阶段 */
|
|
|
-.stage-progress-wrapper{
|
|
|
- position:relative;
|
|
|
- overflow-x:auto;
|
|
|
- padding-bottom:$ios-spacing-md;
|
|
|
- /* 隐藏滚动条但保持功能 */
|
|
|
- scrollbar-width:none; /* Firefox */
|
|
|
- -ms-overflow-style:none; /* IE and Edge */
|
|
|
-}
|
|
|
+ .section-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-bottom: 24px;
|
|
|
+ padding-bottom: 16px;
|
|
|
+ border-bottom: 1px solid rgba(0, 0, 0, 0.08);
|
|
|
+
|
|
|
+ h4 {
|
|
|
+ margin: 0;
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '✓';
|
|
|
+ width: 28px;
|
|
|
+ height: 28px;
|
|
|
+ background: linear-gradient(135deg, #34c759 0%, #30d158 100%);
|
|
|
+ color: white;
|
|
|
+ border-radius: 6px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ font-size: 14px;
|
|
|
+ box-shadow: 0 2px 8px rgba(52, 199, 89, 0.3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .progress-indicator {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ padding: 8px 16px;
|
|
|
+ background: rgba(52, 199, 89, 0.1);
|
|
|
+ border-radius: 20px;
|
|
|
+ border: 1px solid rgba(52, 199, 89, 0.2);
|
|
|
+
|
|
|
+ .progress-text {
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #34c759;
|
|
|
+ }
|
|
|
+
|
|
|
+ &::after {
|
|
|
+ content: '✓';
|
|
|
+ font-size: 12px;
|
|
|
+ color: #34c759;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
-.stage-progress-wrapper::-webkit-scrollbar{
|
|
|
- display:none; /* Chrome, Safari, Opera */
|
|
|
-}
|
|
|
+ .requirement-info-display {
|
|
|
+ .info-header {
|
|
|
+ margin-bottom: 20px;
|
|
|
+
|
|
|
+ h5 {
|
|
|
+ margin: 0 0 4px 0;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+ }
|
|
|
+
|
|
|
+ .info-subtitle {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #8e8e93;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .info-grid {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(45%, 1fr)); // 使用百分比替代固定像素
|
|
|
+ gap: 1.5%; // 使用百分比间距
|
|
|
+
|
|
|
+ // 色调和材质并排布局
|
|
|
+ .color-material-row {
|
|
|
+ display: flex;
|
|
|
+ gap: 1.5%; // 使用百分比间距
|
|
|
+
|
|
|
+ @media (max-width: 768px) {
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 1.2%; // 移动端使用更小的百分比间距
|
|
|
+ }
|
|
|
+
|
|
|
+ .color-item,
|
|
|
+ .material-item {
|
|
|
+ flex: 1;
|
|
|
+ min-width: 0; // 防止内容溢出
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 空间结构和材质权重并排布局
|
|
|
+ .structure-weight-row {
|
|
|
+ display: flex;
|
|
|
+ gap: 1.5%; // 使用百分比间距
|
|
|
+
|
|
|
+ @media (max-width: 768px) {
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 1.2%; // 移动端使用更小的百分比间距
|
|
|
+ }
|
|
|
+
|
|
|
+ .structure-item,
|
|
|
+ .weight-item {
|
|
|
+ flex: 1;
|
|
|
+ min-width: 0; // 防止内容溢出
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 预设氛围和小图时间并排布局
|
|
|
+ .atmosphere-time-row {
|
|
|
+ display: flex;
|
|
|
+ gap: 1.5%; // 使用百分比间距
|
|
|
+
|
|
|
+ @media (max-width: 768px) {
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 1.2%; // 移动端使用更小的百分比间距
|
|
|
+ }
|
|
|
+
|
|
|
+ .atmosphere-item,
|
|
|
+ .time-item {
|
|
|
+ flex: 1;
|
|
|
+ min-width: 0; // 防止内容溢出
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .info-item {
|
|
|
+ background: rgba(0, 122, 255, 0.02);
|
|
|
+ border: 1px solid rgba(0, 122, 255, 0.08);
|
|
|
+ border-radius: 0.8rem; // 使用rem单位
|
|
|
+ padding: 1.2rem; // 使用rem单位
|
|
|
+ transition: all 0.2s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-0.15rem); // 使用rem单位
|
|
|
+ box-shadow: 0 0.3rem 1.2rem rgba(0, 122, 255, 0.1);
|
|
|
+ border-color: rgba(0, 122, 255, 0.15);
|
|
|
+ }
|
|
|
+
|
|
|
+ .info-label {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 0.6rem; // 使用rem单位
|
|
|
+ margin-bottom: 0.9rem; // 使用rem单位
|
|
|
+ font-size: 0.9rem; // 使用rem单位
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+
|
|
|
+ svg {
|
|
|
+ width: 1rem; // 使用rem单位
|
|
|
+ height: 16px;
|
|
|
+ color: #007aff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .info-content {
|
|
|
+ .info-value {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #1d1d1f;
|
|
|
+ font-weight: 500;
|
|
|
+ display: block;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .color-preview {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ border-radius: 4px;
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
+ display: inline-block;
|
|
|
+ margin-left: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .material-list {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ gap: 6px;
|
|
|
+
|
|
|
+ .material-tag {
|
|
|
+ background: rgba(52, 199, 89, 0.1);
|
|
|
+ color: #34c759;
|
|
|
+ padding: 4px 8px;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .structure-details {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 4px;
|
|
|
+
|
|
|
+ .structure-item {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #666;
|
|
|
+ padding: 2px 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .weight-list {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 8px;
|
|
|
+
|
|
|
+ .weight-item {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ padding: 6px 12px;
|
|
|
+ background: white;
|
|
|
+ border-radius: 6px;
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.06);
|
|
|
+
|
|
|
+ .weight-label {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #666;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+
|
|
|
+ .weight-value {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #007aff;
|
|
|
+ font-weight: 600;
|
|
|
+ background: rgba(0, 122, 255, 0.1);
|
|
|
+ padding: 2px 8px;
|
|
|
+ border-radius: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .atmosphere-info {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+
|
|
|
+ .atmosphere-name {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #1d1d1f;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+
|
|
|
+ .color-temp {
|
|
|
+ font-size: 11px;
|
|
|
+ background: rgba(255, 149, 0, 0.1);
|
|
|
+ color: #ff9500;
|
|
|
+ padding: 2px 6px;
|
|
|
+ border-radius: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .time-estimate {
|
|
|
+ font-size: 16px;
|
|
|
+ color: #007aff;
|
|
|
+ font-weight: 600;
|
|
|
+ background: rgba(0, 122, 255, 0.1);
|
|
|
+ padding: 8px 16px;
|
|
|
+ border-radius: 8px;
|
|
|
+ display: inline-block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
-/* 进度条容器内部样式 */
|
|
|
-.stage-progress{
|
|
|
- display:flex;
|
|
|
- align-items:center;
|
|
|
- position:relative;
|
|
|
- padding:$ios-spacing-sm 0;
|
|
|
- min-width:100%;
|
|
|
+ .requirement-pending {
|
|
|
+ text-align: center;
|
|
|
+ padding: 40px 20px;
|
|
|
+ background: rgba(255, 149, 0, 0.02);
|
|
|
+ border: 2px dashed rgba(255, 149, 0, 0.2);
|
|
|
+ border-radius: 12px;
|
|
|
+
|
|
|
+ .pending-icon {
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ svg {
|
|
|
+ color: rgba(255, 149, 0, 0.4);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ h5 {
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+ margin: 0 0 8px 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ p {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #8e8e93;
|
|
|
+ line-height: 1.4;
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 进度线 */
|
|
|
-.stage-progress::before{
|
|
|
- content:'';
|
|
|
- position:absolute;
|
|
|
- top:50%;
|
|
|
- left:22px; /* 图标宽度的一半 */
|
|
|
- right:22px;
|
|
|
- height:3px;
|
|
|
- background-color:$ios-border;
|
|
|
- transform:translateY(-50%);
|
|
|
- z-index:1;
|
|
|
+/* 方案确认阶段样式 */
|
|
|
+.proposal-confirm-stage {
|
|
|
+ .requirement-summary-card {
|
|
|
+ background: white;
|
|
|
+ border-radius: 12px;
|
|
|
+ padding: 24px;
|
|
|
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.06);
|
|
|
+ margin-bottom: 20px;
|
|
|
+
|
|
|
+ .card-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ padding-bottom: 16px;
|
|
|
+ border-bottom: 1px solid rgba(0, 0, 0, 0.08);
|
|
|
+
|
|
|
+ .header-left {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ .status-icon {
|
|
|
+ width: 32px;
|
|
|
+ height: 32px;
|
|
|
+ border-radius: 8px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ font-size: 16px;
|
|
|
+ background: linear-gradient(135deg, #34c759 0%, #30d158 100%);
|
|
|
+ color: white;
|
|
|
+ box-shadow: 0 2px 8px rgba(52, 199, 89, 0.3);
|
|
|
+ }
|
|
|
+
|
|
|
+ .header-text {
|
|
|
+ h3 {
|
|
|
+ margin: 0 0 4px 0;
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+ }
|
|
|
+
|
|
|
+ .subtitle {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #8e8e93;
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .progress-indicator {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ padding: 8px 16px;
|
|
|
+ background: rgba(52, 199, 89, 0.1);
|
|
|
+ border-radius: 20px;
|
|
|
+ border: 1px solid rgba(52, 199, 89, 0.2);
|
|
|
+
|
|
|
+ .progress-text {
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #34c759;
|
|
|
+ }
|
|
|
+
|
|
|
+ .check-icon {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #34c759;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .requirement-info-grid {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
|
+ gap: 16px;
|
|
|
+
|
|
|
+ .info-section {
|
|
|
+ background: rgba(0, 122, 255, 0.02);
|
|
|
+ border: 1px solid rgba(0, 122, 255, 0.08);
|
|
|
+ border-radius: 10px;
|
|
|
+ padding: 16px;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-2px);
|
|
|
+ box-shadow: 0 4px 16px rgba(0, 122, 255, 0.1);
|
|
|
+ border-color: rgba(0, 122, 255, 0.15);
|
|
|
+ }
|
|
|
+
|
|
|
+ .section-title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ margin-bottom: 12px;
|
|
|
+
|
|
|
+ .title-icon {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ border-radius: 4px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ font-size: 12px;
|
|
|
+ background: #007aff;
|
|
|
+ color: white;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title-text {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .info-content {
|
|
|
+ .info-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 10px 0;
|
|
|
+ border-bottom: 1px solid rgba(0, 0, 0, 0.04);
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-bottom: none;
|
|
|
+ padding-bottom: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .item-label {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #666;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+
|
|
|
+ .item-value {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #1d1d1f;
|
|
|
+ font-weight: 600;
|
|
|
+ text-align: right;
|
|
|
+ max-width: 60%;
|
|
|
+ word-break: break-word;
|
|
|
+
|
|
|
+ &.highlight {
|
|
|
+ color: #007aff;
|
|
|
+ background: rgba(0, 122, 255, 0.1);
|
|
|
+ padding: 2px 8px;
|
|
|
+ border-radius: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .completion-placeholder {
|
|
|
+ text-align: center;
|
|
|
+ padding: 40px 20px;
|
|
|
+ background: rgba(255, 149, 0, 0.02);
|
|
|
+ border: 2px dashed rgba(255, 149, 0, 0.2);
|
|
|
+ border-radius: 12px;
|
|
|
+
|
|
|
+ .placeholder-icon {
|
|
|
+ font-size: 48px;
|
|
|
+ color: rgba(255, 149, 0, 0.4);
|
|
|
+ margin-bottom: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .placeholder-title {
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #1d1d1f;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .placeholder-subtitle {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #8e8e93;
|
|
|
+ line-height: 1.4;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-.progress-line{
|
|
|
- position:absolute;
|
|
|
- top:50%;
|
|
|
- left:22px; /* 图标宽度的一半 */
|
|
|
- height:3px;
|
|
|
- background:linear-gradient(90deg, $ios-success, $ios-primary);
|
|
|
- transform:translateY(-50%);
|
|
|
- z-index:2;
|
|
|
- transition:width 0.3s ease;
|
|
|
+@keyframes modalFadeIn {
|
|
|
+ from {
|
|
|
+ opacity: 0;
|
|
|
+ transform: scale(0.9);
|
|
|
+ }
|
|
|
+ to {
|
|
|
+ opacity: 1;
|
|
|
+ transform: scale(1);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 阶段样式 - 10个阶段均匀分布 */
|
|
|
-.stage{
|
|
|
- display:flex;
|
|
|
- flex-direction:column;
|
|
|
- align-items:center;
|
|
|
- z-index:3;
|
|
|
- position:relative;
|
|
|
- flex-shrink:0;
|
|
|
- width:100px;
|
|
|
- cursor:pointer;
|
|
|
- transition:transform 0.2s ease;
|
|
|
- padding:0 $ios-spacing-sm;
|
|
|
+// 下拉菜单动画
|
|
|
+@keyframes dropdown-fade-in {
|
|
|
+ from {
|
|
|
+ opacity: 0;
|
|
|
+ transform: translateY(-8px);
|
|
|
+ }
|
|
|
+ to {
|
|
|
+ opacity: 1;
|
|
|
+ transform: translateY(0);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-.stage:hover{
|
|
|
- transform:translateY(-2px);
|
|
|
+/* 项目标题栏 */
|
|
|
+.project-header {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: $ios-spacing-xl; // 增加底部间距
|
|
|
+ background-color: white;
|
|
|
+ padding: $ios-spacing-lg;
|
|
|
+ border-radius: $ios-radius-lg;
|
|
|
+ width: 100%;
|
|
|
+ box-sizing: border-box;
|
|
|
+ position: relative; // 确保下拉菜单正确定位
|
|
|
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
|
+
|
|
|
+ .header-left {
|
|
|
+ flex: 1;
|
|
|
+
|
|
|
+ .header-content {
|
|
|
+ h1 {
|
|
|
+ margin: 0 0 8px 0;
|
|
|
+ font-size: $ios-font-size-xl;
|
|
|
+ font-weight: $ios-font-weight-semibold;
|
|
|
+ color: $ios-text-primary;
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-meta {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: $ios-spacing-md;
|
|
|
+
|
|
|
+ .project-id {
|
|
|
+ font-size: $ios-font-size-sm;
|
|
|
+ color: $ios-text-secondary;
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-status {
|
|
|
+ padding: $ios-spacing-xs $ios-spacing-sm;
|
|
|
+ border-radius: $ios-radius-full;
|
|
|
+ font-size: $ios-font-size-xs;
|
|
|
+ font-weight: $ios-font-weight-medium;
|
|
|
+ background-color: $ios-primary;
|
|
|
+ color: white;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .header-right {
|
|
|
+ .header-actions {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: $ios-spacing-sm;
|
|
|
+
|
|
|
+ // 顶部导航条容器样式
|
|
|
+ .top-nav-container {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-right: $ios-spacing-md; // 与导出按钮保持间距
|
|
|
+
|
|
|
+ // 顶部导航条样式
|
|
|
+ .top-nav {
|
|
|
+ .vertical-nav {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row; // 水平排列
|
|
|
+ gap: 10px; // 导航按钮之间的间距
|
|
|
+ background: rgba(0, 122, 255, 0.05);
|
|
|
+ border-radius: 8px;
|
|
|
+ padding: 4px;
|
|
|
+
|
|
|
+ .nav-item {
|
|
|
+ padding: 8px 16px;
|
|
|
+ border: none;
|
|
|
+ border-radius: 6px;
|
|
|
+ background: transparent;
|
|
|
+ color: $ios-text-primary;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+ white-space: nowrap;
|
|
|
+ min-height: 36px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: rgba(0, 122, 255, 0.1);
|
|
|
+ color: $ios-primary;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ background: $ios-primary;
|
|
|
+ color: white;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+
|
|
|
+ .nav-text {
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .action-btn {
|
|
|
+ padding: 10px 16px;
|
|
|
+ border: none;
|
|
|
+ border-radius: 8px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.2s ease-in-out;
|
|
|
+ display: inline-flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 6px;
|
|
|
+ min-height: 40px;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-decoration: none;
|
|
|
+
|
|
|
+ svg {
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:focus {
|
|
|
+ outline: 2px solid $ios-primary;
|
|
|
+ outline-offset: 2px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-1px);
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(0);
|
|
|
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 主要按钮样式(返回工作台)
|
|
|
+ &.primary {
|
|
|
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
|
+ color: white;
|
|
|
+ font-weight: 600;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: linear-gradient(135deg, #5a6fd8 0%, #6a4190 100%);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 次要按钮样式
|
|
|
+ &.secondary-btn {
|
|
|
+ background-color: #f8f9fa;
|
|
|
+ color: #495057;
|
|
|
+ border: 1px solid #e9ecef;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: #e9ecef;
|
|
|
+ border-color: #dee2e6;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 停滞按钮样式
|
|
|
+ &.stagnation-btn {
|
|
|
+ background-color: #fff3cd;
|
|
|
+ color: #856404;
|
|
|
+ border: 1px solid #ffeaa7;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: #ffeaa7;
|
|
|
+ border-color: #ffdd57;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 切换项目按钮样式
|
|
|
+ &.switch-btn {
|
|
|
+ background-color: #e3f2fd;
|
|
|
+ color: #1565c0;
|
|
|
+ border: 1px solid #bbdefb;
|
|
|
+
|
|
|
+ .dropdown-icon {
|
|
|
+ transition: transform 0.2s ease-in-out;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: #bbdefb;
|
|
|
+ border-color: #90caf9;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 项目切换器
|
|
|
+ .project-switcher {
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .switch-dropdown {
|
|
|
+ position: absolute;
|
|
|
+ top: calc(100% + 8px);
|
|
|
+ right: 0;
|
|
|
+ background: white;
|
|
|
+ border: 1px solid #e9ecef;
|
|
|
+ border-radius: 8px;
|
|
|
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
|
|
|
+ z-index: 1000;
|
|
|
+ min-width: 280px;
|
|
|
+ max-height: 300px;
|
|
|
+ overflow-y: auto;
|
|
|
+ animation: dropdown-fade-in 0.2s ease-out;
|
|
|
+
|
|
|
+ .project-item {
|
|
|
+ padding: 12px 16px;
|
|
|
+ cursor: pointer;
|
|
|
+ border-bottom: 1px solid #f8f9fa;
|
|
|
+ transition: background-color 0.2s ease-in-out;
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: #f8f9fa;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ background-color: #e3f2fd;
|
|
|
+
|
|
|
+ .project-name {
|
|
|
+ color: #1565c0;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-name {
|
|
|
+ display: block;
|
|
|
+ font-weight: 500;
|
|
|
+ margin-bottom: 4px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-status-badge {
|
|
|
+ font-size: 12px;
|
|
|
+ padding: 2px 8px;
|
|
|
+ border-radius: 12px;
|
|
|
+
|
|
|
+ &.ongoing {
|
|
|
+ background-color: #e8f5e8;
|
|
|
+ color: #2e7d32;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.completed {
|
|
|
+ background-color: #e3f2fd;
|
|
|
+ color: #1565c0;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.pending {
|
|
|
+ background-color: #fff3e0;
|
|
|
+ color: #ef6c00;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 阶段图标 - 现代化设计 */
|
|
|
-.stage-icon{
|
|
|
- width:44px;
|
|
|
- height:44px;
|
|
|
- border-radius:50%;
|
|
|
- background-color:$ios-border;
|
|
|
- color:$ios-text-secondary;
|
|
|
- display:flex;
|
|
|
- justify-content:center;
|
|
|
- align-items:center;
|
|
|
- font-weight:$ios-font-weight-semibold;
|
|
|
- margin-bottom:$ios-spacing-sm;
|
|
|
- transition:all 0.3s ease;
|
|
|
- box-shadow:0 2px 4px rgba(0,0,0,0.05);
|
|
|
+// 下拉菜单动画
|
|
|
+@keyframes dropdown-fade-in {
|
|
|
+ from {
|
|
|
+ opacity: 0;
|
|
|
+ transform: translateY(-8px);
|
|
|
+ }
|
|
|
+ to {
|
|
|
+ opacity: 1;
|
|
|
+ transform: translateY(0);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 已完成阶段样式 */
|
|
|
-.stage.completed .stage-icon{
|
|
|
- background:linear-gradient(135deg, $ios-success, #2e7d32);
|
|
|
- color:white;
|
|
|
- box-shadow:0 0 0 4px #e6f7e6, 0 4px 12px rgba(46, 125, 50, 0.2);
|
|
|
+// 响应式设计
|
|
|
+@media (max-width: 768px) {
|
|
|
+ .project-header {
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: stretch;
|
|
|
+ gap: 16px;
|
|
|
+
|
|
|
+ .header-right {
|
|
|
+ .header-actions {
|
|
|
+ flex-wrap: wrap;
|
|
|
+ justify-content: flex-end;
|
|
|
+ gap: 8px;
|
|
|
+
|
|
|
+ .action-btn {
|
|
|
+ font-size: 13px;
|
|
|
+ padding: 8px 12px;
|
|
|
+ min-height: 36px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 当前阶段样式 - 强调设计 */
|
|
|
-.stage.active .stage-icon{
|
|
|
- background:linear-gradient(135deg, $ios-primary, #0056b3);
|
|
|
- color:white;
|
|
|
- box-shadow:0 0 0 4px #e8f0fe, 0 4px 16px rgba(0, 123, 255, 0.3);
|
|
|
- animation:pulse 2s infinite;
|
|
|
-}
|
|
|
+/* 项目内容区域 */
|
|
|
+.project-content {
|
|
|
+ .action-btn {
|
|
|
+ padding: $ios-spacing-sm $ios-spacing-md;
|
|
|
+ border: 1px solid $ios-border;
|
|
|
+ border-radius: $ios-radius-md;
|
|
|
+ font-size: $ios-font-size-sm;
|
|
|
+ font-weight: $ios-font-weight-medium;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+ display: inline-flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: $ios-spacing-xs;
|
|
|
+
|
|
|
+ svg {
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ fill: currentColor;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: $ios-background-tertiary;
|
|
|
+ transform: translateY(-1px);
|
|
|
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
|
+ border-color: color-mix(in srgb, $ios-border 70%, $ios-primary);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(0);
|
|
|
+ background-color: $ios-background-secondary;
|
|
|
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .switch-btn {
|
|
|
+ background-color: $ios-primary;
|
|
|
+ color: white;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: color-mix(in srgb, $ios-primary 85%, black);
|
|
|
+ transform: translateY(-1px);
|
|
|
+ box-shadow: 0 4px 12px rgba(22, 93, 255, 0.25);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(0);
|
|
|
+ box-shadow: 0 2px 6px rgba(22, 93, 255, 0.2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .secondary-btn {
|
|
|
+ background-color: $ios-background-secondary;
|
|
|
+ color: $ios-text-primary;
|
|
|
+ border: 1px solid $ios-border;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: $ios-background-tertiary;
|
|
|
+ transform: translateY(-1px);
|
|
|
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
|
+ border-color: color-mix(in srgb, $ios-border 70%, $ios-primary);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(0);
|
|
|
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .stagnation-btn {
|
|
|
+ background-color: $ios-warning;
|
|
|
+ color: white;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: color-mix(in srgb, $ios-warning 85%, black);
|
|
|
+ transform: translateY(-1px);
|
|
|
+ box-shadow: 0 4px 12px rgba(255, 125, 0, 0.25);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(0);
|
|
|
+ box-shadow: 0 2px 6px rgba(255, 125, 0, 0.2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-switcher {
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .switch-dropdown {
|
|
|
+ position: absolute;
|
|
|
+ top: 100%;
|
|
|
+ right: 0;
|
|
|
+ margin-top: $ios-spacing-xs;
|
|
|
+ background-color: white;
|
|
|
+ border: 1px solid $ios-border;
|
|
|
+ border-radius: $ios-radius-md;
|
|
|
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
|
|
|
+ min-width: 280px;
|
|
|
+ max-height: 300px;
|
|
|
+ overflow-y: auto;
|
|
|
+ z-index: 1000;
|
|
|
+
|
|
|
+ // 添加动画效果
|
|
|
+ animation: dropdown-fade-in 0.2s ease-out;
|
|
|
+
|
|
|
+ .project-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: $ios-spacing-md;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.15s ease-in-out;
|
|
|
+ border-bottom: 1px solid $ios-border;
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: $ios-background-secondary;
|
|
|
+ transform: translateX(2px);
|
|
|
+ }
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ background-color: color-mix(in srgb, $ios-primary 10%, white);
|
|
|
+ color: $ios-primary;
|
|
|
+ border-left: 3px solid $ios-primary;
|
|
|
+ padding-left: calc(#{$ios-spacing-md} - 3px);
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-name {
|
|
|
+ font-size: $ios-font-size-sm;
|
|
|
+ font-weight: $ios-font-weight-medium;
|
|
|
+ color: $ios-text-primary;
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-status-badge {
|
|
|
+ padding: $ios-spacing-xs $ios-spacing-sm;
|
|
|
+ border-radius: $ios-radius-full;
|
|
|
+ font-size: $ios-font-size-xs;
|
|
|
+ font-weight: $ios-font-weight-medium;
|
|
|
+
|
|
|
+ &.ongoing {
|
|
|
+ background-color: color-mix(in srgb, $ios-success 15%, white);
|
|
|
+ color: $ios-success;
|
|
|
+ border: 1px solid color-mix(in srgb, $ios-success 30%, white);
|
|
|
+ }
|
|
|
+
|
|
|
+ &.completed {
|
|
|
+ background-color: color-mix(in srgb, $ios-primary 15%, white);
|
|
|
+ color: $ios-primary;
|
|
|
+ border: 1px solid color-mix(in srgb, $ios-primary 30%, white);
|
|
|
+ }
|
|
|
+
|
|
|
+ &.pending {
|
|
|
+ background-color: color-mix(in srgb, $ios-warning 15%, white);
|
|
|
+ color: $ios-warning;
|
|
|
+ border: 1px solid color-mix(in srgb, $ios-warning 30%, white);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
-@keyframes pulse {
|
|
|
- 0% {
|
|
|
- box-shadow:0 0 0 4px #e8f0fe, 0 4px 16px rgba(0, 123, 255, 0.3);
|
|
|
+/* 主内容布局 */
|
|
|
+.main-content-layout {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: 1fr 28%; // 使用百分比:主内容区和右侧栏(28%)
|
|
|
+ gap: 2%;
|
|
|
+ max-width: 96vw; // 使用视口单位,留出4%边距
|
|
|
+ margin: 0 auto;
|
|
|
+ overflow: visible;
|
|
|
+ align-items: start;
|
|
|
+
|
|
|
+ // 移除导航栏列相关样式
|
|
|
+ .nav-column {
|
|
|
+ display: none; // 隐藏导航栏列
|
|
|
}
|
|
|
- 50% {
|
|
|
- box-shadow:0 0 0 6px #e8f0fe, 0 4px 20px rgba(0, 123, 255, 0.4);
|
|
|
+
|
|
|
+ .left-column {
|
|
|
+ padding: 0;
|
|
|
+ min-width: 0;
|
|
|
+ flex: 1;
|
|
|
}
|
|
|
- 100% {
|
|
|
- box-shadow:0 0 0 4px #e8f0fe, 0 4px 16px rgba(0, 123, 255, 0.3);
|
|
|
+
|
|
|
+ .right-column {
|
|
|
+ padding: 0;
|
|
|
+ min-width: 25%; // 使用百分比最小宽度
|
|
|
+ max-width: 32%; // 使用百分比最大宽度
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/* 未开始阶段样式 */
|
|
|
-.stage.pending .stage-icon{
|
|
|
- background-color:$ios-background-tertiary;
|
|
|
- color:$ios-text-secondary;
|
|
|
-}
|
|
|
-
|
|
|
-/* 阶段名称样式 - 响应式设计 */
|
|
|
-.stage-name{
|
|
|
- font-size:$ios-font-size-xs;
|
|
|
- color:$ios-text-secondary;
|
|
|
- text-align:center;
|
|
|
- white-space:nowrap;
|
|
|
- font-weight:$ios-font-weight-medium;
|
|
|
- max-width:100%;
|
|
|
- overflow:hidden;
|
|
|
- text-overflow:ellipsis;
|
|
|
- transition:color 0.3s ease;
|
|
|
-}
|
|
|
-
|
|
|
-.stage.completed .stage-name,
|
|
|
-.stage.active .stage-name{
|
|
|
- color:$ios-text-primary;
|
|
|
- font-weight:$ios-font-weight-semibold;
|
|
|
-}
|
|
|
-
|
|
|
-/* 当前阶段操作区域 */
|
|
|
-.current-stage-actions{
|
|
|
- background-color:$ios-background;
|
|
|
- padding:$ios-spacing-lg;
|
|
|
- border-radius:$ios-radius-md;
|
|
|
- text-align:center;
|
|
|
- margin-top:$ios-spacing-lg;
|
|
|
- border-left:4px solid $ios-primary;
|
|
|
- box-shadow:0 2px 8px rgba(0,0,0,0.05);
|
|
|
-}
|
|
|
-.current-stage-info h3{margin-top:0;margin-bottom:$ios-spacing-md;font-size:$ios-font-size-base}
|
|
|
-.stage-highlight{color:$ios-primary;font-weight:$ios-font-weight-semibold}
|
|
|
-
|
|
|
-/* 按钮样式 */
|
|
|
-.primary-btn,.secondary-btn{border:none;padding:$ios-spacing-sm $ios-spacing-lg;border-radius:$ios-radius-md;font-size:$ios-font-size-sm;cursor:pointer;font-weight:$ios-font-weight-medium;white-space:nowrap}
|
|
|
-.primary-btn{background-color:$ios-primary;color:white}
|
|
|
-.primary-btn:hover{background-color:#0056b3;transform:translateY(-1px)}
|
|
|
-.primary-btn:disabled{background-color:$ios-border;color:$ios-text-secondary;cursor:not-allowed;transform:none}
|
|
|
-.secondary-btn{background-color:$ios-background-tertiary;color:$ios-text-primary}
|
|
|
-.secondary-btn:hover{background-color:#f0f0f0;transform:translateY(-1px)}
|
|
|
-
|
|
|
-/* 渲染进度卡片 */
|
|
|
-.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:$ios-spacing-xl;text-align:center;gap:$ios-spacing-md}
|
|
|
-.loading-spinner{width:40px;height:40px;border:3px solid $ios-border;border-top:3px solid $ios-primary;border-radius:50%;animation:spin 1s linear infinite}
|
|
|
-@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
|
|
|
-.timeout-warning{background-color:#fff3cd;color:$ios-warning;padding:$ios-spacing-md;border-radius:$ios-radius-md;margin-bottom:$ios-spacing-lg;display:flex;align-items:center;gap:$ios-spacing-sm;border-left:4px solid $ios-warning}
|
|
|
-.warning-title{font-weight:$ios-font-weight-medium;display:block}
|
|
|
-.warning-time{font-size:$ios-font-size-sm;display:block}
|
|
|
-
|
|
|
-/* 渲染异常反馈模块样式 */
|
|
|
-.render-exception-section {
|
|
|
- background-color: #f8f9fa;
|
|
|
- border-radius: 8px;
|
|
|
- padding: 20px;
|
|
|
- margin-bottom: 24px;
|
|
|
-}
|
|
|
-
|
|
|
-/* 客户反馈和设计师变更记录卡片并排布局 */
|
|
|
-.additional-info-section {
|
|
|
- display: flex;
|
|
|
- gap: $ios-spacing-xl;
|
|
|
- margin-bottom: $ios-spacing-xl;
|
|
|
- margin-top: $ios-spacing-xxl; /* 增加与上方内容的间距 */
|
|
|
- width: 100%;
|
|
|
- align-items: flex-start;
|
|
|
- padding: $ios-spacing-xl; /* 添加内边距 */
|
|
|
- background-color: $ios-background-secondary; /* 添加矩形背景 */
|
|
|
- border-radius: $ios-radius-lg; /* 添加圆角 */
|
|
|
- border: 1px solid $ios-border; /* 添加边框 */
|
|
|
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03); /* 添加轻微阴影增加层次感 */
|
|
|
-}
|
|
|
-
|
|
|
-.feedback-card,
|
|
|
-.designer-change-card {
|
|
|
- width: 50%;
|
|
|
- margin: 0 !important;
|
|
|
- min-height: 400px; /* 设置最小高度确保两个卡片高度一致 */
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
-}
|
|
|
+// 响应式设计优化
|
|
|
+@media (max-width: 1400px) {
|
|
|
+ .project-detail-container {
|
|
|
+ padding: 1.5%;
|
|
|
+ }
|
|
|
|
|
|
-/* 优化客户反馈卡片内部布局 */
|
|
|
-.feedback-card .card-content {
|
|
|
- flex: 1;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
+ .main-content-layout {
|
|
|
+ grid-template-columns: 1fr 25%; // 中等屏幕调整为25%
|
|
|
+ gap: 1.5%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .horizontal-nav-container {
|
|
|
+ margin-bottom: 1.5%;
|
|
|
+ padding: 1%;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-.feedback-item {
|
|
|
- background-color: $ios-background;
|
|
|
- border-radius: $ios-radius-md;
|
|
|
- padding: $ios-spacing-md;
|
|
|
- margin-bottom: $ios-spacing-md;
|
|
|
- border: 1px solid $ios-border;
|
|
|
-}
|
|
|
+@media (max-width: 1200px) {
|
|
|
+ .project-detail-container {
|
|
|
+ padding: 1.2%;
|
|
|
+ }
|
|
|
|
|
|
-.feedback-header {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: flex-start;
|
|
|
- margin-bottom: $ios-spacing-sm;
|
|
|
+ .main-content-layout {
|
|
|
+ grid-template-columns: 1fr 23%; // 进一步减小右侧栏宽度为23%
|
|
|
+ gap: 1.2%;
|
|
|
+
|
|
|
+ .right-column {
|
|
|
+ min-width: 22%; // 使用百分比
|
|
|
+ max-width: 26%; // 使用百分比
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .horizontal-nav {
|
|
|
+ .nav-item {
|
|
|
+ padding: 1% 1.5%;
|
|
|
+ font-size: $ios-font-size-sm;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-.feedback-meta {
|
|
|
- display: flex;
|
|
|
- gap: $ios-spacing-sm;
|
|
|
- flex-wrap: wrap;
|
|
|
+@media (max-width: 768px) {
|
|
|
+ .project-detail-container {
|
|
|
+ padding: 1%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .main-content-layout {
|
|
|
+ grid-template-columns: 1fr;
|
|
|
+ gap: 1.5%;
|
|
|
+
|
|
|
+ .left-column,
|
|
|
+ .right-column {
|
|
|
+ width: 100%;
|
|
|
+ min-width: unset;
|
|
|
+ max-width: unset;
|
|
|
+ margin-bottom: $ios-spacing-md;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .horizontal-nav-container {
|
|
|
+ margin-bottom: $ios-spacing-md;
|
|
|
+ padding: $ios-spacing-xs;
|
|
|
+ }
|
|
|
+
|
|
|
+ .horizontal-nav {
|
|
|
+ .nav-item {
|
|
|
+ padding: $ios-spacing-sm;
|
|
|
+ font-size: $ios-font-size-sm;
|
|
|
+
|
|
|
+ .nav-text {
|
|
|
+ font-size: $ios-font-size-sm;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-header {
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: flex-start;
|
|
|
+ gap: $ios-spacing-md;
|
|
|
+
|
|
|
+ .header-actions {
|
|
|
+ width: 100%;
|
|
|
+ justify-content: flex-start;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ gap: $ios-spacing-sm;
|
|
|
+
|
|
|
+ // 移动端顶部导航条样式调整
|
|
|
+ .top-nav-container {
|
|
|
+ order: -1; // 确保导航条在移动端显示在最前面
|
|
|
+ width: 100%;
|
|
|
+ margin-right: 0;
|
|
|
+ margin-bottom: $ios-spacing-sm;
|
|
|
+
|
|
|
+ .top-nav {
|
|
|
+ .vertical-nav {
|
|
|
+ width: 100%;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 8px; // 移动端减小间距
|
|
|
+
|
|
|
+ .nav-item {
|
|
|
+ flex: 1;
|
|
|
+ min-height: 32px;
|
|
|
+ padding: 6px 12px;
|
|
|
+ font-size: 13px;
|
|
|
+
|
|
|
+ .nav-text {
|
|
|
+ font-size: 13px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 优化设计师变更记录卡片内部布局 */
|
|
|
-.designer-change-card .card-content {
|
|
|
- flex: 1;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
+@media (max-width: 480px) {
|
|
|
+ .project-detail-container {
|
|
|
+ padding: $ios-spacing-xs;
|
|
|
+ }
|
|
|
+
|
|
|
+ .horizontal-nav {
|
|
|
+ .nav-item {
|
|
|
+ padding: $ios-spacing-xs $ios-spacing-sm;
|
|
|
+ font-size: $ios-font-size-xs;
|
|
|
+
|
|
|
+ .nav-text {
|
|
|
+ font-size: $ios-font-size-xs;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 超小屏幕下的顶部导航条优化
|
|
|
+ .project-header {
|
|
|
+ .header-actions {
|
|
|
+ .top-nav-container {
|
|
|
+ .top-nav {
|
|
|
+ .vertical-nav {
|
|
|
+ gap: 6px;
|
|
|
+ padding: 3px;
|
|
|
+
|
|
|
+ .nav-item {
|
|
|
+ min-height: 28px;
|
|
|
+ padding: 4px 8px;
|
|
|
+ font-size: 12px;
|
|
|
+
|
|
|
+ .nav-text {
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-.designer-change-card .change-actions {
|
|
|
+/* 阶段详情网格 */
|
|
|
+.stage-details-grid {
|
|
|
display: flex;
|
|
|
gap: $ios-spacing-md;
|
|
|
- margin-bottom: $ios-spacing-md;
|
|
|
- flex-wrap: wrap;
|
|
|
+ overflow-x: auto;
|
|
|
+ padding-bottom: $ios-spacing-sm;
|
|
|
}
|
|
|
|
|
|
-.change-item {
|
|
|
- background-color: $ios-background;
|
|
|
+.stage-details-cell {
|
|
|
+ flex: 1 1 auto;
|
|
|
+ min-width: 200px;
|
|
|
+ background-color: $ios-background-secondary;
|
|
|
border-radius: $ios-radius-md;
|
|
|
padding: $ios-spacing-md;
|
|
|
- margin-bottom: $ios-spacing-md;
|
|
|
- border: 1px solid $ios-border;
|
|
|
}
|
|
|
|
|
|
-.change-header {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: $ios-spacing-sm;
|
|
|
-}
|
|
|
-
|
|
|
-/* 空状态样式优化 */
|
|
|
-.empty-state {
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- padding: $ios-spacing-xl;
|
|
|
- height: 200px;
|
|
|
- background-color: $ios-background-tertiary;
|
|
|
- border-radius: $ios-radius-md;
|
|
|
- margin-top: $ios-spacing-md;
|
|
|
-}
|
|
|
+@media (max-width: 1200px) {
|
|
|
+ .project-detail-container {
|
|
|
+ padding: $ios-spacing-sm; // 减小容器内边距
|
|
|
+ }
|
|
|
|
|
|
-.empty-icon {
|
|
|
- font-size: 48px;
|
|
|
- margin-bottom: $ios-spacing-md;
|
|
|
- opacity: 0.6;
|
|
|
+ .main-content-layout {
|
|
|
+ grid-template-columns: 160px 1fr 260px; // 进一步减小列宽
|
|
|
+ gap: $ios-spacing-sm; // 减小间距
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 响应式调整 */
|
|
|
@media (max-width: 768px) {
|
|
|
- .additional-info-section {
|
|
|
- flex-direction: column;
|
|
|
- }
|
|
|
-
|
|
|
- .feedback-card,
|
|
|
- .designer-change-card {
|
|
|
- width: 100%;
|
|
|
- margin-bottom: $ios-spacing-xl !important;
|
|
|
+ .project-detail-container {
|
|
|
+ padding: $ios-spacing-xs; // 移动端进一步减小内边距
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-/* 模型误差检查清单在制作流程进度卡片中的样式 */
|
|
|
-.model-check-section {
|
|
|
- margin-top: $ios-spacing-lg;
|
|
|
- padding: $ios-spacing-lg;
|
|
|
- background-color: $ios-background;
|
|
|
- border-radius: $ios-radius-md;
|
|
|
- border-left: 4px solid $ios-primary;
|
|
|
-}
|
|
|
-
|
|
|
-.model-check-section h3 {
|
|
|
- margin-top: 0;
|
|
|
- margin-bottom: $ios-spacing-md;
|
|
|
- color: $ios-text-primary;
|
|
|
- font-size: $ios-font-size-base;
|
|
|
- font-weight: $ios-font-weight-medium;
|
|
|
-}
|
|
|
-
|
|
|
-.model-check-section .checklist {
|
|
|
- gap: $ios-spacing-sm;
|
|
|
-}
|
|
|
-
|
|
|
-.model-check-section .checklist-item {
|
|
|
- padding: $ios-spacing-sm $ios-spacing-md;
|
|
|
- background-color: $ios-background-tertiary;
|
|
|
- transition: all 0.2s ease;
|
|
|
-}
|
|
|
-
|
|
|
-.model-check-section .checklist-item:hover {
|
|
|
- background-color: #f0f0f0;
|
|
|
- transform: translateX(4px);
|
|
|
-}
|
|
|
-
|
|
|
-.model-check-section .custom-checkbox {
|
|
|
- width: 18px;
|
|
|
- height: 18px;
|
|
|
-}
|
|
|
-
|
|
|
-.model-check-section .checklist-text {
|
|
|
- font-size: $ios-font-size-sm;
|
|
|
-}
|
|
|
-
|
|
|
-.model-check-section .check-status {
|
|
|
- font-size: $ios-font-size-xs;
|
|
|
-}
|
|
|
-
|
|
|
-.render-exception-section h3 {
|
|
|
- margin-top: 0;
|
|
|
- margin-bottom: 16px;
|
|
|
- color: #333;
|
|
|
- font-size: 18px;
|
|
|
- font-weight: 600;
|
|
|
-}
|
|
|
-
|
|
|
-.exception-feedback-form {
|
|
|
- background-color: white;
|
|
|
- padding: 16px;
|
|
|
- border-radius: 8px;
|
|
|
- margin-bottom: 20px;
|
|
|
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
|
-}
|
|
|
-
|
|
|
-.form-group {
|
|
|
- margin-bottom: 16px;
|
|
|
-}
|
|
|
-
|
|
|
-.form-group label {
|
|
|
- display: block;
|
|
|
- margin-bottom: 6px;
|
|
|
- color: #555;
|
|
|
- font-weight: 500;
|
|
|
- font-size: 14px;
|
|
|
-}
|
|
|
-
|
|
|
-.exception-select {
|
|
|
- width: 100%;
|
|
|
- padding: 8px 12px;
|
|
|
- border: 1px solid #ddd;
|
|
|
- border-radius: 4px;
|
|
|
- font-size: 14px;
|
|
|
- background-color: white;
|
|
|
- cursor: pointer;
|
|
|
-}
|
|
|
-
|
|
|
-.exception-textarea {
|
|
|
- width: 100%;
|
|
|
- min-height: 120px;
|
|
|
- padding: 10px 12px;
|
|
|
- border: 1px solid #ddd;
|
|
|
- border-radius: 4px;
|
|
|
- font-size: 14px;
|
|
|
- resize: vertical;
|
|
|
- font-family: inherit;
|
|
|
-}
|
|
|
-
|
|
|
-.screenshot-upload {
|
|
|
- display: none;
|
|
|
-}
|
|
|
-
|
|
|
-.upload-btn {
|
|
|
- display: inline-block;
|
|
|
- padding: 8px 16px;
|
|
|
- background-color: #007bff;
|
|
|
- color: white;
|
|
|
- border-radius: 4px;
|
|
|
- cursor: pointer;
|
|
|
- font-size: 14px;
|
|
|
- font-weight: 500;
|
|
|
- transition: background-color 0.2s;
|
|
|
-}
|
|
|
|
|
|
-.upload-btn:hover {
|
|
|
- background-color: #0056b3;
|
|
|
-}
|
|
|
-
|
|
|
-.screenshot-preview {
|
|
|
- margin-top: 12px;
|
|
|
- position: relative;
|
|
|
- max-width: 200px;
|
|
|
- border: 1px solid #ddd;
|
|
|
- border-radius: 4px;
|
|
|
- overflow: hidden;
|
|
|
-}
|
|
|
-
|
|
|
-.screenshot-preview img {
|
|
|
- width: 100%;
|
|
|
- display: block;
|
|
|
-}
|
|
|
-
|
|
|
-.clear-screenshot-btn {
|
|
|
- position: absolute;
|
|
|
- top: 5px;
|
|
|
- right: 5px;
|
|
|
- background-color: rgba(0, 0, 0, 0.5);
|
|
|
- color: white;
|
|
|
- border: none;
|
|
|
- border-radius: 50%;
|
|
|
- width: 24px;
|
|
|
- height: 24px;
|
|
|
- font-size: 16px;
|
|
|
- line-height: 1;
|
|
|
- cursor: pointer;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
-}
|
|
|
+ .main-content-layout {
|
|
|
+ grid-template-columns: 1fr;
|
|
|
+ gap: $ios-spacing-sm;
|
|
|
|
|
|
-.clear-screenshot-btn:hover {
|
|
|
- background-color: rgba(0, 0, 0, 0.7);
|
|
|
-}
|
|
|
-
|
|
|
-.submit-feedback-btn {
|
|
|
- padding: 10px 20px;
|
|
|
- background-color: #28a745;
|
|
|
- color: white;
|
|
|
- border: none;
|
|
|
- border-radius: 4px;
|
|
|
- font-size: 14px;
|
|
|
- font-weight: 600;
|
|
|
- cursor: pointer;
|
|
|
- transition: background-color 0.2s;
|
|
|
-}
|
|
|
-
|
|
|
-.submit-feedback-btn:hover:not(:disabled) {
|
|
|
- background-color: #218838;
|
|
|
-}
|
|
|
-
|
|
|
-.submit-feedback-btn:disabled {
|
|
|
- background-color: #6c757d;
|
|
|
- cursor: not-allowed;
|
|
|
+ .left-column,
|
|
|
+ .right-column {
|
|
|
+ min-width: unset;
|
|
|
+ max-width: unset;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 历史反馈记录样式 */
|
|
|
-.exception-history {
|
|
|
+/* 水平导航栏容器 */
|
|
|
+.horizontal-nav-container {
|
|
|
+ margin-bottom: $ios-spacing-lg;
|
|
|
background-color: white;
|
|
|
- padding: 16px;
|
|
|
- border-radius: 8px;
|
|
|
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
|
-}
|
|
|
-
|
|
|
-.exception-history h4 {
|
|
|
- margin-top: 0;
|
|
|
- margin-bottom: 12px;
|
|
|
- color: #555;
|
|
|
- font-size: 16px;
|
|
|
- font-weight: 600;
|
|
|
-}
|
|
|
-
|
|
|
-.history-list {
|
|
|
- max-height: 300px;
|
|
|
- overflow-y: auto;
|
|
|
-}
|
|
|
-
|
|
|
-.history-item {
|
|
|
- padding: 12px;
|
|
|
- border: 1px solid #eee;
|
|
|
- border-radius: 4px;
|
|
|
- margin-bottom: 12px;
|
|
|
- transition: border-color 0.2s;
|
|
|
-}
|
|
|
-
|
|
|
-.history-item:hover {
|
|
|
- border-color: #ddd;
|
|
|
-}
|
|
|
-
|
|
|
-.history-header {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: 8px;
|
|
|
-}
|
|
|
-
|
|
|
-.history-type {
|
|
|
- font-weight: 600;
|
|
|
- color: #333;
|
|
|
- font-size: 14px;
|
|
|
-}
|
|
|
-
|
|
|
-.history-time {
|
|
|
- font-size: 12px;
|
|
|
- color: #999;
|
|
|
-}
|
|
|
-
|
|
|
-.history-description {
|
|
|
- font-size: 14px;
|
|
|
- color: #555;
|
|
|
- margin-bottom: 8px;
|
|
|
- line-height: 1.4;
|
|
|
-}
|
|
|
-
|
|
|
-.history-status {
|
|
|
- font-size: 12px;
|
|
|
- padding: 4px 8px;
|
|
|
- border-radius: 3px;
|
|
|
- display: inline-block;
|
|
|
-}
|
|
|
-
|
|
|
-.history-status.status-pending {
|
|
|
- background-color: #fff3cd;
|
|
|
- color: #856404;
|
|
|
-}
|
|
|
-
|
|
|
-.history-status.status-processing {
|
|
|
- background-color: #d1ecf1;
|
|
|
- color: #0c5460;
|
|
|
-}
|
|
|
+ border-radius: $ios-radius-lg;
|
|
|
+ padding: $ios-spacing-md;
|
|
|
+ box-shadow: $ios-shadow-sm;
|
|
|
+}
|
|
|
+
|
|
|
+/* 水平导航栏样式 */
|
|
|
+.horizontal-nav {
|
|
|
+ .vertical-nav {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row; // 改为横向排列
|
|
|
+ gap: 0; // 移除间距,让按钮紧密排列
|
|
|
+ padding: 0;
|
|
|
+ background: transparent;
|
|
|
+ border: none;
|
|
|
+ box-shadow: none;
|
|
|
+ min-width: unset;
|
|
|
+ max-width: unset;
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
|
|
|
-.history-status.status-resolved {
|
|
|
- background-color: #d4edda;
|
|
|
- color: #155724;
|
|
|
+ .nav-item {
|
|
|
+ flex: 1; // 每个按钮均分宽度
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ padding: $ios-spacing-md $ios-spacing-lg;
|
|
|
+ border-radius: 0; // 移除圆角
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+ color: $ios-text-primary;
|
|
|
+ text-decoration: none;
|
|
|
+ font-size: $ios-font-size-md;
|
|
|
+ font-weight: $ios-font-weight-medium;
|
|
|
+ line-height: 1.4;
|
|
|
+ background: transparent;
|
|
|
+ border: none;
|
|
|
+ border-bottom: 3px solid transparent; // 添加底部边框用于激活状态
|
|
|
+
|
|
|
+ &:first-child {
|
|
|
+ border-top-left-radius: $ios-radius-md;
|
|
|
+ border-bottom-left-radius: $ios-radius-md;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-top-right-radius: $ios-radius-md;
|
|
|
+ border-bottom-right-radius: $ios-radius-md;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: $ios-background-secondary;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ background-color: rgba(0, 122, 255, 0.1); // 使用透明度替代不存在的变量
|
|
|
+ color: $ios-primary;
|
|
|
+ font-weight: $ios-font-weight-semibold;
|
|
|
+ border-bottom-color: $ios-primary; // 激活状态的底部边框
|
|
|
+ }
|
|
|
+
|
|
|
+ .nav-text {
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ flex: 1;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 移除图标相关样式,因为当前导航项没有图标
|
|
|
+ .nav-icon {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-/* 响应式设计 */
|
|
|
-@media (max-width: 768px) {
|
|
|
- .render-exception-section {
|
|
|
- padding: 16px;
|
|
|
- }
|
|
|
-
|
|
|
- .form-group {
|
|
|
- margin-bottom: 12px;
|
|
|
+// 优化交付执行模块中的"选择图片"按钮样式 - 提高选择器特异性
|
|
|
+.project-detail-container.designer-page {
|
|
|
+ .upload-section {
|
|
|
+ margin: 20px 0;
|
|
|
+
|
|
|
+ .upload-header {
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ h4 {
|
|
|
+ margin: 0 0 8px 0;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+
|
|
|
+ .hint {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新的大型上传框样式
|
|
|
+ .upload-dropzone {
|
|
|
+ width: 100%;
|
|
|
+ min-height: 200px;
|
|
|
+ border: 2px dashed #d0d7de;
|
|
|
+ border-radius: 12px;
|
|
|
+ background: #f8f9fa;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ position: relative;
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ border-color: #4A90E2;
|
|
|
+ background: #f0f6ff;
|
|
|
+
|
|
|
+ .upload-icon {
|
|
|
+ color: #4A90E2;
|
|
|
+ transform: scale(1.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-text {
|
|
|
+ color: #4A90E2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &.drag-over {
|
|
|
+ border-color: #4A90E2;
|
|
|
+ background: #e6f3ff;
|
|
|
+
|
|
|
+ .upload-icon {
|
|
|
+ color: #4A90E2;
|
|
|
+ animation: bounce 0.6s ease-in-out infinite alternate;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 有图片时的样式
|
|
|
+ &.has-images {
|
|
|
+ min-height: 250px;
|
|
|
+ padding: 16px;
|
|
|
+ cursor: default;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ border-color: #d0d7de;
|
|
|
+ background: #f8f9fa;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-icon {
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ margin-bottom: 12px;
|
|
|
+ color: #8b949e;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ // 加号图标样式
|
|
|
+ &::before {
|
|
|
+ content: '+';
|
|
|
+ font-size: 48px;
|
|
|
+ font-weight: 300;
|
|
|
+ line-height: 1;
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-text {
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #656d76;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ text-align: center;
|
|
|
+ transition: color 0.3s ease;
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-hint {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #8b949e;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 1.4;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 上传后的图片网格
|
|
|
+ .uploaded-images-grid {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
|
|
|
+ gap: 12px;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ .uploaded-image-item {
|
|
|
+ position: relative;
|
|
|
+ aspect-ratio: 1;
|
|
|
+ border-radius: 8px;
|
|
|
+ overflow: hidden;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: scale(1.05);
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
|
+
|
|
|
+ .image-overlay {
|
|
|
+ opacity: 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ object-fit: cover;
|
|
|
+ border-radius: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .image-overlay {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.7) 100%);
|
|
|
+ opacity: 0;
|
|
|
+ transition: opacity 0.3s ease;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 8px;
|
|
|
+
|
|
|
+ .image-name {
|
|
|
+ color: white;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+ text-shadow: 0 1px 2px rgba(0,0,0,0.5);
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+
|
|
|
+ .image-actions {
|
|
|
+ display: flex;
|
|
|
+ gap: 8px;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ button {
|
|
|
+ width: 32px;
|
|
|
+ height: 32px;
|
|
|
+ border: none;
|
|
|
+ border-radius: 6px;
|
|
|
+ background: rgba(255, 255, 255, 0.9);
|
|
|
+ color: #333;
|
|
|
+ cursor: pointer;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: white;
|
|
|
+ transform: scale(1.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ &.preview-btn:hover {
|
|
|
+ color: #4A90E2;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.remove-btn:hover {
|
|
|
+ color: #dc3545;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .add-more-btn {
|
|
|
+ aspect-ratio: 1;
|
|
|
+ border: 2px dashed #d0d7de;
|
|
|
+ border-radius: 8px;
|
|
|
+ background: #f8f9fa;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ border-color: #4A90E2;
|
|
|
+ background: #f0f6ff;
|
|
|
+
|
|
|
+ .add-icon {
|
|
|
+ color: #4A90E2;
|
|
|
+ transform: scale(1.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ .add-text {
|
|
|
+ color: #4A90E2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .add-icon {
|
|
|
+ font-size: 24px;
|
|
|
+ color: #8b949e;
|
|
|
+ margin-bottom: 4px;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ }
|
|
|
+
|
|
|
+ .add-text {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #8b949e;
|
|
|
+ transition: color 0.3s ease;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 隐藏的文件输入框
|
|
|
+ input[type="file"] {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ opacity: 0;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 弹跳动画
|
|
|
+ @keyframes bounce {
|
|
|
+ 0% { transform: translateY(0); }
|
|
|
+ 100% { transform: translateY(-8px); }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .screenshot-preview {
|
|
|
- max-width: 150px;
|
|
|
+ .upload-actions {
|
|
|
+ display: flex;
|
|
|
+ gap: 12px;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 16px;
|
|
|
+
|
|
|
+ .secondary-btn {
|
|
|
+ // 保持原有的按钮样式,但调整为辅助按钮
|
|
|
+ padding: 8px 16px !important;
|
|
|
+ min-height: 36px;
|
|
|
+ font-size: 14px !important;
|
|
|
+ font-weight: 500 !important;
|
|
|
+
|
|
|
+ background: #f6f8fa !important;
|
|
|
+ color: #24292f !important;
|
|
|
+ border: 1px solid #d0d7de !important;
|
|
|
+ border-radius: 8px !important;
|
|
|
+
|
|
|
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
|
|
|
+
|
|
|
+ transition: all 0.2s ease !important;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: #f3f4f6 !important;
|
|
|
+ border-color: #c7c7c7 !important;
|
|
|
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(1px) !important;
|
|
|
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .primary-btn {
|
|
|
+ padding: 8px 16px;
|
|
|
+ min-height: 36px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+
|
|
|
+ background: #4A90E2;
|
|
|
+ color: white;
|
|
|
+ border: 1px solid #4A90E2;
|
|
|
+ border-radius: 8px;
|
|
|
+
|
|
|
+ box-shadow: 0 1px 3px rgba(74, 144, 226, 0.3);
|
|
|
+
|
|
|
+ transition: all 0.2s ease;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ &:hover:not(:disabled) {
|
|
|
+ background: #357ABD;
|
|
|
+ border-color: #357ABD;
|
|
|
+ box-shadow: 0 2px 6px rgba(74, 144, 226, 0.4);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:disabled {
|
|
|
+ background: #e9ecef;
|
|
|
+ color: #6c757d;
|
|
|
+ border-color: #dee2e6;
|
|
|
+ cursor: not-allowed;
|
|
|
+ box-shadow: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-.progress-bar-container{position:relative;margin-bottom:$ios-spacing-lg}
|
|
|
-.progress-bar{width:100%;height:12px;background-color:$ios-background-tertiary;border-radius:$ios-radius-full;overflow:hidden}
|
|
|
-.progress-fill{height:100%;background-color:$ios-primary;border-radius:$ios-radius-full}
|
|
|
-.progress-percentage{position:absolute;right:0;top:-$ios-spacing-md;font-size:$ios-font-size-sm;font-weight:$ios-font-weight-medium;color:$ios-text-secondary}
|
|
|
-.progress-details{display:grid;grid-template-columns:1fr 1fr;gap:$ios-spacing-md}
|
|
|
-.progress-info{display:flex;flex-direction:column;gap:$ios-spacing-xs}
|
|
|
-.info-label{font-size:$ios-font-size-xs;color:$ios-text-secondary}
|
|
|
-.info-value{font-size:$ios-font-size-base;color:$ios-text-primary;font-weight:$ios-font-weight-medium}
|
|
|
-.checklist{display:flex;flex-direction:column;gap:$ios-spacing-md}
|
|
|
-.checklist-item{display:flex;align-items:center;padding:$ios-spacing-md;border-radius:$ios-radius-md;background-color:$ios-background-tertiary}
|
|
|
-.custom-checkbox{margin-right:$ios-spacing-md;width:20px;height:20px;accent-color:$ios-primary;border-radius:$ios-radius-sm}
|
|
|
-.checklist-text{color:$ios-text-primary;font-size:$ios-font-size-base;flex:1}
|
|
|
-.check-status{font-size:$ios-font-size-sm;font-weight:$ios-font-weight-medium;padding:$ios-spacing-xs $ios-spacing-sm;border-radius:$ios-radius-full}
|
|
|
-.check-status.passed{background-color:#e6f7e6;color:$ios-success}
|
|
|
-.check-status.failed{background-color:#ffebee;color:$ios-danger}
|
|
|
-.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:$ios-spacing-xl;text-align:center;gap:$ios-spacing-md;color:$ios-text-secondary}
|
|
|
-.empty-icon{font-size:$ios-font-size-xl}
|
|
|
-.feedback-item{background-color:$ios-background-tertiary;border-radius:$ios-radius-md;padding:$ios-spacing-lg;margin-bottom:$ios-spacing-md}
|
|
|
-.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:$ios-spacing-md}
|
|
|
-.feedback-meta{display:flex;align-items:center;gap:$ios-spacing-sm}
|
|
|
-.feedback-type{font-size:$ios-font-size-sm;font-weight:$ios-font-weight-medium;color:$ios-text-primary}
|
|
|
-.feedback-tag{font-size:$ios-font-size-xs;background-color:#e8f0fe;color:$ios-primary;padding:$ios-spacing-xs $ios-spacing-sm;border-radius:$ios-radius-full;font-weight:$ios-font-weight-medium}
|
|
|
-.feedback-date{font-size:$ios-font-size-xs;color:$ios-text-secondary}
|
|
|
-.feedback-content{margin-bottom:$ios-spacing-md}
|
|
|
-.feedback-status{display:flex;align-items:center;gap:$ios-spacing-xs;margin-bottom:$ios-spacing-sm;font-size:$ios-font-size-sm}
|
|
|
-.status-label{color:$ios-text-secondary}
|
|
|
-.status-value{color:$ios-text-primary;font-weight:$ios-font-weight-medium}
|
|
|
-.feedback-countdown{display:flex;align-items:center;gap:$ios-spacing-xs;padding:$ios-spacing-xs $ios-spacing-sm;background-color:#fff3cd;color:$ios-warning;border-radius:$ios-radius-full;font-size:$ios-font-size-xs;margin-bottom:$ios-spacing-md}
|
|
|
-.countdown-icon{font-size:$ios-font-size-sm}
|
|
|
-.feedback-details{display:flex;flex-direction:column;gap:$ios-spacing-xs}
|
|
|
-.detail-item{display:flex;gap:$ios-spacing-sm;font-size:$ios-font-size-sm}
|
|
|
-.detail-label{color:$ios-text-secondary;width:80px;flex-shrink:0}
|
|
|
-.detail-value{color:$ios-text-primary;flex:1}
|
|
|
-.feedback-actions{display:flex;gap:$ios-spacing-md;justify-content:flex-end}
|
|
|
-.change-actions{display:flex;gap:$ios-spacing-md;margin-bottom:$ios-spacing-lg;flex-wrap:wrap}
|
|
|
-.change-item{background-color:$ios-background-tertiary;border-radius:$ios-radius-md;padding:$ios-spacing-lg;margin-bottom:$ios-spacing-md}
|
|
|
-.change-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:$ios-spacing-md}
|
|
|
-.change-time{font-size:$ios-font-size-sm;color:$ios-text-secondary;font-weight:$ios-font-weight-semibold}
|
|
|
-.accept-change-btn{background-color:$ios-success;color:white;border:none;padding:$ios-spacing-xs $ios-spacing-md;border-radius:$ios-radius-md;font-size:$ios-font-size-sm;cursor:pointer;font-weight:$ios-font-weight-medium}
|
|
|
-.accept-change-btn:hover{background-color:#2e7d32;transform:translateY(-1px)}
|
|
|
-.designer-change-info{display:grid;grid-template-columns:1fr;gap:$ios-spacing-sm;margin-bottom:$ios-spacing-md}
|
|
|
-.designer-change{display:flex;gap:$ios-spacing-sm;align-items:center}
|
|
|
-.designer-label{color:$ios-text-secondary;font-size:$ios-font-size-sm;width:80px;flex-shrink:0}
|
|
|
-.designer-name{color:$ios-text-primary;font-size:$ios-font-size-base;font-weight:$ios-font-weight-medium}
|
|
|
-.workload-info{font-size:$ios-font-size-sm;color:$ios-text-secondary;margin-bottom:$ios-spacing-md}
|
|
|
-.achievements{margin-bottom:$ios-spacing-md}
|
|
|
-.achievements ul{margin:0;padding-left:$ios-spacing-lg}
|
|
|
-.achievements li{color:$ios-text-primary;font-size:$ios-font-size-sm;margin-bottom:$ios-spacing-xs;position:relative}
|
|
|
-.change-status{font-size:$ios-font-size-sm;color:$ios-text-secondary;background-color:$ios-background;padding:$ios-spacing-sm;border-radius:$ios-radius-md}
|
|
|
-
|
|
|
-/* 分阶段结算记录卡片 */
|
|
|
-.settlement-table{overflow-x:auto;border-radius:$ios-radius-md;background-color:$ios-background;border:1px solid $ios-border}
|
|
|
-.settlement-table table{width:100%;border-collapse:collapse}
|
|
|
-.settlement-table th,.settlement-table td{padding:$ios-spacing-md;text-align:left;border-bottom:1px solid $ios-border;font-size:$ios-font-size-sm}
|
|
|
-.settlement-table th{background-color:$ios-background-secondary;font-weight:$ios-font-weight-semibold;color:$ios-text-primary;position:sticky;top:0;z-index:10}
|
|
|
-.settlement-table td{color:$ios-text-primary;font-weight:$ios-font-weight-regular}
|
|
|
-.settlement-table tr:last-child td{border-bottom:none}
|
|
|
-.settlement-table tr:hover td{background-color:#f5f5f5}
|
|
|
-.status-badge{padding:$ios-spacing-xs $ios-spacing-sm;border-radius:$ios-radius-full;font-size:$ios-font-size-xs;font-weight:$ios-font-weight-medium}
|
|
|
-.status-pending{background-color:#fff3cd;color:$ios-warning}
|
|
|
-.status-settled{background-color:#e6f7e6;color:$ios-success}
|
|
|
-
|
|
|
-/* 响应式设计 */
|
|
|
-@media (max-width: 768px){
|
|
|
-.project-detail-container{padding:$ios-spacing-md}
|
|
|
-.main-content-layout {
|
|
|
- flex-direction: column;
|
|
|
-}
|
|
|
-.left-column,
|
|
|
-.right-column {
|
|
|
- width: 100%;
|
|
|
-}
|
|
|
-.project-header{flex-direction:column;align-items:flex-start;gap:$ios-spacing-md}
|
|
|
-.header-actions{width:100%;justify-content:flex-end}
|
|
|
-.project-info-card .info-grid{grid-template-columns:1fr;gap:$ios-spacing-md}
|
|
|
-.stage-progress{flex-direction:column;gap:$ios-spacing-lg}
|
|
|
-.stage-progress::before{display:none}
|
|
|
-.stage{flex-direction:row;gap:$ios-spacing-md;width:100%;justify-content:flex-start}
|
|
|
-.stage-icon{margin-bottom:0;width:36px;height:36px;font-size:$ios-font-size-sm}
|
|
|
-.progress-details{grid-template-columns:1fr;gap:$ios-spacing-md}
|
|
|
-.feedback-actions,.change-actions{flex-direction:column}
|
|
|
-.feedback-actions button,.change-actions button{width:100%}
|
|
|
-.tags-grid{grid-template-columns:1fr}
|
|
|
-.settlement-table th,.settlement-table td{padding:$ios-spacing-sm;font-size:$ios-font-size-xs}
|
|
|
-.stage-tag{font-size:$ios-font-size-xs}
|
|
|
-}
|
|
|
|
|
|
-/* 滚动条样式 */
|
|
|
-::-webkit-scrollbar{width:8px;height:8px}
|
|
|
-::-webkit-scrollbar-track{background:$ios-scrollbar-track;border-radius:$ios-radius-full}
|
|
|
-::-webkit-scrollbar-thumb{background:$ios-scrollbar-thumb;border-radius:$ios-radius-full}
|
|
|
-::-webkit-scrollbar-thumb:hover{background:$ios-scrollbar-thumb-hover}
|
|
|
-
|
|
|
-/* 上传与缩略图样式(新增) */
|
|
|
-.upload-section { margin-top: 16px; padding: 12px; background: #fafbfc; border: 1px dashed #e0e3e8; border-radius: 8px; }
|
|
|
-.upload-header { display:flex; align-items:center; gap:12px; margin-bottom: 8px; }
|
|
|
-.upload-header h4 { margin:0; font-size:$ios-font-size-base; }
|
|
|
-.upload-header .hint { color:$ios-text-secondary; font-size:$ios-font-size-xs; }
|
|
|
-.upload-actions { margin-bottom: 12px; }
|
|
|
-.thumb-list { display:grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap:12px; }
|
|
|
-.thumb-item { background:#fff; border:1px solid $ios-border; border-radius:8px; overflow:hidden; display:flex; flex-direction:column; }
|
|
|
-.thumb-item img { width:100%; height:100px; object-fit:cover; background:#f2f2f2; }
|
|
|
-.thumb-meta { padding:8px; display:flex; flex-direction:column; gap:4px; }
|
|
|
-.thumb-meta .name { font-size:$ios-font-size-xs; color:$ios-text-primary; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
|
-.thumb-meta .size { font-size:$ios-font-size-xs; color:$ios-text-secondary; }
|
|
|
-button.link { background:none; border:none; color:$ios-primary; cursor:pointer; padding:6px 8px; text-align:left; }
|
|
|
-button.link.danger { color:$ios-danger; }
|
|
|
-
|
|
|
-/* 弹窗样式(新增) */
|
|
|
-.modal-backdrop { position:fixed; inset:0; background: rgba(0,0,0,0.35); display:flex; align-items:center; justify-content:center; z-index: 999; }
|
|
|
-.modal { width: 720px; max-width: calc(100% - 48px); background:#fff; border-radius:12px; box-shadow: 0 12px 24px rgba(0,0,0,0.15); overflow:hidden; }
|
|
|
-.modal-header { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid $ios-border; }
|
|
|
-.modal-body { padding:16px; }
|
|
|
-.modal-footer { padding:12px 16px; border-top:1px solid $ios-border; display:flex; gap:12px; justify-content:flex-end; }
|
|
|
-.close-button { background: transparent; border: none; font-size: 20px; cursor: pointer; line-height: 1; }
|
|
|
-
|
|
|
-/* 兼容暗色系(若未来启用) */
|
|
|
-@media (prefers-color-scheme: dark) {
|
|
|
- .upload-section { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.15); }
|
|
|
- .thumb-item { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.12); }
|
|
|
- .modal { background: #111315; }
|
|
|
-}
|
|
|
-/* 阶段详情:与上方阶段横向对齐的横向卡片列表 */
|
|
|
-.stage-details-grid{
|
|
|
- display:flex;
|
|
|
- gap:$ios-spacing-md;
|
|
|
- align-items:stretch;
|
|
|
- padding-top:$ios-spacing-md;
|
|
|
- overflow-x:auto;
|
|
|
- scrollbar-width:none; /* Firefox */
|
|
|
- -ms-overflow-style:none; /* IE and Edge */
|
|
|
+// 响应式设计优化
|
|
|
+@media (max-width: 768px) {
|
|
|
+ .project-detail-container.designer-page {
|
|
|
+ .upload-actions {
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ .secondary-btn {
|
|
|
+ width: 100% !important;
|
|
|
+ padding: 16px 20px !important;
|
|
|
+ font-size: 16px !important;
|
|
|
+ min-height: 48px;
|
|
|
+
|
|
|
+ &::after {
|
|
|
+ font-size: 18px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .primary-btn {
|
|
|
+ width: 100%;
|
|
|
+ padding: 16px 20px;
|
|
|
+ font-size: 16px;
|
|
|
+ min-height: 48px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-.stage-details-grid::-webkit-scrollbar{ display:none; }
|
|
|
-.stage-details-cell{ flex:0 0 280px; }
|
|
|
|
|
|
-@media (max-width: 768px){
|
|
|
- .stage-details-grid{flex-direction:column;overflow-x:visible}
|
|
|
- .stage-details-cell{flex:1 1 auto}
|
|
|
-}
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
-.stage-details-cell{ flex:1 1 auto; }
|
|
|
+@media (max-width: 480px) {
|
|
|
+ .project-detail-container.designer-page {
|
|
|
+ .upload-actions {
|
|
|
+ .secondary-btn {
|
|
|
+ padding: 18px 24px !important;
|
|
|
+ font-size: 17px !important;
|
|
|
+ min-height: 52px;
|
|
|
+
|
|
|
+ &::after {
|
|
|
+ font-size: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|