Commit c5921380 authored by gengchunlei's avatar gengchunlei

Merge branch 'chronic-dev' of http://gitlab.yiboshi.com/nightkis1995/frontend-h5 into chronic-dev

parents 832073f6 62df93a4
......@@ -25,7 +25,7 @@ export default {
components: { BaseInfo, FormCont },
data() {
return {
step: 1
step: 2
}
},
computed: {
......
......@@ -15,12 +15,6 @@
class="form-input"
/>
<van-popup v-model:show="showVisitWay" position="bottom">
<!-- <van-picker
:columns-field-names="{ text: 'name', value: 'value' }"
:columns="list"
@confirm="visitWayConfirm"
@cancel="showVisitWay = false"
/> -->
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="showVisitWay = false">取消</div>
......@@ -29,6 +23,7 @@
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="list"
v-model:value="form.visitWay"
......@@ -50,12 +45,6 @@
class="form-input"
/>
<van-popup v-model:show="showPaperReasons" position="bottom">
<!-- <van-picker
:columns-field-names="{ text: 'name', value: 'value' }"
:columns="store.getDict('CP00055')"
@confirm="paperReasonsConfirm"
@cancel="showPaperReasons = false"
/> -->
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="showPaperReasons = false">取消</div>
......@@ -64,6 +53,7 @@
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="store.getDict('CP00055')"
v-model:value="form.paperReasons"
......@@ -85,20 +75,654 @@
class="form-input"
/>
<van-popup v-model:show="showSymptom" position="bottom">
<van-picker
:columns-field-names="{ text: 'name', value: 'value' }"
:columns="store.getDict('CP00058')"
@confirm="symptomConfirm"
@cancel="showSymptom = false"
/>
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="showSymptom = false">取消</div>
<div>症状(可多选)</div>
<div class="blueColor" @click="symptomConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
multiple
column-2
:options="store.getDict('CP00058')"
v-model:value="form.symptom"
:fieldNames="{ text: 'name', value: 'value' }"
@change="form.symptom = checkboxReject(form.symptom, [1])"
/>
</div>
</div>
</van-popup>
<template v-if="(form.symptom || []).includes(99)">
<div class="label-title mt-2">其他症状</div>
<van-field
v-model="form.symptomOther"
placeholder="请填写其他症状"
:rules="rules.symptomOther"
class="form-input"
/>
</template>
<div class="flex items-center justify-between tip-box mt-2 mb-2">
<div class="label-title" required>血压</div>
<BloodPressurePanel :pressureObj="pressureObj" />
</div>
<table class="w-full mb-2">
<tr class="sub-text">
<td>收缩压(SBP)</td>
<td style="width: 1em"></td>
<td>舒张压(DBP)</td>
</tr>
<tr>
<td class="flex items-center">
<van-field
v-model="form.signSystolicPressure"
placeholder="60~300,整数"
:rules="rules.signSystolicPressure"
class="form-input"
>
<template #extra>
<span>mmHg</span>
</template>
</van-field>
</td>
<td class="text-center">
<span class="divide">/</span>
</td>
<td class="flex items-center">
<van-field
v-model="form.signDiastolicPressure"
placeholder="60~300,整数"
:rules="rules.signDiastolicPressure"
class="form-input"
>
<template #extra>
<span>mmHg</span>
</template>
</van-field>
</td>
</tr>
</table>
<BloodPressureBt :pressureObj="pressureObj" @getValue="setPressureOne">开始测量</BloodPressureBt>
<div class="tip">提示:点击“开始测量”按钮后将自动启动血压计设备,请勿再重复点击设备“开始/停止”按钮。</div>
<div class="label-title mt-2" required>身高</div>
<van-field
v-model="form.signHeight"
placeholder="10~300,1位小数"
:rules="rules.signHeight"
class="form-input"
>
<template #extra>
<span>cm</span>
</template>
</van-field>
<div class="label-title mt-2" required>体重</div>
<van-field
v-model="form.signWeight"
placeholder="20~500,2位小数"
:rules="rules.signWeight"
class="form-input"
>
<template #extra>
<span>kg</span>
</template>
</van-field>
<div class="label-title mt-2" required>BMI(体质指数)</div>
<van-field
readonly
v-model="form.signBmi"
placeholder="-"
class="form-input"
>
<template #extra>
<span>kg/m²</span>
</template>
</van-field>
<div class="label-title mt-2" required>腰围</div>
<van-field
v-model="form.signWaistline"
placeholder="10~150,1位小数"
:rules="rules.signWaistline"
class="form-input"
>
<template #extra>
<span>cm</span>
</template>
</van-field>
<div class="label-title mt-2" required>心率</div>
<van-field
v-model="form.signHeartRate"
placeholder="10~200,整数"
:rules="rules.signHeartRate"
class="form-input"
>
<template #extra>
<span>次/分</span>
</template>
</van-field>
<div class="label-title mt-2">其他</div>
<van-field
type="textarea"
v-model="form.signOther"
placeholder="如有其他体征情况请填写在此处,限120个字"
:rules="rules.signOther"
class="form-input"
/>
<div class="label-title mt-2" required>吸烟</div>
<div class="bg-fa">
<div class="label-title" required style="color: #262626; font-size: 14px">是否正在吸烟</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.isSmoking"
shape="dot"
direction="horizontal"
class="doc-radio-group-now"
>
<van-radio
v-for="item in store.getDict('CP00066')"
:key="item.value"
:name="item.value"
label-position="left"
style="width: 100%"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px">您大约从几岁起开始养成每天或基本每天都吸烟的习惯</div>
<van-field
v-model="form.startSmokeAge"
placeholder="2~100,整数"
class="card-input"
>
<template #extra>
<span></span>
</template>
</van-field>
</div>
<div class="bg-fa mt-2">
<div class="label-title" required style="color: #262626; font-size: 14px">您最近7天是否吸烟</div>
<van-field style="padding: 0; width: 100%">
<template #input>
<van-radio-group
v-model="form.lastSevenSmoke"
shape="dot"
direction="horizontal"
class="doc-radio-group-now"
>
<van-radio
v-for="item in store.getDict('DC00001')"
:key="item.value"
:name="item.value"
label-position="left"
style="width: 48%"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px">日吸烟量</div>
<van-field
v-model="form.daySmoking"
placeholder="0~100,整数"
class="card-input"
>
<template #extra>
<span></span>
</template>
</van-field>
</div>
<div class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px">目标日吸烟量</div>
<van-field
v-model="form.goalDaySmoking"
placeholder="0~100,整数"
class="card-input"
>
<template #extra>
<span></span>
</template>
</van-field>
</div>
<div class="label-title mt-2" required>饮酒</div>
<div class="bg-fa">
<div class="label-title" required style="color: #262626; font-size: 14px">是否正在饮酒</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.isDrink"
shape="dot"
direction="horizontal"
class="doc-radio-group-now"
>
<van-radio
v-for="item in store.getDict('CP00068')"
:key="item.value"
:name="item.value"
label-position="left"
style="width: 100%"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div class="bg-fa mt-2">
<div class="label-title" required style="color: #262626; font-size: 14px">饮酒频率</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.drinkCondition"
shape="dot"
direction="horizontal"
class="doc-radio-group-now"
>
<van-radio
v-for="item in store.getDict('CP00069')"
:key="item.value"
:name="item.value"
label-position="left"
style="width: 100%"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div class="flex mt-2">
<div class="bg-fa">
<div class="label-title" style="color: #262626; font-size: 14px">日饮酒量</div>
<van-field
v-model="form.dayDrink"
placeholder="0~3000,整数"
class="card-input"
>
<template #extra>
<span>ml</span>
</template>
</van-field>
</div>
<div class="bg-fa ml-2">
<div class="label-title" style="color: #262626; font-size: 14px">目标日饮酒量</div>
<van-field
v-model="form.goalDayDrink"
placeholder="0~3000,整数"
class="card-input"
>
<template #extra>
<span>ml</span>
</template>
</van-field>
</div>
</div>
<div class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px">饮酒种类</div>
<div class="flex">
<van-field
label="白酒"
v-model="form.drinkLiquor"
placeholder="0~3000,整数"
class="card-input"
label-width="33px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
<van-field
label="啤酒"
v-model="form.drinkBeer"
placeholder="0~3000,整数"
class="card-input ml-2"
label-width="33px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
</div>
<div class="flex mt-2">
<van-field
label="红酒"
v-model="form.drinkRed"
placeholder="0~3000,整数"
class="card-input"
label-width="33px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
<van-field
label="黄酒"
v-model="form.drinkYellow"
placeholder="0~3000,整数"
class="card-input ml-2"
label-width="33px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
</div>
<div class="flex mt-2">
<van-field
label="其他"
v-model="form.drinkOther"
placeholder="0~3000,整数"
class="card-input"
label-width="33px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
</div>
</div>
<div class="label-title mt-2" required>运动</div>
<div class="bg-fa">
<div class="label-title" required style="color: #262626; font-size: 14px">有无规律活动</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.regularExercise"
shape="dot"
direction="horizontal"
class="doc-radio-group-now"
>
<van-radio
v-for="item in store.getDict('DC00069')"
:key="item.value"
:name="item.value"
label-position="left"
style="width: 48%"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div class="bg-fa mt-2">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.exerciseStrength"
shape="dot"
direction="horizontal"
class="doc-radio-group-now"
>
<van-radio
v-for="item in store.getDict('CP00070')"
:key="item.value"
:name="item.value"
label-position="left"
style="width: 48%"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div class="bg-fa mt-2">
<div class="label-title" required style="color: #262626; font-size: 14px">目前运动情况</div>
<div class="flex">
<van-field
v-model="form.nowExerciseWeek"
placeholder="0~50,整数"
class="card-input"
>
<template #extra>
<span>次/周</span>
</template>
</van-field>
<van-field
v-model="form.nowExerciseMinute"
placeholder="0~500,整数"
class="card-input ml-2"
>
<template #extra>
<span>分钟/次</span>
</template>
</van-field>
</div>
</div>
<div class="bg-fa mt-2">
<div class="label-title" required style="color: #262626; font-size: 14px">目标运动情况</div>
<div class="flex">
<van-field
v-model="form.targetExerciseWeek"
placeholder="0~50,整数"
class="card-input"
>
<template #extra>
<span>次/周</span>
</template>
</van-field>
<van-field
v-model="form.targetExerciseMinute"
placeholder="0~500,整数"
class="card-input ml-2"
>
<template #extra>
<span>分钟/次</span>
</template>
</van-field>
</div>
</div>
<div class="label-title mt-2" required>摄盐情况(咸淡)</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.saltIntake"
shape="dot"
direction="horizontal"
class="w-full doc-radio-group"
>
<van-radio
v-for="item in store.getDict('CP00071')"
:key="item.value"
:name="item.value"
label-position="left"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
<div class="label-title mt-2" required>心理调整</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.psychologicalRecovery"
shape="dot"
direction="horizontal"
class="w-full doc-radio-group"
>
<van-radio
v-for="item in store.getDict('CP00072')"
:key="item.value"
:name="item.value"
label-position="left"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
<div class="label-title mt-2" required>遵医行为</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.doctorAdvice"
shape="dot"
direction="horizontal"
class="w-full doc-radio-group"
>
<van-radio
v-for="item in store.getDict('CP00072')"
:key="item.value"
:name="item.value"
label-position="left"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
<!-- <div class="label-title mt-2">辅助检查</div>
<van-field
v-model="form.auxiliaryExaminationName"
isLink
readonly
placeholder="请选择"
:rules="rules.auxiliaryExaminationName"
@click="showAuxiliaryExamination = true"
class="form-input"
/>
<van-popup v-model:show="showAuxiliaryExamination" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="showAuxiliaryExamination = false">取消</div>
<div>辅助检查(可多选)</div>
<div class="blueColor" @click="auxiliaryConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
multiple
column-2
:options="store.getDict('CP00073')"
v-model:value="form.auxiliaryExamination"
:fieldNames="{ text: 'name', value: 'value' }"
/>
</div>
</div>
</van-popup> -->
<div class="label-title mt-2" required>目前高血压用药及依从性</div>
<div class="bg-fa">
<div class="label-title" required style="color: #262626; font-size: 14px; line-height: 24px">您目前是否在服用降压药、降脂(如他汀类)或抗血小板(如阿司匹林)等心血管病相关药物</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.medicationCompliance"
shape="dot"
direction="horizontal"
class="doc-radio-group-now"
>
<van-radio
v-for="item in store.getDict('DC00001')"
:key="item.value"
:name="item.value"
label-position="left"
style="width: 48%"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div class="bg-fa mt-2">
<div class="label-title" required style="color: #262626; font-size: 14px; line-height: 24px">请您确认患者目前服用的降压药、降脂或抗血小板药,在下表中修改或增加,并记录上次随访以来服用的降压药物的依从性</div>
<div style="background-color: #FFF; padding: 8px; border-radius: 10px">
<van-field
label="药物名称"
v-model="form.drinkOther"
placeholder="0~3000,整数"
class="form-input"
label-width="72px"
label-class="label-mr"
>
</van-field>
<van-field
label="剂量"
v-model="form.drinkOther"
placeholder="0~3000,整数"
class="form-input mt-2"
label-width="36px"
label-class="label-mr"
>
</van-field>
<van-field
label="频次"
v-model="form.drinkOther"
placeholder="0~3000,整数"
class="form-input mt-2"
label-width="36px"
label-class="label-mr"
>
</van-field>
<van-field
label="用法"
v-model="form.drinkOther"
placeholder="0~3000,整数"
class="form-input mt-2"
label-width="36px"
label-class="label-mr"
>
</van-field>
<van-field
label="服药依从性"
v-model="form.drinkOther"
placeholder="0~3000,整数"
class="form-input mt-2"
label-width="84px"
label-class="label-mr"
>
</van-field>
<van-field
label="不依从原因"
v-model="form.drinkOther"
placeholder="0~3000,整数"
class="form-input mt-2"
label-width="84px"
label-class="label-mr"
>
</van-field>
</div>
</div>
</van-form>
</template>
<script>
import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject } from '@/utils/common'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
export default {
components: { CheckBtn },
components: { CheckBtn, BloodPressurePanel, BloodPressureBt },
inject: ['pressureObj'],
data() {
return {
store: useStore(),
......@@ -132,27 +756,50 @@ export default {
}
],
showPaperReasons: false,
showSymptom: false
showSymptom: false,
// showAuxiliaryExamination: false
}
},
methods: {
checkboxReject,
visitWayChange() {
this.form.visitWayName = this.list.find(e => e.value === this.form.visitWay).name
this.list.forEach(item => {
if (item.value === this.form.visitWay) {
this.form.visitWayName = item.name
}
})
this.showVisitWay = false
},
paperReasonsChange() {
// this.form.paperReasons = selectedValues[0]
// this.form.paperReasonsName = selectedOptions[0].name
// this.showPaperReasons = false
// this.form.paperReasonsName = this.store.getDict('CP00055').find(e => e.value === this.form.paperReasons).name
this.store.getDict('CP00055').forEach(item => {
if (item.value === this.form.paperReasons) {
this.form.paperReasonsName = item.name
}
})
this.showPaperReasons = false
console.log(this.form.paperReasons)
},
symptomConfirm({ selectedValues, selectedOptions }) {
this.form.symptom = selectedValues[0]
this.form.symptomName = selectedOptions[0].name
symptomConfirm() {
let list = []
this.store.getDict('CP00058').forEach(item => {
let selected = this.form.symptom.filter(e => e === item.value)
if (selected && selected.length) {
list.push(item.name)
}
})
this.form.symptomName = list.join()
this.showSymptom = false
}
},
// auxiliaryConfirm() {
// let list = []
// this.store.getDict('CP00073').forEach(item => {
// let selected = this.form.auxiliaryExamination.filter(e => e === item.value)
// if (selected && selected.length) {
// list.push(item.name)
// }
// })
// this.form.auxiliaryExaminationName = list.join()
// this.showAuxiliaryExamination = false
// }
}
}
</script>
......@@ -196,11 +843,51 @@ export default {
.pop-title {
color: #262626;
font-size: 16px;
line-height: 24px;
font-weight: bold;
font-weight: 600;
}
.greyColor {
color: var(--van-text-color-2);
font-weight: 400;
}
.blueColor {
color: #607FF0;
font-weight: 500;
}
.sub-text {
color: #595959;
font-size: 13px;
font-weight: 400;
padding-bottom: 8px;
}
.tip {
color: #FA8C16;
font-size: 12px;
margin-top: 8px;
}
.bg-fa {
background-color: #FAFAFA;
padding: 8px;
border-radius: 8px;
}
.doc-radio-group-now {
column-gap: 8px;
row-gap: 8px;
background-color: #FAFAFA;
width: 100%;
.van-radio {
background-color: #FFFFFF;
padding: 8px 12px;
border-radius: 8px;
justify-content: space-between;
margin-right: 0;
}
}
.card-input {
padding: 8px 12px;
border-radius: 8px;
}
:deep(.label-mr) {
margin-right: 4px;
}
</style>
\ No newline at end of file
......@@ -192,7 +192,7 @@
<div></div>
</div>
<div style='height: 80%;overflow: auto'>
<CheckBtn
<CheckBtn clearable
column-1
:options='exerciseFrequencyList'
v-model:value='form.exerciseFrequency'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment