Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
agcs2.0-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
liang
agcs2.0-web
Commits
a2964f31
Commit
a2964f31
authored
Nov 25, 2022
by
liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加筛查病例、筛查查询
parent
68255f88
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1183 additions
and
52 deletions
+1183
-52
WidgetFormTable.vue
packages/WidgetFormTable.vue
+3
-0
patient.js
src/api/patient.js
+180
-0
user.js
src/api/user.js
+10
-6
FormDynamic.vue
src/components/FormComponents/CustomForm/FormDynamic.vue
+13
-1
DraftBox.vue
src/views/screening/DraftBox.vue
+3
-0
ScreeningAdd.vue
src/views/screening/ScreeningAdd.vue
+20
-0
ConfigForms.vue
src/views/screening/components/ConfigForms.vue
+62
-0
FormTab.vue
src/views/screening/components/FormTab.vue
+363
-0
mixin.js
src/views/screening/components/mixin.js
+101
-0
index.vue
src/views/screening/index.vue
+208
-0
GroupForm.vue
src/views/systems/colla-group/GroupForm.vue
+37
-37
index.vue
src/views/systems/database/index.vue
+1
-1
FieldList.vue
src/views/systems/field-config/FieldList.vue
+1
-5
index.vue
src/views/systems/field-config/index.vue
+2
-2
FormAdd.vue
src/views/systems/form-config/FormAdd.vue
+2
-0
index.vue
src/views/systems/log/index.vue
+177
-0
No files found.
packages/WidgetFormTable.vue
View file @
a2964f31
...
@@ -224,6 +224,9 @@ export default {
...
@@ -224,6 +224,9 @@ export default {
if
(
data
.
type
===
"
dynamic
"
)
{
if
(
data
.
type
===
"
dynamic
"
)
{
data
.
prop
=
"
fixed_field
"
data
.
prop
=
"
fixed_field
"
}
}
if
(
data
.
type
==
"
title
"
)
{
delete
data
.
label
}
data
.
cType
=
column
.
children
.
type
===
"
form
"
?
"
form
"
:
"
table
"
data
.
cType
=
column
.
children
.
type
===
"
form
"
?
"
form
"
:
"
table
"
data
.
subfield
=
true
data
.
subfield
=
true
delete
data
.
icon
delete
data
.
icon
...
...
src/api/patient.js
0 → 100644
View file @
a2964f31
import
request
from
"
@/utils/request
"
/* 患者数据 */
export
function
getPatientPage
(
params
=
{})
{
let
url
=
"
/disease-data/data/patient/page?
"
let
keys
=
Object
.
keys
(
params
)
for
(
let
key
of
keys
)
{
url
+=
`
${
encodeURIComponent
(
key
)}
=
${
params
[
key
]}
&`
}
url
=
url
.
substring
(
0
,
url
.
length
-
1
)
return
request
({
url
:
url
,
method
:
"
get
"
,
})
}
// 随访分页
export
function
getPatientFollowPage
(
params
=
{})
{
let
url
=
"
/disease-data/data/patient/follow/page?
"
let
keys
=
Object
.
keys
(
params
)
for
(
let
key
of
keys
)
{
url
+=
`
${
encodeURIComponent
(
key
)}
=
${
params
[
key
]}
&`
}
url
=
url
.
substring
(
0
,
url
.
length
-
1
)
return
request
({
url
:
url
,
method
:
"
get
"
,
})
}
export
function
delPatient
(
id
)
{
return
request
({
url
:
`/cloud-upms/sys/menu/
${
id
}
`
,
method
:
"
delete
"
,
})
}
// 填报
export
function
addPatient
(
data
=
{},
type
=
""
)
{
return
request
({
url
:
`/disease-data/data/patient/
${
type
}
`
,
method
:
"
post
"
,
data
,
})
}
/* 患者数据详情 */
export
function
getPatientDetail
(
params
=
{})
{
return
request
({
url
:
"
/disease-data/data/patient/info
"
,
method
:
"
get
"
,
params
,
})
}
/* 获取表单填报记录list*/
export
function
getRecordList
(
params
=
{})
{
return
request
({
url
:
"
/disease-data/data/patient/form/record/list
"
,
method
:
"
get
"
,
params
,
})
}
// 患者质控列表 分页查询
export
function
getQcPage
(
params
=
{})
{
return
request
({
url
:
"
/disease-data/data/qc/page
"
,
method
:
"
get
"
,
params
,
})
}
// 质控
export
function
qcPatient
(
data
=
{},
type
=
""
)
{
return
request
({
url
:
`/disease-data/data/qc`
,
method
:
"
post
"
,
data
,
})
}
// 获取九院口腔癌患者信息(同屏对照使用)
export
function
getJYpatientInfo
(
params
=
{})
{
return
request
({
url
:
"
/jiuyuan-gather/patient/kqa/info
"
,
method
:
"
get
"
,
params
,
})
}
// 获取九院口腔癌随访表(同屏对照使用)
export
function
getJYFollowInfo
(
params
=
{})
{
return
request
({
url
:
"
/jiuyuan-gather/patient/kqa/follow/info
"
,
method
:
"
get
"
,
params
,
})
}
// 获取同济口腔 牙周病(yzb) | 口腔癌(kqa) 患者信息(同屏对照使用)
export
function
getTJpatientInfo
(
params
=
{},
diseases
=
"
yzb
"
)
{
return
request
({
url
:
`/tjkq-gather/patient/
${
diseases
}
/info`
,
method
:
"
get
"
,
params
,
})
}
// 获取九院牙周炎患者信息(同屏对照使用)
export
function
getJYyzyPatientInfo
(
params
=
{})
{
return
request
({
url
:
"
/jiuyuan-gather/patient/yzy/info
"
,
method
:
"
get
"
,
params
,
})
}
// 获取急性胰腺炎患者信息/检查信息/术治疗(同屏对照使用)
export
function
getJxyzyPatientInfo
(
type
,
params
=
{})
{
return
request
({
url
:
`/changhai-gather/patient/
${
type
}
/info`
,
method
:
"
get
"
,
params
,
})
}
// 获取中山医院病历/检查信息/治疗(同屏对照使用)
export
function
getZsyzyPatientInfo
(
params
=
{})
{
return
request
({
url
:
"
/zsyzy-gather/patient/yzb/info
"
,
method
:
"
get
"
,
params
,
})
}
// 急性胰腺炎-评分表
// 评分表新增修改
export
function
saveApScore
(
data
=
{})
{
return
request
({
url
:
`disease-data/ap/score`
,
method
:
"
post
"
,
data
,
})
}
// 根据patientId查询评分表数据
export
function
getApScore
(
patientId
)
{
return
request
({
url
:
`/disease-data/ap/score/list?patientId=
${
patientId
}
`
,
method
:
"
get
"
,
})
}
// 根据patientId+type查询(评分趋势图用)
export
function
getApScoreTypeList
(
params
=
{})
{
return
request
({
url
:
"
disease-data/ap/score/type/list
"
,
method
:
"
get
"
,
params
,
})
}
// 根据patientId, scoreId查询detailList
export
function
getApScoreDetailList
(
params
=
{})
{
return
request
({
url
:
"
/disease-data/ap/score/detail/list
"
,
method
:
"
get
"
,
params
,
})
}
src/api/user.js
View file @
a2964f31
...
@@ -141,25 +141,21 @@ export function ssoLogin(token) {
...
@@ -141,25 +141,21 @@ export function ssoLogin(token) {
})
})
}
}
//异常反馈
//异常反馈
export
function
getAbnormalList
(
params
)
{
export
function
getAbnormalList
(
params
)
{
return
request
({
return
request
({
url
:
`/disease-data/sys/message/exception/feedBack/select/all/msg`
,
url
:
`/disease-data/sys/message/exception/feedBack/select/all/msg`
,
method
:
"
get
"
,
method
:
"
get
"
,
params
params
,
})
})
}
}
// 修改系统信息-点击单条消息(进行已读操作)
// 修改系统信息-点击单条消息(进行已读操作)
export
function
setAbnormalStatus
(
params
)
{
export
function
setAbnormalStatus
(
params
)
{
return
request
({
return
request
({
url
:
`/disease-data/sys/message/exception/feedBack/do/read`
,
url
:
`/disease-data/sys/message/exception/feedBack/do/read`
,
method
:
"
get
"
,
method
:
"
get
"
,
params
params
,
})
})
}
}
...
@@ -171,3 +167,11 @@ export function getFeedBackNumber(id) {
...
@@ -171,3 +167,11 @@ export function getFeedBackNumber(id) {
})
})
}
}
// 获取B端日志
export
function
getLogPage
(
params
=
{})
{
return
request
({
url
:
"
/cloud-upms/sys/log/page
"
,
method
:
"
get
"
,
params
,
})
}
src/components/FormComponents/CustomForm/FormDynamic.vue
View file @
a2964f31
...
@@ -67,7 +67,19 @@
...
@@ -67,7 +67,19 @@
:is-show-important=
"isShowImportant"
:is-show-important=
"isShowImportant"
></form-dynamic>
></form-dynamic>
</div>
</div>
<el-col
v-else-if=
"c.type === 'title'"
:xs=
"c.xs || 24"
:sm=
"c.sm || 24"
:md=
"c.md || 24"
:lg=
"c.span || 12"
:key=
"columnIndex"
v-show=
"c.display"
>
<div
class=
"form_title"
:style=
"c.styles"
>
<span>
{{
c
.
value
}}
</span>
</div>
</el-col>
<el-col
<el-col
:xs=
"c.xs || 24"
:xs=
"c.xs || 24"
:sm=
"c.sm || 24"
:sm=
"c.sm || 24"
...
...
src/views/screening/DraftBox.vue
0 → 100644
View file @
a2964f31
<
template
>
<div>
2222
</div>
</
template
>
src/views/screening/ScreeningAdd.vue
0 → 100644
View file @
a2964f31
<
template
>
<ConfigForms
form-type=
"1"
></ConfigForms>
</
template
>
<
script
>
import
ConfigForms
from
"
./components/ConfigForms.vue
"
export
default
{
name
:
"
ScreeningAdd
"
,
components
:
{
ConfigForms
,
},
data
()
{
return
{}
},
methods
:
{},
created
()
{},
}
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/views/screening/components/ConfigForms.vue
0 → 100644
View file @
a2964f31
<
template
>
<div>
<el-tabs
v-model=
"activeName"
type=
"card"
style=
"margin-top: 10px"
v-loading=
"fromLoading"
v-if=
"formTabs && formTabs.length > 0"
@
tab-click=
"handleTabClick"
>
<el-tab-pane
:label=
"form.label"
:name=
"'index' + index"
v-for=
"(form, index) in formTabs"
:key=
"form.id"
>
<transition
mode=
"out-in"
name=
"fade-transform"
>
<div
v-show=
"activeName === 'index' + index"
>
<template
v-if=
"form.formId"
>
<form-tab
:patient-id=
"patientId"
:patient-standby-id=
"patientStandbyId"
:form=
"form"
:disabled=
"disabled"
contrast
@
setFormJson=
"setFormJson"
@
handleConfirm=
"handleConfirm"
></form-tab>
</
template
>
</div>
</transition>
</el-tab-pane>
</el-tabs>
<el-empty
v-else
description=
"暂无数据"
></el-empty>
</div>
</template>
<
script
>
import
mixin
from
"
./mixin
"
export
default
{
name
:
"
ConfigForms
"
,
mixins
:
[
mixin
],
props
:
{
disabled
:
Boolean
,
formType
:
String
,
patientId
:
String
,
},
data
()
{
return
{}
},
methods
:
{
handleConfirm
(
data
,
done
,
cb
)
{
this
.
addPatient
(
data
,
done
,
cb
)
},
},
created
()
{
// 字典formType 1 筛查表单
this
.
getCurrentFormByType
(
this
.
formType
)
},
}
</
script
>
src/views/screening/components/FormTab.vue
0 → 100644
View file @
a2964f31
<
template
>
<el-container>
<el-main
v-loading=
"pageLoading"
class=
"transition-box"
>
<i
v-if=
"contrast"
:class=
"asideShow ? 'el-icon-s-unfold' : 'el-icon-s-fold'"
:title=
"asideShow ? '收起' : '展开'"
class=
"arrow"
@
click=
"asideShow = !asideShow"
></i>
<el-empty
v-if=
"isEmpty"
description=
"暂无数据"
></el-empty>
<template
v-if=
"!isEmpty"
>
<!-- 多次记录 -->
<el-row
v-if=
"form.fillType === 1"
>
<tags-scroll-bar
v-if=
"repeatedlyList.length > 0"
:tags-list=
"repeatedlyList"
:props=
"
{ label: 'time' }"
ref="tags"
@change="changeRepeate"
:disabled="disabled"
@add="handleAdd"
>
</tags-scroll-bar>
</el-row>
<el-row
class=
"header"
>
<template
v-if=
"formData.percent.autoPercent"
>
<span
class=
"label"
>
自动采集完整度:
</span>
<span
class=
"value"
>
{{
formData
.
percent
.
autoPercent
}}
%
</span>
</
template
>
<
template
v-if=
"formData.percent.personalPercent"
>
<span
class=
"label"
>
人工补录完整度:
</span>
<span
class=
"value"
>
{{
formData
.
percent
.
personalPercent
}}
%
</span
></
template
>
<span
class=
"label"
>
仅显示重要字段 :
</span>
<span
class=
"value"
>
<el-switch
v-model=
"isShowImprotant"
@
change=
"imFieldChange"
>
</el-switch>
</span>
</el-row>
<div
class=
"my-form"
ref=
"my-form"
:class=
"externalScroll ? 'no-scroll' : ''"
>
<custom-form
ref=
"form"
@
scrollTop=
"scrollTop"
:options=
"widgetFormPreview"
@
handleConfirm=
"handleConfirm"
:form-edit=
"formData.formEdit"
></custom-form>
</div>
</template>
</el-main>
<el-aside
:width=
"sideWidth"
class=
"transition-box"
:class=
"{ hidden: !asideShow }"
v-if=
"contrast"
>
<div
class=
"side-content"
></div>
</el-aside>
</el-container>
</template>
<
script
>
import
{
getPatientDetail
,
getRecordList
}
from
"
@/api/patient.js
"
import
{
getFormDetail
}
from
"
@/api/field
"
import
CustomForm
from
"
@/components/FormComponents/CustomForm/index
"
import
TagsScrollBar
from
"
@/components/TagsScrollBar/index
"
export
default
{
name
:
"
FormTab
"
,
props
:
{
externalScroll
:
Boolean
,
//外部滚动
disabled
:
Boolean
,
contrast
:
Boolean
,
//同屏对照
form
:
Object
,
patientId
:
String
,
patientStandbyId
:
String
,
getAll
:
Boolean
,
// 获取页面所有数据
},
components
:
{
CustomForm
,
TagsScrollBar
},
data
()
{
return
{
btnType
:
""
,
isShowImprotant
:
false
,
asideShow
:
true
,
widgetFormPreview
:
{},
formData
:
{
formEdit
:
{},
percent
:
{},
formRecordId
:
null
,
},
loading
:
false
,
formloading
:
false
,
repeatedlyList
:
[],
formCacheList
:
[],
}
},
// mixins: [resizeMixin],
computed
:
{
isEmpty
()
{
return
!
(
Object
.
keys
(
this
.
widgetFormPreview
)
||
this
.
widgetFormPreview
)
.
length
},
sideWidth
()
{
return
this
.
asideShow
?
"
200px
"
:
"
0px
"
},
pageLoading
()
{
return
this
.
loading
||
this
.
formloading
},
},
methods
:
{
initData
()
{
this
.
formData
.
formRecordId
=
null
this
.
formCacheList
=
[]
this
.
getPatientDetail
()
if
(
this
.
form
.
fillType
===
1
)
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
form
&&
this
.
$refs
.
form
.
resetForm
()
})
this
.
getRecordList
()
}
},
scrollTop
()
{
this
.
$refs
[
"
my-form
"
].
scrollTop
=
0
},
handleAdd
()
{
this
.
$refs
.
form
&&
this
.
$refs
.
form
.
resetForm
()
this
.
formData
=
{
formEdit
:
{},
percent
:
{},
formRecordId
:
null
,
}
},
// 切换时间
changeRepeate
(
index
)
{
const
item
=
this
.
repeatedlyList
[
index
]
if
(
item
.
id
===
this
.
formData
.
formRecordId
)
return
const
data
=
this
.
formCacheList
.
find
((
_
)
=>
_
.
formRecordId
===
item
.
id
)
if
(
data
)
{
this
.
$refs
.
form
&&
this
.
$refs
.
form
.
resetForm
()
this
.
formData
=
data
return
}
this
.
formData
.
formRecordId
=
item
.
id
this
.
getPatientDetail
()
},
imFieldChange
(
val
)
{
this
.
$refs
.
form
.
imFieldChange
(
val
)
},
initForm
()
{
this
.
formloading
=
true
if
(
this
.
form
.
formJson
)
{
const
obj
=
eval
(
"
(
"
+
this
.
form
.
formJson
+
"
)
"
)
if
(
this
.
disabled
)
{
obj
.
menuBtn
=
false
obj
.
disabled
=
true
obj
.
detail
=
true
}
setTimeout
(()
=>
{
this
.
widgetFormPreview
=
obj
this
.
formloading
=
false
},
100
)
return
}
getFormDetail
(
this
.
form
.
formId
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
1
&&
res
.
data
)
{
const
formJson
=
res
.
data
.
formJson
this
.
$emit
(
"
setFormJson
"
,
formJson
)
const
obj
=
eval
(
"
(
"
+
formJson
+
"
)
"
)
if
(
this
.
disabled
)
{
obj
.
menuBtn
=
false
obj
.
disabled
=
true
obj
.
detail
=
true
}
this
.
widgetFormPreview
=
obj
}
})
.
finally
(()
=>
{
this
.
formloading
=
false
})
},
handleConfirm
(
data
,
done
)
{
this
.
$emit
(
"
handleConfirm
"
,
{
data
,
formId
:
this
.
form
.
formId
,
patientId
:
this
.
patientId
||
this
.
patientStandbyId
,
formRecordId
:
this
.
formData
.
formRecordId
,
},
done
,
(
res
)
=>
{
// 多次填写的表单新增时,获取最新数据
if
(
this
.
form
.
fillType
===
1
&&
!
this
.
formData
.
formRecordId
)
{
this
.
getRecordList
(
res
.
data
.
formRecordId
)
}
this
.
formatData
(
res
,
this
.
form
.
fillType
!==
1
)
}
)
},
getPatientDetail
()
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
form
&&
this
.
$refs
.
form
.
resetForm
()
})
if
(
!
this
.
patientId
||
this
.
form
.
silent
)
return
this
.
loading
=
true
getPatientDetail
({
patientId
:
this
.
patientId
,
formId
:
this
.
form
.
formId
,
formRecordId
:
this
.
formData
.
formRecordId
,
})
.
then
((
res
)
=>
{
this
.
formatData
(
res
)
})
.
finally
(()
=>
{
this
.
loading
=
false
})
},
formatData
(
res
,
cache
)
{
const
d
=
res
.
data
||
{}
const
form
=
d
.
data
||
{}
if
(
form
[
"
YZZKJC
"
]
&&
typeof
form
[
"
YZZKJC
"
]
===
"
string
"
)
{
form
[
"
YZZKJC
"
]
=
JSON
.
parse
(
form
[
"
YZZKJC
"
])
}
if
(
!
cache
)
{
this
.
formData
.
formEdit
=
form
}
this
.
formData
.
formRecordId
=
d
.
formRecordId
this
.
formData
.
percent
=
d
.
percent
||
{}
const
index
=
this
.
formCacheList
.
findIndex
(
(
_
)
=>
_
.
formRecordId
===
d
.
formRecordId
)
if
(
index
>
-
1
)
{
this
.
formCacheList
.
splice
(
index
,
1
,
this
.
deepClone
(
this
.
formData
))
}
else
{
this
.
formCacheList
.
push
(
this
.
deepClone
(
this
.
formData
))
}
},
getRecordList
(
formRecordId
)
{
if
(
!
this
.
patientId
)
return
getRecordList
({
patientId
:
this
.
patientId
,
formId
:
this
.
form
.
formId
,
}).
then
((
res
)
=>
{
this
.
repeatedlyList
=
res
.
data
.
map
((
_
,
index
)
=>
{
return
{
...
_
,
time
:
_
.
createTime
,
}
})
this
.
$nextTick
(()
=>
{
const
el
=
this
.
$refs
.
tags
if
(
el
)
{
el
.
tabActive
=
formRecordId
||
(
this
.
repeatedlyList
[
0
]
&&
this
.
repeatedlyList
[
0
].
id
)
}
})
})
},
},
created
()
{
this
.
initForm
()
if
(
this
.
getAll
)
{
// 监听patientId 获取页面所有数据
this
.
$watch
(
"
patientId
"
,
()
=>
{
this
.
initData
()
},
{
immediate
:
true
}
)
}
else
{
// 监听form.silent 获取当前tab页数据
this
.
$watch
(
"
form.silent
"
,
()
=>
{
this
.
initData
()
},
{
immediate
:
true
}
)
}
},
}
</
script
>
<
style
scoped
lang=
"scss"
>
.el-main
{
position
:
relative
;
padding
:
0
;
.arrow
{
position
:
absolute
;
right
:
0
;
top
:
0
;
cursor
:
pointer
;
font-size
:
22px
;
z-index
:
9
;
}
.header
{
box-shadow
:
0
1px
4px
rgb
(
0
21
41
/
8%
);
padding-right
:
20px
;
position
:
relative
;
font-size
:
15px
;
}
}
.el-aside
{
padding-left
:
10px
;
border-left
:
1px
solid
#ccc
;
.side-content
{
// height: calc(100vh - #{"272px"});
// overflow: auto;
}
}
.my-form
{
height
:
calc
(
100vh
-
#{
"270px"
}
);
overflow-y
:
auto
;
padding-top
:
20px
;
position
:
relative
;
&
:
:-
webkit-scrollbar-thumb
{
background-color
:
#fff
;
}
&
:hover::-webkit-scrollbar-thumb
{
background-color
:
rgba
(
0
,
0
,
0
,
0
.4
);
}
&
.no-scroll
{
height
:
auto
;
}
}
.label
{
font-size
:
14px
;
color
:
#8492a6
;
line-height
:
38px
;
float
:
left
;
margin-right
:
20px
;
}
.value
{
font-size
:
14px
;
line-height
:
38px
;
float
:
left
;
font-weight
:
600
;
margin-right
:
50px
;
}
.el-slider
{
float
:
left
;
width
:
150px
;
}
.transition-box
{
transition
:
all
0
.2s
;
&
.hidden
{
opacity
:
0
;
height
:
0px
;
}
}
</
style
>
src/views/screening/components/mixin.js
0 → 100644
View file @
a2964f31
import
{
addPatient
}
from
"
@/api/patient.js
"
import
FormTab
from
"
./FormTab
"
import
{
mapGetters
}
from
"
vuex
"
import
{
getCurrentFormByType
}
from
"
@/api/coop-group.js
"
export
default
{
components
:
{
FormTab
},
data
()
{
return
{
activeName
:
"
index0
"
,
fromLoading
:
false
,
patientStandbyId
:
null
,
// 备用id
formTabs
:
[],
formTabsList
:
[],
isUpdated
:
false
,
name
:
""
,
patient_number
:
""
,
}
},
computed
:
{
...
mapGetters
({
group
:
[
"
user/group
"
],
}),
},
methods
:
{
handleTabClick
({
index
,
name
})
{
const
{
formId
,
id
,
silent
}
=
this
.
formTabs
[
index
]
if
(
formId
&&
silent
)
{
this
.
formTabs
[
index
][
"
silent
"
]
=
false
//控制是否获取接口数据
return
}
this
.
formTabs
.
splice
(
index
,
1
,
{
...
this
.
formTabsList
.
find
((
_
)
=>
_
.
id
===
id
),
})
},
async
addPatient
(
data
,
done
,
cb
,
type
)
{
addPatient
(
data
,
type
)
.
then
((
res
)
=>
{
this
.
$message
.
success
(
"
操作成功
"
)
if
(
res
.
data
)
{
this
.
isUpdated
=
true
this
.
patientStandbyId
=
res
.
data
.
patientId
if
(
cb
&&
Object
.
prototype
.
toString
.
call
(
cb
)
===
"
[object Function]
"
)
{
cb
(
res
)
}
}
})
.
finally
((
e
)
=>
{
done
()
})
},
// json存储
setFormJson
(
formJson
)
{
const
idx
=
this
.
activeName
.
replace
(
"
index
"
,
""
)
this
.
formTabs
[
idx
].
formJson
=
formJson
this
.
formTabsList
[
idx
].
formJson
=
formJson
},
getCurrentFormByType
(
type
=
1
)
{
this
.
fromLoading
=
true
getCurrentFormByType
({
type
:
1
,
groupId
:
this
.
group
.
groupId
,
})
.
then
((
res
)
=>
{
if
(
res
.
code
===
1
)
{
const
formTabs
=
[]
this
.
formTabsList
=
res
.
data
.
map
((
item
,
index
)
=>
{
if
(
index
===
0
)
{
formTabs
.
push
({
silent
:
false
,
...
item
,
label
:
item
.
tabName
,
})
}
else
{
formTabs
.
push
({
id
:
item
.
id
,
silent
:
true
,
label
:
item
.
tabName
,
})
}
return
{
...
item
,
silent
:
false
,
label
:
item
.
tabName
,
}
})
this
.
formTabs
=
formTabs
}
})
.
finally
(()
=>
{
this
.
fromLoading
=
false
})
},
},
}
src/views/screening/index.vue
0 → 100644
View file @
a2964f31
<
template
>
<div
class=
"container"
>
<div
v-show=
"!isDetail"
>
<direct-search
ref=
"form"
:label-position=
"'right'"
:forms=
"searchList"
:style=
"
{ textAlign: 'left' }"
@handleSearch="handleFormSearch"
/>
<el-table-self
ref=
"table"
:table-data=
"tableData"
:columns=
"columns"
:list-loading=
"listLoading"
:current-page=
"pageIndex"
:total-count=
"total"
:page-sizes=
"pageSizes"
:page-size=
"pageSize"
@
pageSizeChange=
"handleSizeChange"
@
currentPageChange=
"handleCurrentChange"
:sortChange=
"sortChange"
/>
</div>
<div
v-if=
"isDetail"
>
<div>
<el-button
icon=
"el-icon-back"
@
click=
"isDetail = false"
>
返 回
</el-button
>
</div>
<ConfigForms
form-type=
"1"
:patient-id=
"patientId"
:disabled=
"disabled"
></ConfigForms>
</div>
</div>
</
template
>
<
script
>
import
paginationMixin
from
"
@/components/TabComponents/mixin
"
import
{
getPatientPage
}
from
"
@/api/patient.js
"
import
ConfigForms
from
"
./components/ConfigForms.vue
"
export
default
{
name
:
"
ScreeningIndex
"
,
mixins
:
[
paginationMixin
],
components
:
{
ConfigForms
},
data
()
{
return
{
isDetail
:
false
,
listLoading
:
false
,
disabled
:
false
,
tableData
:
[],
cacheForm
:
{},
searchList
:
[
{
type
:
"
input
"
,
label
:
"
姓名
"
,
prop
:
"
patientName
"
,
},
{
label
:
"
性别
"
,
type
:
"
select
"
,
prop
:
"
gender
"
,
optsFormatter
:
()
=>
{
return
this
.
dictMap
&&
this
.
dictMap
[
"
d-sex
"
]
},
},
{
type
:
"
daterange
"
,
dateType
:
"
datetimerange
"
,
label
:
"
创建时间
"
,
prop
:
"
CreateTime
"
,
valueFormat
:
"
yyyy-MM-dd HH:mm:ss
"
,
},
{
type
:
"
daterange
"
,
dateType
:
"
datetimerange
"
,
label
:
"
保存时间
"
,
prop
:
"
Time
"
,
valueFormat
:
"
yyyy-MM-dd HH:mm:ss
"
,
},
{
type
:
"
button
"
,
icon
:
"
el-icon-search
"
,
value
:
"
搜索
"
,
},
],
columns
:
[
{
label
:
"
姓名
"
,
minWidth
:
120
,
value
:
"
hzxx_xm
"
,
},
{
label
:
"
出生日期
"
,
minWidth
:
120
,
value
:
"
hzxx_csrq
"
,
},
{
label
:
"
性别
"
,
minWidth
:
80
,
value
:
"
hzxx_xb
"
,
formatter
:
(
row
)
=>
{
return
this
.
$handle
.
formatDicList
(
this
.
dictMap
[
"
d-sex
"
],
row
.
hzxx_xb
)
},
},
{
label
:
"
创建时间
"
,
minWidth
:
180
,
sortable
:
"
custom
"
,
value
:
"
create_time
"
,
},
{
label
:
"
保存时间
"
,
minWidth
:
180
,
sortable
:
"
custom
"
,
value
:
"
update_time
"
,
},
{
label
:
"
操作
"
,
width
:
180
,
fixed
:
"
right
"
,
operType
:
"
button
"
,
operations
:
[
{
func
:
this
.
handleView
,
formatter
(
row
)
{
return
{
label
:
"
查看
"
,
type
:
"
text
"
,
}
},
},
{
func
:
this
.
handleAdd
,
formatter
(
row
)
{
return
{
label
:
"
修改
"
,
type
:
"
text
"
,
}
},
},
],
},
],
}
},
methods
:
{
handleView
(
row
)
{
this
.
handleAdd
(
row
,
true
)
},
handleAdd
({
patient_id
,
hzxx_xm
},
disabled
=
false
)
{
this
.
disabled
=
disabled
this
.
isDetail
=
true
this
.
patientId
=
patient_id
||
null
this
.
name
=
hzxx_xm
},
sortChange
({
prop
,
order
})
{
const
asc
=
order
?
(
order
===
"
ascending
"
?
true
:
false
)
:
""
const
column
=
order
?
prop
:
""
this
.
handleSearch
({
"
orders[0].asc
"
:
asc
,
"
orders[0].column
"
:
column
})
},
// 查询
handleFormSearch
(
form
)
{
this
.
pageIndex
=
1
this
.
handleSearch
(
form
)
},
handleSearch
(
form
)
{
this
.
listLoading
=
true
const
params
=
Object
.
assign
(
this
.
cacheForm
,
form
)
const
data
=
{}
for
(
let
key
in
params
)
{
if
(
params
[
key
]
!==
""
&&
params
[
key
]
!==
null
)
{
if
(
key
.
includes
(
"
Time
"
)
&&
params
[
key
])
{
data
[
"
start
"
+
key
]
=
params
[
key
][
0
]
data
[
"
end
"
+
key
]
=
params
[
key
][
1
]
}
else
{
data
[
key
]
=
params
[
key
]
}
}
}
data
.
current
=
this
.
pageIndex
data
.
size
=
this
.
pageSize
getPatientPage
(
data
).
then
((
res
)
=>
{
this
.
listLoading
=
false
if
(
res
.
code
===
1
)
{
const
d
=
res
.
data
this
.
tableData
=
d
.
records
||
[]
this
.
total
=
Number
(
d
.
total
)
}
})
},
},
created
()
{
this
.
handleFormSearch
()
},
}
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/views/systems/colla-group/GroupForm.vue
View file @
a2964f31
...
@@ -184,14 +184,6 @@ export default {
...
@@ -184,14 +184,6 @@ export default {
prop
:
"
tabName
"
,
prop
:
"
tabName
"
,
rules
:
[{
required
:
true
,
message
:
"
请输入表单重命名
"
}],
rules
:
[{
required
:
true
,
message
:
"
请输入表单重命名
"
}],
},
},
{
type
:
"
select
"
,
label
:
"
机构/科室
"
,
placeholder
:
"
请选择机构/科室
"
,
prop
:
"
deptId
"
,
opts
:
[],
rules
:
[{
required
:
true
,
message
:
"
请选择机构/科室
"
}],
},
{
{
type
:
"
select
"
,
type
:
"
select
"
,
label
:
"
类型
"
,
label
:
"
类型
"
,
...
@@ -202,6 +194,7 @@ export default {
...
@@ -202,6 +194,7 @@ export default {
},
},
rules
:
[{
required
:
true
,
message
:
"
请选择类型
"
}],
rules
:
[{
required
:
true
,
message
:
"
请选择类型
"
}],
},
},
{
{
type
:
"
select
"
,
type
:
"
select
"
,
label
:
"
填报方式
"
,
label
:
"
填报方式
"
,
...
@@ -219,6 +212,14 @@ export default {
...
@@ -219,6 +212,14 @@ export default {
],
],
rules
:
[{
required
:
true
,
message
:
"
请选择填报方式
"
}],
rules
:
[{
required
:
true
,
message
:
"
请选择填报方式
"
}],
},
},
{
type
:
"
select
"
,
label
:
"
机构/科室
"
,
placeholder
:
"
请选择机构/科室
"
,
prop
:
"
deptId
"
,
opts
:
[],
},
{
{
type
:
"
select
"
,
type
:
"
select
"
,
label
:
"
对照模板
"
,
label
:
"
对照模板
"
,
...
@@ -273,7 +274,6 @@ export default {
...
@@ -273,7 +274,6 @@ export default {
})
})
},
},
handleCopyAdd
(
row
)
{
handleCopyAdd
(
row
)
{
const
data
=
Object
.
assign
({},
row
)
const
data
=
Object
.
assign
({},
row
)
delete
data
.
id
delete
data
.
id
...
...
src/views/systems/database/index.vue
View file @
a2964f31
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
width=
"800px"
width=
"800px"
:close-modal=
"false"
:close-modal=
"false"
ref=
"dialog"
ref=
"dialog"
:title=
"formEdit.id ? '
添加数据库' : '编辑
数据库'"
:title=
"formEdit.id ? '
编辑数据库' : '添加
数据库'"
:form-edit=
"formEdit"
:form-edit=
"formEdit"
:form-data=
"formData"
:form-data=
"formData"
@
handleConfirm=
"handleConfirm"
@
handleConfirm=
"handleConfirm"
...
...
src/views/systems/field-config/FieldList.vue
View file @
a2964f31
...
@@ -184,11 +184,6 @@ export default {
...
@@ -184,11 +184,6 @@ export default {
minWidth
:
120
,
minWidth
:
120
,
value
:
"
fieldCode
"
,
value
:
"
fieldCode
"
,
},
},
{
label
:
"
数据库存储表名称
"
,
minWidth
:
120
,
value
:
"
tableName
"
,
},
{
{
label
:
"
数据库存字段类型
"
,
label
:
"
数据库存字段类型
"
,
minWidth
:
120
,
minWidth
:
120
,
...
@@ -261,6 +256,7 @@ export default {
...
@@ -261,6 +256,7 @@ export default {
{
type
:
"
input
"
,
display
:
true
},
{
type
:
"
input
"
,
display
:
true
},
form
form
)
)
console
.
log
(
this
.
widgetFormSelect
)
this
.
widgetVisible
=
true
this
.
widgetVisible
=
true
},
},
handleConfirm
(
form
)
{
handleConfirm
(
form
)
{
...
...
src/views/systems/field-config/index.vue
View file @
a2964f31
...
@@ -38,9 +38,9 @@
...
@@ -38,9 +38,9 @@
<span
<span
@
click=
"handClick(index, item)"
@
click=
"handClick(index, item)"
:class=
"
{ active: index == isActive }"
:class=
"
{ active: index == isActive }"
style="cursor: pointer"
style="cursor: pointer
; word-break: break-word
"
>
>
{{
item
.
name
}}
|
{{
item
.
code
}}
{{
item
.
name
}}
<br
/>
{{
item
.
code
}}
</span>
</span>
<span
class=
"item-del"
>
<span
class=
"item-del"
>
<!--
<i
class=
"el-icon-edit-outline"
@
click=
"handleAdd(item)"
></i>
-->
<!--
<i
class=
"el-icon-edit-outline"
@
click=
"handleAdd(item)"
></i>
-->
...
...
src/views/systems/form-config/FormAdd.vue
View file @
a2964f31
...
@@ -100,6 +100,8 @@ export default {
...
@@ -100,6 +100,8 @@ export default {
customOldFields
.
push
({
customOldFields
.
push
({
...
field
,
...
field
,
tableName
:
item
.
tableName
,
tableName
:
item
.
tableName
,
tableCode
:
item
.
tableCode
,
tableId
:
item
.
tableId
,
})
})
})
})
...
...
src/views/systems/log/index.vue
0 → 100644
View file @
a2964f31
<
template
>
<div
class=
"container"
>
<direct-search
ref=
"form"
:label-position=
"'right'"
:forms=
"searchList"
:style=
"
{ textAlign: 'left' }"
@handleSearch="handleFormSearch"
/>
<el-table-self
ref=
"table"
:table-data=
"tableData"
:columns=
"columns"
:list-loading=
"listLoading"
:current-page=
"pageIndex"
:total-count=
"total"
:page-sizes=
"pageSizes"
:page-size=
"pageSize"
:sortChange=
"sortChange"
@
pageSizeChange=
"handleSizeChange"
@
currentPageChange=
"handleCurrentChange"
/>
</div>
</
template
>
<
script
>
import
{
getLogPage
}
from
"
@/api/user
"
;
import
directSearch
from
"
@/components/FormComponents/directSearch
"
;
import
elTableSelf
from
"
@/components/TabComponents/index
"
;
import
paginationMixin
from
"
@/components/TabComponents/mixin
"
;
export
default
{
name
:
"
Log
"
,
mixins
:
[
paginationMixin
],
components
:
{
elTableSelf
,
directSearch
,
},
data
()
{
return
{
formEdit
:
{},
title
:
""
,
// 查询列表
searchList
:
[
{
label
:
"
操作名称
"
,
type
:
"
input
"
,
prop
:
"
title
"
,
placeholder
:
"
请输入操作名称
"
,
},
{
label
:
"
请求方式
"
,
type
:
"
input
"
,
prop
:
"
method
"
,
placeholder
:
"
请输入请求方式
"
,
},
{
label
:
"
参数
"
,
type
:
"
input
"
,
prop
:
"
params
"
,
placeholder
:
"
请输入参数
"
,
},
{
type
:
"
button
"
,
icon
:
"
el-icon-search
"
,
value
:
"
查询
"
,
},
],
tableData
:
[],
listLoading
:
false
,
columns
:
[
{
label
:
"
操作名称
"
,
value
:
"
title
"
,
minWidth
:
220
,
},
{
label
:
"
用户IP
"
,
value
:
"
remoteAddr
"
,
minWidth
:
180
,
},
{
label
:
"
操作人
"
,
value
:
"
createBy
"
,
minWidth
:
180
,
},
{
label
:
"
代理
"
,
value
:
"
userAgent
"
,
minWidth
:
220
,
},
{
label
:
"
请求路径
"
,
value
:
"
requestUri
"
,
minWidth
:
150
,
},
{
label
:
"
请求方式
"
,
value
:
"
method
"
,
minWidth
:
100
,
},
{
label
:
"
请求参数
"
,
value
:
"
params
"
,
minWidth
:
150
,
},
{
label
:
"
异常
"
,
value
:
"
exception
"
,
minWidth
:
150
,
},
{
label
:
"
操作时间
"
,
value
:
"
createTime
"
,
minWidth
:
150
,
sortable
:
"
custom
"
,
},
],
cacheForm
:
{},
};
},
methods
:
{
sortChange
({
prop
,
order
})
{
const
asc
=
order
?
(
order
===
"
ascending
"
?
true
:
false
)
:
""
;
const
column
=
order
?
prop
:
""
;
if
(
column
)
{
this
.
handleSearch
({
"
orders[0].asc
"
:
asc
,
"
orders[0].column
"
:
this
.
$handle
.
toUnderline
(
column
),
});
}
else
{
delete
this
.
cacheForm
[
"
orders[0].asc
"
];
delete
this
.
cacheForm
[
"
orders[0].column
"
];
this
.
handleSearch
();
}
},
// 查询
handleFormSearch
(
form
)
{
this
.
pageIndex
=
1
;
this
.
handleSearch
(
form
);
},
// 数据page
handleSearch
(
form
=
{})
{
this
.
cacheForm
=
Object
.
assign
(
this
.
cacheForm
,
form
);
this
.
listLoading
=
true
;
const
params
=
Object
.
assign
({},
this
.
cacheForm
);
for
(
let
key
in
params
)
{
if
(
params
[
key
]
===
""
)
{
delete
params
[
key
];
}
}
params
.
current
=
this
.
pageIndex
;
params
.
size
=
this
.
pageSize
;
getLogPage
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
1
)
{
const
d
=
res
.
data
;
let
total
=
0
;
let
result
=
[];
if
(
d
&&
d
.
total
>
0
)
{
result
=
d
.
records
;
total
=
d
.
total
;
}
this
.
tableData
=
result
;
this
.
total
=
total
;
this
.
listLoading
=
false
;
}
});
},
},
mounted
()
{
this
.
handleFormSearch
();
},
};
</
script
>
<
style
lang=
"scss"
></
style
>
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