/* otp-list/index.wxss */ .container { min-height: 100vh; background-color: #f8f8f8; padding: 0 0 40rpx 0; } .header { display: flex; justify-content: space-between; align-items: center; padding: 40rpx 32rpx; background-color: #ffffff; position: sticky; top: 0; z-index: 100; box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05); } .title { font-size: 36rpx; font-weight: bold; color: #333333; } .add-button { width: 64rpx; height: 64rpx; border-radius: 32rpx; background-color: #1890ff; display: flex; align-items: center; justify-content: center; box-shadow: 0 4rpx 12rpx rgba(24, 144, 255, 0.3); } .add-icon { color: #ffffff; font-size: 40rpx; line-height: 1; } /* 加载状态 */ .loading-container { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 0; } .loading-spinner { width: 64rpx; height: 64rpx; border: 6rpx solid #f3f3f3; border-top: 6rpx solid #1890ff; border-radius: 50%; animation: spin 1s linear infinite; } .loading-text { margin-top: 20rpx; font-size: 28rpx; color: #999999; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* OTP列表 */ .otp-list { padding: 20rpx 32rpx; } .otp-item { background-color: #ffffff; border-radius: 16rpx; padding: 32rpx; margin-bottom: 20rpx; display: flex; justify-content: space-between; box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05); } .otp-info { flex: 1; margin-right: 20rpx; } .otp-name-row { display: flex; align-items: center; margin-bottom: 16rpx; } .otp-name { font-size: 32rpx; font-weight: bold; color: #333333; margin-right: 16rpx; } .otp-issuer { font-size: 24rpx; color: #666666; background-color: #f5f5f5; padding: 4rpx 12rpx; border-radius: 8rpx; } .otp-code-row { display: flex; align-items: center; margin-bottom: 20rpx; } .otp-code { font-size: 44rpx; font-family: monospace; font-weight: bold; color: #1890ff; letter-spacing: 4rpx; margin-right: 16rpx; } .copy-hint { font-size: 24rpx; color: #999999; } .otp-countdown { position: relative; width: 100%; } .countdown-text { position: absolute; right: 0; top: -30rpx; font-size: 24rpx; color: #999999; } /* OTP操作按钮 */ .otp-actions { display: flex; flex-direction: column; justify-content: space-between; } .action-button { width: 56rpx; height: 56rpx; border-radius: 28rpx; display: flex; align-items: center; justify-content: center; margin-bottom: 16rpx; } .action-button.edit { background-color: #f0f7ff; } .action-button.delete { background-color: #fff1f0; } .action-icon { font-size: 32rpx; } .edit .action-icon { color: #1890ff; } .delete .action-icon { color: #ff4d4f; } /* 空状态 */ .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 0; } .empty-image { width: 240rpx; height: 240rpx; margin-bottom: 32rpx; } .empty-text { font-size: 28rpx; color: #999999; }