applet/主管的首页页面

359 lines
7.5 KiB
Plaintext
Raw Normal View History

2025-12-02 22:42:55 +08:00
<view class="container">
<!-- 顶部统计 -->
<view class="A">
<view class="card purple">
<text class="a1">48</text>
<text class="a2">在住老人</text>
<text class="a3">入住率 85%</text>
</view>
<view class="card purple">
<text class="a1">92%</text>
<text class="a2">任务完成率</text>
<text class="a3">较昨日提升 1%</text>
</view>
<view class="card purple">
<text class="a1">5</text>
<text class="a2">异常预警</text>
<text class="a3">需处理</text>
</view>
<view class="card purple">
<text class="a1">12/16</text>
<text class="a2">在线护工</text>
<text class="a3">当前护工</text>
</view>
</view>
<!-- 待处理预警 -->
<view class="section">
<view class="section-header">
<text>待处理预警</text>
<navigator url="/pages/alerts/index" class="more">查看全部 ></navigator>
</view>
<view class="alert-list">
<view class="alert-item warning">
<text class="title">健康异常</text>
<text class="content">张奶奶心率持续偏高,建议就医检查</text>
<text class="time">张奶奶 · 10-31 17:00</text>
</view>
<view class="alert-item info">
<text class="title">设备故障</text>
<text class="content">301房间设备故障需要维修</text>
<text class="time">301房间 · 10-31 16:30</text>
</view>
<view class="alert-item info">
<text class="title">任务超时</text>
<text class="content">护工小李有3个任务未按时完成</text>
<text class="time">护工小李 · 10-31 16:00</text>
</view>
</view>
</view>
<!-- 护工工作状态 -->
<view class="section">
<view class="section-header">
<text>护工工作状态</text>
<navigator url="/pages/staff/index" class="more">管理 ></navigator>
</view>
<view class="staff-list">
<view class="staff-item">
<view class="info">
<text class="name">护工小王</text>
<text class="room">301房间 · 5个任务</text>
</view>
<text class="status online">在线</text>
</view>
<view class="staff-item">
<view class="info">
<text class="name">护工小李</text>
<text class="room">205房间 · 8个任务</text>
</view>
<text class="status busy">忙碌</text>
</view>
<view class="staff-item">
<view class="info">
<text class="name">护工小张</text>
<text class="room">102房间 · 3个任务</text>
</view>
<text class="status online">在线</text>
</view>
<view class="staff-item">
<view class="info">
<text class="name">护工小刘</text>
<text class="room">无 · 0个任务</text>
</view>
<text class="status offline">离线</text>
</view>
</view>
</view>
<!-- 最近任务 -->
<view class="section">
<view class="section-header">
<text>最近任务</text>
<navigator url="/pages/tasks/index" class="more">查看全部 ></navigator>
</view>
<view class="task-list">
<view class="task-item completed">
<text class="title">为张奶奶测量血压</text>
<text class="desc">护工小王 · 张奶奶 · 10-31 16:30</text>
<text class="status-tag">已完成</text>
</view>
<view class="task-item ongoing">
<text class="title">协助李爷爷用药</text>
<text class="desc">护工小李 · 李爷爷 · 10:30</text>
<text class="status-tag">进行中</text>
</view>
</view>
</view>
<!-- 健康异常 -->
<view class="section">
<view class="section-header">
<text>健康异常</text>
<navigator url="/pages/health/index" class="more">查看详情 ></navigator>
</view>
<view class="health-list">
<view class="health-item warning">
<text class="name">张奶奶</text>
<text class="value">心率: 95 (正常: 60-90)</text>
<text class="status">警告</text>
</view>
</view>
</view>
</view>
wxss
.container {
background-color: #e6f7ff;
padding-bottom: 30rpx;
}
/* 顶部 */
.A {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 5rpx;
background-color:#8fcde004;
}
.card {
width: 47%;
height: 160rpx;
background: linear-gradient(135deg, #6e7ff3, #9a8cf9);
color: white;
border-radius: 16rpx;
padding: 20rpx;
box-sizing: border-box;
margin-bottom: 20rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.card .a1 {
font-size: 40rpx;
font-weight: bold;
}
.card .a2 {
font-size: 28rpx;
}
.card .a3 {
font-size: 24rpx;
opacity: 0.8;
}
/* 标题 */
.section {
margin-top: 30rpx;
background-color: #fff;
padding: 20rpx;
}
.section-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20rpx;
}
.section-header .icon {
width: 32rpx;
height: 32rpx;
margin-right: 10rpx;
}
.section-header .more {
font-size: 26rpx;
color: #666;
}
/* 警告 */
.alert-list .alert-item {
padding: 20rpx;
border-radius: 12rpx;
margin-bottom: 15rpx;
position: relative;
border-left: 6rpx solid #f56c6c;
}
.alert-item.warning {
background-color: #fef0f0;
border-left-color: #f56c6c;
}
.alert-item.info {
background-color: #f0f7ff;
border-left-color: #409eff;
}
.alert-item .title {
font-weight: bold;
margin-bottom: 10rpx;
display: block;
}
.alert-item .content {
font-size: 28rpx;
color: #333;
margin-bottom: 10rpx;
}
.alert-item .time {
font-size: 24rpx;
color: #999;
}
/* 护工 */
.staff-list .staff-item {
display: flex;
align-items: center;
padding: 20rpx;
border-bottom: 1rpx solid #eee;
}
.staff-item .avatar {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
margin-right: 20rpx;
}
.staff-item .info {
flex: 1;
}
.staff-item .name {
font-size: 30rpx;
font-weight: bold;
}
.staff-item .room {
font-size: 26rpx;
color: #666;
}
.staff-item .status {
font-size: 26rpx;
padding: 6rpx 12rpx;
border-radius: 12rpx;
}
.status.online {
color: #67c23a;
background-color: #f0f9eb;
}
.status.busy {
color: #e6a23c;
background-color: #fdf6ec;
}
.status.offline {
color: #909399;
background-color: #f5f7fa;
}
/* 任务 */
.task-list .task-item {
padding: 20rpx;
border-radius: 12rpx;
margin-bottom: 15rpx;
position: relative;
border-left: 6rpx solid #67c23a;
}
.task-item.completed {
background-color: #f0f9eb;
border-left-color: #67c23a;
}
.task-item.ongoing {
background-color: #f0f7ff;
border-left-color: #409eff;
}
.task-item .title {
font-size: 30rpx;
font-weight: bold;
margin-bottom: 10rpx;
}
.task-item .desc {
font-size: 26rpx;
color: #666;
margin-bottom: 10rpx;
}
.task-item .status-tag {
font-size: 24rpx;
padding: 4rpx 10rpx;
border-radius: 8rpx;
float: right;
}
.status-tag.completed {
color: #67c23a;
background-color: #ecf5ff;
}
.status-tag.ongoing {
color: #409eff;
background-color: #ecf5ff;
}
/* 健康异常 */
.health-list .health-item {
padding: 20rpx;
border-radius: 12rpx;
background-color: #fef0f0;
border-left: 6rpx solid #f56c6c;
display: flex;
justify-content: space-between;
align-items: center;
}
.health-item .name {
font-size: 30rpx;
font-weight: bold;
color: #f56c6c;
}
.health-item .value {
font-size: 28rpx;
color: #333;
}
.health-item .status {
font-size: 26rpx;
color: #f56c6c;
background-color: #fef0f0;
padding: 4rpx 10rpx;
border-radius: 8rpx;
}