/* 业务通用样式 - 列表卡片 (项目列表、待办列表等) */ .common-list-card { background-color: #ffffff; border-radius: 32rpx; padding: 32rpx 28rpx; margin-bottom: 28rpx; box-shadow: 0 10rpx 30rpx rgba(0, 0, 0, 0.04); position: relative; overflow: hidden; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: 1rpx solid rgba(241, 245, 249, 0.8); &::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 6rpx; background: linear-gradient(180deg, #3b82f6 0%, #60a5fa 100%); opacity: 0.8; } .card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24rpx; padding-bottom: 0; border-bottom: none; .title { font-size: 32rpx; font-weight: 600; color: #1e293b; flex: 1; padding-right: 140rpx; // 为右上角角标留出空间 line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-clamp: 2; white-space: normal; letter-spacing: 0.4rpx; } // 统一样式:右上角固定的纯色背景角标 .status-badge, .status-tag { position: absolute; top: 0; right: 0; padding: 10rpx 28rpx; font-size: 20rpx; font-weight: 800; color: #ffffff; border-bottom-left-radius: 32rpx; z-index: 5; line-height: 1.4; letter-spacing: 2rpx; text-transform: uppercase; box-shadow: -4rpx 4rpx 12rpx rgba(0, 0, 0, 0.05); &.primary, &.status-10 { background: linear-gradient(135deg, #4f46e5 0%, #3b82f6 100%); } &.success, &.status-done, &.status-20 { background: linear-gradient(135deg, #059669 0%, #10b981 100%); } &.error, &.status-reject, &.status-40 { background: linear-gradient(135deg, #dc2626 0%, #ef4444 100%); } &.warning, &.status-undo, &.status-30 { background: linear-gradient(135deg, #d97706 0%, #f59e0b 100%); } &.info, &.status-ongoing, &.status-05 { background: linear-gradient(135deg, #475569 0%, #94a3b8 100%); } } } .card-body { .info-item { display: flex; padding: 12rpx 0; border-bottom: none; font-size: 28rpx; line-height: 1.5; align-items: center; &:last-child { padding-bottom: 0; } .label { color: #64748b; width: 180rpx; flex-shrink: 0; font-weight: 400; } .value { color: #334155; flex: 1; text-align: right; word-break: break-all; font-weight: 400; } .amount { color: #3b82f6; font-weight: 600; font-family: 'Inter', sans-serif; font-size: 34rpx; } } } .card-footer { margin-top: 24rpx; padding-top: 24rpx; border-top: 1rpx solid #f1f5f9; display: flex; justify-content: flex-end; } } /* 业务通用样式 - 详情页分块卡片 */ .common-section-card { background-color: #ffffff; border-radius: 28rpx; padding: 32rpx; margin-bottom: 28rpx; box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.03); .section-title { font-size: 32rpx; font-weight: 600; color: #1e293b; margin-bottom: 32rpx; padding-left: 24rpx; position: relative; letter-spacing: 0.5rpx; &::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 8rpx; height: 32rpx; background: linear-gradient(180deg, #3b82f6 0%, #60a5fa 100%); border-radius: 4rpx; } } .info-row { display: flex; justify-content: space-between; padding: 20rpx 0; border-bottom: 1rpx solid #f1f5f9; font-size: 28rpx; &:last-child { border-bottom: none; padding-bottom: 0; } .label { color: #64748b; width: 200rpx; flex-shrink: 0; font-weight: 400; } .value { color: #1e293b; flex: 1; text-align: right; word-break: break-all; font-weight: 600; line-height: 1.5; } &.column { flex-direction: column; align-items: flex-start; .label { margin-bottom: 16rpx; color: #64748b; } .value { text-align: left !important; width: 100%; } } .remark { background-color: #f8fafc; padding: 24rpx; border-radius: 16rpx; font-size: 26rpx; line-height: 1.6; color: #475569; min-height: 100rpx; width: 100%; box-sizing: border-box; border: 1rpx solid #f1f5f9; } } } /* 列表进入动画 */ .animate-fade-in { animation: fadeIn 0.4s ease both; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20rpx); } to { opacity: 1; transform: translateY(0); } } /* 业务通用样式 - 统一附件列表样式 (项目文档) */ .common-file-list { .file-item { display: flex; align-items: center; padding: 28rpx 0; border-bottom: 1rpx solid #f1f5f9; &:last-child { border-bottom: none; } .file-info { flex: 1; display: flex; flex-direction: column; .f-name { font-size: 28rpx; color: #1e293b; font-weight: 700; margin-bottom: 16rpx; word-break: break-all; line-height: 1.4; } .f-meta { display: flex; justify-content: space-between; align-items: center; font-size: 22rpx; .f-type { color: #3b82f6; background-color: #eff6ff; padding: 6rpx 16rpx; border-radius: 100rpx; font-weight: 700; } .f-date { color: #94a3b8; font-weight: 500; } } } } }