Files
xk-doctor-wx/subPackages/sub_patient/patient_detail.vue

226 lines
6.4 KiB
Vue
Raw Normal View History

2024-09-19 12:57:55 +08:00
<template>
<view>
<view class="white p-32" v-if="info&&!loading">
<view class="flex-row flex-ali-center" v-if="info">
<u-image width="96rpx" height="96rpx" shape="circle" :src="getAvatar">
<u-loading slot="loading"></u-loading>
</u-image>
<view class="flex-col flex-jus-sp m-l-32">
<view class="flex-row flex-ali-center m-b-16">
<!-- <d-text :text="info.patient.name" className="content-c fs-32"></d-text> -->
<d-text :text="'zzz'" className="tips-c m-l-2"></d-text>
</view>
<view class="flex-row flex-ali-center">
<d-text :text="info.patient.sex==1?'男':'女'" className="tips-c m-l-2"></d-text>
<!-- info.age+ -->
<d-text :text="'11岁'" className="tips-c m-l-2"></d-text>
</view>
</view>
</view>
</view>
<!-- -->
<view class="m-t-2 white" v-if="!loading">
<u-tabs :list="tabs" :is-scroll="false" :current="current" @change="current=$event;loading2=true;getList()"
bar-width="20" inactive-color="#6C7380" active-color="#6ACDBB"></u-tabs>
<view class="p-32" v-if="list[current].length>0&&!loading2">
<block v-if="current==0">
<view class="flex-col" :class="{'m-b-32':(i+1)!=list[current].length}"
v-for="(item,i) in list[current]" :key="i">
<d-text text="2022-11-16"></d-text>
<view class="flex-row flex-ali-center m-t-16">
<d-text text="主诉:"></d-text>
<d-text :text="item.main_suit" className="content-c"></d-text>
</view>
<view class="flex-row flex-ali-center flex-jus-sp m-t08">
<d-text width="85rpx" text="诊断:" className=""></d-text>
<d-text :text="item.diagnose" className="flex-1 content-c" :lines="1">
</d-text>
</view>
</view>
</block>
<block v-else>
<view class="flex-col" v-for="(item,i) in list[current]" :key="i">
<view class="flex-row flex-jus-sp flex-ali-center">
<d-text :text="$u.timeFormat(item.created_at, 'yyyy-mm-dd hh:MM:ss')" color="#6C7380">
</d-text>
<d-text :text="states[item.status].label" :color="states[item.status].color"></d-text>
</view>
<view class="m-t-32 flex-col">
<view class="flex-row m-b-16">
<d-text text="医生" align="justify" width="112"></d-text>
<d-text :text="item.doctor_name" className="content-c m-l-48"></d-text>
</view>
<view class="flex-row m-b-16">
<d-text text="诊断" width="112" align="justify"></d-text>
<d-text :text="item.clinical_diagnose" className="content-c m-l-48 flex-1" :lines="1">
</d-text>
</view>
<view class="flex-row m-b-16">
<d-text text="药品" width="112" align="justify"></d-text>
<d-text :text="getDrug(item.drug_name)" className="content-c m-l-48 flex-1"
:lines="1"></d-text>
</view>
<!-- <view class="flex-row">
<d-text text="问诊记录" width="112" align="justify"></d-text>
<d-text text="点击查看" :color="states[0].color" className="m-l-48"></d-text>
</view> -->
<!-- <view class="m-t-16 flex-row flex-jus-end">
<u-button :throttle-time="0" shape="circle" size="mini"
:custom-style="{backgroundColor: 'transparent !important'}" plain :ripple="true">
查看详情
</u-button>
</view> -->
</view>
</view>
</block>
</view>
<view class="flex-row flex-jus-center">
<d-empty text="无记录" v-if="!loading2&&list[current].length==0"></d-empty>
</view>
<d-loading-page :loading="loading2"></d-loading-page>
</view>
<d-loading-page :loading="loading"></d-loading-page>
</view>
</template>
<script>
import {
patientInfo,
recordList,
prescripRecord
} from '@/api/all.js'
export default {
data() {
return {
loading: false,
loading2: true,
info: '',
tabs: [{
name: '挂号记录'
}, {
name: '处方记录'
}],
list: {
0: [],
1: []
},
states: {
3: {
color: '#6ACDBB',
label: '待使用'
},
6: {
color: '#A7ABB0',
label: '已失效'
},
4: {
color: '#A7ABB0',
label: '已使用'
}
},
current: 0,
id: -1
}
},
computed: {
getAvatar() {
// this.info.patient.sex
return require(`@/static/image/${1%2==0?'nv':'nan'}.png`)
}
},
onLoad(op) {
this.id = op['id'] || -1
this.id > 0 && this.getList()
this.id > 0 && this.patientInfo()
},
methods: {
// getDrug(obj={}) {
// let list = (obj.chinese.length>0?obj.chinese:obj.west)||[]
// let drugs =[]
// console.log(list);
// for (let i = 0; i < list.length; i++) {
// if (obj.chinese.length>0) {
// for (let j = 0; j < JSON.parse(list[i].content).length; j++) {
// drugs.push(JSON.parse(list[i].content)[j]['name'])
// }
// } else{
// drugs.push(JSON.parse(list[i].content)['drug_name'])
// }
// }
// return drugs.join()
// },
// getGroup(list) {
// let groups = []
// for (var i = 0; i < list.length; i++) {
// groups.push(list[i].name)
// }
// return groups
// },
getMobile(v) {
return v.replace(/^(\d{3})\d{4}(\d+)/, "$1****$2")
},
patientInfo() {
patientInfo({
up_id: this.id,
store_id: uni.getStorageSync('store_id') || '11001',
}).then(res => {
if (res.errcode == 0) {
this.info = res.data
this.$nextTick(() => {
this.loading = false
})
} else {
this.$toast(res.msg);
this.loading = false
}
})
},
async getList() {
let res = {}
// this.current == 0 && (res = await recordList({
// up_id: this.id,
// store_id: uni.getStorageSync('store_id') || '11001',
// }))
// this.current == 1 && (res = await prescripRecord({
// up_id: this.id,
// store_id: uni.getStorageSync('store_id') || '11001',
// }))
// if (res.errcode == 0) {
// this.list[this.current] = res.data && res.data.list ? res.data.list : res.data || []
// this.$nextTick(() => {
// this.loading2 = false
// })
// } else {
// this.$toast(res.msg);
// this.loading2 = false
// }
this.$nextTick(() => {
this.loading2 = false
})
}
}
}
</script>
<style>
page {
background-color: #F9FAFB;
}
</style>
<style lang="scss" scoped>
.text {
width: 122rpx;
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #A7ABB0;
text-align-last: justify;
}
.text:after {
content: '';
width: 100%;
display: inline-block;
}
</style>