Commit f641f3e3 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 c6a78971 cb901851
......@@ -3,4 +3,12 @@ import { fetchBase } from '@/api/doctor/doctorFetch'
// 新增高血压随访
export function addHypertensionForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-hypertension/save`, body: params, loading: true })
}
// 新增糖尿病随访
export function addDiabetesForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-diabetes/save`, body: params, loading: true })
}
// 新增冠心病随访
export function addCoronaryHeartDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-coronary/save`, body: params, loading: true })
}
\ No newline at end of file
<template>
<div>
<HypertensionForm v-if="diseaseInfo.diseaseType === 1" ref="hypertensionForm"></HypertensionForm>
<DiabetesForm v-if="diseaseType === 2"></DiabetesForm>
<DiabetesForm v-if="diseaseInfo.diseaseType === 2" ref="diabetesForm"></DiabetesForm>
<CoronaryHeartDiseaseForm v-if="diseaseInfo.diseaseType === 3" ref="coronaryHeartDiseaseForm"></CoronaryHeartDiseaseForm>
</div>
</template>
<script>
import HypertensionForm from './components/HypertensionForm.vue'
import DiabetesForm from './components/DiabetesForm.vue'
import { addHypertensionForm } from '@/api/doctor/separateFU'
import CoronaryHeartDiseaseForm from './components/CoronaryHeartDiseaseForm.vue'
import { addHypertensionForm, addDiabetesForm, addCoronaryHeartDiseaseForm } from '@/api/doctor/separateFU'
export default {
components: { HypertensionForm, DiabetesForm },
components: { HypertensionForm, DiabetesForm, CoronaryHeartDiseaseForm },
props: {
baseInfo: {
type: Object,
......@@ -22,7 +24,7 @@ export default {
},
data() {
return {
diseaseType: 2
// diseaseType: 2
}
},
computed: {
......@@ -32,15 +34,31 @@ export default {
},
methods: {
async submit() {
const hypertensionForm = await this.$refs.hypertensionForm.submit()
let form = {
...this.diseaseInfo,
residentsRecord: this.baseInfo,
...hypertensionForm,
residentInfoId: this.residentInfoId,
source: 2
}
return await addHypertensionForm(form, true)
if (this.diseaseInfo.diseaseType === 1) {
const hypertensionForm = await this.$refs.hypertensionForm.submit()
return await addHypertensionForm({
...form,
...hypertensionForm
}, true)
} else if (this.diseaseInfo.diseaseType === 2) {
const diabetesForm = await this.$refs.diabetesForm.submit()
return await addDiabetesForm({
...form,
...diabetesForm
}, true)
} else if (this.diseaseInfo.diseaseType === 3) {
const coronaryHeartDiseaseForm = await this.$refs.coronaryHeartDiseaseForm.submit()
return await addCoronaryHeartDiseaseForm({
...form,
...coronaryHeartDiseaseForm
}, true)
}
}
}
}
......
......@@ -25,7 +25,7 @@ export default {
components: { BaseInfo, FormCont },
data() {
return {
step: 2,
step: 1,
baseInfo: {},
diseaseInfo: {}
}
......
<template>
<van-form ref="form">
<div class="first-title">
<span class="font-semibold">随访信息</span>
<div class="btn-title">引入数据</div>
</div>
<!-- 随访方式 -->
<div class="label-title mt-2" required>随访方式</div>
<van-field
v-model="form.visitWayName"
isLink
readonly
placeholder="请选择"
:rules="rules.visitWayName"
@click="showVisitWay = true"
class="form-input"
/>
<van-popup v-model:show="showVisitWay" position="bottom">
<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>
<div>随访方式(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="store.getDict('CP00052')"
v-model:value="form.visitWay"
:fieldNames="{ text: 'name', value: 'value' }"
@change="visitWayChange"
/>
</div>
</div>
</van-popup>
<!-- 症状 -->
<div class="label-title mt-2" required>症状</div>
<van-field
v-model="form.symptomName"
isLink
readonly
placeholder="请选择"
:rules="rules.symptomName"
@click="showSymptom = true"
class="form-input"
/>
<van-popup v-model:show="showSymptom" position="bottom">
<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('CP00060')"
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="请填写其他症状"
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="30~300,整数"
:rules="rules.signDiastolicPressure"
class="form-input"
>
<template #extra>
<span>mmHg</span>
</template>
</van-field>
</td>
</tr>
</table>
<BloodPressureBt :pressureObj="pressureObj" @getValue="setPressure">开始测量</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>
<!-- BMI -->
<div class="label-title mt-2">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.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"
:maxlength="120"
placeholder="如有其他体征情况请填写在此处,限120个字"
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 :rules="rules.isSmoking" 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 v-if="form.isSmoking === 1" 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,整数"
:rules="rules.startSmokeAge"
class="card-input"
>
<template #extra>
<span></span>
</template>
</van-field>
</div>
<div v-if="form.isSmoking === 1 || form.isSmoking === 2" class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px">您最近7天是否吸烟</div>
<van-field style="padding: 0">
<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 v-if="form.isSmoking === 1 || form.isSmoking === 2" 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,整数"
:rules="rules.daySmoking"
class="card-input"
>
<template #extra>
<span></span>
</template>
</van-field>
</div>
<div v-if="form.isSmoking === 1 || form.isSmoking === 2" 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,整数"
:rules="rules.goalDaySmoking"
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 :rules="rules.isDrink" 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 v-if="form.isDrink === 1" class="bg-fa mt-2">
<div class="label-title" 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 v-if="form.isDrink === 1 || form.isDrink === 2" 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,整数"
:rules="rules.dayDrink"
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,整数"
:rules="rules.goalDayDrink"
class="card-input"
>
<template #extra>
<span>ml</span>
</template>
</van-field>
</div>
</div>
<div v-if="form.isDrink === 1 || form.isDrink === 2" class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px">饮酒种类</div>
<van-field
label="白酒"
v-model="form.drinkLiquor"
placeholder="0~3000,整数"
:rules="rules.drinkLiquor"
class="card-input"
label-width="36px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
<van-field
label="啤酒"
v-model="form.drinkBeer"
placeholder="0~3000,整数"
:rules="rules.drinkBeer"
class="card-input mt-2"
label-width="36px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
<van-field
label="红酒"
v-model="form.drinkRed"
placeholder="0~3000,整数"
:rules="rules.drinkRed"
class="card-input mt-2"
label-width="36px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
<van-field
label="黄酒"
v-model="form.drinkYellow"
placeholder="0~3000,整数"
:rules="rules.drinkYellow"
class="card-input mt-2"
label-width="36px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</span>
</template>
</van-field>
<van-field
label="其他"
v-model="form.drinkOther"
placeholder="0~3000,整数"
:rules="rules.drinkOther"
class="card-input mt-2"
label-width="36px"
label-class="label-mr"
>
<template #extra>
<span>ml/日</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 :rules="rules.regularExercise" 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 v-if="form.regularExercise === 1" class="bg-fa mt-2">
<div class="label-title" required style="color: #262626; font-size: 14px">运动强度</div>
<van-field :rules="rules.exerciseStrength" 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,整数"
:rules="rules.nowExerciseWeek"
class="card-input"
>
<template #extra>
<span>次/周</span>
</template>
</van-field>
<van-field
v-model="form.nowExerciseMinute"
placeholder="0~500,整数"
:rules="rules.nowExerciseMinute"
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,整数"
:rules="rules.targetExerciseWeek"
class="card-input"
>
<template #extra>
<span>次/周</span>
</template>
</van-field>
<van-field
v-model="form.targetExerciseMinute"
placeholder="0~500,整数"
:rules="rules.targetExerciseMinute"
class="card-input ml-2"
>
<template #extra>
<span>分钟/次</span>
</template>
</van-field>
</div>
</div>
<!-- 摄盐情况 -->
<div class="label-title mt-2" required>摄盐情况(咸淡)</div>
<van-field :rules="rules.saltIntake" 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 :rules="rules.psychologicalRecovery" 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 :rules="rules.doctorAdvice" 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" required>服药依从性</div>
<van-field :rules="rules.medicationCompliance" style="padding: 0">
<template #input>
<van-radio-group
v-model="form.medicationCompliance"
shape="dot"
direction="horizontal"
class="w-full doc-radio-group"
>
<van-radio
v-for="item in store.getDict('CP00080')"
: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 :rules="rules.drugsAdverse" style="padding: 0">
<template #input>
<van-radio-group
v-model="form.drugsAdverse"
shape="dot"
direction="horizontal"
class="w-full doc-radio-group"
>
<van-radio
v-for="item in store.getDict('DC00069')"
:key="item.value"
:name="item.value"
label-position="left"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
<div v-if="form.drugsAdverse === 1" class="bg-fa mt-2">
<div class="label-title" style="color: #262626; font-size: 14px">不良反应</div>
<van-field
type="textarea"
v-model="form.drugsAdverseOther"
:maxlength="120"
placeholder="请填写具体描述哪种药物,何种不良反应,限120字"
class="card-input"
/>
</div>
<!-- 此次随访分类 -->
<div class="label-title mt-2" required>此次随访分类</div>
<van-field :rules="rules.visitType" style="padding: 0">
<template #input>
<van-radio-group
v-model="form.visitType"
shape="dot"
direction="horizontal"
class="w-full doc-radio-group"
>
<van-radio
v-for="item in store.getDict('CP00085')"
:key="item.value"
:name="item.value"
label-position="left"
style="width: 48%"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
<!-- 目前诊断 -->
<div class="label-title mt-2" required>目前诊断</div>
<van-field
v-model="form.currentDiagnosisName"
isLink
readonly
placeholder="请选择"
:rules="rules.currentDiagnosisName"
@click="showCurrentDiagnosis = true"
class="form-input"
/>
<van-popup v-model:show="showCurrentDiagnosis" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="showCurrentDiagnosis = false">取消</div>
<div>目前诊断(可多选)</div>
<div class="blueColor" @click="currentDiagnosisConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
multiple
column-2
:options="store.getDict('CP00086')"
v-model:value="form.currentDiagnosis"
:fieldNames="{ text: 'name', value: 'value' }"
/>
</div>
</div>
</van-popup>
<!-- 转诊 -->
<div class="label-title mt-2" required>转诊</div>
<van-field :rules="rules.isReferral" style="padding: 0">
<template #input>
<van-radio-group
v-model="form.isReferral"
shape="dot"
direction="horizontal"
class="w-full doc-radio-group"
>
<van-radio
v-for="item in store.getDict('DC00069')"
:key="item.value"
:name="item.value"
label-position="left"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
<div v-if="form.isReferral === 1" class="bg-fa mt-2">
<div style="background-color: #fff; padding: 8px; border-radius: 8px">
<div style="color: #262626; font-size: 14px">转诊原因</div>
<van-field
type="textarea"
v-model="form.referralReason"
:maxlength="120"
placeholder="请填写具体描述转诊原因,限120字"
class="form-input mt-2"
/>
</div>
<div style="background-color: #fff; padding: 8px; border-radius: 8px" class="mt-2">
<div style="color: #262626; font-size: 14px">转诊机构</div>
<van-field
v-model="form.referralUnitName"
is-link
readonly
placeholder="请选择"
@click="showReferralUnit = true"
class="form-input mt-2"
/>
<DocUnit
v-model:show="showReferralUnit"
v-model:value="form.referralUnitId"
:valueName="form?.referralUnitName"
@change="referralUnitChange"
/>
</div>
<div style="background-color: #fff; padding: 8px; border-radius: 8px" class="mt-2">
<div style="color: #262626; font-size: 14px">转诊科室</div>
<van-field
v-model="form.referralOfficeName"
is-link
readonly
placeholder="请选择"
@click="showReferralOffice = true"
class="form-input mt-2"
/>
<DocOffice
v-model:show="showReferralOffice"
v-model:value="form.referralOfficeId"
:unitId="form.referralUnitId"
@change="referralOfficeChange"
/>
</div>
</div>
<!-- 现场随访照片 -->
<div class="label-title mt-2">现场随访照片</div>
<DocImageUpload
description="最多支持上传8个文件,支持上传图片或PDF文件,图片支持上传jpg、png、jpeg格式,文件大小请勿超过10M。"
lengthMessage="抱歉,最多可上传8个文件。"
:imageData="[]"
@change="(ids, option) => form.visitImage = ids"
:maxLength="8"
/>
<!-- 下次随访日期 -->
<div class="label-title" required>下次随访日期</div>
<van-field
v-model="form.nextVisitDate"
isLink
readonly
placeholder="请选择"
:rules="rules.nextVisitDate"
@click="showNextVisitDate = true"
class="form-input"
/>
<van-popup v-model:show="showNextVisitDate" position="bottom">
<van-date-picker
v-model="form._nextVisitDate"
:min-date="nextVisitDateRange.min"
:max-date="nextVisitDateRange.max"
@confirm="nextVisitDateConfirm"
@cancel="showNextVisitDate = false"
/>
</van-popup>
<!-- 随访日期 -->
<div class="label-title mt-2">随访日期</div>
<van-field
v-model="form.visitDate"
isLink
readonly
placeholder="请选择"
:rules="rules.visitDate"
@click="showVisitDate = true"
class="form-input"
/>
<van-popup v-model:show="showVisitDate" position="bottom">
<van-date-picker
v-model="form._visitDate"
:min-date="visitDateRange.min"
:max-date="visitDateRange.max"
@confirm="visitDateConfirm"
@cancel="showVisitDate = false"
/>
</van-popup>
<!-- 随访单位 -->
<div class="label-title mt-2">随访单位</div>
<van-field
v-model="form.visitUnitName"
is-link
readonly
placeholder="请选择"
@click="showVisitUnit = true"
class="form-input mt-2"
/>
<DocUnit
v-model:show="showVisitUnit"
v-model:value="form.visitUnitId"
:valueName="form?.visitUnitName"
@change="visitUnitChange"
/>
<!-- 随访科室 -->
<div class="label-title mt-2">随访科室</div>
<van-field
v-model="form.visitOfficeName"
is-link
readonly
placeholder="请选择"
@click="showVisitOffice = true"
class="form-input mt-2"
/>
<DocOffice
v-model:show="showVisitOffice"
v-model:value="form.visitOfficeId"
:unitId="form.visitUnitId"
@change="visitOfficeChange"
/>
<!-- 随访医生 -->
<div class="label-title mt-2">随访医生</div>
<van-field
v-model="form.visitDoctorName"
is-link
readonly
placeholder="请选择"
@click="showVisitDoctor = true"
class="form-input mt-2"
/>
<DocOfficeDoctor
v-model:show="showVisitDoctor"
:allowClear="false"
v-model:value="form.visitDoctorId"
:unitId="form.visitUnitId"
:officeId="form.visitOfficeId"
@change="(option) => { form.visitDoctorName = option.staffName }"
/>
</van-form>
</template>
<script>
import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor },
inject: ['pressureObj'],
data() {
return {
store: useStore(),
form: {},
rules: {
visitWayName: [
{ required: true, message: '请选择随访方式' }
],
symptomName: [
{ required: true, message: '请选择症状' }
],
signSystolicPressure: [
{ required: true, message: '请填写收缩压' }
],
signDiastolicPressure: [
{ required: true, message: '请填写舒张压' }
],
signHeight: [
{ required: true, message: '请填写身高' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+(\.\d{1})?$/
if (value && !(regex.test(value) && Number(value) >= 10 && Number(value) <= 300)) {
res = false
}
return res
},
message: `请输入10到300之间的数字,允许一位小数`
}
],
signWeight: [
{ required: true, message: '请填写体重' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+(\.\d{1,2})?$/
if (value && !(regex.test(value) && Number(value) >= 20 && Number(value) <= 500)) {
res = false
}
return res
},
message: `请输入20到500之间的数字,允许两位小数`
}
],
signHeartRate: [
{ required: true, message: '请填写心率' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 10 && Number(value) <= 200)) {
res = false
}
return res
},
message: `请输入10到200之间的整数`
}
],
isSmoking: [
{ required: true, message: '请选择' }
],
startSmokeAge: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 2 && Number(value) <= 100)) {
res = false
}
return res
},
message: `请输入2到100之间的整数`
}
],
daySmoking: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 100)) {
res = false
}
return res
},
message: `请输入0到100之间的整数`
}
],
goalDaySmoking: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 100)) {
res = false
}
return res
},
message: `请输入0到100之间的整数`
}
],
isDrink: [
{ required: true, message: '请选择' }
],
dayDrink: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
goalDayDrink: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkLiquor: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkBeer: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkRed: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkYellow: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkOther: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
regularExercise: [
{ required: true, message: '请选择' }
],
exerciseStrength: [
{ required: true, message: '请选择' }
],
nowExerciseWeek: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 50)) {
res = false
}
return res
},
message: `请输入0到50之间的整数`
}
],
nowExerciseMinute: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 500)) {
res = false
}
return res
},
message: `请输入0到500之间的整数`
}
],
targetExerciseWeek: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 50)) {
res = false
}
return res
},
message: `请输入0到50之间的整数`
}
],
targetExerciseMinute: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 500)) {
res = false
}
return res
},
message: `请输入0到500之间的整数`
}
],
saltIntake: [
{ required: true, message: '请选择' }
],
psychologicalRecovery: [
{ required: true, message: '请选择' }
],
doctorAdvice: [
{ required: true, message: '请选择' }
],
medicationCompliance: [
{ required: true, message: '请选择' }
],
drugsAdverse: [
{ required: true, message: '请选择' }
],
visitType: [
{ required: true, message: '请选择' }
],
currentDiagnosisName: [
{ required: true, message: '请选择' }
],
isReferral: [
{ required: true, message: '请选择' }
],
nextVisitDate: [
{ required: true, message: '请选择' }
]
},
showVisitWay: false,
showPaperReasons: false,
showSymptom: false,
// showAuxiliaryExamination: false
showCurrentDiagnosis: false,
showReferralUnit: false,
showReferralOffice: false,
showNextVisitDate: false,
nextVisitDateRange: {
min: undefined,
max: undefined
},
showVisitDate: false,
visitDateRange: {
min: undefined,
max: undefined
},
showVisitUnit: false,
showVisitOffice: false,
showVisitDoctor: false
}
},
methods: {
checkboxReject,
calculateBMI,
visitWayChange() {
this.store.getDict('CP00052').forEach(item => {
if (item.value === this.form.visitWay) {
this.form.visitWayName = item.name
}
})
this.showVisitWay = false
},
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
},
currentDiagnosisConfirm() {
let list = []
this.store.getDict('CP00086').forEach(item => {
let selected = this.form.currentDiagnosis.filter(e => e === item.value)
if (selected && selected.length) {
list.push(item.name)
}
})
this.form.currentDiagnosisName = list.join()
this.showCurrentDiagnosis = false
},
setPressure(val) {
if (!val) return
this.form.signSystolicPressure = val.systolicPressure
this.form.signDiastolicPressure = val.diastolicPressure
},
referralUnitChange(option = {}) {
this.form.referralUnitName = option.unitName
},
referralOfficeChange(option = {}) {
this.form.referralOfficeName = option.officeName
},
nextVisitDateConfirm({ selectedValues }) {
this.form.nextVisitDate = selectedValues.join('-')
this.showNextVisitDate = false
},
visitDateConfirm({ selectedValues }) {
this.form.visitDate = selectedValues.join('-')
this.showVisitDate = false
},
visitUnitChange(option = {}) {
this.form.visitUnitName = option.unitName
},
visitOfficeChange(option = {}) {
this.form.visitOfficeName = option.officeName
},
submit() {
return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => {
const form = fetchDataHandle(this.form, {
symptom: 'arrToStr',
currentDiagnosis: 'arrToStr'
})
resolve(form)
}).catch(e => {
})
})
}
},
watch: {
'form.signHeight': {
handler() {
this.form.signBmi = this.calculateBMI(this.form.signHeight, this.form.signWeight)
}
},
'form.signWeight': {
handler() {
this.form.signBmi = this.calculateBMI(this.form.signHeight, this.form.signWeight)
}
},
}
}
</script>
<style lang="less" scoped>
.first-title {
display: flex;
align-items: center;
.btn-title {
background-color: #F0F3FF;
color: #607FF0;
border-radius: 9999px;
padding: 4px 16px;
margin-left: 8px;
}
}
.label-title {
font-size: 13px;
color: #595959;
font-weight: 500;
margin-bottom: 8px;
&[required] {
&::after {
content: '*';
color: #FF4D4F;
font-weight: bold;
margin-left: 4px;
}
}
}
.form-input {
background-color: #FAFAFA;
padding: 8px 12px;
border-radius: 8px;
}
:deep(.van-cell:after) {
border-bottom: 0px;
}
:deep(.van-popup) {
height: 50% !important;
}
.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;
}
.sub-text {
color: #595959;
font-size: 13px;
font-weight: 400;
padding-bottom: 8px;
}
.tip {
color: #FA8C16;
font-size: 12px;
margin-top: 8px;
line-height: 16px;
}
.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: 8px;
}
</style>
\ No newline at end of file
......@@ -797,35 +797,451 @@
@change="(ids, option) => form.visitImage = ids"
:maxLength="8"
/>
<!-- 下次随访日期 -->
<div class="label-title" required>下次随访日期</div>
<van-field
v-model="form.nextVisitDate"
isLink
readonly
placeholder="请选择"
:rules="rules.nextVisitDate"
@click="showNextVisitDate = true"
class="form-input"
/>
<van-popup v-model:show="showNextVisitDate" position="bottom">
<van-date-picker
v-model="form._nextVisitDate"
:min-date="nextVisitDateRange.min"
:max-date="nextVisitDateRange.max"
@confirm="nextVisitDateConfirm"
@cancel="showNextVisitDate = false"
/>
</van-popup>
<!-- 随访日期 -->
<div class="label-title mt-2">随访日期</div>
<van-field
v-model="form.visitDate"
isLink
readonly
placeholder="请选择"
:rules="rules.visitDate"
@click="showVisitDate = true"
class="form-input"
/>
<van-popup v-model:show="showVisitDate" position="bottom">
<van-date-picker
v-model="form._visitDate"
:min-date="visitDateRange.min"
:max-date="visitDateRange.max"
@confirm="visitDateConfirm"
@cancel="showVisitDate = false"
/>
</van-popup>
<!-- 随访单位 -->
<div class="label-title mt-2">随访单位</div>
<van-field
v-model="form.visitUnitName"
is-link
readonly
placeholder="请选择"
@click="showVisitUnit = true"
class="form-input mt-2"
/>
<DocUnit
v-model:show="showVisitUnit"
v-model:value="form.visitUnitId"
:valueName="form?.visitUnitName"
@change="visitUnitChange"
/>
<!-- 随访科室 -->
<div class="label-title mt-2">随访科室</div>
<van-field
v-model="form.visitOfficeName"
is-link
readonly
placeholder="请选择"
@click="showVisitOffice = true"
class="form-input mt-2"
/>
<DocOffice
v-model:show="showVisitOffice"
v-model:value="form.visitOfficeId"
:unitId="form.visitUnitId"
@change="visitOfficeChange"
/>
<!-- 随访医生 -->
<div class="label-title mt-2">随访医生</div>
<van-field
v-model="form.visitDoctorName"
is-link
readonly
placeholder="请选择"
@click="showVisitDoctor = true"
class="form-input mt-2"
/>
<DocOfficeDoctor
v-model:show="showVisitDoctor"
:allowClear="false"
v-model:value="form.visitDoctorId"
:unitId="form.visitUnitId"
:officeId="form.visitOfficeId"
@change="(option) => { form.visitDoctorName = option.staffName }"
/>
</van-form>
</template>
<script>
import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject } from '@/utils/common'
import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocUnit, DocOffice, DocImageUpload },
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocUnit, DocOffice, DocOfficeDoctor, DocImageUpload },
inject: ['pressureObj'],
data() {
return {
store: useStore(),
form: {},
rules: {},
rules: {
visitWayName: [
{ required: true, message: '请选择随访方式' }
],
symptomName: [
{ required: true, message: '请选择症状' }
],
signSystolicPressure: [
{ required: true, message: '请填写收缩压' }
],
signDiastolicPressure: [
{ required: true, message: '请填写舒张压' }
],
signHeight: [
{ required: true, message: '请填写身高' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+(\.\d{1})?$/
if (value && !(regex.test(value) && Number(value) >= 10 && Number(value) <= 300)) {
res = false
}
return res
},
message: `请输入10到300之间的数字,允许一位小数`
}
],
signWeight: [
{ required: true, message: '请填写体重' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+(\.\d{1,2})?$/
if (value && !(regex.test(value) && Number(value) >= 20 && Number(value) <= 500)) {
res = false
}
return res
},
message: `请输入20到500之间的数字,允许两位小数`
}
],
signWaistline: [
{ required: true, message: '请填写腰围' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+(\.\d{1})?$/
if (value && !(regex.test(value) && Number(value) >= 10 && Number(value) <= 150)) {
res = false
}
return res
},
message: `请输入10到150之间的数字,允许一位小数`
}
],
signArteryPulsationName: [
{ required: true, message: '请选择足背动脉搏动' }
],
isSmoking: [
{ required: true, message: '请选择' }
],
startSmokeAge: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 2 && Number(value) <= 100)) {
res = false
}
return res
},
message: `请输入2到100之间的整数`
}
],
daySmoking: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 100)) {
res = false
}
return res
},
message: `请输入0到100之间的整数`
}
],
goalDaySmoking: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 100)) {
res = false
}
return res
},
message: `请输入0到100之间的整数`
}
],
isDrink: [
{ required: true, message: '请选择' }
],
dayDrink: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
goalDayDrink: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkLiquor: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkBeer: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkRed: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkYellow: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
drinkOther: [
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 3000)) {
res = false
}
return res
},
message: `请输入0到3000之间的整数`
}
],
regularExercise: [
{ required: true, message: '请选择' }
],
exerciseStrength: [
{ required: true, message: '请选择' }
],
nowExerciseWeek: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 50)) {
res = false
}
return res
},
message: `请输入0到50之间的整数`
}
],
nowExerciseMinute: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 500)) {
res = false
}
return res
},
message: `请输入0到500之间的整数`
}
],
targetExerciseWeek: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 50)) {
res = false
}
return res
},
message: `请输入0到50之间的整数`
}
],
targetExerciseMinute: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 500)) {
res = false
}
return res
},
message: `请输入0到500之间的整数`
}
],
staplFood: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 5000)) {
res = false
}
return res
},
message: `请输入0到5000之间的整数`
}
],
targetStaplFood: [
{ required: true, message: '请输入' },
{
validator: (value, rule) => {
let res = true
const regex = /^\d+$/
if (value && !(regex.test(value) && Number(value) >= 0 && Number(value) <= 5000)) {
res = false
}
return res
},
message: `请输入0到5000之间的整数`
}
],
psychologicalRecovery: [
{ required: true, message: '请选择' }
],
doctorAdvice: [
{ required: true, message: '请选择' }
],
medicationCompliance: [
{ required: true, message: '请选择' }
],
drugsAdverse: [
{ required: true, message: '请选择' }
],
glycopeniaReaction: [
{ required: true, message: '请选择' }
],
visitType: [
{ required: true, message: '请选择' }
],
currentDiagnosisName: [
{ required: true, message: '请选择' }
],
isReferral: [
{ required: true, message: '请选择' }
],
nextVisitDate: [
{ required: true, message: '请选择' }
]
},
showVisitWay: false,
showSymptom: false,
showSignArteryPulsation: false,
showCurrentDiagnosis: false,
showReferralUnit: false,
showReferralOffice: false
showReferralOffice: false,
showNextVisitDate: false,
nextVisitDateRange: {
min: undefined,
max: undefined
},
showVisitDate: false,
visitDateRange: {
min: undefined,
max: undefined
},
showVisitUnit: false,
showVisitOffice: false,
showVisitDoctor: false
}
},
methods: {
checkboxReject,
calculateBMI,
visitWayChange() {
this.store.getDict('CP00052').forEach(item => {
if (item.value === this.form.visitWay) {
......@@ -875,6 +1291,46 @@ export default {
referralOfficeChange(option = {}) {
this.form.referralOfficeName = option.officeName
},
nextVisitDateConfirm({ selectedValues }) {
this.form.nextVisitDate = selectedValues.join('-')
this.showNextVisitDate = false
},
visitDateConfirm({ selectedValues }) {
this.form.visitDate = selectedValues.join('-')
this.showVisitDate = false
},
visitUnitChange(option = {}) {
this.form.visitUnitName = option.unitName
},
visitOfficeChange(option = {}) {
this.form.visitOfficeName = option.officeName
},
submit() {
return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => {
const form = fetchDataHandle(this.form, {
symptom: 'arrToStr',
currentDiagnosis: 'arrToStr'
})
resolve(form)
}).catch(e => {
})
})
}
},
watch: {
'form.signHeight': {
handler() {
this.form.signBmi = this.calculateBMI(this.form.signHeight, this.form.signWeight)
}
},
'form.signWeight': {
handler() {
this.form.signBmi = this.calculateBMI(this.form.signHeight, this.form.signWeight)
}
},
}
}
</script>
......
......@@ -16,13 +16,13 @@
<span class="label shrink-0">诊断评估</span>
<span class="grow" >{{ item.diagnoseResultValue || '-' }}</span>
</div>
<div>
<span class="label">诊断单位</span>
<span>{{ item.diseaseUnitName }}</span>
<div class="flex">
<span class="label shrink-0">诊断单位</span>
<span class="grow text-wrap">{{ item.diseaseUnitName }}</span>
</div>
<div>
<span class="label">诊断科室</span>
<span>{{ item.diseaseOfficeName }}</span>
<div class="flex">
<span class="label shrink-0">诊断科室</span>
<span class="grow text-wrap">{{ item.diseaseOfficeName }}</span>
</div>
<div>
<span class="label">诊断医生</span>
......
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