/* pages/index/index.wxss */ .page { background: #eaf4ef; min-height: 100vh; padding: 24rpx; } /* 顶部卡片 */ .top-card { background: #fff; border-radius: 20rpx; padding: 24rpx; margin-bottom: 24rpx; } .top-header { display: flex; justify-content: space-between; font-size: 24rpx; color: #999; } .switch { display: flex; align-items: center; gap: 10rpx; } /* 内容 */ .top-content { display: grid; grid-template-columns: 260rpx 1fr; margin-top: 20rpx; } /* 圆环 */ .circle-wrap { display: flex; justify-content: center; align-items: center; } .circle { width: 200rpx; height: 200rpx; border-radius: 50%; border: 14rpx solid #4caf50; position: relative; } .inner { position: absolute; inset: 30rpx; background: #fff; border-radius: 50%; text-align: center; display: flex; flex-direction: column; justify-content: center; } .total { font-size: 44rpx; font-weight: bold; } .unit { font-size: 22rpx; color: #999; } /* 右侧状态 */ .status-list { display: grid; grid-template-columns: 1fr 1fr; row-gap: 16rpx; column-gap: 20rpx; padding-left: 20rpx; } .status { font-size: 36rpx; font-weight: bold; } .status:nth-child(n+5) { display: none; } .status text { display: block; font-size: 22rpx; font-weight: normal; color: #999; } .green { color: #4caf50; } .red { color: #f44336; } .yellow { color: #fbc02d; } .gray { color: #9e9e9e; } /* Tabs */ .tabs { background: #fff; border-radius: 16rpx; display: flex; justify-content: space-around; padding: 20rpx 0; margin-bottom: 20rpx; } .tab { font-size: 30rpx; color: #999; } .tab.active { color: #4caf50; position: relative; } .tab.active::after { content: ''; position: absolute; bottom: -10rpx; left: 50%; transform: translateX(-50%); width: 40rpx; height: 6rpx; background: #4caf50; border-radius: 4rpx; } /* 筛选 */ .filter { background: #fff; padding: 20rpx; border-radius: 16rpx; margin-bottom: 20rpx; color: #666; font-size: 24rpx; } /* 设备卡片 */ .card-list { display: grid; grid-template-columns: 1fr 1fr; gap: 20rpx; } .card { background: #fff; border-radius: 16rpx; padding: 24rpx; position: relative; padding-bottom: 50rpx; } .title { font-size: 28rpx; margin-bottom: 20rpx; font-weight: bold; } .value { margin-top: 20rpx; font-size: 24rpx; font-weight: bold; } .iconView { position: absolute; right: 24rpx; bottom: 24rpx; width: 10vw; height: 10vw; border-radius: 50%; background-color: #F5F8F9; } .icon { position: absolute; top: 50%; left: 50%; width: 5vw; height: 5vw; transform: translate(-50%, -50%); } .picker { position: relative; } .pickerIcon { position: absolute; top: 50%; right: 24rpx; width: 20rpx; height: 20rpx; transform: translateY(-50%); }