Commit 5a1f1424 authored by gengchunlei's avatar gengchunlei

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

 Conflicts:
	src/doctor/Doctor.vue
parents c8e9880c 6474e61a
<svg width="17" height="18" viewBox="0 0 17 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.03599 0.953125C9.15199 0.953125 10.199 1.16613 11.177 1.59212C12.155 2.01813 13.01 2.59412 13.742 3.32012C14.474 4.04612 15.05 4.89812 15.47 5.87612C15.89 6.85413 16.1 7.90112 16.1 9.01713C16.1 10.1331 15.89 11.1771 15.47 12.1491C15.05 13.1211 14.474 13.9731 13.742 14.7051C13.01 15.4371 12.155 16.0131 11.177 16.4331C10.199 16.8531 9.15199 17.0631 8.03599 17.0631C6.91999 17.0631 5.87599 16.8531 4.90399 16.4331C3.93199 16.0131 3.07999 15.4371 2.34799 14.7051C1.61599 13.9731 1.03999 13.1211 0.61999 12.1491C0.19999 11.1771 -0.0100098 10.1331 -0.0100098 9.01713C-0.0100098 7.90112 0.19999 6.85413 0.61999 5.87612C1.03999 4.89812 1.61599 4.04612 2.34799 3.32012C3.07999 2.59412 3.93199 2.01813 4.90399 1.59212C5.87599 1.16613 6.91999 0.953125 8.03599 0.953125ZM8.05399 14.5251C8.36599 14.5251 8.62699 14.4201 8.83699 14.2101C9.04699 14.0001 9.15199 13.7451 9.15199 13.4451C9.15199 13.1331 9.04699 12.8721 8.83699 12.6621C8.62699 12.4521 8.36599 12.3471 8.05399 12.3471C7.74199 12.3471 7.48099 12.4521 7.27099 12.6621C7.06099 12.8721 6.95599 13.1331 6.95599 13.4451C6.95599 13.7451 7.06099 14.0001 7.27099 14.2101C7.48099 14.4201 7.74199 14.5251 8.05399 14.5251ZM8.97199 10.0971C8.95999 9.90513 9.07999 9.70113 9.33199 9.48513C9.58399 9.26912 9.86599 9.02912 10.178 8.76512C10.49 8.50112 10.778 8.20412 11.042 7.87413C11.306 7.54413 11.45 7.16313 11.474 6.73113C11.498 6.26312 11.45 5.82512 11.33 5.41712C11.21 5.00912 11.012 4.65813 10.736 4.36413C10.46 4.07013 10.103 3.83612 9.66499 3.66213C9.22699 3.48813 8.71399 3.40112 8.12599 3.40112C7.39399 3.40112 6.78499 3.53012 6.29899 3.78813C5.81299 4.04612 5.41999 4.35812 5.11999 4.72412C4.81999 5.09012 4.60999 5.46813 4.48999 5.85813C4.36999 6.24813 4.31599 6.57512 4.32799 6.83912C4.33999 7.15112 4.43899 7.37913 4.62499 7.52313C4.81099 7.66713 5.01199 7.74213 5.22799 7.74813C5.44399 7.75413 5.64199 7.69413 5.82199 7.56813C6.00199 7.44213 6.09199 7.25912 6.09199 7.01912C6.09199 6.87512 6.13699 6.69812 6.22699 6.48812C6.31699 6.27813 6.43999 6.07712 6.59599 5.88512C6.75199 5.69312 6.94099 5.53113 7.16299 5.39913C7.38499 5.26713 7.63399 5.20113 7.90999 5.20113C8.44999 5.20113 8.88199 5.33613 9.20599 5.60613C9.52999 5.87613 9.67999 6.21513 9.65599 6.62313C9.65599 6.82713 9.59599 7.01613 9.47599 7.19012C9.35599 7.36413 9.20299 7.53212 9.01699 7.69413C8.83099 7.85612 8.63299 8.01812 8.42299 8.18012C8.21299 8.34212 8.01499 8.51012 7.82899 8.68412C7.64299 8.85812 7.48699 9.04712 7.36099 9.25113C7.23499 9.45512 7.16599 9.67712 7.15399 9.91712L7.17199 10.6011C7.17199 10.7811 7.25599 10.9521 7.42399 11.1141C7.59199 11.2761 7.81399 11.3631 8.08999 11.3751C8.36599 11.3631 8.58499 11.2731 8.74699 11.1051C8.90899 10.9371 8.98399 10.7451 8.97199 10.5291V10.0971Z" fill="#FA8C16"/>
</svg>
...@@ -66,7 +66,7 @@ export default { ...@@ -66,7 +66,7 @@ export default {
if (!token) { if (!token) {
token = sessionStorage.getItem('token') token = sessionStorage.getItem('token')
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
token = '145924b1-430d-4683-b914-37a74a8d21b0' token = '4df45197-d2f8-42ba-9ab5-8b8100c53bcf'
} }
} }
if (token) { if (token) {
......
<template>
<div class="movement-tip">
<!-- 运动强度说明 -->
<span @click="visible = !visible">
<slot>
<doc-icon type="doc-question-circle" />
</slot>
</span>
<!-- <van-popup v-model:show="visible" round style="height: 70%;"> -->
<van-overlay :show="visible" @click="visible = false"
class="flex items-center justify-center">
<div class="py-3 px-2 panel" @click.stop>
<div class="title mb-2">确定有氧运动强度的常用方法</div>
<table class="w-full">
<tr>
<th>强度分级</th>
<th>PRE(0-10分)</th>
<th>谈话实验</th>
</tr>
<tr>
<td></td>
<td>很轻松(&lt;3)</td>
<td rowspan="2">能说话也能唱歌</td>
</tr>
<tr>
<td>较低</td>
<td>很轻松到轻松(3-4)</td>
</tr>
<tr>
<td>中等</td>
<td>轻松到有些吃力(5-6)</td>
<td>能说话不能唱歌</td>
</tr>
<tr>
<td>较大</td>
<td>有些吃力到很吃力(7-8)</td>
<td rowspan="2">不能说出完整句子</td>
</tr>
<tr>
<td>次最大到最大</td>
<td>很吃力(≥9)</td>
</tr>
</table>
</div>
<doc-icon type="close-circle" class="close-btn" @click="visible = false"/>
</van-overlay>
<!-- </van-popup> -->
</div>
</template>
<script>
export default {
data() {
return {
visible: false
}
}
}
</script>
<style lang="less" scoped>
.panel {
background-color: #fff;
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
color: #262626;
max-height: 80%;
overflow-y: auto;
border-radius: 8px;
.title {
color: #000;
font-size: 14px;
// font-weight: 600;
text-align: center;
}
}
table {
border-collapse: collapse;
border-right: 1px solid #768092;
border-bottom: 1px solid #768092;
font-size: 12px;
text-align: center;
td, th{
border-left: 1px solid #768092;
border-top: 1px solid #768092;
padding: 8px 4px;
}
th {
font-weight: 600;
}
}
.close-btn {
position: absolute;
top: 24px;
right: 24px;
font-size: 24px;
}
</style>
<template>
<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 :rules="[{ required: true, message: '请选择' }]" 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"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div v-if="form.medicationCompliance === 1" class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px; line-height: 24px">请您确认患者目前服用的降压药、降脂或抗血小板药,在下表中修改或增加,并记录上次随访以来服用的降压药物的依从性</div>
<div style="background: #fff; padding: 8px" class="mb-2">
<DocDrug
v-model:value="currentMedicateCase.drugId"
placeholder="拼音码查询药品"
:valueName="currentMedicateCase.pinyinCode"
@change="drugChange(1, $event)">
</DocDrug>
<div class="flex items-center justify-between w-full mt-2">
<van-field
v-model="currentMedicateCase.dose"
placeholder="请输入"
label="剂量:"
class="form-input"
style="flex: 0.6"
/>
<van-field
v-model="currentMedicateCase.unitName"
isLink
readonly
placeholder="请选择"
@click="currentMedicateCase.showUnit = true"
class="form-input"
style="flex: 0.4"
/>
</div>
<van-popup v-model:show="currentMedicateCase.showUnit" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="currentMedicateCase.showUnit = false">取消</div>
<div>单位(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="store.getDict('CP00081')"
v-model:value="currentMedicateCase.unit"
:fieldNames="{ text: 'name', value: 'value' }"
@change="unitChange(1)"
/>
</div>
</div>
</van-popup>
<!-- 频次 -->
<van-field
label="频次:"
v-model="currentMedicateCase.frequencyName"
isLink
readonly
placeholder="请选择"
@click="currentMedicateCase.showFrequency = true"
class="form-input mt-2"
/>
<van-popup v-model:show="currentMedicateCase.showFrequency" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="currentMedicateCase.showFrequency = false">取消</div>
<div>频次(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-2
:options="store.getDict('CP00084')"
v-model:value="currentMedicateCase.frequency"
:fieldNames="{ text: 'name', value: 'value' }"
@change="frequencyChange(1)"
/>
</div>
</div>
</van-popup>
<!-- 用法 -->
<van-field
label="用法:"
v-model="currentMedicateCase.usageName"
isLink
readonly
placeholder="请选择"
@click="currentMedicateCase.showUsage = true"
class="form-input mt-2"
/>
<van-popup v-model:show="currentMedicateCase.showUsage" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="currentMedicateCase.showUsage = false">取消</div>
<div>用法(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="store.getDict('CP00083')"
v-model:value="currentMedicateCase.usage"
:fieldNames="{ text: 'name', value: 'value' }"
@change="usageChange(1)"
/>
</div>
</div>
</van-popup>
<!-- 服药依从性 -->
<van-field
label="服药依从性:"
v-model="currentMedicateCase.complianceName"
isLink
readonly
placeholder="请选择"
@click="currentMedicateCase.showCompliance = true"
class="form-input mt-2"
/>
<van-popup v-model:show="currentMedicateCase.showCompliance" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="currentMedicateCase.showCompliance = false">取消</div>
<div>用法(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="store.getDict('CP00148')"
v-model:value="currentMedicateCase.compliance"
:fieldNames="{ text: 'name', value: 'value' }"
@change="complianceChange"
/>
</div>
</div>
</van-popup>
<!-- 不依从原因 -->
<van-field
label="不依从原因:"
v-model="form.noComplianceReasonName"
isLink
readonly
placeholder="请选择"
@click="showNoComplianceReason = true"
class="form-input mt-2"
/>
<van-popup v-model:show="showNoComplianceReason" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="showNoComplianceReason = false">取消</div>
<div>不依从原因(可多选)</div>
<div class="blueColor" @click="noComplianceReasonConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
multiple
column-2
:options="store.getDict('CP00098')"
v-model:value="form.noComplianceReason"
:fieldNames="{ text: 'name', value: 'value' }"
/>
</div>
</div>
</van-popup>
</div>
<div v-for="(item, index) in addMedicateCase" :key="index" style="background-color: #fff; padding: 8px" class="mb-2">
<DocDrug
v-model:value="item.drugId"
placeholder="拼音码查询药品"
:valueName="item.pinyinCode"
@change="drugChange(2, $event, item)">
</DocDrug>
<div class="flex items-center justify-between w-full mt-2">
<van-field
v-model="item.dose"
placeholder="请输入"
label="剂量:"
class="form-input"
style="flex: 0.6"
/>
<van-field
v-model="item.unitName"
isLink
readonly
placeholder="请选择"
@click="item.showUnit = true"
class="form-input"
style="flex: 0.4"
/>
</div>
<van-popup v-model:show="item.showUnit" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="item.showUnit = false">取消</div>
<div>单位(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="store.getDict('CP00081')"
v-model:value="item.unit"
:fieldNames="{ text: 'name', value: 'value' }"
@change="unitChange(2, item)"
/>
</div>
</div>
</van-popup>
<!-- 频次 -->
<van-field
label="频次:"
v-model="item.frequencyName"
isLink
readonly
placeholder="请选择"
@click="item.showFrequency = true"
class="form-input mt-2"
/>
<van-popup v-model:show="item.showFrequency" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="item.showFrequency = false">取消</div>
<div>频次(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-2
:options="store.getDict('CP00084')"
v-model:value="item.frequency"
:fieldNames="{ text: 'name', value: 'value' }"
@change="frequencyChange(2, item)"
/>
</div>
</div>
</van-popup>
<!-- 用法 -->
<van-field
label="用法:"
v-model="item.usageName"
isLink
readonly
placeholder="请选择"
@click="item.showUsage = true"
class="form-input mt-2"
/>
<van-popup v-model:show="item.showUsage" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="item.showUsage = false">取消</div>
<div>用法(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="store.getDict('CP00083')"
v-model:value="item.usage"
:fieldNames="{ text: 'name', value: 'value' }"
@change="usageChange(2, item)"
/>
</div>
</div>
</van-popup>
<div @click="onDel(index)" class="del-btn">删除</div>
</div>
<van-button type="primary" plain block size="small" @click="onPlus">增加服用药物</van-button>
</div>
<!-- <van-button @click="() => console.log(form)">123</van-button> -->
</template>
<script>
import { useStore } from '@/doctor/store'
import DocDrug from '@/doctor/components/docDrug/DocDrug.vue'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
export default {
name: 'HypertensionDrugs',
components: { DocDrug, CheckBtn },
props: {
form: {
type: Object,
default: () => ({})
}
},
data() {
return {
store: useStore(),
currentMedicateCase: {},
showNoComplianceReason: false,
addMedicateCase: [{}]
}
},
methods: {
drugChange(val, option, item) {
if (val === 1) {
this.currentMedicateCase.drugName = option.chemicalName
this.currentMedicateCase.pinyinCode = option.helpCode
} else {
item.drugName = option.chemicalName
item.pinyinCode = option.helpCode
}
},
unitChange(val, item) {
if (val === 1) {
this.store.getDict('CP00081').forEach(e => {
if (e.value === this.currentMedicateCase.unit) {
this.currentMedicateCase.unitName = e.name
}
})
this.currentMedicateCase.showUnit = false
} else {
this.store.getDict('CP00081').forEach(e => {
if (e.value === item.unit) {
item.unitName = e.name
}
})
item.showUnit = false
}
},
frequencyChange(val, item) {
if (val === 1) {
this.store.getDict('CP00084').forEach(e => {
if (e.value === this.currentMedicateCase.frequency) {
this.currentMedicateCase.frequencyName = e.name
}
})
this.currentMedicateCase.showFrequency = false
} else {
this.store.getDict('CP00084').forEach(e => {
if (e.value === item.frequency) {
item.frequencyName = e.name
}
})
item.showFrequency = false
}
},
usageChange(val, item) {
if (val === 1) {
this.store.getDict('CP00083').forEach(e => {
if (e.value === this.currentMedicateCase.usage) {
this.currentMedicateCase.usageName = e.name
}
})
this.currentMedicateCase.showUsage = false
} else {
this.store.getDict('CP00083').forEach(e => {
if (e.value === item.usage) {
item.usageName = e.name
}
})
item.showUsage = false
}
},
complianceChange() {
this.store.getDict('CP00148').forEach(e => {
if (e.value === this.currentMedicateCase.compliance) {
this.currentMedicateCase.complianceName = e.name
}
})
this.currentMedicateCase.showCompliance = false
},
noComplianceReasonConfirm() {
let list = []
this.store.getDict('CP00098').forEach(item => {
let selected = this.form.noComplianceReason.filter(e => e === item.value)
if (selected && selected.length) {
list.push(item.name)
}
})
this.form.noComplianceReasonName = list.join()
this.showNoComplianceReason = false
},
onPlus() {
this.addMedicateCase.push({})
},
onDel(index) {
this.addMedicateCase.splice(index, 1)
},
submit() {
return new Promise((resolve, reject) => {
resolve({
currentMedicateCase: this.currentMedicateCase,
addMedicateCase: this.addMedicateCase
})
})
}
},
watch: {
'form.medicationCompliance': {
handler() {
let { currentMedicateCase, addMedicateCase } = this.form
if (currentMedicateCase) {
this.currentMedicateCase = JSON.parse(currentMedicateCase)
}
if (addMedicateCase) {
this.addMedicateCase = JSON.parse(addMedicateCase)
}
}
}
}
}
</script>
<style lang="less" scoped>
.label-title {
font-size: 13px;
color: #595959;
font-weight: 500;
margin-bottom: 8px;
&[required] {
&::after {
content: '*';
color: #FF4D4F;
font-weight: bold;
margin-left: 4px;
}
}
}
.bg-fa {
background-color: #FAFAFA;
padding: 8px;
border-radius: 8px;
}
.doc-radio-group-now {
column-gap: 10px;
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;
flex-grow: 1;
}
}
.form-input {
background-color: #FAFAFA;
padding: 8px 12px;
border-radius: 8px;
}
.pop-title {
color: #262626;
font-size: 16px;
font-weight: 600;
}
.greyColor {
color: var(--van-text-color-2);
font-weight: 400;
}
.blueColor {
color: #607FF0;
font-weight: 500;
}
.del-btn {
text-align: center;
margin: 8px auto;
padding: 4px 8px;
border-radius: 38px;
border: 1px solid #BFBFBF;
width: 112px;
color: #8C8C8C;
font-size: 13px;
}
</style>
\ No newline at end of file
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
class="form-input mt-2" class="form-input mt-2"
/> />
</div> </div>
<div style="background-color: #fff; padding: 8px; border-radius: 8px" class="mt-2"> <div v-if="y.itemValue === 2" style="background-color: #fff; padding: 8px; border-radius: 8px" class="mt-2">
<div class="label-title">影像报告</div> <div class="label-title">影像报告</div>
<DocImageUpload <DocImageUpload
description="温馨提示:请上传JPG、PNG格式图片,文件大小不超过10M" description="温馨提示:请上传JPG、PNG格式图片,文件大小不超过10M"
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<div class="p-4" style="height: 100%"> <div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title"> <div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="item.showUnit = false">取消</div> <div class="greyColor" @click="item.showUnit = false">取消</div>
<div>随访方式(单选)</div> <div>单位(单选)</div>
<div></div> <div></div>
</div> </div>
<div style="height: 80%; overflow: auto"> <div style="height: 80%; overflow: auto">
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
<div class="p-4" style="height: 100%"> <div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title"> <div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="item.showFrequency = false">取消</div> <div class="greyColor" @click="item.showFrequency = false">取消</div>
<div>随访方式(单选)</div> <div>频次(单选)</div>
<div></div> <div></div>
</div> </div>
<div style="height: 80%; overflow: auto"> <div style="height: 80%; overflow: auto">
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
<div class="p-4" style="height: 100%"> <div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title"> <div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="item.showUsage = false">取消</div> <div class="greyColor" @click="item.showUsage = false">取消</div>
<div>随访方式(单选)</div> <div>用法(单选)</div>
<div></div> <div></div>
</div> </div>
<div style="height: 80%; overflow: auto"> <div style="height: 80%; overflow: auto">
......
...@@ -21,10 +21,12 @@ ...@@ -21,10 +21,12 @@
<script> <script>
import BaseInfo from './BaseInfo.vue' import BaseInfo from './BaseInfo.vue'
import FormCont from './FormCont.vue' import FormCont from './FormCont.vue'
import { useStore } from '@/doctor/store'
export default { export default {
components: { BaseInfo, FormCont }, components: { BaseInfo, FormCont },
data() { data() {
return { return {
store: useStore(),
step: 1, step: 1,
baseInfo: {}, baseInfo: {},
diseaseInfo: {} diseaseInfo: {}
...@@ -56,6 +58,7 @@ export default { ...@@ -56,6 +58,7 @@ export default {
this.$refs.formCont.submit().then(() => { this.$refs.formCont.submit().then(() => {
this.$message.success('新增成功') this.$message.success('新增成功')
this.$router.go(-1) this.$router.go(-1)
this.store.onRefreshMark()
}) })
} }
} }
......
...@@ -426,7 +426,10 @@ ...@@ -426,7 +426,10 @@
</van-field> </van-field>
</div> </div>
<div v-if="form.regularExercise === 1" class="bg-fa mt-2"> <div v-if="form.regularExercise === 1" class="bg-fa mt-2">
<div class="flex items-center">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div> <div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<MovementTip class="ml-2 mb-2"/>
</div>
<van-field :rules="rules.exerciseStrength" style="padding: 0"> <van-field :rules="rules.exerciseStrength" style="padding: 0">
<template #input> <template #input>
<van-radio-group <van-radio-group
...@@ -849,12 +852,13 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu ...@@ -849,12 +852,13 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue' import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue' import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue' import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import MovementTip from '@/doctor/components/movementTip/MovementTip.vue'
import InspectV2 from '../../components/InspectV2.vue' import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue' import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs' import dayjs from 'dayjs'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan, MovementTip },
inject: ['pressureObj'], inject: ['pressureObj'],
props: { props: {
diseaseInfo: { diseaseInfo: {
......
...@@ -358,7 +358,10 @@ ...@@ -358,7 +358,10 @@
</van-field> </van-field>
</div> </div>
<div v-if="form.regularExercise === 1" class="bg-fa mt-2"> <div v-if="form.regularExercise === 1" class="bg-fa mt-2">
<div class="flex items-center">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div> <div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<MovementTip class="ml-2 mb-2"/>
</div>
<van-field :rules="rules.exerciseStrength" style="padding: 0"> <van-field :rules="rules.exerciseStrength" style="padding: 0">
<template #input> <template #input>
<van-radio-group <van-radio-group
...@@ -1204,12 +1207,13 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu ...@@ -1204,12 +1207,13 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue' import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue' import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue' import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import MovementTip from '@/doctor/components/movementTip/MovementTip.vue'
import InspectV2 from '../../components/InspectV2.vue' import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue' import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs' import dayjs from 'dayjs'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan, MovementTip },
inject: ['pressureObj'], inject: ['pressureObj'],
props: { props: {
diseaseInfo: { diseaseInfo: {
......
...@@ -429,7 +429,10 @@ ...@@ -429,7 +429,10 @@
</van-field> </van-field>
</div> </div>
<div v-if="form.regularExercise === 1" class="bg-fa mt-2"> <div v-if="form.regularExercise === 1" class="bg-fa mt-2">
<div class="flex items-center">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div> <div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<MovementTip class="ml-2 mb-2"/>
</div>
<van-field :rules="rules.exerciseStrength" style="padding: 0"> <van-field :rules="rules.exerciseStrength" style="padding: 0">
<template #input> <template #input>
<van-radio-group <van-radio-group
...@@ -853,12 +856,13 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu ...@@ -853,12 +856,13 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue' import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue' import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue' import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import MovementTip from '@/doctor/components/movementTip/MovementTip.vue'
import InspectV2 from '../../components/InspectV2.vue' import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue' import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs' import dayjs from 'dayjs'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan, MovementTip },
inject: ['pressureObj'], inject: ['pressureObj'],
props: { props: {
diseaseInfo: { diseaseInfo: {
......
...@@ -459,7 +459,10 @@ ...@@ -459,7 +459,10 @@
</van-field> </van-field>
</div> </div>
<div v-if="form.regularExercise === 1" class="bg-fa mt-2"> <div v-if="form.regularExercise === 1" class="bg-fa mt-2">
<div class="flex items-center">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div> <div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<MovementTip class="ml-2 mb-2"/>
</div>
<van-field :rules="rules.exerciseStrength" style="padding: 0"> <van-field :rules="rules.exerciseStrength" style="padding: 0">
<template #input> <template #input>
<van-radio-group <van-radio-group
...@@ -599,13 +602,13 @@ ...@@ -599,13 +602,13 @@
</van-field> </van-field>
<!-- 辅助检查 --> <!-- 辅助检查 -->
<div class="label-title mt-2" required>辅助检查</div> <div class="label-title mt-2">辅助检查</div>
<div class="bg-fa mt-2"> <div class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px">空腹静脉血糖值</div> <div class="label-title" required style="color: #262626; font-size: 14px">空腹静脉血糖值</div>
<van-field <van-field
v-model="form.emptyBloodGlucose" v-model="form.emptyBloodGlucose"
placeholder="0~50,2位小数" placeholder="0~50,2位小数"
:rules="rules.emptyBloodGlucose" :rules="[{ required: true, message: '请输入' }]"
class="card-input" class="card-input"
> >
<template #extra> <template #extra>
...@@ -790,13 +793,12 @@ ...@@ -790,13 +793,12 @@
<!-- 治疗方案 --> <!-- 治疗方案 -->
<TreatmentPlan ref="treatmentPlan" :form="form"></TreatmentPlan> <TreatmentPlan ref="treatmentPlan" :form="form"></TreatmentPlan>
<!-- 胰岛素 --> <!-- 胰岛素 -->
<div class="label-title mt-2" required>胰岛素</div> <div class="label-title mt-2">胰岛素</div>
<van-field <van-field
v-model="form.insulinTypeName" v-model="form.insulinTypeName"
isLink isLink
readonly readonly
placeholder="请选择" placeholder="请选择"
:rules="rules.insulinTypeName"
@click="showInsulinType = true" @click="showInsulinType = true"
class="form-input" class="form-input"
/> />
...@@ -1067,12 +1069,13 @@ import DocUnit from '@/doctor/components/docUnit/DocUnit.vue' ...@@ -1067,12 +1069,13 @@ import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue' import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue' import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
import MovementTip from '@/doctor/components/movementTip/MovementTip.vue'
import Inspect from '../../components/Inspect.vue' import Inspect from '../../components/Inspect.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue' import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs' import dayjs from 'dayjs'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocUnit, DocOffice, DocOfficeDoctor, DocImageUpload, Inspect, TreatmentPlan }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocUnit, DocOffice, DocOfficeDoctor, DocImageUpload, Inspect, TreatmentPlan, MovementTip },
inject: ['pressureObj'], inject: ['pressureObj'],
props: { props: {
diseaseInfo: { diseaseInfo: {
......
...@@ -429,7 +429,10 @@ ...@@ -429,7 +429,10 @@
</van-field> </van-field>
</div> </div>
<div v-if="form.regularExercise === 1" class="bg-fa mt-2"> <div v-if="form.regularExercise === 1" class="bg-fa mt-2">
<div class="flex items-center">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div> <div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<MovementTip class="ml-2 mb-2"/>
</div>
<van-field :rules="rules.exerciseStrength" style="padding: 0"> <van-field :rules="rules.exerciseStrength" style="padding: 0">
<template #input> <template #input>
<van-radio-group <van-radio-group
...@@ -852,11 +855,12 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu ...@@ -852,11 +855,12 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue' import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue' import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue' import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import MovementTip from '@/doctor/components/movementTip/MovementTip.vue'
import InspectV2 from '../../components/InspectV2.vue' import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue' import TreatmentPlan from '../../components/TreatmentPlan.vue'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan, MovementTip },
inject: ['pressureObj'], inject: ['pressureObj'],
props: { props: {
diseaseInfo: { diseaseInfo: {
......
...@@ -472,7 +472,10 @@ ...@@ -472,7 +472,10 @@
</van-field> </van-field>
</div> </div>
<div v-if="form.regularExercise === 1" class="bg-fa mt-2"> <div v-if="form.regularExercise === 1" class="bg-fa mt-2">
<div class="flex items-center">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div> <div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<MovementTip class="ml-2 mb-2"/>
</div>
<van-field :rules="rules.exerciseStrength" style="padding: 0"> <van-field :rules="rules.exerciseStrength" style="padding: 0">
<template #input> <template #input>
<van-radio-group <van-radio-group
...@@ -611,30 +614,7 @@ ...@@ -611,30 +614,7 @@
<Inspect ref="inspectRef" :form="form" :diseaseInfo="diseaseInfo"></Inspect> <Inspect ref="inspectRef" :form="form" :diseaseInfo="diseaseInfo"></Inspect>
<!-- 目前高血压用药及依从性 --> <!-- 目前高血压用药及依从性 -->
<div class="label-title mt-2" required>目前高血压用药及依从性</div> <HypertensionDrugs ref="hypertensionDrugsRef" :form="form"></HypertensionDrugs>
<div class="bg-fa">
<div class="label-title" required style="color: #262626; font-size: 14px; line-height: 24px">您目前是否在服用降压药、降脂(如他汀类)或抗血小板(如阿司匹林)等心血管病相关药物</div>
<van-field :rules="rules.medicationCompliance" 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="label-title mt-2" required>药物不良反应</div> <div class="label-title mt-2" required>药物不良反应</div>
...@@ -899,12 +879,15 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu ...@@ -899,12 +879,15 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue' import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue' import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue' import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import MovementTip from '@/doctor/components/movementTip/MovementTip.vue'
import Inspect from '../../components/Inspect.vue' import Inspect from '../../components/Inspect.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue' import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import HypertensionDrugs from '../../components/HypertensionDrugs.vue'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, Inspect, TreatmentPlan }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, Inspect, TreatmentPlan, MovementTip, HypertensionDrugs },
inject: ['pressureObj'], inject: ['pressureObj'],
props: { props: {
diseaseInfo: { diseaseInfo: {
...@@ -1339,16 +1322,27 @@ export default { ...@@ -1339,16 +1322,27 @@ export default {
this.$refs.form.validate().then(async () => { this.$refs.form.validate().then(async () => {
// 辅助检查 // 辅助检查
const inspectList = await this.$refs.inspectRef.submit() const inspectList = await this.$refs.inspectRef.submit()
// 目前高血压用药及依从性
const { currentMedicateCase, addMedicateCase } = await this.$refs.hypertensionDrugsRef.submit()
// 治疗方案
const medicateCase = await this.$refs.treatmentPlan.submit()
const form = fetchDataHandle(this.form, { const form = fetchDataHandle(this.form, {
symptom: 'arrToStr', symptom: 'arrToStr',
noComplianceReason: 'arrToStr',
currentDiagnosis: 'arrToStr', currentDiagnosis: 'arrToStr',
auxiliaryExamination: 'arrToStr' auxiliaryExamination: 'arrToStr'
}) })
resolve({ resolve({
...form, ...form,
inspectList: inspectList // 辅助检查
inspectList: inspectList,
// 目前高血压用药及依从性
currentMedicateCase: JSON.stringify(currentMedicateCase),
addMedicateCase: JSON.stringify(addMedicateCase),
// 治疗方案
medicateCase: JSON.stringify(medicateCase)
}) })
}).catch(e => { }).catch(e => {
...@@ -1387,7 +1381,7 @@ export default { ...@@ -1387,7 +1381,7 @@ export default {
// this.insulinDosage = this.store.getDict('CP00123') // this.insulinDosage = this.store.getDict('CP00123')
// console.log(this.insulinDosage) // console.log(this.insulinDosage)
} }
} },
}, },
watch: { watch: {
'form.signHeight': { 'form.signHeight': {
......
...@@ -429,7 +429,10 @@ ...@@ -429,7 +429,10 @@
</van-field> </van-field>
</div> </div>
<div v-if="form.regularExercise === 1" class="bg-fa mt-2"> <div v-if="form.regularExercise === 1" class="bg-fa mt-2">
<div class="flex items-center">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div> <div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<MovementTip class="ml-2 mb-2"/>
</div>
<van-field :rules="rules.exerciseStrength" style="padding: 0"> <van-field :rules="rules.exerciseStrength" style="padding: 0">
<template #input> <template #input>
<van-radio-group <van-radio-group
...@@ -852,12 +855,13 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu ...@@ -852,12 +855,13 @@ import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vu
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue' import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue' import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue' import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import MovementTip from '@/doctor/components/movementTip/MovementTip.vue'
import InspectV2 from '../../components/InspectV2.vue' import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue' import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs' import dayjs from 'dayjs'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan, MovementTip },
inject: ['pressureObj'], inject: ['pressureObj'],
props: { props: {
diseaseInfo: { diseaseInfo: {
......
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