8.26 17:41

This commit is contained in:
zoujiandong
2025-08-26 17:41:57 +08:00
parent b6120d9a40
commit ef5b3fb59f
15 changed files with 1331 additions and 55 deletions
+137
View File
@@ -0,0 +1,137 @@
<template>
<view class="content">
<!-- 顶部导航栏 -->
<uni-nav-bar
left-icon="left"
title="患者详情"
@clickLeft="goBack"
fixed
color="#8B2316"
height="140rpx"
:border="false"
backgroundColor="#eeeeee"
>
<template #right>
<view class="nav-right" @click="editPatient">
<uni-icons type="compose" size="22" color="#8B2316"></uni-icons>
</view>
</template>
</uni-nav-bar>
<!-- 头部信息卡片 -->
<view class="card header-card">
<image class="avatar" src="/static/avatar-a.png" mode="aspectFill"></image>
<view class="base-info">
<view class="name-row">
<text class="name">aa</text>
<uni-icons type="person" size="20" color="#c0392b" style="margin-left: 8rpx;"></uni-icons>
</view>
<view class="line"><text class="label">昵称:</text><text class="value">Android</text></view>
<view class="line"><text class="label">年龄:</text><text class="value">23</text><text class="sep">|</text><text class="label">民族:</text><text class="value">未知</text></view>
<view class="line multi">
<text class="label">地区:</text>
<text class="value">内蒙古自治区呼伦贝尔市莫力达瓦达斡尔族自治旗</text>
</view>
</view>
</view>
<!-- 功能分组条目 -->
<view class="cell" @click="openGroup" style="margin-top: 20rpx;">
<text class="cell-label">分组</text>
<view class="cell-right">
<text class="hint">分组了,分组2</text>
<uni-icons type="right" color="#999" size="18"></uni-icons>
</view>
</view>
<view class="cell" @click="editDesc">
<text class="cell-label">描述</text>
<view class="cell-right">
<text class="hint">补充患者关键信息,方便随访患者</text>
<uni-icons type="right" color="#999" size="18"></uni-icons>
</view>
</view>
<view class="cell">
<text class="cell-label">电话号码</text>
<view class="cell-right">
<text class="phone">18012345600</text>
</view>
</view>
<!-- 患者病史 -->
<view class="section-title">患者病史</view>
<view class="card history-card">
<text class="history-text" :class="{ fold: !showAllHistory }">{{ historyText }}</text>
<text class="toggle" @click="toggleHistory">{{ showAllHistory ? '收起' : '展开全部' }}</text>
</view>
<!-- 底部操作 -->
<view class="actions">
<view class="action" @click="sendMessage">
<up-image :src="msgImg" width="44rpx" height="44rpx" ></up-image>
<text class="action-text">发消息</text>
</view>
<view class="action" @click="goMakePlan">
<up-image :src="planImg" width="44rpx" height="44rpx" ></up-image>
<text class="action-text">制定随访计划</text>
</view>
<view class="action" @click="recordIllness">
<up-image :src="recordImg" width="44rpx" height="44rpx" ></up-image>
<text class="action-text">记录病情</text>
</view>
</view>
</view>
</template>
<script setup>
import { ref } from 'vue'
import { onShow } from '@dcloudio/uni-app'
import msgImg from "@/static/icon_message_big.png"
import planImg from "@/static/image_backgrond_red_big1.png"
import recordImg from "@/static/image_backgrond_red_big.png"
const showAllHistory = ref(false)
const historyText = '2025年检查出戊型肝炎, 同时患有结核。有饮酒史、无吸烟史, 无输血或其他血液制品史, 使用过恩…'
const goBack = ()=> uni.navigateBack()
const editPatient = ()=> uni.showToast({ title:'编辑资料', icon:'none' })
const openGroup = ()=> uni.showToast({ title:'分组', icon:'none' })
const editDesc = ()=> uni.showToast({ title:'编辑描述', icon:'none' })
const sendMessage = ()=> uni.showToast({ title:'发消息', icon:'none' })
const goMakePlan = ()=> uni.navigateTo({ url:'/pages_app/visit/visit' })
const recordIllness = ()=> uni.showToast({ title:'记录病情', icon:'none' })
const toggleHistory = ()=> showAllHistory.value = !showAllHistory.value
</script>
<style lang="scss" scoped>
.content { background:#f5f5f5; min-height:100vh; }
.nav-right { padding-right: 20rpx; }
.card { background:#ffffff; padding: 20rpx; }
.header-card { display:flex; }
.avatar { width: 140rpx; height: 140rpx; border-radius: 12rpx; margin-right: 20rpx; }
.base-info { flex:1; }
.name-row { display:flex; align-items:center; margin-bottom: 10rpx; }
.name { font-size: 40rpx; color:#222; font-weight: 600; }
.line { font-size: 28rpx; color:#666; margin-top: 6rpx; display:flex; align-items:center; }
.label { color:#999;white-space: nowrap; }
.value { color:#333; }
.sep { color:#ddd; margin: 0 10rpx; }
.multi{
display: inline;
}
.cell { display:flex; align-items:center; justify-content:space-between; background:#ffffff; padding: 28rpx 30rpx; border-top:1rpx solid #efefef; }
.cell:first-of-type { margin-top: 10rpx; border-top:none; }
.cell-label { font-size: 28rpx; color:#333; }
.cell-right { display:flex; align-items:center; }
.hint { font-size: 28rpx; color:#999; margin-right: 12rpx; }
.phone { font-size: 32rpx; color:#b10000; }
.section-title { padding: 16rpx 30rpx; color:#8B2316; font-size: 30rpx; margin-top: 20rpx; }
.history-card { position: relative; }
.history-text { font-size: 28rpx; color:#666; line-height: 1.7; display:block; }
.history-text.fold { display:-webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.toggle { position:absolute; right: 20rpx; bottom: 16rpx; color:#b10000; font-size: 28rpx; }
.actions { background:#ffffff; margin-top: 20rpx;}
.action { display:flex; align-items:center;justify-content: center; padding: 28rpx 30rpx; border-top:1rpx solid #f0f0f0; }
.action-text { font-size:28rpx; color:#333; margin-left: 12rpx; }
</style>