/* 详情弹窗通用样式 */ /* 详情卡片样式 */ .detail-card { margin-bottom: 20px; padding: 20px; background-color: #fafafa; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); } .card-title { margin: 0 0 16px 0; padding-bottom: 12px; border-bottom: 2px solid #409eff; font-size: 16px; font-weight: 600; color: #303133; } .card-content { display: flex; flex-direction: column; gap: 12px; } /* 信息行和信息项样式 */ .info-row { display: flex; flex-wrap: wrap; gap: 20px; } .info-item { flex: 1; min-width: 280px; } .info-item.full-width { min-width: 100%; } .info-label { display: inline-block; width: 100px; color: #606266; font-weight: 500; } .info-value { color: #303133; word-break: break-word; } /* 步骤相关样式 */ .steps-container { display: flex; flex-direction: column; gap: 12px; } .step-item { display: flex; gap: 12px; align-items: flex-start; padding: 16px; background-color: #ffffff; border-radius: 6px; border: 1px solid #e4e7ed; } .step-number { width: 28px; height: 28px; background-color: #409eff; color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 14px; flex-shrink: 0; } .step-info { flex: 1; display: flex; flex-direction: column; gap: 4px; } .step-name { font-weight: 500; color: #1d2129; margin-bottom: 4px; font-size: 14px; } .step-purpose { color: #606266; margin-bottom: 4px; font-size: 13px; } .step-time, .step-finish-time, .step-remark { color: #909399; font-size: 12px; margin-bottom: 2px; } /* 状态相关样式 */ .step-status { padding: 4px 12px; border-radius: 4px; font-size: 12px; font-weight: 500; flex-shrink: 0; margin-top: 4px; } /* 步骤状态样式 */ .step-status.status-pending { background-color: #e6f7ff; color: #1677ff; border: 1px solid #91d5ff; } .step-status.status-executing { background-color: #fffbe6; color: #fa8c16; border: 1px solid #ffe58f; } .step-status.status-completed { background-color: #f6ffed; color: #52c41a; border: 1px solid #b7eb8f; } .step-status.status-delayed { background-color: #fff2f0; color: #ff4d4f; border: 1px solid #ffccc7; } /* 通用状态颜色样式 */ .status-pending { color: #e6a23c; } .status-executing { color: #409eff; } .status-completed { color: #67c23a; } .status-delayed { color: #f56c6c; } .status-unknown { color: #909399; } /* 加载状态样式 */ .loading-details { padding: 20px 0; } /* 骨架屏加载 */ .skeleton-loading { display: flex; flex-direction: column; gap: 20px; } .skeleton-card { background-color: #f2f2f2; border-radius: 8px; padding: 20px; animation: skeleton-loading 1.5s infinite; } .skeleton-header { height: 24px; width: 140px; background-color: #e0e0e0; border-radius: 4px; margin-bottom: 16px; } .skeleton-content { display: flex; flex-direction: column; gap: 12px; } .skeleton-row { height: 20px; background-color: #e0e0e0; border-radius: 4px; } .skeleton-row:nth-child(1) { width: 70%; } .skeleton-row:nth-child(2) { width: 90%; } .skeleton-row:nth-child(3) { width: 60%; } @keyframes skeleton-loading { 0% { opacity: 0.6; } 50% { opacity: 0.3; } 100% { opacity: 0.6; } } /* 响应式设计 */ @media (max-width: 768px) { .info-item { min-width: 100%; } .info-row { gap: 12px; } } /* 弹窗按钮样式 */ .dialog-footer .el-button { padding: 10px 24px; border-radius: 6px; font-size: 14px; font-weight: 500; transition: all 0.3s ease; } .dialog-footer .el-button:hover { transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); } /* 其他相关样式 */ .fail-reason { color: #f56c6c; } .no-info { color: #909399; font-style: italic; padding: 10px 0; } .loading-state { text-align: center; padding: 80px 20px; color: #6c757d; font-size: 14px; } .loading-state i { display: block; font-size: 48px; margin-bottom: 16px; color: #1677ff; } .step-content { padding: 30px 20px; background-color: #fafafa; border-radius: 8px; margin-top: 20px; }