Files
his/openhis-miniapp/pages/personInfo/personInfo.vue
2025-03-05 18:33:07 +08:00

233 lines
4.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="container">
<!-- 用户信息区域 -->
<view class="user-info">
<view class="avatar-section">
<view class="user-info-left">
<image class="avatar" src="/static/images/user.png"></image>
</view>
<view class="user-info-right">
<view class="name-section">
<view>
<text class="name">{{ currentPatient.name }}</text>
<text class="switch-patient" @click="switchPatient">切换就诊人></text>
</view>
<view class="patient-id">
<text>就诊号{{ currentPatient.id }}</text>
</view>
</view>
</view>
</view>
</view>
<!-- 顶部功能入口 -->
<view class="top-section">
<view class="top-item" @click="navigateTo('my-doctor')">
<uni-icons custom-prefix="iconfont" type="my-jiaofeijilu" size="30"></uni-icons>
<text>缴费记录</text>
</view>
<view class="top-item" @click="navigateTo('my-doctor')">
<uni-icons custom-prefix="iconfont" type="my-guahaojilu" size="30"></uni-icons>
<text>挂号记录</text>
</view>
<view class="top-item" @click="navigateTo('my-doctor')">
<uni-icons custom-prefix="iconfont" type="my-jiuzhenjilu" size="30"></uni-icons>
<text>就诊记录</text>
</view>
<view class="top-item" @click="navigateTo('online-consult')">
<uni-icons custom-prefix="iconfont" type="my-wodebaogao" size="30"></uni-icons>
<text>我的报告</text>
</view>
<view class="top-item" @click="navigateTo('my-doctor')">
<uni-icons custom-prefix="iconfont" type="my-jiuzhenrenguanli" size="30"></uni-icons>
<text>就诊人管理</text>
</view>
</view>
<!-- 功能列表 -->
<view class="menu-list">
<navigator v-for="(item, index) in menus" :key="index" class="menu-item" :url="item.url">
<text>{{ item.label }}</text>
</navigator>
</view>
</view>
</template>
<script setup>
import {
ref,
reactive
} from 'vue';
import {
onLoad
} from '@dcloudio/uni-app';
// 用户信息
const userInfo = reactive({
avatar: ''
});
// 当前就诊人信息
const currentPatient = ref({
name: '张三',
id: '123456'
});
// 菜单配置
const menus = ref([{
label: '缴费记录',
url: '/pages/records/payment'
},
{
label: '挂号记录',
url: '/pages/records/registration'
},
{
label: '就诊记录',
url: '/pages/records/medical'
},
{
label: '我的报告',
url: '/pages/records/report'
},
{
label: '就诊人管理',
url: '/pages/patient/manage'
}
]);
// 处理头像点击
const handleAvatarClick = () => {
uni.chooseImage({
count: 1,
success: (res) => {
userInfo.avatar = res.tempFilePaths[0];
}
});
};
// 切换就诊人
const switchPatient = () => {
uni.navigateTo({
url: '/pages/patient/select'
});
};
// 初始化数据
onLoad(() => {
// 这里可以添加请求用户数据的逻辑
});
</script>
<style scoped lang='scss'>
.container {
background-color: #f5f5f5;
min-height: 100vh;
}
/* 设置整个用户信息区域 */
.user-info {
background-color: #fff;
padding-top: 20rpx;
padding-left: 20rpx;
padding-right: 20rpx;
display: flex;
/* 启用Flex布局 */
justify-content: space-between;
/* 在水平上分配空间 */
align-items: center;
/* 垂直方向居中对齐 */
}
/* 名字和切换按钮布局 */
.name-section {
display: flex;
flex-direction: column;
}
/* 名字布局 */
.name {
font-weight: bold;
}
/* 选择就诊人布局 */
.switch-patient {
border: #007aff;
color: #007aff;
padding-left: 10px;
font-size: 28rpx;
}
/* 就诊号 */
.patient-id {
font-size: 26rpx;
color: #666;
padding-top: 10rpx;
}
.avatar-section {
display: flex;
align-items: center;
margin-bottom: 20rpx;
/* 左侧区域 */
.user-info-left {
display: flex;
/* 启用Flex布局 */
align-items: center;
/* 垂直方向居中 */
}
/* 右侧区域 */
.user-info-right {
display: flex;
/* 启用Flex布局 */
align-items: center;
/* 垂直方向居中 */
}
}
.avatar {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
margin-right: 30rpx;
}
.menu-list {
margin-top: 20rpx;
background-color: #fff;
}
/* .menu-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 30rpx;
border-bottom: 2rpx solid #eee;
} */
.top-section {
display: flex;
margin: 20rpx 0;
padding: 30rpx;
background-color: #fff;
border-radius: 16rpx;
.top-item {
display: flex;
flex-direction: column;
align-items: center;
width: 45%;
font-size: 25 rpx;
.image {
width: 100rpx;
height: 100rpx;
margin-bottom: 20rpx;
}
.text {
/* font-size: 20rpx ; */
color: #333;
}
}
}
</style>