健康档案记录列表分页等相关处理

This commit is contained in:
2022-07-15 15:51:44 +08:00
parent d43853eaca
commit 336a7b7143
11 changed files with 1137 additions and 792 deletions

View File

@@ -11,7 +11,7 @@
用户档案<image src="/static/icons/userForm_icon.png"></image>
</view>
<view class="user-tags-label" @click="$Router.push({name: 'UserCase'})">
病例档案<image src="/static/icons/userForm_icon.png"></image>
健康档案<image src="/static/icons/userForm_icon.png"></image>
</view>
</view>
<view v-else>

View File

@@ -3,7 +3,7 @@
<view class="caseUser">
<view class="caseUser-left">
<view class="caseUser-left-number">
患者{{ caseInfo.name }}
建档人{{ caseInfo.name }}
</view>
<view class="caseUser-left-tool">
<view class="caseUser-left-number">
@@ -24,33 +24,59 @@
<view class="caseUser-label">
<view class="caseUser-label-see">
<view class="caseUser-label-name">
初始值
测量类型
</view>
<view class="caseUser-label-number">
{{ countInfo.first != 0 ? countInfo.first : '-' }}
</view>
<view class="caseUser-label-see">
<view class="caseUser-label-name">
初始值
</view>
</view>
<view class="caseUser-label-see">
<view class="caseUser-label-name">
最高值
</view>
<view class="caseUser-label-number">
{{ countInfo.max != 0 ? countInfo.max : '-' }}
</view>
</view>
<view class="caseUser-label-see">
<view class="caseUser-label-name">
最新值
</view>
<view class="caseUser-label-number">
{{ countInfo.last != 0 ? countInfo.last : '-' }}
</view>
</view>
</view>
<view class="base" v-if="countInfo">
<view class="baseitem">
<view class="title">
<image src="/static/imgs/zhi.png" mode="widthFix" style="width: 30rpx;" />
<text>高血脂</text>
</view>
<view class="title">{{countInfo.hyperlipidemia.first}} {{countInfo.hyperlipidemia.unit}}</view>
<view class="title">{{countInfo.hyperlipidemia.max}} {{countInfo.hyperlipidemia.unit}}</view>
<view class="title">{{countInfo.hyperlipidemia.last}} {{countInfo.hyperlipidemia.unit}}</view>
</view>
<view class="baseitem">
<view class="title">
<image src="/static/imgs/ya.png" mode="widthFix" style="width: 30rpx;" />
<text>高血压</text>
</view>
<view class="title">{{countInfo.hypertension.first}} {{countInfo.hypertension.unit}}</view>
<view class="title">{{countInfo.hypertension.max}} {{countInfo.hypertension.unit}}</view>
<view class="title">{{countInfo.hypertension.last}} {{countInfo.hypertension.unit}}</view>
</view>
<view class="baseitem">
<view class="title">
<image src="/static/imgs/tang.png" mode="widthFix" style="width: 30rpx;" />
<text>高血糖</text>
</view>
<view class="title">{{countInfo.hyperglycemia.first}} {{countInfo.hyperglycemia.unit}}</view>
<view class="title">{{countInfo.hyperglycemia.max}} {{countInfo.hyperglycemia.unit}}</view>
<view class="title">{{countInfo.hyperglycemia.last}} {{countInfo.hyperglycemia.unit}}</view>
</view>
</view>
</view>
<view class="caseRemark">
<view class="caseRemark-title">
症状说明
健康说明
</view>
<view class="caseRemark-text">
{{ caseInfo.remark }}
@@ -61,10 +87,11 @@
<view class="caseTime-date">
{{ items.created_at }}
</view>
<view class="caseTime-cont" @click="showSee(items.item.gout_case_log_id)" v-if="items.type == 'case_log'">
<view class="caseTime-cont" @click="showSee(items.item.gout_case_log_id)"
v-if="items.type == 'case_log'">
<view class="caseTime-cont-left" :class="{active : items.item.cover}">
<view class="caseTime-cont-name">
{{ items.text }} - {{ items.item.quantity }}umol
<view class="caseTime-cont-name" v-if="items.item">
{{ items.item.type.text }}测量结果 - {{ items.item.quantity }}
</view>
<view class="nowrap-multi caseTime-cont-text">
{{ items.item.remark }}
@@ -72,7 +99,8 @@
</view>
<image class="caseTime-cont-img" :src="items.item.cover" mode="aspectFill"></image>
</view>
<view class="caseTime-cont" @click="$Router.push({name: 'Indexdetails', params: {id: items.item.goods.goods_id}})" v-else>
<!-- <view class="caseTime-cont"
@click="$Router.push({name: 'Indexdetails', params: {id: items.item.goods.goods_id}})" v-else>
<view class="caseTime-cont-left">
<view class="caseTime-cont-name">
{{ items.text }}
@@ -85,24 +113,25 @@
</view>
</view>
<image class="caseTime-cont-img" :src="items.item.goods.cover" mode="aspectFill"></image>
</view>
</view> -->
</view>
</view>
<!-- 记录尿酸值弹出 -->
<view class="recordBack" v-if="recordShow"></view>
<view class="recordCont" v-if="recordShow">
<view class="recordCont-title">
<view class="recordCont-title-text">
尿酸详情
</view>
<image @click="recordClick" class="recordCont-title-close" src="/static/icons/uricacidClose.png" mode="aspectFill"></image>
<view class="recordCont-title" v-if="LogInfo.type">
<view class="recordCont-title-text">
{{LogInfo.type.text}}测量结果
</view>
<image @click="recordClick" class="recordCont-title-close" src="/static/icons/uricacidClose.png"
mode="aspectFill"></image>
</view>
<view class="recordCont-form">
<view class="site-input">
<label>尿酸</label>
<label> 测量</label>
<view class="recordCont-title-input">
{{ LogInfo.quantity }}<text>umol</text>
{{ LogInfo.quantity }}
</view>
</view>
<view class="site-input">
@@ -112,156 +141,190 @@
</view>
</view>
<view class="site-data">
<label>尿酸记录日期</label>
<label>记录日期</label>
<view class="site-data-text">
{{ LogInfo.created_at }}
</view>
</view>
<view class="site-input" v-if="LogInfo.cover">
<label>图片信息</label>
<image class="issueNew-icon" @click="openImg(LogInfo.cover)" :src="LogInfo.cover" mode="aspectFill"></image>
</view>
</view>
<view class="site-input" v-if="LogInfo.cover">
<label>图片信息</label>
<image class="issueNew-icon" @click="openImg(LogInfo.cover)" :src="LogInfo.cover" mode="aspectFill" />
</view>
</view>
</view>
</view>
</template>
</view>
</template>
<script>
import { goutSee, goutCover, DetLog } from '@/apis/interfaces/gout'
import { uploads } from '@/apis/interfaces/uploading'
export default {
data() {
return {
caseImg : '',
caseInfo : '',
LogInfo : '', //记录详情
countInfo : '',
timeInfo : [],
recordShow : false,
};
},
onLoad() {
goutSee().then(res => {
this.caseInfo = res.case
this.countInfo = res.count
this.timeInfo = res.timelines
this.caseImg = res.case.cover
console.log(res.case)
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
})
})
import {
goutSee,
goutCover,
DetLog
} from '@/apis/interfaces/gout'
import {
uploads
} from '@/apis/interfaces/uploading'
export default {
data() {
return {
caseImg: '',
caseInfo: '',
LogInfo: '', //记录详情
countInfo: '',
timeInfo: [],
page:1,
has_more:true,
recordShow: false,
};
},
methods:{
onLoad() {
this.getlist()
},
onReachBottom() {
if(this.has_more){
this.page = this.page +1
this.getlist();
} else{
uni.showToast({
title:'没有更多~',
icon:'none',
mask:true,
duration:1000
})
}
},
methods: {
// 获取列表
getlist(){
goutSee({page:this.page,type:''}).then(res => {
console.log(res)
if(this.page === 1){
this.caseInfo = res.case
this.countInfo = res.count
this.caseImg = res.case.cover
}
this.timeInfo = this.timeInfo.concat(res.timelines.data)
this.has_more = res.timelines.page.has_more
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
})
})
},
// 查看图片
openImg(img) {
uni.previewImage({
current: img,
urls:[img]
urls: [img]
})
},
// 上传图片
updImg(type){
uni.chooseImage({
count : 1,
success : path => {
uploads([{
uri : path.tempFilePaths[0]
}]).then(res => {
updImg(type) {
uni.chooseImage({
count: 1,
success: path => {
uploads([{
uri: path.tempFilePaths[0]
}]).then(res => {
this.caseImg = res.url[0]
// 上传头像
this.settingInfo(res.path[0]);
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
})
})
}
})
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
})
})
}
})
},
// 上传图片-提交
settingInfo(value) {
goutCover(this.caseInfo.gout_case_id, {
cover: value
}).then(res => {
uni.showToast({
title: '上传成功',
icon : 'none'
title: '上传成功',
icon: 'none'
})
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
})
uni.showToast({
title: err.message,
icon: 'none'
})
})
},
// 查看详情
showSee(val) {
// 获取详情
this.lastDet(val);
this.recordShow = true
},
// 新增尿酸弹出
recordClick() {
this.recordShow = !this.recordShow
},
// 尿酸列表-详情
lastDet(id) {
DetLog(id).then(res => {
DetLog(id).then(res => {
this.LogInfo = res
this.LogId = id
}).catch(err => {
uni.showToast({
title: err.message,
icon: "none"
})
})
},
}
}
</script>
this.LogId = id
}).catch(err => {
uni.showToast({
title: err.message,
icon: "none"
})
})
},
}
}
</script>
<style lang="scss" scoped>
.content{
overflow: hidden;
.content {
overflow: hidden;
background: linear-gradient(to bottom, rgba($color: $mian-color, $alpha: .2), white);
padding: 30rpx;
box-sizing: border-box;
}
.caseUser {
background-color: #6e79ec;
background-color: rgba($color: #4490ff, $alpha: 1);
color: #FFFFFF;
padding: 30rpx 0;
box-sizing: border-box;
position: relative;
height: 310rpx;
// height: 310rpx;
border-radius: 10rpx 10rpx 0 0;
.caseUser-left {
height: 160rpx;
padding-left: 30rpx;
box-sizing: border-box;
.caseUser-left-tool {
display: flex;
margin-top: 30rpx;
.caseUser-left-number {
flex: 2;
font-weight: normal;
}
}
.caseUser-left-number {
line-height: 48rpx;
font-weight: 600;
}
}
.caseUser-img {
width: 120rpx;
height: 140rpx;
@@ -272,10 +335,12 @@
box-sizing: border-box;
right: 30rpx;
top: 25rpx;
image {
width: 100%;
height: 100%;
}
.caseUser-tips {
position: absolute;
top: 0;
@@ -288,45 +353,52 @@
width: 100%;
}
}
.caseUser-label {
background-color: #5963cb;
background-color: #3670ce;
color: #FFFFFF;
display: flex;
padding: 20rpx 0;
.caseUser-label-see {
flex: 3;
text-align: center;
.caseUser-label-name {
font-size: 26rpx;
margin-bottom: 10rpx;
}
.caseUser-label-number {
font-weight: 600;
}
}
}
}
.caseRemark {
background-color: #F8F8F8;
padding: 30rpx;
box-sizing: border-box;
.caseRemark-title {
font-weight: 600;
margin-bottom: 20rpx;
}
.caseRemark-text {
font-size: 28rpx;
color: #666;
line-height: 48rpx;
}
}
.caseTime {
background-color: #FFFFFF;
padding: 50rpx;
box-sizing: border-box;
position: relative;
&::after {
position: absolute;
content: '';
@@ -336,9 +408,11 @@
width: 2rpx;
height: 100%;
}
.caseTime-label {
position: relative;
padding-left: 50rpx;
&::after {
position: absolute;
content: '';
@@ -350,6 +424,7 @@
height: 26rpx;
border-radius: 50%;
}
&:last-child::before {
position: absolute;
content: '';
@@ -360,38 +435,47 @@
width: 2rpx;
height: 200%;
}
.caseTime-date {
font-size: 26rpx;
color: #666666;
font-weight: 600;
}
.caseTime-cont {
background-color: #eff0ff;
background-color: rgba($color: #2d5ba5, $alpha: 0.05);
margin: 20rpx 0 40rpx;
padding: 20rpx 30rpx;
border-radius: 10rpx;
box-sizing: border-box;
position: relative;
height: 180rpx;
// height: 180rpx;
min-height: 120rpx;
.caseTime-cont-left {
width: 100%;
&.active {
width: calc(100% - 100rpx);
}
.caseTime-cont-name {
color: #6e79ec;
color: #3670ce;
font-size: 30rpx;
}
.caseTime-cont-text {
font-size: 28rpx;
color: #666666;
margin-top: 20rpx;
}
.caseTime-cont-price {
color: red;
margin-top: 20rpx;
}
}
.caseTime-cont-img {
position: absolute;
right: 20rpx;
@@ -403,7 +487,7 @@
}
}
}
// 弹出
.recordBack {
position: fixed;
@@ -414,6 +498,7 @@
top: 0;
z-index: 99;
}
.recordCont {
position: fixed;
width: 100%;
@@ -426,21 +511,25 @@
border-radius: 30rpx 30rpx 0 0;
padding: 30rpx;
box-sizing: border-box;
.recordCont-title {
border-bottom: 2rpx solid #F2F2F2;
padding-bottom: 30rpx;
display: flex;
line-height: 54rpx;
position: relative;
.recordCont-title-close {
width: 40rpx;
height: 40rpx;
margin-top: 7rpx;
}
.recordCont-title-text {
width: 100%;
text-align: center;
}
.recordCont-title-btn view {
background-color: red;
width: 150rpx;
@@ -455,20 +544,25 @@
top: 0;
}
}
.recordCont-form {
margin-top: 30rpx;
.site-input {
margin-bottom: 30rpx;
label {
margin-bottom: 20rpx;
display: block;
font-weight: 600;
}
.recordCont-title-input {
display: flex;
font-size: 40rpx;
font-weight: 600;
line-height: 60rpx;
text {
font-size: 32rpx;
font-weight: normal;
@@ -477,15 +571,18 @@
}
}
}
.site-remarks {
background-color: #F2F2F2;
border-radius: 10rpx;
padding: 20rpx;
box-sizing: border-box;
textarea {
width: 100%;
height: 80rpx;
}
text {
text-align: right;
display: block;
@@ -493,9 +590,11 @@
color: #54975e;
}
}
.site-data {
margin: 40rpx 0;
display: flex;
label {
flex: 1;
font-weight: 600;
@@ -503,8 +602,40 @@
}
}
}
.issueNew-icon{
.issueNew-icon {
width: 200rpx;
height: 200rpx;
}
}
.base {
width: 100%;
background-color: white;
color: #333;
font-size: 26rpx;
box-sizing: border-box;
padding-bottom: 20rpx;
.baseitem {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
box-sizing: border-box;
padding-top: 20rpx;
}
.title {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
box-sizing: border-box;
flex: 1;
image {
margin-right: 6rpx;
}
}
}
</style>