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
f0d29149
Commit
f0d29149
authored
Nov 25, 2022
by
miaojiale
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into dev_Miaojiale
parents
fe84976a
3dce4ce7
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1174 additions
and
57 deletions
+1174
-57
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
+199
-5
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 @
f0d29149
...
@@ -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 @
f0d29149
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 @
f0d29149
...
@@ -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 @
f0d29149
...
@@ -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 @
f0d29149
<
template
>
<div>
2222
</div>
</
template
>
src/views/screening/ScreeningAdd.vue
0 → 100644
View file @
f0d29149
<
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 @
f0d29149
<
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 @
f0d29149
<
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 @
f0d29149
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
View file @
f0d29149
<
template
>
<
template
>
<div>
添加筛查新病例
</div>
<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
>
</
template
>
<
script
>
<
script
>
import
paginationMixin
from
"
@/components/TabComponents/mixin
"
import
{
getPatientPage
}
from
"
@/api/patient.js
"
import
ConfigForms
from
"
./components/ConfigForms.vue
"
export
default
{
export
default
{
name
:
"
ScreeningIndex
"
,
mixins
:
[
paginationMixin
],
components
:
{
ConfigForms
},
data
()
{
data
()
{
return
{}
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
()
},
},
methods
:
{},
mounted
()
{},
watch
:
{},
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
<
style
lang=
"scss"
scoped
></
style
>
src/views/systems/colla-group/GroupForm.vue
View file @
f0d29149
...
@@ -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 @
f0d29149
...
@@ -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 @
f0d29149
...
@@ -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 @
f0d29149
...
@@ -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 @
f0d29149
...
@@ -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 @
f0d29149
<
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