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
c5abad3d
Commit
c5abad3d
authored
Jan 17, 2025
by
songrui
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'chronic-dev' of
http://gitlab.yiboshi.com/nightkis1995/frontend-h5
into chronic-dev
parents
d801ed98
04cc8438
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
726 additions
and
18 deletions
+726
-18
death.js
src/api/doctor/death.js
+12
-0
Doctor.vue
src/doctor/Doctor.vue
+1
-1
archiveCommon.vue
src/doctor/components/archiveCommon/archiveCommon.vue
+0
-1
Detail.vue
src/doctor/deathRecord/detail/Detail.vue
+263
-3
DeathRecordForm.vue
src/doctor/deathRecord/form/DeathRecordForm.vue
+112
-8
DiseasePicker.vue
src/doctor/deathRecord/form/DiseasePicker.vue
+101
-0
Index.vue
src/doctor/deathRecord/form/Index.vue
+27
-5
BaseInfo.vue
src/doctor/followUp/separateFU/form/BaseInfo.vue
+119
-0
FormCont.vue
src/doctor/followUp/separateFU/form/FormCont.vue
+17
-0
Index.vue
src/doctor/followUp/separateFU/form/Index.vue
+61
-0
HypertensionForm.vue
.../followUp/separateFU/form/components/HypertensionForm.vue
+0
-0
PatientDetail.vue
src/doctor/patientDetail/PatientDetail.vue
+2
-0
index.js
src/router/index.js
+11
-0
No files found.
src/api/doctor/death.js
0 → 100644
View file @
c5abad3d
import
{
fetchBase
}
from
'@/api/doctor/doctorFetch'
// 保存死亡记录
export
function
saveResidentsDeath
(
params
)
{
return
fetchBase
({
url
:
`/chronic-admin/v1/chronic-residents-death/save`
,
body
:
params
,
loading
:
true
})
}
// 查询死亡记录
export
function
getResidentsDeath
(
params
)
{
return
fetchBase
({
url
:
`/chronic-admin/v1/chronic-residents-death/info-record`
,
body
:
params
,
loading
:
true
})
}
\ No newline at end of file
src/doctor/Doctor.vue
View file @
c5abad3d
...
...
@@ -66,7 +66,7 @@ export default {
if
(
!
token
)
{
token
=
sessionStorage
.
getItem
(
'token'
)
if
(
process
.
env
.
NODE_ENV
!==
'production'
)
{
token
=
'
1b8515e3-66a8-458b-b4d9-0cef6f73b8c1
'
token
=
'
59c9fee7-10ef-45d7-af4a-b3d65c93c30e
'
}
}
if
(
token
)
{
...
...
src/doctor/components/archiveCommon/archiveCommon.vue
View file @
c5abad3d
...
...
@@ -374,7 +374,6 @@ export default {
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
resolve
(
this
.
form
)
}).
catch
((
e
)
=>
{
reject
(
'档案信息校验失败'
)
console
.
warn
(
'档案信息校验失败'
,
e
)
const
array
=
e
||
[]
if
(
array
.
length
)
{
...
...
src/doctor/deathRecord/detail/Detail.vue
View file @
c5abad3d
<!--死亡记录详情-->
<
template
>
<div
class=
'flex flex-col'
style=
'height: 100vh'
>
<div
class=
'p-3 text-black text-center shrink-0 doc-nav-bar'
>
<span
@
click=
'onBack'
class=
'text-12 back-bt'
>
<doc-icon
type=
'doc-left2'
/>
</span>
<span>
死亡记录详情
</span>
</div>
<div
class=
'p-3 grow cont-box'
>
<div
class=
'p-3 h-full cont-inner'
>
<div
class=
'flex justify-between collapse-head mt-2'
>
<span
class=
'text-16 font-semibold'
>
全部内容
</span>
<span
@
click=
'toggleAll'
>
<span
v-if=
'!collapseAll'
>
展开全部
</span>
<span
v-else
>
收起全部
</span>
<span
:class=
"['ml-2 icon-down',
{ 'icon-down-expanded': collapseAll }]">
<doc-icon
type=
'doc-down'
/>
</span>
</span>
</div>
<van-collapse
:model-value=
'activeCollapse'
ref=
'collapse'
class=
'doc-collapse'
@
change=
'collapseChange'
>
<van-collapse-item
key=
'1'
title=
'居民信息'
name=
'1'
>
<template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
v-for=
'item in columnsBase'
:key=
'item.key'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
{{ item.title }}
</span>
<span
v-if=
"item.key === 'idCard'"
>
{{ $idCardHide(residentInfo.idCard) || '-'
}}
</span>
<span
class=
'text-end'
v-else
>
<span>
{{ residentInfo[item.key] || '-' }}
</span>
<span
v-if=
'item.unit'
class=
'ml-1'
>
{{ item.unit }}
</span>
</span>
</div>
</div>
</div>
</van-collapse-item>
<van-collapse-item
key=
'2'
title=
'死亡信息'
name=
'2'
>
<
template
#
right-icon
>
<doc-icon
type=
'doc-down'
/>
</
template
>
<div
class=
'list'
>
<div
class=
'flex justify-between py-1 border-bottom item'
>
<span
class=
'shrink-0 mr-2 label'
>
死亡日期
</span>
<span
class=
'text-end'
>
<span>
{{ info.deathDate || '-' }}
</span>
</span>
</div>
<div
class=
'flex flex-col py-1 border-bottom item'
>
<div
class=
'shrink-0 mr-2 label'
>
死亡原因
</div>
<div
class=
'reason-bg'
>
{{info.deathReasonStr}}
</div>
</div>
</div>
</van-collapse-item>
<!-- <van-collapse-item key='3' title='录入机构' name='3'>
<template #right-icon>
<doc-icon type='doc-down' />
</template>
<div class='list'>
<div v-for='item in columnsOrg' :key='item.key'>
<div class='flex justify-between py-1 border-bottom item'>
<span class='shrink-0 mr-2 label'>{{ item.title }}</span>
<span class='text-end'>
<span>{{ info[item.key] || '-' }}</span>
</span>
</div>
</div>
</div>
</van-collapse-item>-->
</van-collapse>
</div>
</div>
</div>
</template>
<
script
>
import
Mp3
from
'@/doctor/components/mediaPlay/Mp3.vue'
import
Mp4
from
'@/doctor/components/mediaPlay/Mp4.vue'
import
ImagePreview
from
'@/residentWX/components/imagePreview/imagePreview'
import
{
fetchCurrencyById
,
messageResend
}
from
'@/api/doctor/generalFU'
import
{
getTemplateDetail
}
from
'@/api/doctor/workbench'
import
{
getResidentsDeath
}
from
'@/api/doctor/death'
export
default
{
name
:
'Detail'
name
:
'CurrencyFUDetail.vue'
,
components
:
{
},
data
()
{
return
{
activeCollapse
:
[],
collapseList
:
[
{
title
:
'居民信息'
,
name
:
'1'
},
{
title
:
'死亡信息'
,
name
:
'2'
},
// { title: '录入机构', name: '3' },
],
// 全部展开、收起
collapseAll
:
false
,
info
:
{},
columnsBase
:
[
{
title
:
'姓名'
,
key
:
'residentName'
},
{
title
:
'证件号码'
,
key
:
'idCard'
},
{
title
:
'性别'
,
key
:
'genderName'
},
{
title
:
'出生日期'
,
key
:
'dataBirth'
},
{
title
:
'年龄'
,
key
:
'currentAge'
},
{
title
:
'民族'
,
key
:
'nationalName'
},
{
title
:
'本人电话'
,
key
:
'telephone'
},
{
title
:
'现住址'
,
key
:
'presentCodeName'
},
{
title
:
'详细地址'
,
key
:
'nowAddress'
},
{
title
:
'户籍地址'
,
key
:
'registeredCodeName'
},
{
title
:
'详细地址'
,
key
:
'permanentAddress'
}
],
columnsOrg
:
[
{
title
:
'录入单位'
,
key
:
'createUnitName'
},
{
title
:
'录入科室'
,
key
:
'createOfficeName'
},
{
title
:
'录入医生'
,
key
:
'createDoctorName'
}
],
}
},
computed
:
{
routerDetail
()
{
return
this
.
$route
.
query
},
residentInfo
()
{
return
this
.
info
.
residentsRecord
||
{}
},
},
created
()
{
document
.
title
=
'死亡记录详情'
this
.
load
()
},
methods
:
{
async
load
()
{
if
(
!
this
.
routerDetail
.
residentInfoId
)
{
this
.
$message
.
info
(
'未获取到信息'
)
return
}
let
par
=
{
residentInfoId
:
this
.
routerDetail
.
residentInfoId
}
getResidentsDeath
(
par
).
then
(
res
=>
{
let
result
=
res
.
data
||
{}
this
.
info
=
result
}).
finally
(()
=>
{
})
},
// 折叠面板切换
collapseChange
(
val
)
{
if
(
val
&&
val
.
length
<=
2
)
{
this
.
activeCollapse
=
val
.
slice
(
val
.
length
-
1
)
}
else
{
if
(
this
.
activeCollapse
.
length
>
val
.
length
)
{
this
.
activeCollapse
=
val
}
if
(
this
.
activeCollapse
.
length
<
val
.
length
)
{
this
.
activeCollapse
=
val
.
slice
(
val
.
length
-
1
)
}
}
if
(
val
&&
val
.
length
===
this
.
collapseList
.
length
)
{
this
.
collapseAll
=
true
}
else
{
this
.
collapseAll
=
false
}
},
// 全部展开、收起
toggleAll
()
{
if
(
this
.
collapseAll
)
{
this
.
activeCollapse
=
[]
}
else
{
this
.
activeCollapse
=
this
.
collapseList
.
map
(
e
=>
e
.
name
)
}
this
.
collapseAll
=
!
this
.
collapseAll
},
onBack
()
{
this
.
$router
.
back
()
}
}
}
</
script
>
<
style
scoped
>
<
style
lang=
'less'
scoped
>
@import url('../../utils/common.less');
.base-info {
background: linear-gradient(to bottom, #F0F6FF, #fff 50%);
color: #8c8c8c;
.name {
font-weight: 600;
color: #000;
font-size: 18px;
}
.top-label {
font-size: 13px;
line-height: 22px;
}
.color-b {
color: #262626;
}
}
.cont-box {
background-color: #f9f9f9;
.cont-inner {
background: linear-gradient(to bottom, #F0F6FF, #fff .6rem);
border-top-left-radius: .08rem;
border-top-right-radius: .08rem;
}
}
.collapse-head {
.icon-down {
vertical-align: middle;
font-size: .12rem;
.svg-icon {
transition: all .2s;
}
}
.icon-down-expanded {
.svg-icon {
transform: rotate(-180deg);
}
}
}
table {
text-align: left;
border-bottom: 1px solid var(--van-cell-border-color);
> tr {
> td {
padding-left: 14px;
padding-bottom: 12px;
&:first-child {
text-align: right;
padding-left: 0;
}
}
}
}
.list {
.label {
min-width: 5em;
}
}
.card {
background-color: #F8FAFC;
padding: 4px 10px;
border-radius: 4px;
color: #4D5665;
}
.reason-bg {
background: #F8FAFC;
border-radius: 4px;
padding: 4px 8px;
color: #4D5665;
line-height: 24px;
}
</
style
>
src/doctor/deathRecord/form/DeathRecordForm.vue
View file @
c5abad3d
...
...
@@ -7,7 +7,6 @@
v-model=
'form.deathDate'
is-link
readonly
name=
'deathDate'
placeholder=
'死亡日期'
class=
'input-back mt-2 form-input'
:rules=
'rules.deathDate'
...
...
@@ -23,13 +22,13 @@
<van-field
class=
'no-back form-input mt-2'
style=
'padding: 0'
:rules=
'rules.reasonItem'
>
<template
#
input
>
<van-radio-group
v-model=
'form.reasonItem'
shape=
"dot"
shape=
'dot'
direction=
'horizontal'
class=
'w-full doc-radio-group'
:rules=
'rules.reasonItem'
>
<van-radio
v-for=
"item in store.getDict('CP00169')"
:key=
'item.value'
:name=
'item.value'
...
...
@@ -40,6 +39,42 @@
</
template
>
</van-field>
<div
class=
'mt-3 more-bg flex flex-col gap-y-2.5'
v-if=
'form.reasonItem == 1'
>
<div
v-for=
'(item,index) in form.deathReasonList'
class=
'bg-white'
>
<div
class=
'label-title'
>
名称
</div>
<van-field
v-model=
'item.diseaseName'
is-link
readonly
placeholder=
'请选择'
@
click=
'getSelect(index)'
:rules=
'rules.diseaseName'
class=
'input-back form-input mt-2'
/>
<DiseasePicker
v-model:show=
'showIcd'
@
change=
'icdChange'
></DiseasePicker>
<div
class=
'no-req-label mt-5'
>
ICD编码
</div>
<van-field
v-model=
'item.icdCode'
readonly
name=
'icdCode'
placeholder=
'请输入'
class=
'input-back form-input mt-2'
/>
<div
class=
'mt-2 text-center'
v-if=
'this.form.deathReasonList.length > 1'
>
<van-button
class=
'del-btn'
size=
'small'
color=
'#BFBFBF'
plain
@
click=
'onDel(index)'
>
删除
</van-button>
</div>
</div>
<div>
<van-button
plain
type=
'primary'
class=
'w-full'
@
click=
'plusDiagnosis'
>
增加疾病原因
</van-button>
</div>
</div>
<van-field
...
...
@@ -59,38 +94,82 @@
<
script
>
import
dayjs
from
'dayjs'
import
{
useStore
}
from
'@/doctor/store'
import
DiseasePicker
from
'@/doctor/deathRecord/form/DiseasePicker'
export
default
{
name
:
'DeathRecordForm'
,
components
:
{
DiseasePicker
},
data
()
{
return
{
store
:
useStore
(),
showDate
:
false
,
showIcd
:
false
,
//被选中的疾病名称下标
selectedIndex
:
undefined
,
// 筛查日期可选范围
deathDateRange
:
{
min
:
undefined
,
max
:
undefined
},
form
:
{},
form
:
{
deathReasonList
:
[{
diseaseName
:
undefined
,
icdCode
:
undefined
}]
},
rules
:
{
deathDate
:
[{
required
:
true
,
message
:
"请选择"
}],
reasonItem
:
[{
required
:
true
,
message
:
"请选择"
}],
deathDate
:
[{
required
:
true
,
message
:
'请选择'
}],
reasonItem
:
[{
required
:
true
,
message
:
'请选择'
}],
diseaseName
:
[{
required
:
true
,
message
:
'请选择'
}],
}
}
},
created
()
{
this
.
init
()
},
methods
:
{
init
()
{
const
date
=
dayjs
()
this
.
deathDateRange
.
max
=
new
Date
(
date
.
year
(),
date
.
month
(),
date
.
date
())
// this.deathDateRange.min = new Date(date.year() - 10)
this
.
form
.
_deathDate
=
[
date
.
year
(),
date
.
month
(),
date
.
date
()]
this
.
form
.
deathDate
=
dayjs
().
format
(
'YYYY-MM-DD'
)
},
methods
:
{
dataConfirm
({
selectedValues
})
{
this
.
form
.
deathDate
=
selectedValues
.
join
(
'-'
)
this
.
showDate
=
false
},
//
getSelect
(
index
)
{
this
.
selectedIndex
=
index
this
.
showIcd
=
true
},
// 疾病名称
icdChange
(
option
)
{
this
.
form
.
deathReasonList
[
this
.
selectedIndex
].
diseaseName
=
option
.
name
this
.
form
.
deathReasonList
[
this
.
selectedIndex
].
icdCode
=
option
.
icdCode
},
plusDiagnosis
()
{
this
.
form
.
deathReasonList
.
push
({})
},
onDel
(
index
)
{
this
.
form
.
deathReasonList
.
splice
(
index
,
1
)
},
onSubmit
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
let
par
=
{
...
this
.
form
,
// operateType=1 新增死亡 3-撤销删除
operateType
:
1
}
resolve
(
par
)
}).
catch
((
e
)
=>
{
const
array
=
e
||
[]
if
(
array
.
length
)
{
this
.
$refs
.
form
.
scrollToField
(
array
[
0
].
name
)
}
})
})
}
}
}
</
script
>
...
...
@@ -115,6 +194,12 @@ export default {
}
}
.no-req-label {
font-size: 13px;
color: #595959;
font-weight: 500;
}
.form-input {
padding: 8px 12px;
border-radius: 8px;
...
...
@@ -128,6 +213,25 @@ export default {
//line-height: 24px;
}
.more-bg {
background: #F5F5F5;
padding: 8px;
border-radius: 0px 0px 8px 8px;
}
.bg-white {
background: #FFFFFF;
padding: 8px;
border-radius: 8px;
}
.del-btn {
border-radius: 38px;
padding: 4px 8px;
width: 112px;
}
:deep(.van-cell:after) {
border-bottom: 0px;
}
...
...
src/doctor/deathRecord/form/DiseasePicker.vue
0 → 100644
View file @
c5abad3d
<
template
>
<van-popup
:show=
'show'
position=
'bottom'
:teleport=
'teleport'
class=
'diagnose-picker'
>
<van-picker
title=
'请选择'
:columns=
'array'
:columns-field-names=
'fieldNames'
v-model=
'innerValue'
@
confirm=
'onConfirm'
@
cancel=
'onCancel'
>
<template
#
columns-top
>
<div
class=
'px-3'
>
<van-field
v-model=
'searchValue'
placeholder=
'请输入'
clearable
maxlength=
'100'
/>
</div>
</
template
>
</van-picker>
</van-popup>
</template>
<
script
>
import
{
queryDiseaseCode
}
from
'@/api/doctor/disease.js'
export
default
{
props
:
{
show
:
Boolean
,
value
:
[
String
,
Number
],
fieldNames
:
{
type
:
Object
,
default
:
()
=>
{
return
{
text
:
'name'
,
value
:
'icdCode'
}
}
},
// 疾病类型
diseaseType
:
[
String
,
Number
],
teleport
:
[
String
,
Element
]
},
emits
:
[
'update:show'
,
'update:value'
,
'change'
],
data
()
{
return
{
innerValue
:
undefined
,
searchValue
:
''
,
diagnoseNameList
:
[]
}
},
computed
:
{
array
()
{
const
array
=
this
.
diagnoseNameList
||
[]
return
array
.
filter
(
e
=>
e
.
name
.
startsWith
(
this
.
searchValue
))
}
},
methods
:
{
load
()
{
queryDiseaseCode
({}).
then
(
res
=>
{
const
result
=
[]
for
(
let
item
of
res
.
data
)
{
item
.
name
=
item
.
diseaseName
+
'('
+
item
.
icdCode
+
')'
result
.
push
(
item
)
}
this
.
diagnoseNameList
=
result
})
},
onConfirm
({
selectedValues
,
selectedOptions
})
{
this
.
$emit
(
'update:value'
,
selectedValues
[
0
])
this
.
$emit
(
'change'
,
selectedOptions
[
0
]
||
{})
this
.
$emit
(
'update:show'
,
false
)
this
.
searchValue
=
''
},
onCancel
()
{
this
.
$emit
(
'update:show'
,
false
)
}
},
watch
:
{
value
:
{
handler
(
value
)
{
if
(
value
==
null
)
return
this
.
innerValue
=
[
value
]
},
immediate
:
true
},
diseaseType
:
{
handler
()
{
this
.
load
()
},
immediate
:
true
}
}
}
</
script
>
<
style
lang=
'less'
scoped
>
:deep(.van-field) {
background-color: #FAFAFA;
padding: 8px 12px;
border-radius: 8px;
&::after {
display: none;
}
}
</
style
>
src/doctor/deathRecord/form/Index.vue
View file @
c5abad3d
...
...
@@ -4,12 +4,11 @@
@
click-left=
'toBack'
></van-nav-bar>
<div
class=
'p-4 h-overflow'
ref=
'all'
>
<archive-common
:info=
'info'
v-
if
=
'step == 1'
v-
show
=
'step == 1'
ref=
'baseInfo'
></archive-common>
<death-record-form
v-if=
'step == 2'
:info=
'info'
v-show=
'step == 2'
ref=
'deathRecordForm'
></death-record-form>
</div>
...
...
@@ -36,6 +35,7 @@ import { useStore } from '@/doctor/store'
import
ArchiveCommon
from
'@/doctor/components/archiveCommon/archiveCommon'
import
DeathRecordForm
from
'@/doctor/deathRecord/form/DeathRecordForm'
import
{
getChronicResidentsId
}
from
'@/api/doctor/generalFU'
import
{
saveResidentsDeath
}
from
'@/api/doctor/death'
export
default
{
name
:
'deathRecordIndex'
,
...
...
@@ -51,6 +51,9 @@ export default {
computed
:
{
routerDetail
()
{
return
this
.
$route
.
query
},
authInfo
()
{
return
this
.
store
.
authInfo
}
},
created
()
{
...
...
@@ -74,7 +77,7 @@ export default {
}
=
res
.
data
this
.
info
=
{
personId
:
id
,
...
others
,
...
others
}
},
async
toNext
(
val
)
{
...
...
@@ -84,7 +87,26 @@ export default {
}
this
.
step
=
val
},
onsubmit
()
{
async
onsubmit
()
{
let
baseInfo
=
await
this
.
$refs
.
baseInfo
.
onSubmit
()
let
deathRecordForm
=
await
this
.
$refs
.
deathRecordForm
.
onSubmit
()
let
params
=
{
residentInfoId
:
this
.
routerDetail
.
residentInfoId
,
createUnitId
:
this
.
authInfo
.
unitId
,
createUnitName
:
this
.
authInfo
.
unitName
,
// 录入科室
createOfficeId
:
this
.
authInfo
.
officeId
,
createOfficeName
:
this
.
authInfo
.
officeName
,
// 录入医生
createDoctorId
:
this
.
authInfo
.
relationId
,
createDoctorName
:
this
.
authInfo
.
nickName
,
residentsRecord
:
baseInfo
,
...
deathRecordForm
}
saveResidentsDeath
(
params
).
then
(
res
=>
{
this
.
$message
.
success
(
'新增成功'
)
this
.
$router
.
back
()
})
},
toBack
()
{
...
...
src/doctor/followUp/separateFU/form/BaseInfo.vue
0 → 100644
View file @
c5abad3d
<
template
>
<van-form>
<div
class=
"label-title"
required
>
专病名称
</div>
<van-field
v-model=
"form.diseaseTypeName"
isLink
readonly
placeholder=
"请选择"
:rules=
"rules.diseaseTypeName"
@
click=
"showDiseaseType = true"
class=
"form-input"
/>
<van-popup
v-model:show=
"showDiseaseType"
position=
"bottom"
>
<van-picker
:columns-field-names=
"
{ text: 'name', value: 'value' }"
:columns="store.getDict('CP00117')"
@confirm="diseaseConfirm"
@cancel="showDiseaseType = false"
/>
</van-popup>
<div
class=
"label-title mt-5"
required
>
请选择
</div>
<van-field
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"
class=
"mt-2"
>
新增专病随访(增加)
</van-radio>
</van-radio-group>
</
template
>
</van-field>
<!-- <div class="font-semibold mt-4">居民信息</div> -->
<!-- <div class="label-title mt-4" required>证件类型</div>
<van-field
v-model="form.certificateTypeName"
isLink
readonly
placeholder="请选择"
:rules="rules.certificateTypeName"
@click="showCertificateType = true"
class="form-input"
/>
<van-popup v-model:show="showCertificateType" position="bottom">
<van-picker
:columns-field-names="{ text: 'name', value: 'value' }"
:columns="store.getDict('DC00004')"
@confirm="certificateConfirm"
@cancel="showDiseaseType = false"
/>
</van-popup> -->
<ArchiveCommon
ref=
"archive"
></ArchiveCommon>
</van-form>
</template>
<
script
>
import
{
useStore
}
from
'@/doctor/store'
import
ArchiveCommon
from
'@/doctor/components/archiveCommon/archiveCommon.vue'
export
default
{
components
:
{
ArchiveCommon
},
data
()
{
return
{
store
:
useStore
(),
form
:
{},
rules
:
{},
showDiseaseType
:
false
,
showCertificateType
:
false
}
},
methods
:
{
diseaseConfirm
({
selectedValues
,
selectedOptions
})
{
this
.
form
.
diseaseType
=
selectedValues
[
0
]
this
.
form
.
diseaseTypeName
=
selectedOptions
[
0
].
name
this
.
showDiseaseType
=
false
},
certificateConfirm
({
selectedValues
,
selectedOptions
})
{
this
.
form
.
certificateType
=
selectedValues
[
0
]
this
.
form
.
certificateTypeName
=
selectedOptions
[
0
].
name
this
.
showCertificateType
=
false
},
async
onSubmit
()
{
let
baseInfo
=
{}
try
{
baseInfo
=
await
this
.
$refs
.
archive
.
onSubmit
()
}
catch
(
e
)
{
}
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.label-title {
font-size: 13px;
color: #595959;
font-weight: 500;
margin-bottom: 8px;
&[required] {
&::after {
content: '*';
color: #FF4D4F;
font-weight: bold;
margin-left: 4px;
}
}
}
.form-input {
background-color: #FAFAFA;
padding: 8px 12px;
border-radius: 8px;
}
:deep(.van-cell:after) {
border-bottom: 0px;
}
</
style
>
\ No newline at end of file
src/doctor/followUp/separateFU/form/FormCont.vue
0 → 100644
View file @
c5abad3d
<
template
>
<div>
<HypertensionForm
v-if=
"diseaseType === 1"
></HypertensionForm>
</div>
</
template
>
<
script
>
import
HypertensionForm
from
'./components/HypertensionForm.vue'
export
default
{
components
:
{
HypertensionForm
},
data
()
{
return
{
diseaseType
:
1
}
}
}
</
script
>
\ No newline at end of file
src/doctor/followUp/separateFU/form/Index.vue
0 → 100644
View file @
c5abad3d
<
template
>
<div>
<van-nav-bar
:title=
"routeQuery.id ? '修改专病随访' : '新增专病随访'"
left-arrow
@
click-left=
"toBack"
>
</van-nav-bar>
<div
class=
"p-4 h-overflow"
>
<BaseInfo
v-if=
"step === 1"
ref=
"baseInfo"
></BaseInfo>
<FormCont
v-if=
"step === 2"
></FormCont>
</div>
<div
class=
"bottom-small-line"
></div>
<div
class=
"p-4"
>
<van-button
v-if=
"step === 1"
type=
"primary"
block
round
@
click=
"toNext"
>
下一步
</van-button>
<van-button
v-if=
"step === 2"
type=
"primary"
block
round
>
提交
</van-button>
</div>
</div>
</
template
>
<
script
>
import
BaseInfo
from
'./BaseInfo.vue'
import
FormCont
from
'./FormCont.vue'
export
default
{
components
:
{
BaseInfo
,
FormCont
},
data
()
{
return
{
step
:
2
}
},
computed
:
{
routeQuery
()
{
return
this
.
$route
.
query
}
},
created
()
{
},
methods
:
{
toBack
()
{
this
.
$router
.
back
()
},
async
toNext
()
{
// this.$refs.baseInfo.onSubmit()
// console.log(666, obj)
this
.
step
=
2
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.h-overflow {
height: calc(100vh - 124px);
overflow: auto;
}
.bottom-small-line {
height: 1px;
box-shadow: 0 0.5Px #D7DADE;
}
</
style
>
\ No newline at end of file
src/doctor/followUp/separateFU/form/components/HypertensionForm.vue
0 → 100644
View file @
c5abad3d
This diff is collapsed.
Click to expand it.
src/doctor/patientDetail/PatientDetail.vue
View file @
c5abad3d
...
...
@@ -134,6 +134,8 @@ export default {
{
name
:
'新增慢病诊断'
,
value
:
3
,
path
:
'/doctor/diagnose/form'
},
{
name
:
'新增通用随访'
,
value
:
4
,
path
:
'/doctor/followUp/generalFU/add'
},
{
name
:
'新增死亡记录'
,
value
:
5
,
path
:
'/doctor/deathRecord/add'
},
{
name
:
'新增死亡记录详情'
,
value
:
6
,
path
:
'/doctor/deathRecord/detail'
},
{
name
:
'新增专病随访'
,
value
:
7
,
path
:
'/doctor/followUp/separateFU/add'
}
]
}
},
...
...
src/router/index.js
View file @
c5abad3d
...
...
@@ -105,6 +105,17 @@ const routes = [
name
:
'deathRecord-add'
,
component
:
()
=>
import
(
/* webpackChunkName: "doctor" */
'@/doctor/deathRecord/form/Index.vue'
)
},
{
path
:
'deathRecord/detail'
,
name
:
'deathRecord-detail'
,
component
:
()
=>
import
(
/* webpackChunkName: "doctor" */
'@/doctor/deathRecord/detail/Detail'
)
},
// 专病随访
{
path
:
'followUp/separateFU/add'
,
name
:
'followUp-separateFU-add'
,
component
:
()
=>
import
(
/* webpackChunkName: "doctor" */
'@/doctor/followUp/separateFU/form/Index'
)
}
]
},
{
...
...
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