Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
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
6a9a007a
Commit
6a9a007a
authored
Apr 17, 2023
by
liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
随访审核质控
parent
1495b22e
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
537 additions
and
317 deletions
+537
-317
followup.js
src/api/followup.js
+1
-1
FormItemText.vue
src/components/FormComponents/CustomForm/FormItemText.vue
+2
-1
index.vue
src/views/audit-qualitycontrol/index.vue
+3
-0
publicDialog.vue
src/views/followupentry/components/publicDialog.vue
+13
-2
followaudit.vue
src/views/followupentry/followaudit.vue
+455
-271
FollowReview.vue
src/views/followupquery/components/FollowReview.vue
+50
-34
MyCustomForm.vue
src/views/followupquery/components/MyCustomForm.vue
+12
-8
FormTab.vue
src/views/screening/components/FormTab.vue
+1
-0
No files found.
src/api/followup.js
View file @
6a9a007a
...
...
@@ -47,7 +47,7 @@ export function getFollowUnCheckDetail(id) {
//随访病例审核
export
function
putFollowCheck
(
data
=
{})
{
return
request
({
url
:
"
/disease-data/dataCheck/follow/check
"
,
url
:
"
/disease-data/dataCheck/follow/
un
check
"
,
method
:
"
put
"
,
data
,
})
...
...
src/components/FormComponents/CustomForm/FormItemText.vue
View file @
6a9a007a
...
...
@@ -76,7 +76,8 @@ export default {
},
methods
:
{
handleUnionName
(
v
)
{
return
this
.
unionLists
.
filter
((
e
)
=>
e
.
id
==
v
)[
0
].
unionName
const
union
=
this
.
unionList
.
find
((
e
)
=>
e
.
id
==
v
)
||
{}
return
union
.
unionName
||
""
},
},
filters
:
{
...
...
src/views/audit-qualitycontrol/index.vue
View file @
6a9a007a
...
...
@@ -227,8 +227,11 @@ export default {
this
.
$router
.
push
({
path
:
"
/followaudit
"
,
query
:
{
id
:
data
[
"
id
"
],
unionId
:
data
[
"
unionId
"
],
unionName
:
data
[
"
unionName
"
],
patientId
:
data
.
patientId
,
checkStatus
:
data
[
"
checkStatus
"
],
},
})
}
else
{
...
...
src/views/followupentry/components/publicDialog.vue
View file @
6a9a007a
<
template
>
<div>
<el-dialog
center
:visible.sync=
"dialogVisible"
width=
"40%"
show-close
@
closed=
"cancelSubmit"
>
<el-dialog
center
:visible.sync=
"dialogVisible"
width=
"40%"
show-close
@
closed=
"cancelSubmit"
>
<slot
name=
"content"
></slot>
<slot
name=
"footer"
></slot>
</el-dialog>
...
...
@@ -24,4 +30,9 @@ export default {
},
}
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-dialog__body
{
border-top
:
none
;
text-align
:
center
;
}
</
style
>
src/views/followupentry/followaudit.vue
View file @
6a9a007a
...
...
@@ -4,22 +4,23 @@
<div
class=
"audit-detail_header p-24"
>
<div
class=
"left"
>
<span>
当前审核
</span>
<span
class=
"f-b"
>
【
{{
medicalCombination
}}
】【剩余
{{
mcCount
}}
】
</span
<span
class=
"f-b"
>
【
{{
$route
.
query
.
unionName
}}
】
</span>
<span
v-if=
"!editStatus"
class=
"f-b"
>
【【剩余
{{
auditNum
||
0
}}
】
</span
>
</div>
<div
class=
"right"
>
<el-button
class=
"btn"
@
click=
"$router.go(-1)"
>
返回
</el-button>
</div>
</div>
<el-empty
v-if=
"isEmpty"
></el-empty>
<template
v-if=
"!isEmpty"
>
<div
class=
"table-content p-24"
>
<follow-review
:form-data-list=
"followNum"
:tab-active=
"tabActive"
></follow-review>
<FollowReview
:currentRow=
"currentRow"
titlePosition=
"left"
>
</FollowReview>
</div>
<div
class=
"choose-handle p-24"
>
<span
v-if=
"!editStatus"
>
请选择审核结果:
</span>
<div
class=
"btn_group"
>
<el-button
v-for=
"(item, index) in btnGroup"
...
...
@@ -30,33 +31,53 @@
@
click=
"showDialog(item.value)"
>
{{
item
.
text
}}
</el-button
>
<span
v-if=
"editStatus"
class=
"op"
>
驳回修改建议:胃镜图片不合规
</span>
<span
v-if=
"editStatus"
class=
"op"
>
{{
checkStatus
==
"
2
"
?
"
驳回修改建议 :
"
:
checkStatus
==
"
4
"
?
"
不合格原因 :
"
:
""
}}
{{
checkStatus
==
"
3
"
?
""
:
checkNote
}}
</span
>
</div>
</div>
<public-dialog
ref=
"editDialog"
@
onCancel=
"onCancel"
>
</
template
>
<!-- 编辑提交前弹窗 -->
<public-dialog
ref=
"editDialog"
@
onSubmit=
"onSubmit"
@
onCancel=
"onCancel"
>
<!-- 修改审核结果 优先触发提示 -->
<
template
v-if=
"!confirmStatus"
slot=
"content"
>
<div
class=
"title"
>
温馨提示
</div>
<div
class=
"content"
>
<div
class=
"showTips"
>
该病例已经审核【驳回修改】,需要改为
{{
该病例已经审核【
{{
checkStatus
==
2
?
"
驳回修改
"
:
checkStatus
==
3
?
"
合格
"
:
checkStatus
==
4
?
"
不合格
"
:
""
}}
】,需要改为
{{
btnGroup
[
curBtn
-
1
]
?
btnGroup
[
curBtn
-
1
].
text
:
""
}}
吗
</div>
</div>
<div
class=
"btn"
>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"onCancel"
>
否
</el-button
>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"editSubmit"
>
是
</el-button
>
<el-button
type=
"primary"
@
click=
"onCancel"
>
否
</el-button>
<el-button
type=
"primary"
@
click=
"editSubmit"
>
是
</el-button>
</div>
</
template
>
</public-dialog>
<public-dialog
ref=
"publicDialog"
@
onCancel=
"onCancel"
>
<public-dialog
ref=
"publicDialog"
:show-close=
"showClose"
@
onSubmit=
"onSubmit"
@
onCancel=
"onCancel"
>
<!-- 审核结果回显 -->
<
template
v-if=
"!confirmStatus"
slot=
"content"
>
<
template
v-if=
"!confirmStatus
&& !editLabelFlag
"
slot=
"content"
>
<div
class=
"title"
>
{{
btnGroup
[
curBtn
-
1
]
?
btnGroup
[
curBtn
-
1
].
text
:
""
}}
</div>
...
...
@@ -72,7 +93,7 @@
>
<el-form-item
:label=
"curBtn == 2 ? '不合格原因' : '驳回修改建议'"
prop=
"reson"
prop=
"re
a
son"
>
<el-input
v-model=
"form.reason"
...
...
@@ -83,28 +104,103 @@
></el-input>
</el-form-item>
</el-form>
<!-- 标签 -->
<div
v-loading=
"tagLoading"
class=
"tag-form"
>
<el-tag
v-for=
"(item, index) in tagList"
<!-- 标签部分 -->
<div
class=
"labelPlace"
>
<div
class=
"labelList"
>
<template
v-for=
"(item, index) in reasonList"
>
<div
v-if=
"item.note ? item.note.length
<
=
8
:
false
"
:key=
"index"
size=
"medium"
:class=
"item.isSelect ? '' : 'unselect-tag'"
@
click=
"seleckTag(item, index)"
:class=
"[
'listItem',
selectedReason.includes(item.note) ? 'active' : '',
]"
@
click=
"setReason(item)"
>
<span>
{{
item
.
note
}}
</span>
</el-tag>
<p
class=
"handle-row"
@
click=
"showNote = true"
>
编辑标签
</p>
<!-- selectedReason.includes(item) ? 'active' : '', -->
{{
item
.
note
}}
</div>
<template
v-if=
"item.note ? item.note.length > 8 : false"
>
<el-tooltip
:key=
"index"
class=
"item"
effect=
"dark"
:content=
"item.note"
placement=
"top"
>
<div
:class=
"[
'listItem',
selectedReason.includes(item.note) ? 'active' : '',
]"
@
click=
"setReason(item)"
>
<!-- selectedReason.includes(item) ? 'active' : '', -->
{{
item
.
note
}}
</div>
</el-tooltip>
</
template
>
</template>
</div>
<div
class=
"labelEdit"
>
<span
@
click=
"editLabel"
>
编辑标签
</span>
</div>
</div>
</div>
</div>
<div
class=
"btn"
>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"onSubmit"
>
确 定
</el-button
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"onSubmit"
>
{{
editStatus
? curBtn == 1
? "好的"
: "提交"
: "确认并进入下一例审核"
}}
</el-button>
</div>
</template>
<!-- 标签的弹窗 -->
<
template
v-if=
"!confirmStatus && editLabelFlag"
slot=
"content"
>
<div
class=
"left-back"
@
click=
"editLabelFlag = false"
>
<i
class=
"el-icon-back"
></i>
</div>
<div
class=
"title"
>
编辑标签
</div>
<div
class=
"content"
>
<ul
class=
"edit_reasonList"
>
<li
v-for=
"(item, index) in reasonList"
:key=
"index"
>
<el-input
v-model=
"item.note"
style=
"width: 86%"
placeholder=
"请输入标签内容"
clearable
>
</el-input>
<el-button
type=
"text"
style=
"color: red"
:disabled=
"reasonList.length == 1 && item.note == ''"
@
click=
"deleteLabel(index)"
>
删除
</el-button
>
<el-button
v-show=
"index == reasonList.length - 1"
type=
"text"
@
click=
"addLabel"
>
新增
</el-button
>
</li>
</ul>
</div>
<div
class=
"btn"
>
<el-button
type=
"primary"
:loading=
"loading"
style=
"padding: 0 30px"
@
click=
"saveLabel"
>
保存
</el-button
>
</div>
</
template
>
<!-- 提交后结果 -->
<!-- 提交后
合格
结果 -->
<
template
v-if=
"confirmStatus"
slot=
"content"
>
<div
class=
"title"
>
{{
btnGroup
[
curBtn
-
1
].
text
}}
</div>
<div
class=
"content"
>
...
...
@@ -114,23 +210,20 @@
<div
class=
"label"
>
{{
curBtn
==
2
?
"
不合格原因
"
:
"
驳回修改建议
"
}}
</div>
<div
class=
"re
son"
>
{{
form
.
re
son
}}
</div>
<div
class=
"re
ason"
>
{{
form
.
rea
son
}}
</div>
</div>
</div>
<div
v-if=
"curBtn != 1"
class=
"showTips"
>
该病例审核
{{
curBtn
==
2
?
"
不合格原因
"
:
"
驳回修改建议
"
}}
提交成功!
</div>
<div
class=
"btn"
>
<el-button
type=
"primary"
:loading=
"auditLoading"
@
click=
"nextExample"
>
<span
v-if=
"tabActive
<
formEdit
.
length
-
1
"
>
确认并进入下一列审核
</span
>
<span
v-else
>
确 定
</span>
</el-button>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"nextExample"
>
{{
editStatus
?
curBtn
==
1
?
"
好的
"
:
"
提交
"
:
"
确认并进入下一例审核
"
}}
</el-button>
</div>
</
template
>
</public-dialog>
...
...
@@ -138,240 +231,310 @@
</template>
<
script
>
import
publicDialog
from
"
./components/publicDialog.vue
"
import
followReview
from
"
./components/followReview.vue
"
import
{
getFollowUnCheckDetail
,
putFollowCheck
}
from
"
@/api/followup
"
import
{
getSysCheckNote
,
postSysCheckNote
}
from
"
@/api/note
"
import
FollowReview
from
"
../followupquery/components/FollowReview.vue
"
import
{
getFollowUnCheckDetail
,
putFollowCheck
,
putFollowCheckAdvice
,
}
from
"
@/api/followup
"
import
{
saveSysCheckNote
,
getSysCheckNote
}
from
"
@/api/screeningAudit
"
export
default
{
components
:
{
publicDialog
,
f
ollowReview
},
components
:
{
publicDialog
,
F
ollowReview
},
data
()
{
return
{
medicalCombination
:
"
无锡市人民医院医联体
"
,
mcCount
:
7
,
isEmpty
:
false
,
currentRow
:
{},
checkStatus
:
null
,
editLabelFlag
:
false
,
auditNum
:
0
,
editStatus
:
false
,
//进入的状态是第一次审核还是修改审核,false为第一次,true为修改
followNum
:
[
//随访次数数据
{
followId
:
123
,
formRecordId
:
123
},
{
followId
:
123
,
formRecordId
:
123
},
{
followId
:
123
,
formRecordId
:
123
},
{
followId
:
123
,
formRecordId
:
123
},
],
//第几次随访数据
formEdit
:
{
name
:
"
djksh
"
,
contact_phone
:
"
12345678
"
,
is_accept
:
"
0
"
,
gas_exam
:
"
15
"
,
G_17
:
"
5
"
,
},
//填报数据
form
:
{},
form
:
{
reason
:
""
,
},
patientId
:
""
,
// 当前人的patientId
checkNote
:
""
,
checkStatus
:
""
,
// 传入的checkstatus
curUnion
:
""
,
// 当前医联体
id
:
""
,
rules
:
{
reason
:
[{
required
:
true
,
message
:
"
请填写
"
,
trigger
:
"
blur
"
}],
},
reasonList
:
[],
selectedReason
:
[],
btnGroup
:
[
{
text
:
"
合格
"
,
value
:
3
,
value
:
1
,
},
{
text
:
"
不合格
"
,
value
:
4
,
value
:
2
,
},
{
text
:
"
驳回修改
"
,
value
:
2
,
value
:
3
,
},
],
loading
:
false
,
curBtn
:
0
,
//点击的按钮
curComponent
:
"
follow
Review
"
,
curBtn
:
0
,
curComponent
:
"
screen
Review
"
,
confirmStatus
:
false
,
tagList
:
[
// {
// note: "不合格原因",
// isSelect: false,
// },
// {
// note: "不合格原因不合格原因",
// },
// {
// note: "不合格原因",
// },
// {
// note: "不合格原因",
// },
// {
// note: "不合格原因",
// },
],
newNote
:
""
,
minHeight
:
"
170px
"
,
showNote
:
false
,
}
},
computed
:
{
unionId
()
{
return
this
.
$route
.
query
.
i
d
return
this
.
$route
.
query
.
unionI
d
},
showClose
()
{
return
this
.
curBtn
==
1
?
false
:
true
},
watch
:
{
// tagList(){
// this.$nextTick(() => {
// this.minHeight = this.$refs.publicContent.offsetHeight + "px"
// })
// }
},
created
()
{
// this.getDetail
()
this
.
init
()
},
methods
:
{
showDialog
(
val
,
index
)
{
console
.
log
(
"
显示框
"
,
val
)
async
getFollowUnCheckDetail
()
{
this
.
loading
=
true
let
res
=
await
getFollowUnCheckDetail
(
this
.
unionId
)
const
{
now
,
nums
}
=
res
.
data
this
.
auditNum
=
nums
this
.
currentRow
=
{
...
now
,
followBatch
:
1
}
this
.
loading
=
false
this
.
isEmpty
=
!
nums
},
init
()
{
const
{
patientId
,
checkStatus
,
checkNote
,
id
}
=
this
.
$route
.
query
this
.
editStatus
=
Boolean
(
patientId
)
if
(
patientId
)
{
this
.
currentRow
=
{
id
,
patientId
:
patientId
,
followBatch
:
1
,
}
this
.
checkStatus
=
checkStatus
this
.
checkNote
=
checkNote
}
else
{
this
.
getFollowUnCheckDetail
()
}
},
this
.
curBtn
=
index
+
1
if
(
!
this
.
editStatus
)
{
// 获取标签
getSysCheckNote
()
{
getSysCheckNote
().
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
let
{
data
}
=
res
if
(
data
&&
data
.
length
>
0
)
{
this
.
reasonList
=
data
}
else
{
this
.
reasonList
=
[{
note
:
""
}]
}
}
})
},
// 编辑标签
editLabel
()
{
this
.
editLabelFlag
=
true
},
// 提交接口
putFollowCheck
(
checkStatus
,
func
)
{
const
{
id
,
patientId
}
=
this
.
currentRow
let
params
=
{
id
,
checkStatus
:
checkStatus
,
checkNote
:
this
.
form
.
reason
,
patientId
,
}
putFollowCheck
(
params
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
&&
res
.
data
)
{
func
()
}
else
{
this
.
loading
=
false
}
})
.
catch
(()
=>
{
this
.
loading
=
false
})
},
//! 修改审核结果
putFollowCheckAdvice
(
checkStatus
,
func
)
{
const
{
id
,
patientId
}
=
this
.
currentRow
let
params
=
{
id
,
checkStatus
:
checkStatus
,
checkNote
:
this
.
form
.
reason
,
patientId
,
}
putFollowCheckAdvice
(
params
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
&&
res
.
data
)
{
this
.
loading
=
false
this
.
checkStatus
=
checkStatus
this
.
checkNote
=
this
.
form
.
reason
func
()
}
else
{
this
.
loading
=
false
this
.
$refs
.
publicDialog
.
dialogVisible
=
false
}
})
.
catch
(()
=>
{
this
.
loading
=
false
})
},
// 设置理由
setReason
({
note
})
{
if
(
this
.
selectedReason
.
includes
(
note
))
{
this
.
selectedReason
=
this
.
selectedReason
.
filter
((
e
)
=>
e
!=
note
)
}
else
{
this
.
selectedReason
.
push
(
note
)
}
this
.
form
.
reason
=
this
.
selectedReason
.
join
(
"
、
"
)
},
//! 合格提交 checkStatus 合格-3 不合格-4 驳回修改-2 待审核-1
showDialog
(
val
)
{
this
.
curBtn
=
val
if
(
this
.
editStatus
)
{
//! 精准编辑
this
.
$refs
.
editDialog
.
dialogVisible
=
true
}
else
{
//! 医联体的审核
if
(
val
==
1
)
{
this
.
$confirm
(
"
确定要提交审核吗?
"
,
"
警告
"
,
{
type
:
"
warning
"
,
})
.
then
(()
=>
{
if
(
this
.
curBtn
==
1
)
{
// 走接口,保存合格
this
.
putFollowCheck
(
"
3
"
,
()
=>
{
this
.
confirmStatus
=
true
}
else
if
(
this
.
curBtn
==
2
)
{
this
.
rules
.
reason
[
0
].
message
=
"
请输入不合格原因
"
//获取审核标签
})
}
})
.
catch
(()
=>
{})
}
else
{
this
.
getSysCheckNote
()
if
(
this
.
curBtn
==
2
)
{
this
.
rules
.
reason
[
0
].
message
=
"
请输入不合格原因
"
}
else
{
d
this
.
rules
.
reason
[
0
].
message
=
"
请输入驳回修改建议
"
}
this
.
$refs
.
publicDialog
.
dialogVisible
=
true
}
}
},
// 不合格提交
onSubmit
()
{
this
.
loading
=
true
// 切换文本
if
(
this
.
curBtn
!=
1
)
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
let
status
=
this
.
curBtn
==
2
?
"
4
"
:
this
.
curBtn
==
3
?
"
2
"
:
""
if
(
this
.
editStatus
)
{
this
.
putFollowCheckAdvice
(
status
,
()
=>
{
this
.
$message
.
success
(
"
提交审核成功
"
)
this
.
onCancel
()
})
}
else
{
this
.
$refs
.
editDialog
.
dialogVisible
=
true
this
.
putFollowCheck
(
status
,
()
=>
{
this
.
$message
.
success
(
"
提交审核成功
"
)
this
.
nextExample
()
})
}
}
else
{
this
.
loading
=
false
return
false
}
})
}
// this.$refs.publicDialog.dialogVisible = true
},
onCancel
()
{
this
.
confirmStatus
=
false
this
.
editLabelFlag
=
false
this
.
selectedReason
=
[]
if
(
this
.
curBtn
!=
1
)
{
this
.
form
=
{}
this
.
form
=
{
reason
:
""
}
}
this
.
$refs
.
editDialog
.
dialogVisible
=
false
this
.
$refs
.
publicDialog
.
dialogVisible
=
false
// this.$refs.noteDialog.dialogVisible = false
if
(
this
.
$refs
.
form
)
{
this
.
$refs
.
form
.
clearValidate
()
}
},
// 修改提交
editSubmit
()
{
// this.$refs.editDialog.dialogVisible = false
if
(
this
.
curBtn
==
1
)
{
// 走接口,保存合格
if
(
this
.
editStatus
)
{
// 走接口,保存合格
this
.
putFollowCheckAdvice
(
"
3
"
,
()
=>
{
this
.
confirmStatus
=
true
}
else
if
(
this
.
curBtn
==
2
)
{
this
.
$refs
.
publicDialog
.
dialogVisible
=
true
this
.
selectedReason
=
[]
})
}
}
else
{
this
.
getSysCheckNote
()
if
(
this
.
curBtn
==
2
)
{
this
.
rules
.
reason
[
0
].
message
=
"
请输入不合格原因
"
}
else
{
this
.
rules
.
reason
[
0
].
message
=
"
请输入驳回修改建议
"
}
this
.
$refs
.
publicDialog
.
dialogVisible
=
true
}
},
nextExample
()
{
if
(
Number
(
this
.
tabActive
)
<
this
.
formEdit
.
length
-
1
)
{
this
.
tabActive
=
String
(
Number
(
this
.
tabActive
)
+
1
)
}
console
.
log
(
"
tab激活
"
,
this
.
tabActive
)
if
(
this
.
editStatus
)
{
this
.
loading
=
false
this
.
onCancel
()
},
async
getDetail
()
{
this
.
loading
=
true
let
res
=
await
getFollowUnCheckDetail
(
this
.
unionId
)
if
(
res
.
code
==
1
)
{
this
.
formEdit
=
res
.
data
[
0
]
}
else
{
this
.
onCancel
()
this
.
getFollowUnCheckDetail
()
}
this
.
loading
=
false
},
//审核
async
handleCheck
()
{
this
.
auditLoading
=
true
let
params
=
{
id
:
this
.
formEdit
[
this
.
tabActive
],
checkStatus
:
this
.
btnGroup
[
this
.
curBtn
].
value
,
checkNote
:
this
.
form
.
reason
,
patientId
:
this
.
unionId
,
}
console
.
log
(
"
审核值
"
,
params
)
// let res = await putFollowCheck(params)
// if(res.code==1){
// // this.formEdit=res.data //调试注释
// }
this
.
auditLoading
=
false
deleteLabel
(
i
)
{
this
.
$confirm
(
"
确定要删除该标签吗?
"
,
"
警告
"
,
{
type
:
"
warning
"
,
})
.
then
(()
=>
{
this
.
reasonList
=
this
.
reasonList
.
filter
((
e
,
index
)
=>
index
!=
i
)
if
(
this
.
reasonList
.
length
==
0
)
{
this
.
reasonList
=
[
{
note
:
""
,
},
// 获取审核标签
async
getSysCheckNote
()
{
this
.
tagLoading
=
true
let
res
=
await
getSysCheckNote
()
if
(
res
.
code
==
1
)
{
this
.
tagList
=
res
.
data
]
}
this
.
tagLoading
=
false
})
.
catch
(()
=>
{})
},
//
选择
标签
seleckTag
(
item
,
index
)
{
this
.
tagList
[
index
][
"
isSelect
"
]
=
true
this
.
form
.
reason
=
this
.
form
.
reason
+
item
.
note
+
"
、
"
this
.
$forceUpdate
(
)
//
增加
标签
addLabel
(
)
{
this
.
reasonList
.
push
({
note
:
""
,
}
)
},
//
标签保存
async
saveTag
()
{
let
params
=
this
.
tag
List
.
map
((
e
)
=>
e
.
note
)
let
res
=
await
postSysCheckNote
(
params
)
//
保存标签
saveLabel
()
{
let
arr
=
this
.
reason
List
.
map
((
e
)
=>
e
.
note
)
saveSysCheckNote
(
arr
).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
$message
.
success
(
"
保存标签成功
"
)
this
.
getSysCheckNote
()
// this.$refs.noteDialog.dialogVisible
= false
this
.
editLabelFlag
=
false
}
},
//标签添加
addTag
()
{
this
.
tagList
.
push
({
note
:
""
,
})
this
.
$forceUpdate
()
},
//标签删除
delTag
(
item
,
index
)
{
this
.
$confirm
(
"
确定要删除该标签吗?
"
,
"
警告
"
,
{
type
:
"
warning
"
,
})
.
then
(()
=>
{
this
.
tagList
=
this
.
tagList
.
filter
((
e
,
i
)
=>
i
!=
index
)
})
.
catch
(()
=>
{})
},
//标签对话框关闭
handleNoteDialog
(
i
)
{
this
.
showNote
=
false
this
.
getSysCheckNote
()
},
// //标签保存对话框操作
// noteSave(){
// this.$refs.noteDialog.dialogVisible = false
// this.getSysCheckNote()
// },
// //添加、编辑标签
// async handleTag(item){
// if(!item.note) return
// else{
// let params = {
// note:item.note
// }
// item.id ? params['id']=item.id : ''
// let res = item.id ? await putSysCheckNote(params) : await postSysCheckNote(params)
// }
// }
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-dialog__body
{
border-top
:
none
;
text-align
:
center
;
.tips
{
.tips
{
font-size
:
16px
;
}
}
.p-24
{
padding
:
0
24px
;
...
...
@@ -382,6 +545,8 @@ export default {
}
#audit-detail
{
display
:
flex
;
flex-direction
:
column
;
// padding: 22px 24px;
.audit-detail_header
{
height
:
65px
;
...
...
@@ -390,11 +555,13 @@ export default {
display
:
flex
;
justify-content
:
space-between
;
.right
{
display
:
flex
;
align-items
:
center
;
.btn
{
margin-top
:
0px
;
width
:
80px
;
height
:
32px
;
border-radius
:
4px
;
margin-top
:
0px
;
}
}
}
...
...
@@ -405,7 +572,7 @@ export default {
font-size
:
14px
;
font-family
:
AlibabaPuHuiTiM
;
color
:
#333333
;
box-shadow
:
0px
1px
0px
0px
rgba
(
0
,
0
,
0
,
0
.1
);
// box-shadow: 0px -
1px 0px 0px rgba(0, 0, 0, 0.1);
border-top
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
display
:
flex
;
.btn_group
{
...
...
@@ -425,7 +592,7 @@ export default {
line-height
:
26px
;
}
.content
{
margin
:
28px
23
px
;
margin
:
58
px
;
.pass
{
font-size
:
18px
;
font-family
:
AlibabaPuHuiTiM
;
...
...
@@ -436,7 +603,8 @@ export default {
.btn
{
margin-top
:
20px
;
.el-button
{
// width: 100px;
min-width
:
100px
;
border-radius
:
5px
;
height
:
32px
;
}
}
...
...
@@ -457,59 +625,75 @@ export default {
margin-left
:
20px
;
}
.table-content
{
// height: calc(100vh - 260px);
// overflow: auto;
padding-top
:
20px
;
padding-bottom
:
20px
;
}
.tag-form
{
text-align
:
initial
;
::v-deep
{
.el-tag
{
margin
:
0px
12px
12px
0px
;
.empty
{
width
:
100%
;
height
:
15px
;
background
:
#f6f8f9
;
}
.left-back
{
position
:
absolute
;
padding
:
7px
5px
;
top
:
10px
;
font-size
:
20px
;
text-align
:
left
;
cursor
:
pointer
;
border-color
:
#4e68ff
;
span
{
display
:
inline-block
;
}
}
.unselect-tag
{
}
.labelPlace
{
.labelList
{
display
:
flex
;
flex-wrap
:
wrap
;
.listItem
{
cursor
:
pointer
;
max-width
:
200px
;
white-space
:
nowrap
;
display
:
block
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
padding
:
8px
12px
;
border
:
1px
solid
rgba
(
78
,
104
,
255
,
0
.06
);
background
:
rgba
(
78
,
104
,
255
,
0
.06
);
border-radius
:
2px
;
margin
:
0
12px
12px
0
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
color
:
#353a45
;
border-color
:
#edf0ff
;
}
user-select
:
none
;
}
.handle-row
{
.active
{
background
:
rgba
(
78
,
104
,
255
,
0
.1
);
color
:
#4e68ff
;
text-decoration
:
underline
;
text-align
:
right
;
cursor
:
pointer
;
}
}
.note-dialog
{
::v-deep
{
.tag-input
{
.el-input__inner
{
background-color
:
rgba
(
78
,
104
,
255
,
0
.06
);
border-radius
:
2px
;
border
:
1px
solid
#4e68ff
;
}
}
.handle-text
{
line-height
:
36px
;
.labelEdit
{
font-size
:
14px
;
text-align
:
right
;
span
{
cursor
:
pointer
;
}
user-select
:
none
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
color
:
rgba
(
78
,
120
,
255
);
text-decoration
:
underline
;
&
:active
{
color
:
rgba
(
78
,
50
,
255
);
}
}
}
.left-back
{
position
:
absolute
;
padding
:
7px
5px
;
top
:
10px
;
font-size
:
22px
;
text-align
:
left
;
cursor
:
pointer
;
}
::v-deep
{
.el-dialog__headerbtn
{
font-weight
:
bold
;
font-size
:
22px
;
.edit_reasonList
{
li
{
display
:
flex
;
margin-bottom
:
16px
;
.el-button
{
margin-left
:
12px
;
font-size
:
14px
;
}
}
}
</
style
>
src/views/followupquery/components/FollowReview.vue
View file @
6a9a007a
...
...
@@ -4,12 +4,12 @@
<el-header
v-if=
"titlePosition === 'top'"
>
<div
class=
"follow-tab-top"
>
<el-tabs
v-model=
"activeTab"
type=
"card"
>
<el-tab-pane
label=
"筛查"
name=
"
999
"
></el-tab-pane>
<el-tab-pane
label=
"筛查"
name=
"
0
"
></el-tab-pane>
<el-tab-pane
v-for=
"(item, index) in followList"
:key=
"index"
:label=
"'第' + Number(index + 1) + '次随访数据'"
:name=
"String(index)"
:name=
"String(index
+ 1
)"
></el-tab-pane>
</el-tabs>
</div>
...
...
@@ -17,7 +17,7 @@
<slot
name=
"button"
></slot>
</div>
</el-header>
<el-container
v-loading=
"fromLoading"
>
<el-container>
<el-aside
width=
"auto"
v-if=
"titlePosition === 'left'"
>
<div
class=
"follow-tab"
>
<el-tabs
...
...
@@ -25,27 +25,36 @@
tab-position=
"right"
style=
"height: 200px"
>
<el-tab-pane
label=
"筛查病例数据"
name=
"999"
></el-tab-pane>
<el-tab-pane
label=
"筛查病例数据"
name=
"0"
>
<template
slot=
"label"
>
<div
class=
"tab-label"
>
筛查病例数据
</div></
template
>
</el-tab-pane>
<el-tab-pane
v-for=
"(item, index) in followList"
:key=
"index"
:label=
"'第' + Number(index + 1) + '次随访数据'"
:name=
"String(index)"
></el-tab-pane>
:name=
"String(index + 1)"
>
<
template
slot=
"label"
>
<div
class=
"tab-label"
>
{{
"
第
"
+
Number
(
index
+
1
)
+
"
次随访数据
"
}}
</div></
template
>
</el-tab-pane>
</el-tabs>
</div>
</el-aside>
<el-main
class=
"transition-box"
>
<el-main
class=
"transition-box"
v-loading=
"fromLoading"
>
<div
class=
"my_form"
>
<MyCustomForm
v-show=
"activeTab === '
999
'"
v-show=
"activeTab === '
0
'"
v-for=
"form in formTabs"
:key=
"form.id"
:form=
"form"
:patientId=
"currentRow.patientId"
></MyCustomForm>
<MyCustomForm
v-show=
"activeTab !== '
999
'"
v-show=
"activeTab !== '
0
'"
v-for=
"form in followForms"
:key=
"form.id"
:form=
"form"
...
...
@@ -104,7 +113,7 @@ export default {
fromLoading
:
false
,
formTabs
:
[],
followForms
:
[],
activeTab
:
"
999
"
,
activeTab
:
"
0
"
,
screenList
:
[],
followList
:
[],
}
...
...
@@ -118,8 +127,8 @@ export default {
},
followId
()
{
return
(
(
this
.
followList
[
this
.
activeTab
]
&&
this
.
followList
[
this
.
activeTab
].
followId
)
||
(
this
.
followList
[
this
.
activeTab
-
1
]
&&
this
.
followList
[
this
.
activeTab
-
1
].
followId
)
||
null
)
},
...
...
@@ -128,13 +137,17 @@ export default {
followId
()
{
this
.
getLogList
()
},
},
created
()
{
"
currentRow.patientId
"
:
{
handler
(
val
)
{
if
(
val
)
{
this
.
getCurrentFormByType
()
this
.
getFollowInfo
()
this
.
getLogList
()
}
},
immediate
:
true
,
},
},
methods
:
{
getLogList
()
{
const
obj
=
{
...
...
@@ -179,6 +192,7 @@ export default {
patientFrom
:
this
.
$store
.
getters
[
"
table/selectedIndex
"
],
}).
then
((
res
)
=>
{
this
.
followList
=
res
.
data
.
filter
((
_
)
=>
_
.
followBatch
>
0
)
this
.
activeTab
=
String
(
this
.
followList
.
length
)
})
},
getFollowInfo
()
{
...
...
@@ -199,7 +213,7 @@ export default {
justify-content
:
space-between
;
}
.follow-tab-top
{
width
:
calc
(
100
%
-
200px
);
width
:
calc
(
100
vh
-
200px
);
padding-left
:
10px
;
::v-deep
{
.el-tabs--card
>
.el-tabs__header
{
...
...
@@ -223,26 +237,30 @@ export default {
}
}
.my_form
{
height
:
calc
(
100vh
-
2
0
0px
);
height
:
calc
(
100vh
-
2
8
0px
);
overflow-y
:
auto
;
}
.el-main
{
padding
:
0px
20px
;
}
.el-aside
{
padding-bottom
:
20px
;
}
.extra_btn
{
width
:
170px
;
text-align
:
right
;
margin-top
:
5px
;
}
.follow-tab
{
::v-deep
{
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
height
:
calc
(
100vh
-
200px
);
height
:
calc
(
100vh
-
280px
);
overflow
:
overlay
;
::v-deep
{
.tab-label
{
border-bottom
:
1px
solid
#ccc
;
padding
:
0
20px
;
height
:
60px
;
line-height
:
60px
;
}
.el-tabs__header
{
margin-left
:
0px
;
}
...
...
@@ -251,7 +269,6 @@ export default {
}
.el-tabs__active-bar.is-right
{
width
:
3px
;
height
:
52px
!
important
;
}
.el-tabs--right
{
height
:
auto
!
important
;
...
...
@@ -263,12 +280,11 @@ export default {
border-bottom
:
1px
solid
#cccccc
;
}
.el-tabs__item
{
padding
:
16px
;
width
:
180px
;
padding
:
0
;
background
:
#fafafa
;
height
:
auto
;
line-height
:
inherit
;
border-bottom
:
1px
solid
#cccccc
;
height
:
60px
;
line-height
:
60px
;
transition
:
all
1s
;
}
.el-tabs__item.is-active
{
...
...
@@ -282,7 +298,7 @@ export default {
height
:
100%
;
background
:
#fafafa
;
padding-right
:
15px
;
height
:
calc
(
100vh
-
2
0
0px
);
height
:
calc
(
100vh
-
2
8
0px
);
overflow-y
:
overlay
;
li
{
padding
:
16px
;
...
...
src/views/followupquery/components/MyCustomForm.vue
View file @
6a9a007a
<
template
>
<div>
<el-skeleton
v-if=
"isEmpty"
animated
/>
<custom-form
v-if=
"!isEmpty"
class=
"mb-20"
...
...
@@ -7,6 +9,7 @@
:options=
"widgetFormPreview"
:form-edit=
"formEdit"
></custom-form>
</div>
</
template
>
<
script
>
import
{
getPatientDetail
,
getFollowDetail
}
from
"
@/api/patient.js
"
...
...
@@ -83,6 +86,7 @@ export default {
this
.
$nextTick
(()
=>
{
this
.
$refs
.
form
&&
this
.
$refs
.
form
.
resetForm
()
})
this
.
loading
=
true
getFollowDetail
({
followId
:
this
.
followId
,
formId
:
this
.
form
.
formId
,
...
...
src/views/screening/components/FormTab.vue
View file @
6a9a007a
...
...
@@ -308,6 +308,7 @@ export default {
// 处理followId 针对随访查询的列表数据的查询和修改操作
if
(
this
.
$route
.
path
==
"
/followupentry
"
)
{
params
.
followId
=
this
.
followId
||
this
.
getTabFollowId
params
.
formRecordId
=
this
.
formData
.
formRecordId
}
this
.
$emit
(
"
handleConfirm
"
,
params
,
done
,
(
res
)
=>
{
// 多次填写的表单新增时,获取最新数据
...
...
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