优化首页、我的样式

This commit is contained in:
zhouyanli
2026-05-20 15:31:10 +08:00
parent 99c36c0d83
commit 6f10ac22db
4 changed files with 492 additions and 554 deletions

View File

@@ -1,6 +1,6 @@
<template> <template>
<view class="report-record-page"> <view class="report-record-page">
<view class="status-bar"></view> <view class="status-bar" :style="{ height: statusBarHeight + 'px' }"></view>
<!-- 顶部导航栏 --> <!-- 顶部导航栏 -->
<uni-nav-bar <uni-nav-bar
left-icon="back" left-icon="back"
@@ -58,8 +58,8 @@
<!-- 类型标签 --> <!-- 类型标签 -->
<view class="tag-group"> <view class="tag-group">
<view class="tag-item">{{ record.projectTypeStr || '无 ' }}</view> <view class="tag-item" v-if="record.projectTypeStr">{{ record.projectTypeStr}}</view>
<view class="tag-item">{{ record.maintenanceItemName || '无'}}</view> <view class="tag-item" v-if="record.maintenanceItemName">{{ record.maintenanceItemName}}</view>
</view> </view>
<!-- 内容 --> <!-- 内容 -->
@@ -97,6 +97,7 @@ import {getMyOrderList} from '../../api/api.js'
const navHeight = ref(44) const navHeight = ref(44)
const statusTabHeight = ref(88) const statusTabHeight = ref(88)
const typeTabHeight = ref(88) const typeTabHeight = ref(88)
const statusBarHeight = ref(uni.getSystemInfoSync().statusBarHeight || 0)
// 分页 // 分页
const pageNum = ref(1) // 当前页 const pageNum = ref(1) // 当前页
const pageSize = ref(5) // 每页条数 const pageSize = ref(5) // 每页条数
@@ -254,7 +255,9 @@ onReady(() => {
} }
.status-bar{ .status-bar{
width: 100%; width: 100%;
height: 46px; /* height: var(--status-bar-height); */
flex-shrink: 0;
/* height: 46px; */
} }
/* 状态筛选标签 */ /* 状态筛选标签 */
.status-tabs { .status-tabs {

View File

@@ -237,8 +237,8 @@ const handleConfirm = () => {
color: #fff; color: #fff;
} }
/* 禁用按钮边框 */ /* 禁用按钮边框 */
button:after{ .get-verify-btn:after{
border-radius: 8px; border-radius: 40px;
} }

View File

@@ -1,120 +1,118 @@
<template> <template>
<view class="content-class"> <view class="content-class">
<view class="nar-top"> <!-- 顶部渐变背景层 -->
<!-- 这里是状态栏占位 --> <view class="bg-gradient"></view>
<!-- 页面内容区 -->
<view class="page-content">
<!-- 状态栏占位 -->
<view class="status_bar" :style="{ height: statusBarHeight + 'px' }"></view> <view class="status_bar" :style="{ height: statusBarHeight + 'px' }"></view>
<!-- 导航栏 --> <!-- 导航栏 -->
<view class="nav-bar"> <view class="nav-bar">
<text class="nav-title">首页</text> <text class="nav-title">首页</text>
</view> </view>
<view class="tabbarClass"> <!-- 小区选择 -->
<view class="header-container" @click="navigateToPage"> <view class="header-container" @click="navigateToPage">
<!-- 左侧小区选择区域 --> <view class="location-area">
<view class="location-area"> <view class="location-icon">
<!-- 定位图标 --> <image src="https://wuyeadmin.bugtc.com/images/imgs/adress.png" style="height: 100%; width: 100%"></image>
<view class="location-icon"> </view>
<image src="https://wuyeadmin.bugtc.com/images/imgs/adress.png" style="height: 100%; width: 100%"></image> <view class="community-selector">
</view> <text class="community-name">{{ currentCommunity }}</text>
<!-- 小区名称和下拉箭头 --> <view class="community-icon">
<view class="community-selector"> <image src="https://wuyeadmin.bugtc.com/images/imgs/三角形.png" style="height: 100%; width: 100%"></image>
<text class="community-name">{{ currentCommunity }}</text>
<view class="community-icon">
<image src="https://wuyeadmin.bugtc.com/images/imgs/三角形.png" style="height: 100%; width: 100%"></image>
</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view>
<!-- banner --> <!-- banner -->
<view class="bannarClass"> <view class="bannarClass">
<uni-swiper-dot <uni-swiper-dot
class="uni-swiper-dot-box" class="uni-swiper-dot-box"
@clickItem="clickItem" @clickItem="clickItem"
:info="bannerList" :info="bannerList"
:current="current" :current="current"
mode="round" mode="round"
> >
<swiper class="swiper-box" :current="current" autoplay> <swiper class="swiper-box" :current="current" autoplay>
<swiper-item v-for="(item, index) in bannerList" :key="index"> <swiper-item v-for="(item, index) in bannerList" :key="index">
<view class="swiper-item"> <view class="swiper-item">
<image :src="item.url" style="width: 100%; height: 100%"></image> <image :src="item.url" style="width: 100%; height: 100%"></image>
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
</uni-swiper-dot> </uni-swiper-dot>
</view> </view>
<!-- 巡检 --> <!-- 巡检 -->
<view class="inspectionClass"> <view class="inspectionClass">
<!-- 消息通知栏 --> <!-- 消息通知栏 -->
<view class="noticeClass"> <view class="noticeClass">
<!-- 左侧消息通知文字 --> <view class="notice-left">
<view class="notice-left"> <image src="https://wuyeadmin.bugtc.com/images/imgs/notice.png" class="notice-icon"></image>
<image src="https://wuyeadmin.bugtc.com/images/imgs/notice.png" class="notice-icon"></image> <view class="notice-line"></view>
<view class="notice-line"></view> </view>
<view class="notice-right" @click="getNoticeMore">
<uni-notice-bar
:text="noticeText"
type="line"
:showIcon="false"
show-get-more
scrollable
color="#fff"
background-color="transparent"
moreColor="#fff"
no-border
>
</uni-notice-bar>
</view>
</view> </view>
<!-- 右侧滚动公告 -->
<view class="notice-right" @click="getNoticeMore"> <!-- 巡检数据统计区 -->
<uni-notice-bar <view class="statistics-wrap">
:text="noticeText" <view class="statistics-item" @click="goToInspectionRecord">
type="line" <text class="num">{{allCount}}</text>
:showIcon="false" <text class="label">全部巡检</text>
show-get-more </view>
scrollable <view class="statistics-item" @click="goToDaysInspection">
color="#fff" <text class="num">{{pendingCount}}</text>
background-color="transparent" <text class="label">待巡检</text>
moreColor="#fff" </view>
no-border <view class="statistics-item">
> <text class="num">{{InspectedCount}}</text>
</uni-notice-bar> <text class="label">已巡检</text>
</view>
</view> </view>
</view> </view>
<!-- 巡检数据统计区 --> <!-- 网格布局功能 -->
<view class="statistics-wrap"> <view class="function-container">
<view class="statistics-item" @click="goToInspectionRecord"> <!-- 第一行功能:故障上报、一键开门、工单大厅、我的工单 -->
<text class="num">{{allCount}}</text> <view class="function-row">
<text class="label">全部巡检</text> <view class="function-item" @click="goToReport">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/fault-report.png" mode="aspectFit"></image>
<text class="item-text">故障上报</text>
</view>
<view class="function-item" @click="goToOneOpenDoor">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/open.png" mode="aspectFit"></image>
<text class="item-text">一键开门</text>
</view>
<view class="function-item" @tap="goToTicketHall">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/work-order.png" mode="aspectFit"></image>
<text class="item-text">工单大厅</text>
</view>
<view class="function-item" @tap="goToMyTicket">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/my-work.png" mode="aspectFit"></image>
<text class="item-text">我的工单</text>
</view>
</view> </view>
<view class="statistics-item" @click="goToDaysInspection"> <!-- 第二行 -->
<text class="num">{{pendingCount}}</text> <view class="function-row" style="margin-top: 2px">
<text class="label">待巡检</text> <view class="function-item" @tap="goToComplaint">
</view> <image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/complaint.png" mode="aspectFit"></image>
<view class="statistics-item"> <text class="item-text">投诉处理</text>
<text class="num">{{InspectedCount}}</text> </view>
<text class="label">已巡检</text>
</view>
</view>
</view>
<!-- 网格布局功能 -->
<view class="function-container">
<!-- 第一行功能:故障上报、一键开门、工单大厅、我的工单 -->
<view class="function-row">
<view class="function-item" @click="goToReport">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/fault-report.png" mode="aspectFit"></image>
<text class="item-text">故障上报</text>
</view>
<view class="function-item" @click="goToOneOpenDoor">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/open.png" mode="aspectFit"></image>
<text class="item-text">一键开门</text>
</view>
<view class="function-item" @tap="goToTicketHall">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/work-order.png" mode="aspectFit"></image>
<text class="item-text">工单大厅</text>
</view>
<view class="function-item" @tap="goToMyTicket">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/my-work.png" mode="aspectFit"></image>
<text class="item-text">我的工单</text>
</view>
</view>
<!-- 第二行 -->
<view class="function-row" style="margin-top: 2px">
<view class="function-item" @tap="goToComplaint">
<image class="item-icon" src="https://wuyeadmin.bugtc.com/images/imgs/complaint.png" mode="aspectFit"></image>
<text class="item-text">投诉处理</text>
</view> </view>
</view> </view>
</view> </view>
@@ -277,257 +275,251 @@ const clickItem = index => {
<style lang="scss" scoped> <style lang="scss" scoped>
.content-class { .content-class {
background-color: #f9f9f9; background-color: #f9f9f9;
box-sizing: border-box;
min-height: 100vh; min-height: 100vh;
overflow-y: auto; position: relative;
}
.nar-top { /* 顶部渐变背景 */
height: 400rpx; .bg-gradient {
width: 100%; position: absolute;
background: repeating-linear-gradient(to right, #edf4fa, #c0e4fb); top: 0;
position: absolute; left: 0;
} right: 0;
height: 400rpx;
background: repeating-linear-gradient(to right, #edf4fa, #c0e4fb);
z-index: 0;
}
.status_bar { /* 页面内容容器 */
width: 100%; .page-content {
position: relative;
z-index: 1;
padding: 0 40rpx 40rpx;
}
.status_bar {
width: 100%;
}
/* 导航栏 */
.nav-bar {
height: 88rpx;
line-height: 88rpx;
text-align: center;
}
.nav-title {
font-size: 32rpx;
font-weight: 400;
}
.header-container {
display: flex;
align-items: center;
justify-content: space-between;
padding: 4rpx 0;
}
/* 左侧区域 */
.location-area {
display: flex;
align-items: center;
position: relative;
flex: 1;
min-width: 0;
.location-icon {
width: 45rpx;
height: 45rpx;
margin-right: 12rpx;
flex-shrink: 0; flex-shrink: 0;
} }
/* 导航栏 */ .community-selector {
.nav-bar {
height: 44px;
line-height: 44px;
text-align: center;
}
.nav-title {
font-size: 32rpx;
font-weight: 400;
}
.header-container {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; max-width: 300rpx;
padding: 4rpx 30rpx; cursor: pointer;
box-sizing: border-box;
position: absolute;
top: 85px;
left: 0;
z-index: 9999;
}
// 左侧区域 .community-name {
.location-area { font-size: 26rpx;
display: flex; font-weight: 500;
align-items: center; color: #000;
position: relative; white-space: nowrap;
flex: 1; overflow: hidden;
min-width: 0; text-overflow: ellipsis;
max-width: 200rpx;
.location-icon {
width: 45rpx;
height: 45rpx;
margin-right: 12rpx;
flex-shrink: 0;
} }
.community-selector { .community-icon {
display: flex; width: 20rpx;
align-items: center; height: 20rpx;
max-width: 300rpx; margin-left: 20rpx;
cursor: pointer; margin-top: -22rpx;
.community-name {
font-size: 26rpx;
font-weight: 500;
color: #000;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 200rpx;
}
.community-icon {
width: 20rpx;
height: 20rpx;
margin-left: 20rpx;
margin-top: -22rpx;
}
} }
} }
}
.bannarClass {
position: relative; .bannarClass {
top: 110px; padding: 20rpx 0;
left: 0; }
padding: 20rpx 40rpx;
} .swiper-box {
height: 300rpx;
.swiper-box { border-radius: 16rpx !important;
height: 300rpx; overflow: hidden !important;
border-radius: 16rpx !important; }
overflow: hidden !important;
} .swiper-item {
display: flex;
.swiper-item { flex-direction: column;
display: flex; justify-content: center;
flex-direction: column; align-items: center;
justify-content: center; height: 300rpx;
align-items: center; color: #fff;
height: 300rpx; }
color: #fff;
} .inspectionClass {
// margin-top: 20rpx;
.inspectionClass { background: linear-gradient(to right, #7b87fa, #4d5dfa);
position: relative; border-radius: 16rpx;
top: 111px; box-sizing: border-box;
left: 0; padding: 30rpx;
margin: 0 40rpx; }
background: linear-gradient(to right, #7b87fa, #4d5dfa);
border-radius: 16rpx; /* 消息通知栏 */
box-sizing: border-box; .noticeClass {
padding: 30rpx; display: flex;
} align-items: center;
height: 80rpx;
// 消息通知栏 background: rgba(255, 255, 255, 0.1);
.noticeClass { border-radius: 16rpx;
display: flex; padding: 6rpx 20rpx;
align-items: center; margin-bottom: 30rpx;
height: 80rpx; border: 1rpx solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.1); }
border-radius: 16rpx;
padding: 6rpx 20rpx; /* 左侧"消息通知"文字 */
margin-bottom: 30rpx; .notice-left {
border: 1rpx solid rgba(255, 255, 255, 0.1); display: flex;
} align-items: center;
margin-right: 16rpx;
// 左侧”消息通知”文字
.notice-left { .notice-icon {
display: flex; width: 48rpx;
align-items: center; height: 48rpx;
margin-right: 16rpx; margin-right: 15rpx;
}
.notice-icon {
width: 48rpx; .notice-line {
height: 48rpx; width: 1rpx;
margin-right: 15rpx; height: 40rpx;
} background-color: rgba(255, 255, 255, 0.4);
}
.notice-line { }
width: 1rpx;
height: 40rpx; /* 右侧公告滚动区 */
background-color: rgba(255, 255, 255, 0.4); .notice-right {
flex: 1;
} }
}
/* 深度修改uni-notice-bar样式 */
// 右侧公告滚动区 :deep(.uni-noticebar) {
.notice-right { background-color: transparent !important;
flex: 1; height: 100% !important;
} line-height: 80rpx !important;
padding: 0 !important;
// 深度修改uni-notice-bar样式 margin: 0 !important;
:deep(.uni-noticebar) { }
background-color: transparent !important;
height: 100% !important; /* 公告文字样式 */
line-height: 80rpx !important; :deep(.uni-noticebar__content) {
padding: 0 !important; font-size: 26rpx !important;
margin: 0 !important; color: #fff !important;
} padding: 0 !important;
}
// 公告文字样式
:deep(.uni-noticebar__content) { /* 右侧箭头按钮 */
font-size: 26rpx !important; :deep(.uni-noticebar__more) {
color: #fff !important; color: #fff !important;
padding: 0 !important; font-size: 24rpx !important;
} padding: 0 0 0 10rpx !important;
}
// 右侧箭头按钮
:deep(.uni-noticebar__more) { /* 隐藏默认滚动动画的多余样式 */
color: #fff !important; :deep(.uni-noticebar__content-wrapper--scrollable) {
font-size: 24rpx !important; left: 0 !important;
padding: 0 0 0 10rpx !important; width: calc(100% - 30rpx) !important;
} }
// 隐藏默认滚动动画的多余样式 /* 统计区布局 */
:deep(.uni-noticebar__content-wrapper--scrollable) { .statistics-wrap {
left: 0 !important; display: flex;
width: calc(100% - 30rpx) !important; justify-content: space-between;
} align-items: center;
padding: 0 20rpx;
// 统计区布局 }
.statistics-wrap {
display: flex; /* 统计项样式 */
justify-content: space-between; .statistics-item {
align-items: center; text-align: center;
padding: 0 20rpx; }
}
.statistics-item .num {
// 统计项样式 font-size: 36rpx;
.statistics-item { font-weight: bold;
text-align: center; color: #fff;
} display: block;
line-height: 1;
.statistics-item .num { margin-bottom: 10rpx;
font-size: 36rpx; }
font-weight: bold;
color: #fff; .statistics-item .label {
display: block; font-size: 24rpx;
line-height: 1; color: #fff;
margin-bottom: 10rpx; opacity: 0.9;
} }
.statistics-item .label { .function-container {
font-size: 24rpx; background-color: #ffffff;
color: #fff; border-radius: 16rpx;
opacity: 0.9; padding: 30rpx 0;
} box-sizing: border-box;
margin-top: 20rpx;
.function-container { }
background-color: #ffffff;
border-radius: 16rpx; /* 功能行布局 */
padding: 30rpx 20rpx; .function-row {
box-sizing: border-box; display: flex;
position: relative; align-items: center;
top: 123px; margin-bottom: 20rpx;
left: 0;
margin: 0 40rpx; &:last-child {
} margin-bottom: 0;
}
// 功能行布局 }
.function-row {
display: flex; .function-item {
align-items: center; display: flex;
margin-bottom: 20rpx; flex-direction: column;
align-items: center;
&:last-child { justify-content: center;
margin-bottom: 0; width: 25%;
} padding: 10rpx 0;
} }
.function-item { /* 功能图标样式 */
display: flex; .item-icon {
flex-direction: column; width: 88rpx;
align-items: center; height: 88rpx;
justify-content: center; margin-bottom: 10rpx;
width: 25%; }
padding: 10rpx 0;
} /* 功能文字样式 */
.item-text {
// 功能图标样式 font-size: 24rpx;
.item-icon { color: #333333;
width: 88rpx; font-weight: 400;
height: 88rpx; text-align: center;
margin-bottom: 10rpx;
}
// 功能文字样式
.item-text {
font-size: 24rpx;
color: #333333;
font-weight: 400;
text-align: center;
}
} }
</style> </style>

View File

@@ -1,236 +1,179 @@
<template> <template>
<view class="contentStyle" style=""> <view class="content-style">
<view class="status-bar" :style="{ height: statusBarHeight + 'px' }"></view> <view class="status-bar" :style="{ height: statusBarHeight + 'px' }"></view>
<uni-nav-bar title="我的" backgroundColor="transparent" :border="false"> </uni-nav-bar> <uni-nav-bar title="我的" backgroundColor="transparent" :border="false" />
<scroll-view class="page" scroll-y> <scroll-view class="page" scroll-y>
<view class="topBox"> <view class="user-card">
<view class="name"> <image :src="avatar || defaultAvatar" class="avatar" />
<image :src="avatar" class="img" /> <view class="user-info">
<span style="padding: 5rpx 5rpx; display: flex; flex-direction: column; line-height: 60rpx"> <text class="user-name">{{ loginName }}</text>
<span style="font-size: 36rpx; font-weight: 600"> <text class="user-phone">{{ phoneNum }}</text>
{{ loginName }}
</span>
<span style="font-size: 26rpx; color: #666666">
{{ phoneNum }}
</span>
</span>
</view> </view>
</view> </view>
<view class="contentBox"> <view class="list-container">
<div class="page-container"> <view
<view class="list-container"> class="list-item"
<view class="list-item" v-for="(item, index) in list" :key="index" @click="onItemClick(item)"> v-for="(item, index) in list"
<image :src="item.icon" class="item-icon" /> :key="index"
<view class="item-content"> @click="onItemClick(item)"
<text class="item-title">{{ item.title }}</text> >
</view> <image :src="item.icon" class="item-icon" />
<view class="item-arrow"></view> <text class="item-title">{{ item.title }}</text>
<!-- <image src="https://wuyeadmin.bugtc.com/images/propertyImgs/arrow-right.png" class="arrow-icon" /> --> <view class="item-arrow"></view>
</view> </view>
</view>
</div>
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
</template> </template>
<script setup> <script setup>
import { import { ref } from 'vue'
ref import { onShow } from '@dcloudio/uni-app'
} from 'vue' import { getSettingInfo } from '../../api/api.js'
import {
onShow
} from '@dcloudio/uni-app'
import {
getSettingInfo
} from '../../api/api.js'
const list = ref([{ const defaultAvatar = 'https://wuyeadmin.bugtc.com/images/imgs/default-avatar.png'
icon: 'https://wuyeadmin.bugtc.com/images/imgs/shangbao.png',
title: '上报记录' const list = ref([
}, { icon: 'https://wuyeadmin.bugtc.com/images/imgs/shangbao.png', title: '上报记录' },
{ { icon: 'https://wuyeadmin.bugtc.com/images/imgs/xunjian.png', title: '巡检记录' },
icon: 'https://wuyeadmin.bugtc.com/images/imgs/xunjian.png', { icon: 'https://wuyeadmin.bugtc.com/images/imgs/xunjian.png', title: '仪表换新' },
title: '巡检记录' { icon: 'https://wuyeadmin.bugtc.com/images/propertyImgs/setting.png', title: '设置' }
}, ])
{
icon: 'https://wuyeadmin.bugtc.com/images/imgs/xunjian.png', const loginName = ref('')
title: '仪表换新' const phoneNum = ref('')
}, const avatar = ref('')
{ const statusBarHeight = ref(uni.getSystemInfoSync().statusBarHeight || 0)
icon: 'https://wuyeadmin.bugtc.com/images/propertyImgs/setting.png',
title: '设置' const fetchUserInfo = () => {
getSettingInfo().then(res => {
if (res.code === 200 && res.data) {
loginName.value = res.data.nickName || ''
phoneNum.value = res.data.phonenumber || ''
avatar.value = res.data.avatar || ''
} }
]) }).catch(err => {
const loginName = ref('') uni.showToast({ title: err.msg || '获取失败', icon: 'none' })
const phoneNum = ref('')
const avatar = ref('')
const statusBarHeight = ref(uni.getSystemInfoSync().statusBarHeight || 0)
// 获取管家信息
const fetchUserInfo = () => {
getSettingInfo().then(res => {
if (res.code === 200 && res.data) {
loginName.value = res.data.nickName || ''
phoneNum.value = res.data.phonenumber || ''
avatar.value = res.data.avatar
}
}).catch(err => {
uni.showToast({
title: err.msg || '获取失败',
icon: 'none'
})
})
}
onShow(() => {
fetchUserInfo()
}) })
}
// --方法---- onShow(() => {
const goToDetail = () => { fetchUserInfo()
uni.navigateTo({ })
url: '/pageSubPack/notice-list/noticeListDetails'
}) const onItemClick = item => {
const routes = {
'上报记录': '/pageSubPack/report-record/report-record',
'巡检记录': '/pageSubPack/inspection/inspection_record',
'仪表换新': '/pageSubPack/instrument/replacement_record',
'设置': '/pageSubPack/setting/setting'
} }
// 返回 const url = routes[item.title]
const onItemClick = item => { if (!url) return
if (item.title == '上报记录') { if (item.title === '设置') {
uni.navigateTo({ uni.redirectTo({ url })
url: '/pageSubPack/report-record/report-record' } else {
}) uni.navigateTo({ url })
} else if (item.title == '巡检记录') {
uni.navigateTo({
url: '/pageSubPack/inspection/inspection_record'
})
} else if (item.title == '仪表换新') {
uni.navigateTo({
url: '/pageSubPack/instrument/replacement_record'
})
} else if (item.title == '设置') {
uni.redirectTo({
url: '/pageSubPack/setting/setting'
})
}
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.contentStyle { .content-style {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-height: 100vh; min-height: 100vh;
background: linear-gradient(to left bottom, #e2efff 0%, #f9f9f9 50%); background: linear-gradient(to left bottom, #e2efff 0%, #f9f9f9 50%);
}
.status-bar {
width: 100%;
flex-shrink: 0;
}
:deep(.uni-nav-bar-text) {
font-size: 32rpx !important;
}
.page {
flex: 1;
padding: 0 40rpx;
box-sizing: border-box;
}
.user-card {
display: flex;
align-items: center;
padding: 40rpx 0;
}
.avatar {
width: 120rpx;
height: 120rpx;
margin-right: 20rpx;
border-radius: 50%;
background-color: #eee;
flex-shrink: 0;
}
.user-info {
display: flex;
flex-direction: column;
gap: 8rpx;
}
.user-name {
font-size: 36rpx;
font-weight: 600;
color: #333;
line-height: 1.4;
}
.user-phone {
font-size: 26rpx;
color: #666;
line-height: 1.4;
}
.list-container {
margin-top: 20rpx;
}
.list-item {
display: flex;
align-items: center;
padding: 24rpx 0;
// border-bottom: 1rpx solid #f0f0f0;
&:last-child {
border-bottom: none;
} }
.topBox { &:active {
width: 100%; opacity: 0.7;
padding: 20rpx 0px;
position: relative;
// background-color: #1A75FF;
} }
}
.titleBox { .item-icon {
width: 100%; width: 84rpx;
height: 84rpx;
flex-shrink: 0;
}
position: relative; .item-title {
flex: 1;
font-size: 32rpx;
font-weight: 400;
margin-left: 20rpx;
}
.title { .item-arrow {
font-size: 36rpx; width: 16rpx;
line-height: 80rpx; height: 16rpx;
text-align: center; border-right: 3rpx solid #999;
font-weight: 500; border-bottom: 3rpx solid #999;
} transform: rotate(-45deg);
margin-right: 10rpx;
.settingImg { flex-shrink: 0;
width: 48rpx; }
height: 48rpx;
top: 16rpx;
right: 0px;
}
}
.img {
width: 60px;
height: 60px;
margin-right: 10rpx;
border-radius: 50%;
}
.name {
bottom: 30rpx;
left: 30rpx;
display: flex;
align-items: center;
}
.contentBox {
position: relative;
}
.status-bar {
width: 100vw;
// height: 46px;
height: var(--status-bar-height);
flex-shrink: 0;
}
::v-deep .uni-nav-bar-text{
font-size: 32rpx !important;
}
.list-item {
display: flex;
align-items: center;
/* background: #fff; */
padding: 20rpx 6rpx;
border-radius: 8rpx;
/* border-bottom:2rpx solid #f2f2f2; */
/* margin-bottom: 10rpx; */
}
.item-icon {
width: 84rpx;
height: 84rpx;
/* margin-right: 20rpx; */
}
.item-content {
flex: 1;
display: flex;
flex-direction: row;
align-items: center;
}
.item-title {
font-size: 32rpx;
/* color: #333; */
font-weight: 400;
margin: 10rpx 20rpx;
/* margin-bottom: 6rpx; */
}
.item-desc {
font-size: 24rpx;
color: #b5b5b5;
white-space: nowrap;
/* 强制不换行 */
overflow: hidden;
/* 超出隐藏 */
text-overflow: ellipsis;
}
.item-arrow {
width: 16rpx;
height: 16rpx;
border-right: 3rpx solid #999999;
border-bottom: 3rpx solid #999999;
transform: rotate(-45deg);
margin-right: 10rpx;
}
.page {
flex: 1;
overflow-y: auto;
padding: 0px 40rpx;
box-sizing: border-box;
}
</style> </style>