将 mini-driver 和 mini-manager 两个独立小程序合并为 frontend/mini-app, 通过自定义 tabBar 根据登录角色动态切换界面: - 后端登录接口 role_type 改为可选,支持自动识别角色 - 统一登录页根据 role_code 自动跳转对应首页 - 统一"我的"页通过 wx:if 切换司机/管理层内容 - 自定义 tabBar 组件按角色渲染不同 tab 项 - 提取公共 utils(auth/request/status)消除重复代码 - 原有两个项目保留不动,待验证后清理 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
137 lines
1.7 KiB
Plaintext
137 lines
1.7 KiB
Plaintext
.page {
|
|
padding: 28rpx;
|
|
}
|
|
|
|
.dashboard-page {
|
|
display: grid;
|
|
gap: 20rpx;
|
|
}
|
|
|
|
.custom-header {
|
|
padding: 20rpx 4rpx 0;
|
|
}
|
|
|
|
.header-title {
|
|
font-size: 44rpx;
|
|
font-weight: 800;
|
|
color: #0f172a;
|
|
line-height: 1.22;
|
|
}
|
|
|
|
.header-sub {
|
|
font-size: 26rpx;
|
|
color: #64748b;
|
|
margin-top: 6rpx;
|
|
}
|
|
|
|
.loading-card {
|
|
padding: 40rpx;
|
|
text-align: center;
|
|
}
|
|
|
|
.page-subtitle {
|
|
font-size: 26rpx;
|
|
color: #64748b;
|
|
}
|
|
|
|
.metrics-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.metric-card {
|
|
padding: 28rpx 24rpx;
|
|
text-align: center;
|
|
}
|
|
|
|
.metric-card.urgent {
|
|
border-left: 6rpx solid #f59e0b;
|
|
}
|
|
|
|
.metric-label {
|
|
font-size: 24rpx;
|
|
color: #64748b;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.metric-value {
|
|
margin: 12rpx 0 8rpx;
|
|
font-size: 56rpx;
|
|
font-weight: 800;
|
|
color: #0f172a;
|
|
}
|
|
|
|
.metric-value.urgent-val {
|
|
color: #d97706;
|
|
}
|
|
|
|
.metric-action {
|
|
font-size: 24rpx;
|
|
color: #2563eb;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.recent-card {
|
|
padding: 24rpx;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 28rpx;
|
|
font-weight: 700;
|
|
color: #0f172a;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.item-row {
|
|
padding: 16rpx 0;
|
|
border-bottom: 1rpx solid #f1f5f9;
|
|
}
|
|
|
|
.item-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.row-main {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.row-left {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.row-title {
|
|
font-size: 28rpx;
|
|
font-weight: 700;
|
|
color: #0f172a;
|
|
}
|
|
|
|
.row-sub {
|
|
font-size: 24rpx;
|
|
color: #64748b;
|
|
margin-top: 4rpx;
|
|
}
|
|
|
|
.row-right {
|
|
text-align: right;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.row-amount {
|
|
font-size: 26rpx;
|
|
font-weight: 700;
|
|
color: #2563eb;
|
|
margin-top: 6rpx;
|
|
}
|
|
|
|
.empty-hint {
|
|
text-align: center;
|
|
padding: 24rpx;
|
|
color: #94a3b8;
|
|
font-size: 26rpx;
|
|
}
|