/* 扫描页面样式 */ .scan-status { display: flex; flex-direction: column; align-items: center; padding: 60rpx 40rpx; margin-bottom: 20rpx; } .status-icon { position: relative; width: 160rpx; height: 160rpx; margin-bottom: 32rpx; } .ble-icon { width: 100%; height: 100%; } .scan-animation { position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 50%; border: 4rpx solid #1890ff; opacity: 0; } .scan-animation.scanning { animation: scan-wave 1.5s infinite; } @keyframes scan-wave { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } } .status-text { font-size: 36rpx; font-weight: 600; color: #333; margin-bottom: 12rpx; } .status-hint { font-size: 26rpx; color: #999; } .list-header { display: flex; flex-direction: row; justify-content: space-between; padding: 20rpx 0; font-size: 28rpx; color: #666; } .hint { color: #999; font-size: 24rpx; } .scanned-item { display: flex; flex-direction: row; align-items: center; background-color: #fff; padding: 28rpx; border-radius: 12rpx; margin-bottom: 16rpx; } .item-main { flex: 1; display: flex; flex-direction: column; } .item-name { font-size: 30rpx; font-weight: 600; color: #333; margin-bottom: 8rpx; } .item-id { font-size: 24rpx; color: #999; } .item-rssi { font-size: 24rpx; color: #1890ff; } .empty-hint { font-size: 24rpx; color: #bbb; margin-top: 12rpx; } .btn-group { display: flex; flex-direction: row; padding: 40rpx; gap: 20rpx; } .btn-scan { flex: 1; background-color: #1890ff; color: #fff; height: 88rpx; line-height: 88rpx; border-radius: 44rpx; border: none; } .btn-stop { flex: 1; background-color: #ff4d4f; color: #fff; height: 88rpx; line-height: 88rpx; border-radius: 44rpx; border: none; } /* 配置弹窗 */ .config-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 999; } .modal-mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); } .modal-content { position: absolute; left: 40rpx; right: 40rpx; top: 50%; transform: translateY(-50%); background-color: #fff; border-radius: 16rpx; overflow: hidden; } .modal-header { padding: 32rpx; border-bottom: 1rpx solid #f0f0f0; } .modal-title { font-size: 32rpx; font-weight: 600; color: #333; } .modal-body { padding: 32rpx; } .config-item { margin-bottom: 28rpx; } .config-label { display: block; font-size: 26rpx; color: #666; margin-bottom: 12rpx; } .config-input { width: 100%; height: 72rpx; background-color: #f5f5f5; border-radius: 8rpx; padding: 0 20rpx; font-size: 28rpx; box-sizing: border-box; } .modal-footer { display: flex; flex-direction: row; border-top: 1rpx solid #f0f0f0; } .btn-cancel, .btn-confirm { flex: 1; height: 100rpx; line-height: 100rpx; font-size: 30rpx; border: none; border-radius: 0; background-color: transparent; } .btn-cancel { color: #666; border-right: 1rpx solid #f0f0f0; } .btn-confirm { color: #1890ff; font-weight: 600; }