Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
frontend-h5
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
songrui
frontend-h5
Commits
63ef7beb
Commit
63ef7beb
authored
Feb 06, 2025
by
gengchunlei
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'chronic-dev' of
http://gitlab.yiboshi.com/nightkis1995/frontend-h5
into chronic-dev
parents
4be9763c
d513f99c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
992 additions
and
20 deletions
+992
-20
Doctor.vue
src/doctor/Doctor.vue
+1
-1
BaseInfo.vue
src/doctor/followUp/separateFU/form/BaseInfo.vue
+17
-15
FormCont.vue
src/doctor/followUp/separateFU/form/FormCont.vue
+6
-3
Index.vue
src/doctor/followUp/separateFU/form/Index.vue
+1
-1
DiabetesForm.vue
...ctor/followUp/separateFU/form/components/DiabetesForm.vue
+967
-0
No files found.
src/doctor/Doctor.vue
View file @
63ef7beb
...
...
@@ -66,7 +66,7 @@ export default {
if
(
!
token
)
{
token
=
sessionStorage
.
getItem
(
'token'
)
if
(
process
.
env
.
NODE_ENV
!==
'production'
)
{
token
=
'
8d237363-0095-4606-b079-f776a2c0bf35
'
token
=
'
2f3d10c8-d036-4a64-82e1-08d122359e94
'
}
}
if
(
token
)
{
...
...
src/doctor/followUp/separateFU/form/BaseInfo.vue
View file @
63ef7beb
...
...
@@ -8,7 +8,7 @@
placeholder=
"请选择"
:rules=
"rules.diseaseTypeName"
@
click=
"showDiseaseType = true"
class=
"form-input"
class=
"form-input
mb-5
"
/>
<van-popup
v-model:show=
"showDiseaseType"
position=
"bottom"
>
<div
class=
"p-4"
style=
"height: 100%"
>
...
...
@@ -30,20 +30,22 @@
</div>
</van-popup>
<div
class=
"label-title mt-5"
required
>
请选择
</div>
<van-field
:rules=
"rules.serveType"
style=
"padding: 0"
class=
"mb-5"
>
<template
#
input
>
<van-radio-group
v-model=
"form.serveType"
shape=
"dot"
direction=
"horizontal"
class=
"doc-radio-group"
>
<van-radio
:name=
"3"
label-position=
"left"
>
新增专病随访(常规)
</van-radio>
<van-radio
:name=
"4"
label-position=
"left"
>
新增专病随访(增加)
</van-radio>
</van-radio-group>
</
template
>
</van-field>
<template
v-if=
"form.diseaseType === 1 || form.diseaseType === 2"
>
<div
class=
"label-title"
required
>
请选择
</div>
<van-field
:rules=
"rules.serveType"
style=
"padding: 0"
class=
"mb-5"
>
<template
#
input
>
<van-radio-group
v-model=
"form.serveType"
shape=
"dot"
direction=
"horizontal"
class=
"doc-radio-group"
>
<van-radio
:name=
"3"
label-position=
"left"
>
新增专病随访(常规)
</van-radio>
<van-radio
:name=
"4"
label-position=
"left"
>
新增专病随访(增加)
</van-radio>
</van-radio-group>
</
template
>
</van-field>
</template>
<ArchiveCommon
ref=
"archive"
:info=
"info"
></ArchiveCommon>
</van-form>
...
...
src/doctor/followUp/separateFU/form/FormCont.vue
View file @
63ef7beb
<
template
>
<div>
<HypertensionForm
v-if=
"diseaseType === 1"
ref=
"hypertensionForm"
></HypertensionForm>
<HypertensionForm
v-if=
"diseaseInfo.diseaseType === 1"
ref=
"hypertensionForm"
></HypertensionForm>
<DiabetesForm
v-if=
"diseaseType === 2"
></DiabetesForm>
</div>
</
template
>
<
script
>
import
HypertensionForm
from
'./components/HypertensionForm.vue'
import
DiabetesForm
from
'./components/DiabetesForm.vue'
import
{
addHypertensionForm
}
from
'@/api/doctor/separateFU'
export
default
{
components
:
{
HypertensionForm
},
components
:
{
HypertensionForm
,
DiabetesForm
},
props
:
{
baseInfo
:
{
type
:
Object
,
...
...
@@ -20,7 +22,7 @@ export default {
},
data
()
{
return
{
diseaseType
:
1
diseaseType
:
2
}
},
computed
:
{
...
...
@@ -36,6 +38,7 @@ export default {
residentsRecord
:
this
.
baseInfo
,
...
hypertensionForm
,
residentInfoId
:
this
.
residentInfoId
,
source
:
2
}
return
await
addHypertensionForm
(
form
,
true
)
}
...
...
src/doctor/followUp/separateFU/form/Index.vue
View file @
63ef7beb
...
...
@@ -25,7 +25,7 @@ export default {
components
:
{
BaseInfo
,
FormCont
},
data
()
{
return
{
step
:
1
,
step
:
2
,
baseInfo
:
{},
diseaseInfo
:
{}
}
...
...
src/doctor/followUp/separateFU/form/components/DiabetesForm.vue
0 → 100644
View file @
63ef7beb
<
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('CP00059')"
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.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.signArteryPulsationName"
isLink
readonly
placeholder=
"请选择"
:rules=
"rules.signArteryPulsationName"
@
click=
"showSignArteryPulsation = true"
class=
"form-input"
/>
<van-popup
v-model:show=
"showSignArteryPulsation"
position=
"bottom"
>
<div
class=
"p-4"
style=
"height: 100%"
>
<div
class=
"flex justify-between items-center mb-4 pop-title"
>
<div
class=
"greyColor"
@
click=
"showSignArteryPulsation = false"
>
取消
</div>
<div>
随访方式(单选)
</div>
<div></div>
</div>
<div
style=
"height: 80%; overflow: auto"
>
<CheckBtn
clearable
column-1
:options=
"store.getDict('CP00065')"
v-model:value=
"form.signArteryPulsation"
:fieldNames=
"{ text: 'name', value: 'value' }"
@
change=
"signArteryPulsationChange"
/>
</div>
</div>
</van-popup>
<!-- 其他体征 -->
<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
v-model=
"form.staplFood"
placeholder=
"0~5000,整数"
:rules=
"rules.staplFood"
class=
"form-input"
>
<
template
#
extra
>
<span>
克/天
</span>
</
template
>
</van-field>
<!-- 目标主食 -->
<div
class=
"label-title mt-2"
required
>
目标主食
</div>
<van-field
v-model=
"form.targetStaplFood"
placeholder=
"0~5000,整数"
:rules=
"rules.targetStaplFood"
class=
"form-input"
>
<
template
#
extra
>
<span>
克/天
</span>
</
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.glycopeniaReaction"
style=
"padding: 0"
>
<
template
#
input
>
<van-radio-group
v-model=
"form.glycopeniaReaction"
shape=
"dot"
direction=
"horizontal"
class=
"w-full doc-radio-group"
>
<van-radio
v-for=
"item in store.getDict('CP00114')"
: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.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"
/>
</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'
import
DocUnit
from
'@/doctor/components/docUnit/DocUnit.vue'
import
DocOffice
from
'@/doctor/components/docOffice/DocOffice.vue'
import
DocImageUpload
from
'@/doctor/components/docImageUpload/DocImageUpload.vue'
export
default
{
components
:
{
CheckBtn
,
BloodPressurePanel
,
BloodPressureBt
,
DocUnit
,
DocOffice
,
DocImageUpload
},
inject
:
[
'pressureObj'
],
data
()
{
return
{
store
:
useStore
(),
form
:
{},
rules
:
{},
showVisitWay
:
false
,
showSymptom
:
false
,
showSignArteryPulsation
:
false
,
showCurrentDiagnosis
:
false
,
showReferralUnit
:
false
,
showReferralOffice
:
false
}
},
methods
:
{
checkboxReject
,
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
(
'CP00059'
).
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
},
setPressure
(
val
)
{
if
(
!
val
)
return
this
.
form
.
signSystolicPressure
=
val
.
systolicPressure
this
.
form
.
signDiastolicPressure
=
val
.
diastolicPressure
},
signArteryPulsationChange
()
{
this
.
store
.
getDict
(
'CP00065'
).
forEach
(
item
=>
{
if
(
item
.
value
===
this
.
form
.
signArteryPulsation
)
{
this
.
form
.
signArteryPulsationName
=
item
.
name
}
})
this
.
showSignArteryPulsation
=
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
},
referralUnitChange
(
option
=
{})
{
this
.
form
.
referralUnitName
=
option
.
unitName
},
referralOfficeChange
(
option
=
{})
{
this
.
form
.
referralOfficeName
=
option
.
officeName
},
}
}
</
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;
}
</
style
>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment