You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

341 lines
9.3 KiB

<template>
<view class="life">
<uni-nav-bar dark :fixed="true" :border="false" background-color="#002648" status-bar left-icon="left"
title="生命体征录入" @clickLeft="back">
</uni-nav-bar>
<view class="patientinfo-father">
<view class="patientInfo flex-1">
<text class="patient-text">
<text>PID</text>
{{patientInfo.patientId ? patientInfo.patientId : '-'}}
</text>
<text class="patient-text">
<text>姓名</text>
{{patientInfo.patientName ? patientInfo.patientName : '-'}}
</text>
<text class="patient-text">
<text>性别</text>
{{patientInfo.patientSex ? patientInfo.patientSex : '-'}}
</text>
</view>
<view class="patientInfo1 flex-2 margin-top-10">
<text class="font-w">手术方式</text>
<view>
<view v-for="(item,index) in patientInfo.operaTypeList" :key="index">
<view v-show="item.eyeType==='OU' && item.operaEntityList.length>0">
OU:<text v-for="(iten,i) in item.operaEntityList" :key="i">{{iten.bieMing}}</text>
</view>
<view v-show="item.eyeType==='OD' && item.operaEntityList.length>0">
OD:<text v-for="(iten,i) in item.operaEntityList" :key="i">{{iten.bieMing}}</text>
</view>
<view v-show="item.eyeType==='OS' && item.operaEntityList.length>0">
OS:<text v-for="(iten,i) in item.operaEntityList" :key="i">{{iten.bieMing}}</text>
</view>
</view>
</view>
</view>
<view class="patientInfo2 flex-1 margin-top-10">
<text class="patient-text">
<text>主刀医生</text>
{{patientInfo.mainDoctorName ? patientInfo.mainDoctorName : '-'}}
</text>
</view>
</view>
<wuc-tab :tab-list="tabList" :tabCur.sync="TabCur" @change="tabChange"></wuc-tab>
<view class="content">
<view class="flex-2">
<view class="form-tw form" v-if="TabCur===0">
<text class="form-text">体温:</text>
<view class="input-view tw">
<input :value="formListValue.temperature" type="number" placeholder="体温"
@input="inputHandle('temperature',$event)" @blur="blurInput('temperature',42,34,$event)" />
<text class="text-dw"></text>
</view>
</view>
<view class="form-xy form">
<text class="form-text">血压:</text>
<view class="input-view xy">
<input class="xy-input" type="number" :value="formListValue.highBloodPressure" placeholder="高压"
@input="inputHandle('highBloodPressure',$event)"
@blur="blurInput('highBloodPressure',300,0,$event)" /> /
<input class="xy-input" type="number" :value="formListValue.lowBloodPressure" placeholder="低压"
@input="inputHandle('lowBloodPressure',$event)"
@blur="blurInput('lowBloodPressure',150,0,$event)" />
<text class="text-dw">mmHg</text>
</view>
</view>
</view>
<view class="flex-2">
<view class="form-mb form">
<text class="form-text">脉搏:</text>
<view class="input-view mb">
<input class="xia-input" type="number" :value="formListValue.pulse" placeholder="脉搏"
@input="inputHandle('pulse',$event)" @blur="blurInput('pulse',150,0,$event)" />
<text class="text-dw">/</text>
</view>
</view>
<view class="form-hx form">
<text class="form-text">呼吸:</text>
<view class="input-view hx">
<input class="xia-input" type="number" :value="formListValue.breathe" placeholder="呼吸"
@input="inputHandle('breathe',$event)" @blur="blurInput('breathe',60,0,$event)" />
<text class="text-dw">/</text>
</view>
</view>
</view>
<view class="creatinfo margin-top-10">
<view>操作人{{formListValue.createName ? formListValue.createName : '-'}}</view>
<view class="margin-top-10">操作时间{{formListValue.createDate ? formListValue.createDate : '-'}}</view>
</view>
</view>
<view class="buttons" @click="funsureStatus">保存</view>
</view>
</template>
<script>
import WucTab from '@/components/wuc-tab/wuc-tab.vue';
export default {
data() {
return {
tabList: [{
name: '手术前'
}, {
name: '手术后'
}],
formListValue: {
// 体温
temperature: '',
// 高压-血压
highBloodPressure: '',
// 低压-血压
lowBloodPressure: '',
// 脉搏
pulse: '',
// 呼吸
breathe: '',
// 手术id
operaPatientId: '',
// 类型1:术前,2:术后
type: 1,
},
typeList: [{
name: '手术前'
}, {
name: '手术后'
}],
TabCur: 0,
paramsList: {},
patientInfo: {},
status: true
}
},
components: {
WucTab
},
onLoad(options) {
console.log(options);
this.formListValue.operaPatientId = options.operaId
this.paramsList = options
this.getLife()
this.getPatientInfo()
},
methods: {
tabChange(index) {
console.log(index);
this.TabCur = index;
this.formListValue.type = index + 1;
this.getLife(this.formListValue.type)
},
// 获取患者信息
async getPatientInfo() {
// 0:等待呼叫,1:呼叫中,2:术前准备,3:手术中,4、手术完成
const res = await this.$baseAPI.request(`${this.$portAdress.pda}/${this.paramsList.patientId}`)
if (res.code === 0) {
this.patientInfo = res.data
} else {
uni.showToast({
icon: 'none',
title: res.msg
})
}
},
// 获取生命体征
async getLife(type) {
const res = await this.$baseAPI.request(this.$portAdress.getLife, {
operaPatientId: this.formListValue.operaPatientId,
// 1:术前,2:术后
type: this.formListValue.type,
})
if (res.code === 0) {
// 如果生命体征获取过来有值,相当于修改,不更新状态,如果生命体征返回null,说明没录入过,需要更新状态
this.status = res.data.status
this.formListValue = res.data.data ? res.data.data : {
// 体温
temperature: '',
// 高压-血压
highBloodPressure: '',
// 低压-血压
lowBloodPressure: '',
// 脉搏
pulse: '',
// 呼吸
breathe: '',
// 手术id
operaPatientId: this.paramsList.operaId,
// 类型 1:术前,2:术后
type: type ? type : 1,
}
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
},
back() {
uni.navigateBack({
delta: 1
})
},
// 输入框改变时
inputHandle(text, val) {
this.formListValue[text] = val.target.value
},
// 失去焦点时
blurInput(text, upNumber, downNunber, e) {
const value = Number(e.target.value)
if (value >= upNumber) {
uni.showToast({
title: `此项最高上限必须小于${upNumber},请您从新输入`,
icon: 'none'
})
this.formListValue[text] = ''
}
if (value <= downNunber) {
uni.showToast({
title: `此项最低下限必须大于${downNunber},请您从新输入`,
icon: 'none'
})
this.formListValue[text] = ''
}
},
// sureStartHandle() {
// // 0:等待呼叫,1:呼叫中,2:术前准备,3:手术中,4、手术完成
// if (this.TabCur == 0) {
// if (this.status <= 2) {
// this.funsureStatus()
// } else {
// uni.showToast({
// title: '暂时不能保存,请按照顺序操作',
// icon: 'none'
// })
// }
// } else if (this.TabCur == 1) {
// if (this.status >= 4) {
// this.funsureStatus()
// } else {
// uni.showToast({
// title: '暂时不能保存,请按照顺序操作',
// icon: 'none'
// })
// }
// }
// },
async funsureStatus() {
let userInfo = uni.getStorageSync('userInfo') ? JSON.parse(uni.getStorageSync('userInfo')) : ''
let formListValue1 = JSON.parse(JSON.stringify(this.formListValue))
formListValue1.createName ? '' : formListValue1.createName = userInfo.realName
formListValue1.createCode ? '' : formListValue1.createCode = userInfo.employeeId
const res = await this.$baseAPI.request(this.$portAdress.saveInfo, formListValue1, 'post')
if (res.code === 0) {
uni.redirectTo({
url: '/pages/patientList/index'
})
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
},
}
}
</script>
<style lang="less" scoped>
.life {
.content {
padding: 20rpx;
}
.patientinfo-father {
background-color: #e8f5ff;
padding: 10px;
margin: 10px;
}
.patientInfo,.patientInfo1,.patientInfo2 {
.patient-text {
padding-right: 20rpx;
text {
font-weight: 700;
}
}
}
.form-tw,.form-mb {
margin-right: 20rpx;
}
.form {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20rpx 0;
border-bottom: 1rpx solid #F2F2F2;
.form-text {
display: inline-block;
width: 90rpx;
}
input {
text-align: right;
padding-right: 14rpx;
width: 105rpx;
}
.uni-list-cell {
display: flex;
align-items: center;
margin-left: 32rpx;
}
.xia-input {
width: 140rpx;
}
.tw,
.xy,
.mb,
.hx {
display: flex;
justify-content: space-between;
align-items: center;
}
}
.buttons {
width: 90%;
height: 88rpx;
line-height: 88rpx;
background-color: #1e79ff;
color: #fff;
text-align: center;
position: fixed;
bottom: 30rpx;
left: 50%;
border-radius: 20rpx;
transform: translateX(-50%);
}
}
</style>