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
f2053694
Commit
f2053694
authored
Jan 08, 2025
by
gengchunlei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
医生端小程序 v1.2 1、复筛表单
parent
b3e2ebf3
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
951 additions
and
68 deletions
+951
-68
Doctor.vue
src/doctor/Doctor.vue
+1
-1
SecondDetail.vue
src/doctor/screening/detail/SecondDetail.vue
+155
-48
CommonBottom.vue
src/doctor/screening/second/CommonBottom.vue
+419
-0
FormCont.vue
src/doctor/screening/second/FormCont.vue
+375
-18
SecondForm.vue
src/doctor/screening/second/SecondForm.vue
+1
-1
No files found.
src/doctor/Doctor.vue
View file @
f2053694
...
@@ -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
=
'
f44efca7-3c9b-4638-b8b0-8e35c6fbb54b
'
token
=
'
ce71f4f0-5464-4b22-9cad-5f53e66a8875
'
}
}
}
}
if
(
token
)
{
if
(
token
)
{
...
...
src/doctor/screening/detail/SecondDetail.vue
View file @
f2053694
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
</div>
</div>
<div
class=
'top-label mt-3'
>
<div
class=
'top-label mt-3'
>
<span
>
报告日期:
<span
class=
'color-b'
>
{{
info
.
screenDate
||
'-'
}}
</span></span>
<span>
报告日期:
<span
class=
'color-b'
>
{{
info
.
screenDate
||
'-'
}}
</span></span>
</div>
</div>
<div
class=
'top-label'
>
<div
class=
'top-label'
>
<span>
慢病高危评估结果:
</span>
<span>
慢病高危评估结果:
</span>
...
@@ -26,12 +26,35 @@
...
@@ -26,12 +26,35 @@
</div>
</div>
<div
v-if=
'info.specialScreenResult && info.specialScreenResult !=9'
<div
v-if=
'info.specialScreenResult && info.specialScreenResult !=9'
class=
'flex items-center flex-wrap gap-x-2.5 gap-y-1 mt-2'
>
class=
'flex items-center flex-wrap gap-x-2.5 gap-y-1 mt-2'
>
<div
v-for=
'(item, index) in highRiskList'
:key=
'index'
class=
'tag tag-red'
>
<div
v-for=
'(item, index) in highRiskList'
:key=
'index'
class=
'tag tag-red'
@
click=
'toShowHighRisk(item)'
>
<span>
{{
item
.
name
}}
:
</span><span
class=
'color-red'
>
{{
item
.
num
||
0
}}
项
</span>
<span>
{{
item
.
name
}}
:
</span><span
class=
'color-red'
>
{{
item
.
num
||
0
}}
项
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<van-popup
v-model:show=
'showRiskHighItem'
position=
'bottom'
>
<div
class=
'p-4'
style=
'height: 100%'
>
<div
class=
'flex justify-between items-center mb-4 pop-title'
>
<div></div>
<div>
存在以下风险元素
</div>
<div
@
click=
'showRiskHighItem = false'
style=
'font-weight: 400'
>
取消
</div>
</div>
<!--
<div
class=
''
></div>
-->
<div
style=
'height: 80%;overflow: auto'
>
<div
class=
'pt-3 pb-3 bg-white h-full'
>
<div
v-for=
'(item, index) in riskHighItemList'
:key=
'item.id'
>
<div
class=
'detail-content flex'
>
<div>
{{
index
+
1
}}
、
</div>
<div>
{{
item
.
name
}}
</div>
</div>
</div>
</div>
</div>
</div>
</van-popup>
</div>
</div>
<div
class=
'p-3 grow cont-box'
>
<div
class=
'p-3 grow cont-box'
>
<div
class=
'p-3 h-full cont-inner'
>
<div
class=
'p-3 h-full cont-inner'
>
...
@@ -154,7 +177,7 @@
...
@@ -154,7 +177,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
BMI(体质指数)
</span>
<span
class=
'shrink-0 mr-2 label'
>
BMI(体质指数)
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.bmi || '-'}} kg/m²
</span>
<span>
{{ info.bmi || '-'
}} kg/m²
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -167,7 +190,7 @@
...
@@ -167,7 +190,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
腰围
</span>
<span
class=
'shrink-0 mr-2 label'
>
腰围
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.waistline || '-'}} cm
</span>
<span>
{{ info.waistline || '-'
}} cm
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -180,20 +203,23 @@
...
@@ -180,20 +203,23 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
锻炼频率
</span>
<span
class=
'shrink-0 mr-2 label'
>
锻炼频率
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{info.exerciseFrequencyName || '-'}}
</span>
<span>
{{ info.exerciseFrequencyName || '-' }}
</span>
<span
v-if=
"info.exerciseFrequency == 2 && info.isExerciseFiveName"
>
({{info.isExerciseFiveName}})
</span>
<span
v-if=
'info.exerciseFrequency == 2 && info.isExerciseFiveName'
>
({{ info.isExerciseFiveName }})
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"[1,2,3].includes(info.exerciseFrequency) && exerciseShow"
>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
'[1,2,3].includes(info.exerciseFrequency) && exerciseShow'
>
<span
class=
'shrink-0 mr-2 label'
>
每次锻炼时间
</span>
<span
class=
'shrink-0 mr-2 label'
>
每次锻炼时间
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{
info.everyExercise || '-'
}} 分钟
</span>
<span>
{{
info.everyExercise || '-'
}} 分钟
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"[1,2,3].includes(info.exerciseFrequency) && exerciseShow"
>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
'[1,2,3].includes(info.exerciseFrequency) && exerciseShow'
>
<span
class=
'shrink-0 mr-2 label'
>
可达到中等及以上运动强度
</span>
<span
class=
'shrink-0 mr-2 label'
>
可达到中等及以上运动强度
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{
info.mediumStrengthName
}}
</span>
<span>
{{
info.mediumStrengthName
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -206,7 +232,7 @@
...
@@ -206,7 +232,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
女性病史
</span>
<span
class=
'shrink-0 mr-2 label'
>
女性病史
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.femaleMedicalHistoryName || '-'}}
</span>
<span>
{{ info.femaleMedicalHistoryName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -219,7 +245,7 @@
...
@@ -219,7 +245,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
用药史
</span>
<span
class=
'shrink-0 mr-2 label'
>
用药史
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.medicineHistoryName || '-'}}
</span>
<span>
{{ info.medicineHistoryName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -232,7 +258,7 @@
...
@@ -232,7 +258,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
高密度脂蛋白胆固醇
</span>
<span
class=
'shrink-0 mr-2 label'
>
高密度脂蛋白胆固醇
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.hdlCholesterin || '-'}} mmol/L
</span>
<span>
{{ info.hdlCholesterin || '-'
}} mmol/L
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -245,7 +271,7 @@
...
@@ -245,7 +271,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
甘油三酯
</span>
<span
class=
'shrink-0 mr-2 label'
>
甘油三酯
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.triglyceride || '-'}} mmol/L
</span>
<span>
{{ info.triglyceride || '-'
}} mmol/L
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -258,7 +284,7 @@
...
@@ -258,7 +284,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
总胆固醇
</span>
<span
class=
'shrink-0 mr-2 label'
>
总胆固醇
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.serumCholesterin || '-'}} mmol/L
</span>
<span>
{{ info.serumCholesterin || '-'
}} mmol/L
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -270,7 +296,7 @@
...
@@ -270,7 +296,7 @@
<div
class=
'list'
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span>
<span>
<span>
{{ info.touchHarmfulName || '-'}}
</span>
<span>
{{ info.touchHarmfulName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -297,7 +323,7 @@
...
@@ -297,7 +323,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
饮食习惯
</span>
<span
class=
'shrink-0 mr-2 label'
>
饮食习惯
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.dietaryHabitName || '-'}}
</span>
<span>
{{ info.dietaryHabitName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -310,25 +336,25 @@
...
@@ -310,25 +336,25 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
饮酒频率
</span>
<span
class=
'shrink-0 mr-2 label'
>
饮酒频率
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.drinkFrequencyName || '-'}}
</span>
<span>
{{ info.drinkFrequencyName || '-'
}}
</span>
</span>
</span>
</div>
</div>
<div
v-if=
"[2,3,4].includes(info.drinkFrequency)"
>
<div
v-if=
'[2,3,4].includes(info.drinkFrequency)'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
饮酒种类
</span>
<span
class=
'shrink-0 mr-2 label'
>
饮酒种类
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ $addrJoin(info.drinkKindName, info.drinkKindOther) || '-'}}
</span>
<span>
{{ $addrJoin(info.drinkKindName, info.drinkKindOther) || '-'
}}
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'shrink-0 mr-2 label'
>
日饮酒量
</div>
<div
class=
'shrink-0 mr-2 label'
>
日饮酒量
</div>
<div
class=
'text-end'
>
<div
class=
'text-end'
>
<div
v-for=
"item in (info.drinkKindCapacityList || [])"
:key=
"item.drinkKind"
<div
v-for=
'item in (info.drinkKindCapacityList || [])'
:key=
'item.drinkKind'
>
>
<span>
{{
item.drinkKindName}}:
</span>
<span>
{{item.drinkCapacity || '-'
}} mL
</span>
<span>
{{
item.drinkKindName }}:
</span>
<span>
{{ item.drinkCapacity || '-'
}} mL
</span>
</div>
</div>
<div>
<div>
<span>
平均:
</span><span>
{{
info.dayDrink || '-'
}} mL
</span>
<span>
平均:
</span><span>
{{
info.dayDrink || '-'
}} mL
</span>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -336,19 +362,19 @@
...
@@ -336,19 +362,19 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
开始饮酒年龄
</span>
<span
class=
'shrink-0 mr-2 label'
>
开始饮酒年龄
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.startDrinkAge || '-'}} 岁
</span>
<span>
{{ info.startDrinkAge || '-'
}} 岁
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
是否戒酒
</span>
<span
class=
'shrink-0 mr-2 label'
>
是否戒酒
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.giveDrinkName || '-'}}
</span>
<span>
{{ info.giveDrinkName || '-'
}}
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"info.giveDrink == 1"
>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
'info.giveDrink == 1'
>
<span
class=
'shrink-0 mr-2 label'
>
戒酒年龄
</span>
<span
class=
'shrink-0 mr-2 label'
>
戒酒年龄
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.giveDrinkStart || '-'}} 岁
</span>
<span>
{{ info.giveDrinkStart || '-'
}} 岁
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -362,31 +388,35 @@
...
@@ -362,31 +388,35 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
吸烟情况
</span>
<span
class=
'shrink-0 mr-2 label'
>
吸烟情况
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.isSmokingName || '-'}}
</span>
<span>
{{ info.isSmokingName || '-'
}}
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"info.isSmoking == 3 && smokeShow"
>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
'info.isSmoking == 3 && smokeShow'
>
<span
class=
'shrink-0 mr-2 label'
>
日吸烟量
</span>
<span
class=
'shrink-0 mr-2 label'
>
日吸烟量
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.daySmoking || '-'}} 支
</span>
<span>
{{ info.daySmoking || '-'
}} 支
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"info.isSmoking == 3 && smokeShow"
>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
'info.isSmoking == 3 && smokeShow'
>
<span
class=
'shrink-0 mr-2 label'
>
开始吸烟年龄
</span>
<span
class=
'shrink-0 mr-2 label'
>
开始吸烟年龄
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.startSmoking || '-'}} 岁
</span>
<span>
{{ info.startSmoking || '-'
}} 岁
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"info.isSmoking == 2 && smokeShow"
>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
'info.isSmoking == 2 && smokeShow'
>
<span
class=
'shrink-0 mr-2 label'
>
戒烟年龄
</span>
<span
class=
'shrink-0 mr-2 label'
>
戒烟年龄
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.giveSmokingAge || '-'}} 岁
</span>
<span>
{{ info.giveSmokingAge || '-'
}} 岁
</span>
</span>
</span>
</div>
</div>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
"smokeShow && info?.diseaseArrays?.includes(1)"
>
<div
class=
'flex justify-between py-1 border-bottom item'
v-if=
'smokeShow && info?.diseaseArrays?.includes(1)'
>
<span
class=
'shrink-0 mr-2 label'
>
经常吸入二手烟
</span>
<span
class=
'shrink-0 mr-2 label'
>
经常吸入二手烟
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.secondSmokingName || '-'}}
</span>
<span>
{{ info.secondSmokingName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -399,7 +429,7 @@
...
@@ -399,7 +429,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
黑棘皮病
</span>
<span
class=
'shrink-0 mr-2 label'
>
黑棘皮病
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.blackSpinySkinName || '-'}}
</span>
<span>
{{ info.blackSpinySkinName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -412,7 +442,7 @@
...
@@ -412,7 +442,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
长期精神紧张
</span>
<span
class=
'shrink-0 mr-2 label'
>
长期精神紧张
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.mentalTensionName || '-'}}
</span>
<span>
{{ info.mentalTensionName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -425,7 +455,7 @@
...
@@ -425,7 +455,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
皮肤或肌腱黄色瘤
</span>
<span
class=
'shrink-0 mr-2 label'
>
皮肤或肌腱黄色瘤
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.xanthomaName || '-'}}
</span>
<span>
{{ info.xanthomaName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -438,7 +468,7 @@
...
@@ -438,7 +468,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
跟腱增厚
</span>
<span
class=
'shrink-0 mr-2 label'
>
跟腱增厚
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.tendoIncrassationName || '-'}}
</span>
<span>
{{ info.tendoIncrassationName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -451,7 +481,7 @@
...
@@ -451,7 +481,7 @@
<div
class=
'flex justify-between py-1 border-bottom item'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
中国糖尿病风险评分
</span>
<span
class=
'shrink-0 mr-2 label'
>
中国糖尿病风险评分
</span>
<span
class=
'text-end'
>
<span
class=
'text-end'
>
<span>
{{ info.riskScoreName || '-'}}
</span>
<span>
{{ info.riskScoreName || '-'
}}
</span>
</span>
</span>
</div>
</div>
</div>
</div>
...
@@ -529,6 +559,8 @@ export default {
...
@@ -529,6 +559,8 @@ export default {
],
],
// 全部展开、收起
// 全部展开、收起
collapseAll
:
false
,
collapseAll
:
false
,
showRiskHighItem
:
false
,
riskHighItemList
:
[],
info
:
{},
info
:
{},
columnsBase
:
[
columnsBase
:
[
{
title
:
'姓名'
,
key
:
'residentName'
},
{
title
:
'姓名'
,
key
:
'residentName'
},
...
@@ -764,31 +796,67 @@ export default {
...
@@ -764,31 +796,67 @@ export default {
let
list
=
[]
let
list
=
[]
let
o
=
{
name
:
''
,
num
:
0
}
let
o
=
{
name
:
''
,
num
:
0
}
if
(
hypertensionHighItem
.
length
)
{
if
(
hypertensionHighItem
.
length
)
{
o
=
{
name
:
'高血压风险因素'
,
num
:
hypertensionHighItem
.
length
}
o
=
{
id
:
1
,
name
:
'高血压风险因素'
,
num
:
hypertensionHighItem
.
length
,
highItem
:
hypertensionHighItem
,
dict
:
`CP00141`
}
list
.
push
(
o
)
list
.
push
(
o
)
}
}
if
(
diabetesHighItem
.
length
)
{
if
(
diabetesHighItem
.
length
)
{
o
=
{
name
:
'糖尿病风险因素'
,
num
:
diabetesHighItem
.
length
}
o
=
{
id
:
2
,
name
:
'糖尿病风险因素'
,
num
:
diabetesHighItem
.
length
,
highItem
:
diabetesHighItem
,
dict
:
`CP00142`
}
list
.
push
(
o
)
list
.
push
(
o
)
}
}
if
(
coronaryHighItem
.
length
)
{
if
(
coronaryHighItem
.
length
)
{
o
=
{
name
:
'冠心病风险因素'
,
num
:
coronaryHighItem
.
length
}
o
=
{
id
:
3
,
name
:
'冠心病风险因素'
,
num
:
coronaryHighItem
.
length
,
highItem
:
coronaryHighItem
,
dict
:
`CP00143`
}
list
.
push
(
o
)
list
.
push
(
o
)
}
}
if
(
strokeHighItem
.
length
)
{
if
(
strokeHighItem
.
length
)
{
o
=
{
name
:
'脑卒中风险因素'
,
num
:
strokeHighItem
.
length
}
o
=
{
id
:
4
,
name
:
'脑卒中风险因素'
,
num
:
strokeHighItem
.
length
,
highItem
:
strokeHighItem
,
dict
:
`CP00144`
}
list
.
push
(
o
)
list
.
push
(
o
)
}
}
if
(
pulmonaryHighItem
.
length
)
{
if
(
pulmonaryHighItem
.
length
)
{
o
=
{
name
:
'慢阻肺风险因素'
,
num
:
pulmonaryHighItem
.
length
}
o
=
{
id
:
5
,
name
:
'慢阻肺风险因素'
,
num
:
pulmonaryHighItem
.
length
,
highItem
:
pulmonaryHighItem
,
dict
:
`CP00145`
}
list
.
push
(
o
)
list
.
push
(
o
)
}
}
if
(
nephrosisHighItem
.
length
)
{
if
(
nephrosisHighItem
.
length
)
{
o
=
{
name
:
'慢性肾脏病风险因素'
,
num
:
nephrosisHighItem
.
length
}
o
=
{
id
:
6
,
name
:
'慢性肾脏病风险因素'
,
num
:
nephrosisHighItem
.
length
,
highItem
:
nephrosisHighItem
,
dict
:
`CP00146`
}
list
.
push
(
o
)
list
.
push
(
o
)
}
}
if
(
dyslipemiaHighItem
.
length
)
{
if
(
dyslipemiaHighItem
.
length
)
{
o
=
{
name
:
'血脂异常风险因素'
,
num
:
dyslipemiaHighItem
.
length
}
o
=
{
id
:
7
,
name
:
'血脂异常风险因素'
,
num
:
dyslipemiaHighItem
.
length
,
highItem
:
dyslipemiaHighItem
,
dict
:
`CP00147`
}
list
.
push
(
o
)
list
.
push
(
o
)
}
}
this
.
highRiskList
=
list
this
.
highRiskList
=
list
...
@@ -822,6 +890,19 @@ export default {
...
@@ -822,6 +890,19 @@ export default {
this
.
activeCollapse
=
this
.
collapseList
.
map
(
e
=>
e
.
name
)
this
.
activeCollapse
=
this
.
collapseList
.
map
(
e
=>
e
.
name
)
}
}
this
.
collapseAll
=
!
this
.
collapseAll
this
.
collapseAll
=
!
this
.
collapseAll
},
toShowHighRisk
(
val
)
{
let
res
=
[]
let
dictInfo
=
this
.
store
.
getDict
(
val
.
dict
)
let
highItemList
=
val
.
highItem
||
[]
highItemList
.
forEach
(
item
=>
{
let
infoList
=
dictInfo
.
filter
(
e
=>
e
.
value
==
item
)
if
(
infoList
&&
infoList
.
length
)
{
res
.
push
(
infoList
[
0
])
}
})
this
.
riskHighItemList
=
res
this
.
showRiskHighItem
=
true
}
}
}
}
}
}
...
@@ -922,4 +1003,30 @@ table {
...
@@ -922,4 +1003,30 @@ table {
.gap-y-1 {
.gap-y-1 {
row-gap: 4px;
row-gap: 4px;
}
}
.pop-title {
color: #262626;
font-size: 16px;
line-height: 24px;
font-weight: bold;
}
.de-driver {
border: 1px solid #D7D8DA;
}
.bg-white {
background: #FFFFFF;
padding: 12px 16px;
border-radius: 8px;
}
.detail-content {
color: #F5222D;
font-size: 16px;
line-height: 1.5;
}
:deep(.van-popup) {
height: 50% !important;
background: #F5F5F5;
}
</
style
>
</
style
>
src/doctor/screening/second/CommonBottom.vue
0 → 100644
View file @
f2053694
<
template
>
<div>
<van-form
ref=
'form'
>
<div
class=
'no-req-label'
v-if=
'showPush'
>
请选择推送渠道
</div>
<van-field
v-model=
'form.isSmsIsWxStr'
style=
'padding: 0px'
:rules=
'rules.isSmsIsWxStr'
>
<template
#
input
>
<div
class=
'w-full'
>
<div>
<checkBtn
class=
'mt-3'
column-1
text-align=
'left'
:options=
'vxList'
v-model:value=
'checkVx'
:fieldNames=
"
{text: 'name', value: 'value'}"
>
</checkBtn>
<div
class=
'vx-cb'
>
<van-checkbox-group
v-model=
'checkVxCb'
shape=
'square'
icon-size=
'18px'
>
<van-checkbox
:name=
'1'
/>
</van-checkbox-group>
</div>
</div>
<div
class=
'push-lab'
>
随访信息将通过小程序消息推送给居民
</div>
<checkBtn
class=
'mt-3'
column-1
text-align=
'left'
:options=
'messageList'
v-model:value=
'checkMessage'
:fieldNames=
"
{text: 'name', value: 'value'}"
>
</checkBtn>
<div
class=
'ms-cb'
>
<van-checkbox-group
v-model=
'checkMessageCb'
shape=
'square'
icon-size=
'18px'
>
<van-checkbox
:name=
'1'
/>
</van-checkbox-group>
</div>
<div
class=
'push-lab'
>
随访信息将通过短信方式发送给居民
</div>
</div>
</
template
>
</van-field>
<div
:class=
"['label-title', {'mt-5': showPush}]"
>
随访单位
</div>
<van-field
v-model=
'form.visitUnitName'
is-link
readonly
placeholder=
'随访单位'
class=
'input-back mt-2 form-input'
:rules=
'rules.visitUnitName'
@
click=
'show1 = true'
/>
<DocUnit
v-model:show=
'show1'
v-model:value=
'form.visitUnitId'
@
change=
'changeUnit'
/>
<div
class=
'label-title mt-5'
>
随访科室
</div>
<van-field
v-model=
'form.visitOfficeName'
is-link
readonly
placeholder=
'随访科室'
class=
'input-back mt-2 form-input'
:rules=
'rules.visitOfficeName'
@
click=
'show2 = true'
/>
<DocOffice
v-model:show=
'show2'
v-model:value=
'form.visitOfficeId'
@
change=
'changeOffice'
:unitId=
'form.visitUnitId'
/>
<div
class=
'label-title mt-5'
>
随访医生
</div>
<van-field
v-model=
'form.visitDoctorName'
is-link
readonly
placeholder=
'随访医生'
class=
'input-back mt-2 form-input'
:rules=
'rules.visitDoctorName'
@
click=
'show3 = true'
/>
<DocOfficeDoctor
v-model:show=
'show3'
v-model:value=
'form.visitDoctorId'
@
change=
'changeDoctor'
:unitId=
'form.visitUnitId'
:officeId=
'form.visitOfficeId'
/>
</van-form>
</div>
</template>
<
script
>
import
dayjs
from
'dayjs'
import
{
useStore
}
from
'@/doctor/store'
import
DocUnit
from
'@/doctor/components/docUnit/DocUnit'
import
DocOffice
from
'@/doctor/components/docOffice/DocOffice'
import
DocOfficeDoctor
from
'@/doctor/components/docOfficeDoctor/DocOfficeDoctor'
import
CheckBtn
from
'@/doctor/components/checkBtn/CheckBtn'
export
default
{
name
:
'CommonBottom'
,
components
:
{
CheckBtn
,
DocOfficeDoctor
,
DocOffice
,
DocUnit
},
props
:
{
info
:
{
default
:
()
=>
{
return
{}
}
},
firstForm
:
{
default
:
()
=>
{
return
{}
}
},
modeEnumList
:
{
default
:
()
=>
{
return
{}
}
}
},
data
()
{
return
{
store
:
useStore
(),
show1
:
false
,
show2
:
false
,
show3
:
false
,
vxList
:
[],
checkVx
:
1
,
checkVxCb
:
[
1
],
messageList
:
[],
checkMessage
:
undefined
,
checkMessageCb
:
[],
form
:
{
isSmsIsWx
:
[
1
]
},
rules
:
{
isSmsIsWxStr
:
[{
required
:
false
,
message
:
'请选择'
}],
visitUnitName
:
[{
required
:
true
,
message
:
'请选择'
}],
visitOfficeName
:
[{
required
:
true
,
message
:
'请选择'
}],
visitDoctorName
:
[{
required
:
true
,
message
:
'请选择'
}]
}
}
},
watch
:
{
'info'
:
{
handler
()
{
this
.
form
=
this
.
setForm
(
this
.
info
)
},
immediate
:
true
},
'firstForm.residentsRecord'
:
{
handler
()
{
this
.
vxList
=
this
.
getVxEnum
(
this
.
firstForm
)
this
.
messageList
=
this
.
getMessageEnum
(
this
.
firstForm
.
residentsRecord
)
},
immediate
:
true
,
deep
:
true
},
'checkMessage'
:
{
handler
()
{
this
.
form
.
isSms
=
2
if
(
this
.
checkMessage
)
{
this
.
form
.
isSms
=
1
this
.
form
.
isSmsIsWx
.
push
(
2
)
this
.
form
.
isSmsIsWxStr
=
2
this
.
checkMessageCb
=
[
1
]
}
else
{
this
.
form
.
isSmsIsWx
=
this
.
form
.
isSmsIsWx
.
filter
(
item
=>
item
!=
2
)
this
.
checkMessageCb
=
[]
//判断推送渠道是否存在值
if
(
!
this
.
checkVx
)
{
this
.
form
.
isSmsIsWxStr
=
''
}
}
}
},
'checkVx'
:
{
handler
()
{
this
.
form
.
isWx
=
2
if
(
this
.
checkVx
)
{
this
.
form
.
isWx
=
1
this
.
form
.
isSmsIsWx
.
push
(
1
)
this
.
form
.
isSmsIsWxStr
=
1
this
.
checkVxCb
=
[
1
]
}
else
{
this
.
form
.
isSmsIsWx
=
this
.
form
.
isSmsIsWx
.
filter
(
item
=>
item
!=
1
)
this
.
checkVxCb
=
[]
//判断推送渠道是否存在值
if
(
!
this
.
checkMessage
)
{
this
.
form
.
isSmsIsWxStr
=
''
}
}
}
},
'checkVxCb'
:
{
handler
()
{
if
(
this
.
checkVxCb
&&
this
.
checkVxCb
.
length
)
{
this
.
checkVx
=
1
}
else
{
this
.
checkVx
=
undefined
}
}
},
'checkMessageCb'
:
{
handler
()
{
if
(
this
.
checkMessageCb
&&
this
.
checkMessageCb
.
length
)
{
this
.
checkMessage
=
2
}
else
{
this
.
checkMessage
=
undefined
}
}
}
},
computed
:
{
authInfo
()
{
return
this
.
store
.
$state
.
authInfo
},
//是否显示推送渠道
showPush
()
{
let
res
=
false
let
list
=
[]
if
(
this
.
firstForm
.
visitWayRules
)
{
list
=
this
.
firstForm
.
visitWayRules
.
split
(
','
).
map
(
item
=>
Number
(
item
))
}
if
(
list
&&
list
.
length
&&
(
list
.
includes
(
2
)
||
list
.
includes
(
3
)
||
list
.
includes
(
4
)))
{
res
=
true
}
return
res
}
},
methods
:
{
//微信
getVxEnum
(
patientInfo
=
{})
{
return
[{
name
:
`微信
${
patientInfo
.
sendNumber
?
`(
${
this
.
$phoneHide
(
patientInfo
.
sendNumber
)}
已注册小程序)`
:
`(未注册小程序)`
}
`
,
value
:
1
}]
},
getMessageEnum
(
patientInfo
=
{})
{
return
[{
name
:
`短信
${
patientInfo
.
telephone
?
`(手机号
${
this
.
$phoneHide
(
patientInfo
.
telephone
)}
)`
:
`(手机号 不存在)`
}
`
,
value
:
2
}]
},
setForm
(
info
)
{
const
form
=
{
visitDate
:
new
dayjs
(),
createDate
:
new
dayjs
(),
// 随访单位
visitUnitId
:
this
.
authInfo
.
unitId
,
visitUnitName
:
this
.
authInfo
.
unitName
,
// 随访科室
visitOfficeId
:
this
.
authInfo
.
officeId
,
visitOfficeName
:
this
.
authInfo
.
officeName
,
// 随访医生
visitDoctorId
:
this
.
authInfo
.
relationId
,
visitDoctorName
:
this
.
authInfo
.
nickName
,
// 录入单位
createUnitId
:
this
.
authInfo
.
unitId
,
createUnitName
:
this
.
authInfo
.
unitName
,
// 录入科室
createOfficeId
:
this
.
authInfo
.
officeId
,
createOfficeName
:
this
.
authInfo
.
officeName
,
// 录入医生
createDoctorId
:
this
.
authInfo
.
relationId
,
createDoctorName
:
this
.
authInfo
.
nickName
,
isSms
:
2
,
isWx
:
1
,
isSmsIsWx
:
[
1
]
}
Reflect
.
ownKeys
(
form
).
forEach
(
key
=>
{
if
(
info
[
key
]
!=
undefined
)
{
form
[
key
]
=
info
[
key
]
}
})
return
form
},
changeUnit
(
val
)
{
this
.
form
.
visitUnitName
=
val
.
unitName
this
.
form
.
visitUnitId
=
val
.
id
this
.
form
.
visitOfficeId
=
undefined
this
.
form
.
visitOfficeName
=
undefined
this
.
form
.
visitDoctorId
=
undefined
this
.
form
.
visitDoctorName
=
undefined
this
.
show1
=
false
},
changeOffice
(
val
)
{
this
.
form
.
visitOfficeId
=
val
.
id
this
.
form
.
visitOfficeName
=
val
.
officeName
this
.
form
.
visitDoctorId
=
undefined
this
.
form
.
visitDoctorName
=
undefined
this
.
show2
=
false
},
changeDoctor
(
val
)
{
this
.
form
.
visitDoctorId
=
val
.
id
this
.
form
.
visitDoctorName
=
val
.
staffName
this
.
show3
=
false
},
onSubmit
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
const
{
isSmsIsWx
=
[],
...
others
}
=
this
.
form
let
isSms
=
2
let
isWx
=
2
let
wxTel
=
''
if
(
isSmsIsWx
.
length
&&
this
.
showPush
)
{
if
(
isSmsIsWx
.
includes
(
1
))
{
isWx
=
1
wxTel
=
this
.
modeEnumList
.
weixinTel
}
if
(
isSmsIsWx
.
includes
(
2
))
{
isSms
=
1
}
}
let
par
=
{
...
others
,
isSms
,
isWx
,
isSmsIsWx
,
sendNumber
:
wxTel
}
resolve
(
par
)
}).
catch
((
e
)
=>
{
console
.
warn
(
'ArchiveCommon error'
,
e
)
})
})
}
}
}
</
script
>
<
style
scoped
lang=
'less'
>
.title {
font-weight: bold;
margin-bottom: 20px;
}
.label-title {
font-size: 13px;
color: #595959;
font-weight: 500;
&::after {
content: "*";
color: red;
font-weight: bold;
margin-left: 4px;
}
}
.push-lab {
line-height: 20px;
color: #8C8C8C;
font-size: 12px
}
.no-req-label {
font-size: 13px;
color: #595959;
font-weight: 500;
}
.form-input {
padding: 8px 12px;
border-radius: 8px;
}
.input-back {
background: #FAFAFA;
}
.tel-back {
background: #F5F5F5;
padding: 8px;
border-radius: 0px 0px 8px 8px;
}
.tel {
background: #FFFFFF;
padding: 8px;
border-radius: 8px;
}
.tel-label {
color: #607FF0;
font-weight: bold;
}
.p-12-0 {
padding: 12px 0px;
}
.vx-cb {
position: absolute;
right: 10px;
top: 23px;
}
.ms-cb {
position: absolute;
right: 10px;
top: 97px;
}
:deep(.van-cell-group--inset) {
overflow: visible;
}
:deep(.van-cell) {
overflow: visible;
}
/*:deep(.van-field__error-message) {
position: absolute;
margin-top: 3px;
}*/
:deep(.van-cell:after) {
border-bottom: 0px;
}
</
style
>
\ No newline at end of file
src/doctor/screening/second/FormCont.vue
View file @
f2053694
...
@@ -78,10 +78,13 @@
...
@@ -78,10 +78,13 @@
</div>
</div>
</div>
</div>
<div
v-for=
'(item2, index2) in familyHistoryList'
>
<div
v-for=
'(item2, index2) in familyHistoryList'
>
<div
v-if=
'form.familyHistory.includes(item.value) && item2.diseaseType == item.value'
class=
'relation-bis'
>
<div
v-if=
'form.familyHistory.includes(item.value) && item2.diseaseType == item.value'
class=
'relation-bis'
>
<div
class=
'top-title'
>
以下亲人若存在
{{
item2
.
diseaseTypeName
}}
病史,请填写发病年龄
</div>
<div
class=
'top-title'
>
以下亲人若存在
{{
item2
.
diseaseTypeName
}}
病史,请填写发病年龄
</div>
<div
class=
'flex flex-wrap justify-between gap-x-2.5 gap-y-2.5'
>
<div
class=
'flex flex-wrap justify-between gap-x-2.5 gap-y-2.5'
>
<div
v-for=
'(item1,index1) in item2.relativeAgeList'
:key=
'index1'
style=
'width: 48%;'
>
<div
v-for=
'(item1,index1) in item2.relativeAgeList'
:key=
'index1'
style=
'width: 48%;'
>
<div>
<div>
<van-field
<van-field
colon
colon
...
@@ -122,7 +125,6 @@
...
@@ -122,7 +125,6 @@
</
template
>
</
template
>
</van-field>
</van-field>
</div>
</div>
<div
v-if=
'highShow'
>
<div
v-if=
'highShow'
>
<div
class=
'label-title mt-5'
>
体重
</div>
<div
class=
'label-title mt-5'
>
体重
</div>
<van-field
<van-field
...
@@ -137,7 +139,6 @@
...
@@ -137,7 +139,6 @@
</
template
>
</
template
>
</van-field>
</van-field>
</div>
</div>
<div
v-if=
'highShow'
>
<div
v-if=
'highShow'
>
<div
class=
'no-req-label mt-5'
>
BMI
</div>
<div
class=
'no-req-label mt-5'
>
BMI
</div>
<van-field
<van-field
...
@@ -166,6 +167,74 @@
...
@@ -166,6 +167,74 @@
</van-field>
</van-field>
</div>
</div>
<div
v-if=
'exerciseShow'
>
<div
class=
'label-title mt-5'
>
锻炼频率
</div>
<van-field
v-model=
'form.exerciseFrequencyName'
readonly
is-link
placeholder=
'请选择'
class=
'input-back mt-2 form-input'
@
click=
'showExerciseFrequency = true'
>
<
template
#
input
>
<span
class=
'text-end'
v-if=
'form.exerciseFrequencyName'
>
{{
form
.
exerciseFrequencyName
}}
</span>
<span
class=
'text-end'
v-if=
'!form.exerciseFrequencyName'
style=
'color: #dfdfe1'
>
请选择
</span>
</
template
>
</van-field>
<van-popup
v-model:show=
'showExerciseFrequency'
position=
'bottom'
>
<div
class=
'p-4'
style=
'height: 100%'
>
<div
class=
'flex justify-between items-center mb-4 pop-title'
>
<div
class=
'greyColor'
@
click=
'showExerciseFrequency = false'
style=
'font-weight: 400'
>
取消
</div>
<div>
锻炼频率(仅单选)
</div>
<div></div>
</div>
<div
style=
'height: 80%;overflow: auto'
>
<CheckBtn
column-1
:options=
'exerciseFrequencyList'
v-model:value=
'form.exerciseFrequency'
:fieldNames=
"{text: 'name', value: 'value'}"
@
change=
'exerciseFrequencyConfirm'
/>
</div>
</div>
</van-popup>
<div
v-if=
'[1, 2, 3, 5, 6].includes(form.exerciseFrequency)'
>
<div
class=
'no-req-label mt-5'
>
每次锻炼时间
</div>
<van-field
v-model=
'form.everyExercise'
clear-icon
placeholder=
'请输入'
class=
'input-back mt-2 form-input'
>
<
template
#
extra
>
<span
class=
'mr-2'
>
分钟
</span>
</
template
>
</van-field>
<div
class=
'no-req-label mt-5'
>
可达到中等及以上运动强度
</div>
<van-field
class=
'no-back form-input mt-2'
style=
'padding: 0'
>
<
template
#
input
>
<van-radio-group
v-model=
'form.mediumStrength'
direction=
'horizontal'
class=
'w-full doc-radio-group'
>
<van-radio
v-for=
"item in store.getDict('CP00120')"
:key=
'item.value'
:name=
'item.value'
label-position=
'left'
>
{{
item
.
name
}}
</van-radio>
</van-radio-group>
</
template
>
</van-field>
</div>
</div>
<div
v-if=
'womanMHShow'
>
<div
v-if=
'womanMHShow'
>
<div
class=
'no-req-label mt-5'
>
女性病史
</div>
<div
class=
'no-req-label mt-5'
>
女性病史
</div>
<van-field
<van-field
...
@@ -177,14 +246,17 @@
...
@@ -177,14 +246,17 @@
@
click=
'showFemaleMedicalHistory= true'
@
click=
'showFemaleMedicalHistory= true'
>
>
<
template
#
input
>
<
template
#
input
>
<span
class=
'text-end'
v-if=
'form.femaleMedicalHistoryName'
>
{{
form
.
femaleMedicalHistoryName
}}
</span>
<span
class=
'text-end'
v-if=
'form.femaleMedicalHistoryName'
>
{{
form
.
femaleMedicalHistoryName
}}
</span>
<span
class=
'text-end'
v-if=
'!form.femaleMedicalHistoryName'
style=
'color: #dfdfe1'
>
请选择
</span>
<span
class=
'text-end'
v-if=
'!form.femaleMedicalHistoryName'
style=
'color: #dfdfe1'
>
请选择
</span>
</
template
>
</
template
>
</van-field>
</van-field>
<van-popup
v-model:show=
'showFemaleMedicalHistory'
position=
'bottom'
>
<van-popup
v-model:show=
'showFemaleMedicalHistory'
position=
'bottom'
>
<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=
'showFemaleMedicalHistory = false'
style=
'font-weight: 400'
>
取消
</div>
<div
class=
'greyColor'
@
click=
'showFemaleMedicalHistory = false'
style=
'font-weight: 400'
>
取消
</div>
<div>
女性病史(可多选)
</div>
<div>
女性病史(可多选)
</div>
<div
class=
'blueColor'
@
click=
'femaleMedicalHistoryConfirm'
>
确定
</div>
<div
class=
'blueColor'
@
click=
'femaleMedicalHistoryConfirm'
>
确定
</div>
</div>
</div>
...
@@ -217,14 +289,15 @@
...
@@ -217,14 +289,15 @@
<van-popup
v-model:show=
'showMedicineHistory'
position=
'bottom'
>
<van-popup
v-model:show=
'showMedicineHistory'
position=
'bottom'
>
<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=
'showMedicineHistory = false'
style=
'font-weight: 400'
>
取消
</div>
<div
class=
'greyColor'
@
click=
'showMedicineHistory = false'
style=
'font-weight: 400'
>
取消
</div>
<div>
用药史(可多选)
</div>
<div>
用药史(可多选)
</div>
<div
class=
'blueColor'
@
click=
'medicineHistoryConfirm'
>
确定
</div>
<div
class=
'blueColor'
@
click=
'medicineHistoryConfirm'
>
确定
</div>
</div>
</div>
<div
style=
'height: 80%;overflow: auto'
>
<div
style=
'height: 80%;overflow: auto'
>
<CheckBtn
multiple
<CheckBtn
multiple
column-1
column-1
:options=
"medicineHistoryList"
:options=
'medicineHistoryList'
v-model:value=
'form.medicineHistory'
v-model:value=
'form.medicineHistory'
:fieldNames=
"{text: 'name', value: 'value'}"
:fieldNames=
"{text: 'name', value: 'value'}"
/>
/>
...
@@ -292,7 +365,7 @@
...
@@ -292,7 +365,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=
'showTouchHarmful = false'
style=
'font-weight: 400'
>
取消
</div>
<div
class=
'greyColor'
@
click=
'showTouchHarmful = false'
style=
'font-weight: 400'
>
取消
</div>
<div>
用药史(可多选)
</div>
<div>
可多选
</div>
<div
class=
'blueColor'
@
click=
'touchHarmfulConfirm'
>
确定
</div>
<div
class=
'blueColor'
@
click=
'touchHarmfulConfirm'
>
确定
</div>
</div>
</div>
<div
style=
'height: 80%;overflow: auto'
>
<div
style=
'height: 80%;overflow: auto'
>
...
@@ -305,7 +378,232 @@
...
@@ -305,7 +378,232 @@
</div>
</div>
</div>
</div>
</van-popup>
</van-popup>
</div>
<div
v-if=
'bloodPressureShow'
>
<div
class=
'flex items-center justify-between tip-box mt-5'
>
<div
class=
'doc-form-label shrink-0'
>
现测血压(mmHg)
</div>
<BloodPressurePanel
:pressureObj=
'pressureObj'
/>
</div>
<div
class=
'sub-text my-3'
>
第一次
</div>
<table
class=
'w-full mb-2'
>
<tr
class=
'sub-text'
>
<td>
收缩压(高压)
</td>
<td
style=
'width: 1em'
></td>
<td>
舒张压(低压)
</td>
</tr>
<tr>
<td
class=
'flex items-center'
>
<van-field
v-model=
'form.pressureOneSbp'
name=
'pressureOneSbp'
label=
''
type=
'number'
placeholder=
'60~300,整数'
maxlength=
'10'
:rules=
'rules.pressureDbp'
error-message-align=
'left'
input-align=
'left'
class=
'input-back form-input'
/>
</td>
<td
class=
'text-center'
>
<span
class=
'divide'
>
/
</span>
</td>
<td>
<van-field
v-model=
'form.pressureOneDbp'
name=
'pressureOneDbp'
label=
''
type=
'number'
placeholder=
'30~300,整数'
maxlength=
'10'
:rules=
'rules.pressureSbp'
error-message-align=
'left'
input-align=
'left'
class=
'input-back form-input'
/>
</td>
</tr>
</table>
<BloodPressureBt
:pressureObj=
'pressureObj'
@
getValue=
'setPressureOne'
>
第一次测量
</BloodPressureBt>
<div
class=
'sub-text my-3'
>
第二次
</div>
<table
class=
'w-full mb-2'
>
<tr
class=
'sub-text'
>
<td>
收缩压(高压)
</td>
<td
style=
'width: 1em'
></td>
<td>
舒张压(低压)
</td>
</tr>
<tr>
<td>
<van-field
v-model=
'form.pressureTwoSbp'
name=
'pressureTwoSbp'
label=
''
type=
'number'
placeholder=
'60~300,整数'
maxlength=
'10'
:rules=
'rules.pressureDbp'
error-message-align=
'left'
input-align=
'left'
class=
'input-back form-input'
/>
</td>
<td
class=
'text-center'
>
<span
class=
'divide'
>
/
</span>
</td>
<td>
<van-field
v-model=
'form.pressureTwoDbp'
name=
'pressureTwoDbp'
label=
''
type=
'number'
placeholder=
'30~300,整数'
maxlength=
'10'
:rules=
'rules.pressureSbp'
error-message-align=
'left'
input-align=
'left'
class=
'input-back form-input'
/>
</td>
</tr>
</table>
<BloodPressureBt
:pressureObj=
'pressureObj'
@
getValue=
'setPressureTwo'
>
第二次测量
</BloodPressureBt>
</div>
<div
v-if=
'eatHabitShow'
>
<div
class=
'label-title mt-5'
>
饮食习惯
</div>
<van-field
v-model=
'form.dietaryHabitName'
readonly
is-link
placeholder=
'请选择'
class=
'input-back mt-2 form-input'
@
click=
'showDietaryHabit= true'
>
<
template
#
input
>
<span
class=
'text-end'
v-if=
'form.dietaryHabitName'
>
{{
form
.
dietaryHabitName
}}
</span>
<span
class=
'text-end'
v-if=
'!form.dietaryHabitName'
style=
'color: #dfdfe1'
>
请选择
</span>
</
template
>
</van-field>
<van-popup
v-model:show=
'showDietaryHabit'
position=
'bottom'
>
<div
class=
'p-4'
style=
'height: 100%'
>
<div
class=
'flex justify-between items-center mb-4 pop-title'
>
<div
class=
'greyColor'
@
click=
'showDietaryHabit = false'
style=
'font-weight: 400'
>
取消
</div>
<div>
饮食习惯(可多选)
</div>
<div
class=
'blueColor'
@
click=
'dietaryHabitConfirm'
>
确定
</div>
</div>
<div
style=
'height: 80%;overflow: auto'
>
<CheckBtn
multiple
column-1
:options=
"store.getDict('CP00131')"
v-model:value=
'form.dietaryHabit'
:fieldNames=
"{text: 'name', value: 'value'}"
/>
</div>
</div>
</van-popup>
</div>
<div
v-if=
'drinkShow'
>
<div
class=
'label-title mt-5'
>
饮酒情况
</div>
</div>
<div
v-if=
'smokeShow'
>
<div
class=
'label-title mt-5'
>
吸烟情况
</div>
</div>
<div
v-if=
'blackSpinySkinShow'
>
<div
class=
'no-req-label mt-5'
>
黑棘皮病
</div>
<van-field
class=
'no-back form-input mt-2'
style=
'padding: 0'
>
<
template
#
input
>
<van-radio-group
v-model=
'form.blackSpinySkin'
direction=
'horizontal'
class=
'w-full doc-radio-group'
>
<van-radio
v-for=
"item in store.getDict('CP00134')"
:key=
'item.value'
:name=
'item.value'
label-position=
'left'
>
{{
item
.
name
}}
</van-radio>
</van-radio-group>
</
template
>
</van-field>
</div>
<div
v-if=
'mentalTensionShow'
>
<div
class=
'no-req-label mt-5'
>
长期精神紧张
</div>
<van-field
class=
'no-back form-input mt-2'
style=
'padding: 0'
>
<
template
#
input
>
<van-radio-group
v-model=
'form.mentalTension'
direction=
'horizontal'
class=
'w-full doc-radio-group'
>
<van-radio
v-for=
"item in store.getDict('CP00135')"
:key=
'item.value'
:name=
'item.value'
label-position=
'left'
>
{{
item
.
name
}}
</van-radio>
</van-radio-group>
</
template
>
</van-field>
</div>
<div
v-if=
'xanthomaShow'
>
<div
class=
'no-req-label mt-5'
>
皮肤或肌腱黄色瘤
</div>
<van-field
class=
'no-back form-input mt-2'
style=
'padding: 0'
>
<
template
#
input
>
<van-radio-group
v-model=
'form.xanthoma'
direction=
'horizontal'
class=
'w-full doc-radio-group'
>
<van-radio
v-for=
"item in store.getDict('CP00135')"
:key=
'item.value'
:name=
'item.value'
label-position=
'left'
>
{{
item
.
name
}}
</van-radio>
</van-radio-group>
</
template
>
</van-field>
</div>
<div
v-if=
'tendoIncrassationShow'
>
<div
class=
'no-req-label mt-5'
>
跟腱增厚
</div>
<van-field
class=
'no-back form-input mt-2'
style=
'padding: 0'
>
<
template
#
input
>
<van-radio-group
v-model=
'form.tendoIncrassation'
direction=
'horizontal'
class=
'w-full doc-radio-group'
>
<van-radio
v-for=
"item in store.getDict('CP00120')"
:key=
'item.value'
:name=
'item.value'
label-position=
'left'
>
{{
item
.
name
}}
</van-radio>
</van-radio-group>
</
template
>
</van-field>
</div>
<div
v-if=
'riskScoreShow'
>
<div
class=
'no-req-label mt-5'
>
中国糖尿病风险评分
</div>
<van-field
class=
'no-back form-input mt-2'
style=
'padding: 0'
>
<
template
#
input
>
<van-radio-group
v-model=
'riskScoreInfo'
direction=
'horizontal'
class=
'w-full doc-radio-group'
>
<van-radio
v-for=
"item in store.getDict('CP00136')"
:key=
'item.value'
:name=
'item.value'
label-position=
'left'
>
{{
item
.
name
}}
</van-radio>
</van-radio-group>
</
template
>
</van-field>
</div>
</div>
</van-form>
</van-form>
...
@@ -317,6 +615,8 @@
...
@@ -317,6 +615,8 @@
import
{
useStore
}
from
'@/doctor/store'
import
{
useStore
}
from
'@/doctor/store'
import
{
checkboxReject
}
from
'@/utils/common'
import
{
checkboxReject
}
from
'@/utils/common'
import
CheckBtn
from
'@/doctor/components/checkBtn/CheckBtn'
import
CheckBtn
from
'@/doctor/components/checkBtn/CheckBtn'
import
BloodPressureBt
from
'@/doctor/components/bloodPressure/BloodPressureBt'
import
BloodPressurePanel
from
'@/doctor/components/bloodPressure/BloodPressurePanel'
const
defaultForm
=
(
info
=
{})
=>
{
const
defaultForm
=
(
info
=
{})
=>
{
const
form
=
{
const
form
=
{
...
@@ -335,6 +635,7 @@ const defaultForm = (info = {}) => {
...
@@ -335,6 +635,7 @@ const defaultForm = (info = {}) => {
bmi
:
undefined
,
bmi
:
undefined
,
waistline
:
undefined
,
waistline
:
undefined
,
exerciseFrequency
:
undefined
,
exerciseFrequency
:
undefined
,
exerciseFrequencyName
:
undefined
,
everyExercise
:
undefined
,
everyExercise
:
undefined
,
femaleMedicalHistory
:
undefined
,
femaleMedicalHistory
:
undefined
,
femaleMedicalHistoryName
:
undefined
,
femaleMedicalHistoryName
:
undefined
,
...
@@ -347,7 +648,8 @@ const defaultForm = (info = {}) => {
...
@@ -347,7 +648,8 @@ const defaultForm = (info = {}) => {
pressureOneDbp
:
undefined
,
pressureOneDbp
:
undefined
,
pressureTwoSbp
:
undefined
,
pressureTwoSbp
:
undefined
,
pressureTwoDbp
:
undefined
,
pressureTwoDbp
:
undefined
,
dietaryHabit
:
undefined
,
dietaryHabit
:
[],
dietaryHabitName
:
undefined
,
drinkFrequency
:
undefined
,
drinkFrequency
:
undefined
,
startDrinkAge
:
undefined
,
startDrinkAge
:
undefined
,
drinkKind
:
undefined
,
drinkKind
:
undefined
,
...
@@ -392,11 +694,12 @@ const defaultForm = (info = {}) => {
...
@@ -392,11 +694,12 @@ const defaultForm = (info = {}) => {
return
form
return
form
}
}
export
default
{
export
default
{
components
:
{
CheckBtn
},
components
:
{
BloodPressurePanel
,
BloodPressureBt
,
CheckBtn
},
props
:
{
props
:
{
info
:
Object
,
info
:
Object
,
diseaseArraysInfo
:
Array
diseaseArraysInfo
:
Array
},
},
inject
:
[
'pressureObj'
],
data
()
{
data
()
{
return
{
return
{
store
:
useStore
(),
store
:
useStore
(),
...
@@ -405,9 +708,13 @@ export default {
...
@@ -405,9 +708,13 @@ export default {
//女性病史
//女性病史
showFemaleMedicalHistory
:
false
,
showFemaleMedicalHistory
:
false
,
//用药史
//用药史
showMedicineHistory
:
false
,
showMedicineHistory
:
false
,
//有害物质接触或婴幼儿时期病史
//有害物质接触或婴幼儿时期病史
showTouchHarmful
:
false
,
showTouchHarmful
:
false
,
//饮食习惯
showDietaryHabit
:
false
,
//锻炼频率
showExerciseFrequency
:
false
,
checkboxRefs
:
[],
checkboxRefs
:
[],
form
:
{},
form
:
{},
...
@@ -481,7 +788,7 @@ export default {
...
@@ -481,7 +788,7 @@ export default {
}
}
return
res
return
res
},
},
message
:
`请输入正确的数字`
message
:
`请输入正确的数字`
}],
}],
triglyceride
:
[{
triglyceride
:
[{
validator
:
(
value
,
rule
)
=>
{
validator
:
(
value
,
rule
)
=>
{
...
@@ -492,10 +799,10 @@ export default {
...
@@ -492,10 +799,10 @@ export default {
}
}
return
res
return
res
},
},
message
:
`请输入正确的数字`
message
:
`请输入正确的数字`
}],
}],
serumCholesterin
:
[{
serumCholesterin
:
[{
validator
:
(
value
,
rule
)
=>
{
validator
:
(
value
,
rule
)
=>
{
const
regex
=
/^
\d
+
(\.\d{1,2})?
$/
const
regex
=
/^
\d
+
(\.\d{1,2})?
$/
let
res
=
true
let
res
=
true
if
(
value
&&
!
regex
.
test
(
value
))
{
if
(
value
&&
!
regex
.
test
(
value
))
{
...
@@ -503,10 +810,10 @@ export default {
...
@@ -503,10 +810,10 @@ export default {
}
}
return
res
return
res
},
},
message
:
`请输入正确的数字`
message
:
`请输入正确的数字`
}],
}],
exerciseFrequency
:
[{
required
:
true
,
message
:
'请选择'
}],
exerciseFrequency
Name
:
[{
required
:
true
,
message
:
'请选择'
}],
dietaryHabit
:
[{
required
:
true
,
message
:
'请选择'
}],
dietaryHabit
Name
:
[{
required
:
true
,
message
:
'请选择'
}],
drinkFrequency
:
[{
required
:
true
,
message
:
'请选择'
}],
drinkFrequency
:
[{
required
:
true
,
message
:
'请选择'
}],
isSmoking
:
[{
required
:
true
,
message
:
'请选择'
}],
isSmoking
:
[{
required
:
true
,
message
:
'请选择'
}],
specialScreenResult
:
[{
required
:
true
,
message
:
'请选择'
}],
specialScreenResult
:
[{
required
:
true
,
message
:
'请选择'
}],
...
@@ -877,6 +1184,22 @@ export default {
...
@@ -877,6 +1184,22 @@ export default {
})
})
})
})
return
result
return
result
},
//锻炼频率单选list (pc端两个字典,移动端则合为一个字典提交时在分开为两个字段)
exerciseFrequencyList
()
{
let
res
=
[]
let
listOne
=
this
.
store
.
getDict
(
`CP00126`
)
let
listTwo
=
this
.
store
.
getDict
(
`CP00163`
)
listTwo
.
forEach
(
item
=>
{
if
(
item
.
value
==
1
)
{
item
.
value
=
5
}
if
(
item
.
value
==
2
)
{
item
.
value
=
6
}
})
return
res
=
[...
listOne
,
...
listTwo
]
}
}
},
},
watch
:
{
watch
:
{
...
@@ -1759,6 +2082,15 @@ export default {
...
@@ -1759,6 +2082,15 @@ export default {
}
}
},
},
//锻炼频率弹窗确认选择
exerciseFrequencyConfirm
()
{
this
.
exerciseFrequencyList
.
forEach
(
item
=>
{
if
(
item
.
value
==
this
.
form
.
exerciseFrequency
)
{
this
.
form
.
exerciseFrequencyName
=
item
.
name
}
})
this
.
showExerciseFrequency
=
false
},
//病史弹窗确认选择
//病史弹窗确认选择
medicalHistoryConfirm
()
{
medicalHistoryConfirm
()
{
let
res
=
[]
let
res
=
[]
...
@@ -1807,6 +2139,31 @@ export default {
...
@@ -1807,6 +2139,31 @@ export default {
this
.
form
.
touchHarmfulName
=
res
.
join
()
this
.
form
.
touchHarmfulName
=
res
.
join
()
this
.
showTouchHarmful
=
false
this
.
showTouchHarmful
=
false
},
},
//饮食习惯弹窗确认选择
dietaryHabitConfirm
()
{
let
res
=
[]
this
.
store
.
getDict
(
'CP00131'
).
forEach
(
item
=>
{
let
selected
=
this
.
form
.
dietaryHabit
.
filter
(
i
=>
i
==
item
.
value
)
if
(
selected
&&
selected
.
length
)
{
res
.
push
(
item
.
name
)
}
})
this
.
form
.
dietaryHabitName
=
res
.
join
()
this
.
showDietaryHabit
=
false
},
//血压仪器测量
setPressureOne
(
val
)
{
if
(
!
val
)
return
this
.
form
.
pressureOneSbp
=
val
.
systolicPressure
this
.
form
.
pressureOneDbp
=
val
.
diastolicPressure
},
setPressureTwo
(
val
)
{
if
(
!
val
)
return
this
.
form
.
pressureTwoSbp
=
val
.
systolicPressure
this
.
form
.
pressureTwoDbp
=
val
.
diastolicPressure
},
//家族史多选
//家族史多选
toggle
(
index
)
{
toggle
(
index
)
{
this
.
checkboxRefs
[
index
].
toggle
()
this
.
checkboxRefs
[
index
].
toggle
()
...
...
src/doctor/screening/second/SecondForm.vue
View file @
f2053694
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
ref=
'formInfo'
ref=
'formInfo'
></form-cont>
></form-cont>
<result
:residentInfoId=
'residentInfoId'
<result
:residentInfoId=
'residentInfoId'
v-show=
'step ==
3
'
v-show=
'step ==
4
'
></result>
></result>
</div>
</div>
<div
class=
'bottom-small-line'
></div>
<div
class=
'bottom-small-line'
></div>
...
...
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