/** * 公共样式 - 基于 agv_start.vue 抽离 * 适用于:agv_start.vue, orderPakin2.vue, orderDetlList.vue 等页面 */ /* ==================== 页面基础样式 ==================== */ page { height: 100%; background: #f5f7fa; } .page-container { min-height: 100vh; background: linear-gradient(135deg, #f5f7fa 0%, #e4e8eb 100%); padding-bottom: 110rpx; box-sizing: border-box; } /* ==================== 表单区域样式 ==================== */ .form-section { background: #ffffff; padding: 12rpx 20rpx; box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06); } .form-item { display: flex; align-items: center; padding: 12rpx 0; border-bottom: 1rpx solid #f0f0f0; } .form-item:last-child { border-bottom: none; } .form-label { display: flex; align-items: center; flex-shrink: 0; white-space: nowrap; margin-right: 16rpx; } .label-text { font-size: 26rpx; color: #303133; margin-left: 6rpx; } .form-input-wrap { flex: 1; display: flex; align-items: center; background: #f5f7fa; border-radius: 6rpx; padding: 0 16rpx; height: 60rpx; } .form-input { flex: 1; height: 60rpx; font-size: 26rpx; color: #303133; } /* Picker 样式 */ .picker-full { flex: 1; width: 100%; } .picker-value { flex: 1; display: flex; align-items: center; justify-content: space-between; height: 60rpx; font-size: 26rpx; color: #303133; } .picker-value text { flex: 1; } /* ==================== 列表头部样式 ==================== */ .list-header { display: flex; justify-content: space-between; align-items: center; padding: 16rpx 20rpx; background: #ffffff; margin-top: 12rpx; box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04); } .header-left { display: flex; align-items: center; } .header-title { font-size: 28rpx; color: #303133; font-weight: 600; } .count-badge { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 16rpx; padding: 2rpx 12rpx; margin-left: 12rpx; } .count-text { font-size: 20rpx; color: #ffffff; font-weight: 500; } /* ==================== 商品卡片样式 ==================== */ .list-container { padding: 0 20rpx; } .mat-card { background: #ffffff; border-radius: 12rpx; margin-top: 12rpx; box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05); overflow: hidden; } .card-top { display: flex; align-items: center; padding: 14rpx 16rpx; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } .card-index { width: 36rpx; height: 36rpx; background: rgba(255, 255, 255, 0.25); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 22rpx; color: #ffffff; font-weight: 600; margin-right: 12rpx; } .mat-code-wrap { flex: 1; } .mat-code { font-size: 26rpx; color: #ffffff; font-weight: 600; } .qty-badge { background: rgba(255, 255, 255, 0.3); padding: 4rpx 14rpx; border-radius: 16rpx; } .qty-text { font-size: 24rpx; color: #ffffff; font-weight: 600; } /* ==================== 卡片内容样式 ==================== */ .card-content { padding: 12rpx 16rpx; } .info-row { display: flex; margin-bottom: 8rpx; } .info-row:last-child { margin-bottom: 0; } .info-col { flex: 1; } .info-col.half { width: 50%; flex: none; } .info-label { font-size: 20rpx; color: #909399; display: block; } .info-value { font-size: 24rpx; color: #303133; display: block; margin-top: 2rpx; } .info-value.highlight { color: #667eea; font-weight: 500; } .info-value.qty { font-size: 28rpx; color: #303133; font-weight: 600; } /* ==================== 卡片操作按钮样式 ==================== */ .card-actions { display: flex; border-top: 1rpx solid #f0f0f0; } .action-btn { flex: 1; display: flex; align-items: center; justify-content: center; padding: 14rpx 0; } .edit-btn { border-right: 1rpx solid #f0f0f0; } .action-text { font-size: 24rpx; color: #667eea; margin-left: 6rpx; } .delete-text { color: #f56c6c; } /* ==================== 空状态样式 ==================== */ .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80rpx 0; } .empty-text { font-size: 26rpx; color: #909399; margin-top: 16rpx; } .empty-hint { font-size: 22rpx; color: #c0c4cc; margin-top: 8rpx; } .bottom-placeholder { height: 20rpx; } /* ==================== 底部操作栏样式 ==================== */ .bottom-bar { position: fixed; bottom: 0; left: 0; right: 0; display: flex; padding: 16rpx 20rpx; background: #ffffff; box-shadow: 0 -2rpx 12rpx rgba(0, 0, 0, 0.06); } .btn-reset { display: flex; align-items: center; justify-content: center; width: 160rpx; height: 72rpx; background: #f5f7fa; border-radius: 36rpx; margin-right: 16rpx; } .btn-reset .btn-text { font-size: 26rpx; color: #909399; margin-left: 6rpx; } .btn-submit { flex: 1; display: flex; align-items: center; justify-content: center; height: 72rpx; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 36rpx; } .btn-submit .btn-text { font-size: 28rpx; color: #ffffff; font-weight: 500; margin-left: 6rpx; } .btn-disabled { background: #c0c4cc; opacity: 0.6; } /* ==================== 弹窗样式 ==================== */ .popup-card { width: 600rpx; background: #ffffff; border-radius: 16rpx; overflow: hidden; } .popup-header { padding: 24rpx; text-align: center; border-bottom: 1rpx solid #f0f0f0; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } .popup-title { font-size: 30rpx; color: #ffffff; font-weight: 600; } .popup-body { padding: 24rpx; } .popup-row { display: flex; align-items: center; margin-bottom: 20rpx; height: 70rpx; } .popup-row:last-child { margin-bottom: 0; } .popup-label { width: 80rpx; font-size: 26rpx; color: #606266; flex-shrink: 0; } .popup-value { flex: 1; height: 70rpx; background: #f5f7fa; border-radius: 8rpx; padding: 0 16rpx; font-size: 26rpx; color: #303133; display: flex; align-items: center; box-sizing: border-box; } .popup-value.disabled { color: #909399; background: #f0f0f0; } .popup-value.input { padding: 0 16rpx; } .popup-value.number { justify-content: center; background: transparent; padding: 0; } .popup-footer { display: flex; border-top: 1rpx solid #f0f0f0; } .popup-btn { flex: 1; height: 90rpx; display: flex; align-items: center; justify-content: center; font-size: 28rpx; } .popup-btn.cancel { color: #909399; border-right: 1rpx solid #f0f0f0; } .popup-btn.confirm { color: #667eea; font-weight: 600; }