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
7902f2ca
Commit
7902f2ca
authored
Feb 21, 2023
by
miaojiale
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
审核报表
parent
8a7f01ff
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
280 additions
and
121 deletions
+280
-121
qualitycontrol-report.js
src/api/qualitycontrol-report.js
+20
-0
index.vue
src/views/audit-detail/index.vue
+3
-0
followaudit.vue
src/views/followupentry/followaudit.vue
+44
-25
index.vue
src/views/qualitycontrol-report/index.vue
+213
-96
No files found.
src/api/qualitycontrol-report.js
0 → 100644
View file @
7902f2ca
import
request
from
"
@/utils/request
"
/* 质控报表 */
// 审核员列表
export
function
checkerQuality
(
params
=
{})
{
return
request
({
url
:
"
/disease-data/data/report/checker/quality
"
,
method
:
"
get
"
,
params
,
})
}
// 管理员列表
export
function
adminQuality
(
params
=
{})
{
return
request
({
url
:
"
/disease-data/data/report/admin/quality
"
,
method
:
"
get
"
,
params
,
})
}
src/views/audit-detail/index.vue
View file @
7902f2ca
...
@@ -572,10 +572,13 @@ export default {
...
@@ -572,10 +572,13 @@ export default {
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
.right
{
.right
{
display
:
flex
;
align-items
:
center
;
.btn
{
.btn
{
width
:
80px
;
width
:
80px
;
height
:
32px
;
height
:
32px
;
border-radius
:
4px
;
border-radius
:
4px
;
margin-top
:
0px
;
}
}
}
}
}
}
...
...
src/views/followupentry/followaudit.vue
View file @
7902f2ca
...
@@ -4,7 +4,9 @@
...
@@ -4,7 +4,9 @@
<div
class=
"audit-detail_header p-24"
>
<div
class=
"audit-detail_header p-24"
>
<div
class=
"left"
>
<div
class=
"left"
>
<span>
当前审核
</span>
<span>
当前审核
</span>
<span
class=
"f-b"
>
【
{{
medicalCombination
}}
】【剩余
{{
mcCount
}}
】
</span>
<span
class=
"f-b"
>
【
{{
medicalCombination
}}
】【剩余
{{
mcCount
}}
】
</span
>
</div>
</div>
<div
class=
"right"
>
<div
class=
"right"
>
<el-button
class=
"btn"
@
click=
"$router.go(-1)"
>
返回
</el-button>
<el-button
class=
"btn"
@
click=
"$router.go(-1)"
>
返回
</el-button>
...
@@ -24,7 +26,8 @@
...
@@ -24,7 +26,8 @@
class=
"p-btn"
class=
"p-btn"
size=
"medium"
size=
"medium"
@
click=
"showDialog(item.value)"
@
click=
"showDialog(item.value)"
>
{{
item
.
text
}}
</el-button>
>
{{
item
.
text
}}
</el-button
>
<span
v-if=
"editStatus"
class=
"op"
>
驳回修改建议:胃镜图片不合规
</span>
<span
v-if=
"editStatus"
class=
"op"
>
驳回修改建议:胃镜图片不合规
</span>
</div>
</div>
</div>
</div>
...
@@ -35,20 +38,26 @@
...
@@ -35,20 +38,26 @@
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"showTips"
>
<div
class=
"showTips"
>
该病例已经审核【驳回修改】,需要改为
{{
该病例已经审核【驳回修改】,需要改为
{{
btnGroup
[
curBtn
-
1
]
?
btnGroup
[
curBtn
-
1
].
text
:
""
btnGroup
[
curBtn
-
1
]
?
btnGroup
[
curBtn
-
1
].
text
:
""
}}
吗
}}
吗
</div>
</div>
</div>
</div>
<div
class=
"btn"
>
<div
class=
"btn"
>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"onCancel"
>
否
</el-button>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"onCancel"
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"editSubmit"
>
是
</el-button>
>
否
</el-button
>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"editSubmit"
>
是
</el-button
>
</div>
</div>
</
template
>
</
template
>
</public-dialog>
</public-dialog>
<public-dialog
ref=
"publicDialog"
@
onSubmit=
"onSubmit"
@
onCancel=
"onCancel"
>
<public-dialog
ref=
"publicDialog"
@
onSubmit=
"onSubmit"
@
onCancel=
"onCancel"
>
<!-- 审核结果回显 -->
<!-- 审核结果回显 -->
<
template
v-if=
"!confirmStatus"
slot=
"content"
>
<
template
v-if=
"!confirmStatus"
slot=
"content"
>
<div
class=
"title"
>
{{
btnGroup
[
curBtn
-
1
]
?
btnGroup
[
curBtn
-
1
].
text
:
""
}}
</div>
<div
class=
"title"
>
{{
btnGroup
[
curBtn
-
1
]
?
btnGroup
[
curBtn
-
1
].
text
:
""
}}
</div>
<div
class=
"content"
>
<div
class=
"content"
>
<div
v-if=
"curBtn != 1"
class=
"noPass"
>
<div
v-if=
"curBtn != 1"
class=
"noPass"
>
<el-form
<el-form
...
@@ -59,7 +68,10 @@
...
@@ -59,7 +68,10 @@
label-width=
"100px"
label-width=
"100px"
class=
"demo-ruleForm"
class=
"demo-ruleForm"
>
>
<el-form-item
:label=
"curBtn == 2 ? '不合格原因' : '驳回修改建议'"
prop=
"reson"
>
<el-form-item
:label=
"curBtn == 2 ? '不合格原因' : '驳回修改建议'"
prop=
"reson"
>
<el-input
<el-input
v-model=
"form.reson"
v-model=
"form.reson"
type=
"textarea"
type=
"textarea"
...
@@ -72,7 +84,9 @@
...
@@ -72,7 +84,9 @@
</div>
</div>
</div>
</div>
<div
class=
"btn"
>
<div
class=
"btn"
>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"onSubmit"
>
确 定
</el-button>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"onSubmit"
>
确 定
</el-button
>
</div>
</div>
</
template
>
</
template
>
<!-- 提交后结果 -->
<!-- 提交后结果 -->
...
@@ -82,11 +96,15 @@
...
@@ -82,11 +96,15 @@
<div
v-if=
"curBtn == 1"
class=
"pass"
>
该病例审核合格成功!
</div>
<div
v-if=
"curBtn == 1"
class=
"pass"
>
该病例审核合格成功!
</div>
<div
v-if=
"curBtn != 1"
class=
"noPass"
>
<div
v-if=
"curBtn != 1"
class=
"noPass"
>
<!-- 不合格和驳回 -->
<!-- 不合格和驳回 -->
<div
class=
"label"
>
{{
curBtn
==
2
?
"
不合格原因
"
:
"
驳回修改建议
"
}}
</div>
<div
class=
"label"
>
{{
curBtn
==
2
?
"
不合格原因
"
:
"
驳回修改建议
"
}}
</div>
<div
class=
"reson"
>
{{
form
.
reson
}}
</div>
<div
class=
"reson"
>
{{
form
.
reson
}}
</div>
</div>
</div>
</div>
</div>
<div
v-if=
"curBtn != 1"
class=
"showTips"
>
该病例审核
{{
curBtn
==
2
?
"
不合格原因
"
:
"
驳回修改建议
"
}}
提交成功!
</div>
<div
v-if=
"curBtn != 1"
class=
"showTips"
>
该病例审核
{{
curBtn
==
2
?
"
不合格原因
"
:
"
驳回修改建议
"
}}
提交成功!
</div>
<div
class=
"btn"
>
<div
class=
"btn"
>
<el-button
type=
"primary"
@
click=
"nextExample"
>
下一例
</el-button>
<el-button
type=
"primary"
@
click=
"nextExample"
>
下一例
</el-button>
</div>
</div>
...
@@ -102,16 +120,16 @@ export default {
...
@@ -102,16 +120,16 @@ export default {
components
:
{
publicDialog
,
followReview
},
components
:
{
publicDialog
,
followReview
},
data
()
{
data
()
{
return
{
return
{
medicalCombination
:
'
无锡市人民医院医联体
'
,
medicalCombination
:
"
无锡市人民医院医联体
"
,
mcCount
:
7
,
mcCount
:
7
,
editStatus
:
false
,
//进入的状态是第一次审核还是修改审核,false为第一次,true为修改
editStatus
:
false
,
//进入的状态是第一次审核还是修改审核,false为第一次,true为修改
formEdit
:{
formEdit
:
{
name
:
"
djksh
"
,
name
:
"
djksh
"
,
contact_phone
:
"
12345678
"
,
contact_phone
:
"
12345678
"
,
is_accept
:
"
0
"
,
is_accept
:
"
0
"
,
gas_exam
:
"
15
"
,
gas_exam
:
"
15
"
,
G_17
:
"
5
"
G_17
:
"
5
"
,
},
//填报数据
},
//填报数据
form
:
{},
form
:
{},
rules
:
{
rules
:
{
reson
:
[{
required
:
true
,
message
:
"
请填写
"
,
trigger
:
"
blur
"
}],
reson
:
[{
required
:
true
,
message
:
"
请填写
"
,
trigger
:
"
blur
"
}],
...
@@ -140,10 +158,10 @@ export default {
...
@@ -140,10 +158,10 @@ export default {
created
()
{
created
()
{
this
.
getDetail
()
this
.
getDetail
()
},
},
computed
:{
computed
:
{
unionId
(){
unionId
()
{
return
this
.
$route
.
query
.
id
return
this
.
$route
.
query
.
id
}
}
,
},
},
methods
:
{
methods
:
{
showDialog
(
val
)
{
showDialog
(
val
)
{
...
@@ -209,11 +227,11 @@ export default {
...
@@ -209,11 +227,11 @@ export default {
nextExample
()
{
nextExample
()
{
this
.
onCancel
()
this
.
onCancel
()
},
},
async
getDetail
(){
async
getDetail
()
{
this
.
loading
=
true
this
.
loading
=
true
let
res
=
await
getFollowUnCheckDetail
(
this
.
unionId
)
let
res
=
await
getFollowUnCheckDetail
(
this
.
unionId
)
if
(
res
.
code
==
1
)
{
if
(
res
.
code
==
1
)
{
this
.
formEdit
=
res
.
data
[
0
]
this
.
formEdit
=
res
.
data
[
0
]
}
}
this
.
loading
=
false
this
.
loading
=
false
},
},
...
@@ -246,6 +264,7 @@ export default {
...
@@ -246,6 +264,7 @@ export default {
justify-content
:
space-between
;
justify-content
:
space-between
;
.right
{
.right
{
.btn
{
.btn
{
margin-top
:
0px
;
width
:
80px
;
width
:
80px
;
height
:
32px
;
height
:
32px
;
border-radius
:
4px
;
border-radius
:
4px
;
...
...
src/views/qualitycontrol-report/index.vue
View file @
7902f2ca
...
@@ -6,9 +6,9 @@
...
@@ -6,9 +6,9 @@
<span
class=
"bold-font"
>
总体情况
</span>
<span
class=
"bold-font"
>
总体情况
</span>
</div>
</div>
<el-row
:gutter=
"20"
class=
"data-box"
>
<el-row
:gutter=
"20"
class=
"data-box"
>
<el-col
:span=
"6"
v-for=
"(item,index) in totalList"
:key=
"index
"
>
<el-col
v-for=
"(item, index) in totalList"
:key=
"index"
:span=
"6
"
>
<div
class=
"grid-content mb-12"
>
{{
item
.
label
}}
</div>
<div
class=
"grid-content mb-12"
>
{{
item
.
label
}}
</div>
<h1>
{{
totalData
[
item
.
prop
]
}}
</h1>
<h1>
{{
totalData
[
item
.
prop
]
}}
</h1>
</el-col>
</el-col>
</el-row>
</el-row>
</div>
</div>
...
@@ -19,21 +19,31 @@
...
@@ -19,21 +19,31 @@
</div>
</div>
<div
class=
"type-box"
>
<div
class=
"type-box"
>
<span
class=
"mr-10"
>
选择统计周期:
</span>
<span
class=
"mr-10"
>
选择统计周期:
</span>
<el-radio-group
v-model=
"periodType"
>
<el-radio-group
v-model=
"periodType"
@
input=
"handleClick"
>
<el-radio-button
label=
"month"
>
月度
</el-radio-button>
<el-radio-button
label=
"month"
>
月度
</el-radio-button>
<el-radio-button
label=
"
season
"
>
季度
</el-radio-button>
<el-radio-button
label=
"
quarter
"
>
季度
</el-radio-button>
<el-radio-button
label=
"year"
>
年度
</el-radio-button>
<el-radio-button
label=
"year"
>
年度
</el-radio-button>
</el-radio-group>
</el-radio-group>
</div>
</div>
<div
class=
"type-box"
>
<div
class=
"type-box"
>
<span
class=
"mr-10"
>
选择统计年份:
</span>
<span
class=
"mr-10"
>
选择统计年份:
</span>
<el-select
v-model=
"yearBtn"
placeholder=
"请选择"
>
<el-select
v-model=
"yearBtn"
placeholder=
"请选择"
@
change=
"change"
>
<el-option
v-for=
"item in yearList"
:value=
"item"
:key=
"item"
:label=
"item"
></el-option>
<el-option
v-for=
"item in yearList"
:key=
"item"
:value=
"item"
:label=
"item"
></el-option>
</el-select>
</el-select>
</div>
</div>
<el-table
:data=
"tableData"
border
show-summary
class=
"mt-20"
>
<el-table
:data=
"tableData"
border
:show-summary=
"showSummary"
class=
"mt-20"
>
<el-table-column
<el-table-column
v-for=
"(item,index) in tableColumn"
v-for=
"(item,
index) in tableColumn"
:key=
"index"
:key=
"index"
:prop=
"item.prop"
:prop=
"item.prop"
:label=
"item.label"
:label=
"item.label"
...
@@ -44,114 +54,221 @@
...
@@ -44,114 +54,221 @@
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
checkerQuality
,
adminQuality
}
from
"
@/api/qualitycontrol-report
"
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
totalList
:[
curRole
:
""
,
totalList
:
[
{
{
label
:
"
累计审核病例数
"
,
label
:
"
累计审核病例数
"
,
prop
:
"
account
"
prop
:
"
checked
"
,
},
},
{
{
label
:
"
累计审核合格病例数
"
,
label
:
"
累计审核合格病例数
"
,
prop
:
"
account
"
prop
:
"
pass
"
,
},
},
{
{
label
:
"
累计审核驳回修改病例数
"
,
label
:
"
累计审核驳回修改病例数
"
,
prop
:
"
account
"
prop
:
"
back
"
,
},
},
{
{
label
:
"
累计审核不合格病例数
"
,
label
:
"
累计审核不合格病例数
"
,
prop
:
"
account
"
prop
:
"
unPass
"
,
},
},
],
],
totalData
:{
totalData
:
{},
account
:
1600
periodType
:
"
month
"
,
},
yearList
:
[],
periodType
:
"
month
"
,
yearBtn
:
0
,
yearList
:
[
2021
],
tableData
:
[],
yearBtn
:
2022
,
tableColumn
:
[],
tableData
:[{
allData
:
[],
id
:
'
12987122
'
,
month
:
[
name
:
'
王小虎
'
,
{
label
:
"
1月
"
,
prop
:
"
value1
"
},
season
:
'
234
'
,
{
label
:
"
2月
"
,
prop
:
"
value2
"
},
amount2
:
'
3.2
'
,
{
label
:
"
3月
"
,
prop
:
"
value3
"
},
amount3
:
10
{
label
:
"
4月
"
,
prop
:
"
value4
"
},
},
{
{
label
:
"
5月
"
,
prop
:
"
value5
"
},
id
:
'
12987123
'
,
{
label
:
"
6月
"
,
prop
:
"
value6
"
},
name
:
'
王小虎
'
,
{
label
:
"
7月
"
,
prop
:
"
value7
"
},
season
:
'
165
'
,
{
label
:
"
8月
"
,
prop
:
"
value8
"
},
amount2
:
'
4.43
'
,
{
label
:
"
9月
"
,
prop
:
"
value9
"
},
amount3
:
12
{
label
:
"
10月
"
,
prop
:
"
value10
"
},
},
{
{
label
:
"
11月
"
,
prop
:
"
value11
"
},
id
:
'
12987124
'
,
{
label
:
"
12月
"
,
prop
:
"
value12
"
},
name
:
'
王小虎
'
,
],
season
:
'
324
'
,
quarter
:
[
amount2
:
'
1.9
'
,
{
label
:
"
第1季度
"
,
prop
:
"
value1
"
},
amount3
:
9
{
label
:
"
第2季度
"
,
prop
:
"
value2
"
},
},
{
{
label
:
"
第3季度
"
,
prop
:
"
value3
"
},
id
:
'
12987125
'
,
{
label
:
"
第4季度
"
,
prop
:
"
value4
"
},
name
:
'
王小虎
'
,
],
season
:
'
621
'
,
year
:
[],
amount2
:
'
2.2
'
,
showSummary
:
false
,
amount3
:
17
},
{
id
:
'
12987126
'
,
name
:
'
王小虎
'
,
season
:
'
539
'
,
amount2
:
'
4.1
'
,
amount3
:
15
}]
}
}
},
},
methods
:
{
computed
:
{
getNow
()
{
roles
()
{
const
nowDate
=
new
Date
()
return
this
.
$store
.
state
.
user
.
roles
this
.
yearBtn
=
nowDate
.
getFullYear
();
if
(
!
this
.
yearList
.
find
((
item
)
=>
item
==
this
.
yearBtn
)){
this
.
yearList
.
push
(
this
.
yearBtn
)
this
.
yearList
.
sort
((
a
,
b
)
=>
{
return
a
-
b
})
}
},
},
},
},
watch
:
{},
mounted
()
{},
mounted
()
{},
created
()
{
created
()
{
this
.
getNow
();
this
.
getNow
()
if
(
this
.
roles
.
length
>
0
)
{
let
roleCodeArr
=
this
.
roles
.
map
((
e
)
=>
e
.
roleCode
)
console
.
log
(
roleCodeArr
)
if
(
roleCodeArr
.
includes
(
"
admin
"
))
{
this
.
curRole
=
"
admin
"
}
else
if
(
roleCodeArr
.
includes
(
"
auditer
"
))
{
this
.
curRole
=
"
auditer
"
}
}
this
.
getQuality
()
},
},
watch
:
{},
methods
:
{
computed
:{
change
(
val
)
{
tableColumn
(){
console
.
log
(
val
)
const
listM
=
[
this
.
getQuality
()
{
},
label
:
"
月份
"
,
getNow
()
{
prop
:
"
month
"
const
nowDate
=
new
Date
()
},
this
.
yearBtn
=
nowDate
.
getFullYear
()
{
for
(
let
i
=
2023
;
i
<=
this
.
yearBtn
;
i
++
)
{
label
:
"
审核病例数(例)
"
,
this
.
yearList
.
push
(
i
)
prop
:
"
count
"
}
},
},
]
async
getQuality
()
{
const
listS
=
[
let
res
{
// console.log(this.curRole)
label
:
"
季度
"
,
switch
(
this
.
curRole
)
{
prop
:
"
season
"
case
"
admin
"
:
},
res
=
await
adminQuality
({
year
:
this
.
yearBtn
})
{
let
{
overall
}
=
res
.
data
label
:
"
审核病例数(例)
"
,
this
.
allData
=
res
.
data
prop
:
"
count
"
this
.
totalData
=
overall
},
this
.
showSummary
=
true
]
this
.
handleClick
()
if
(
this
.
periodType
==
'
month
'
){
break
return
listM
}
case
"
auditer
"
:
if
(
this
.
periodType
==
'
season
'
){
res
=
await
checkerQuality
({
year
:
this
.
yearBtn
})
return
listS
this
.
allData
=
res
.
data
this
.
totalData
=
res
.
data
.
overall
this
.
showSummary
=
false
this
.
handleClick
()
break
default
:
break
}
},
handleClick
(
val
)
{
let
tableData
let
headerData
if
(
this
.
curRole
==
"
admin
"
)
{
switch
(
this
.
periodType
)
{
case
"
month
"
:
tableData
=
this
.
allData
.
month
headerData
=
this
.
month
this
.
tableColumn
=
[
{
label
:
"
审核员/月份
"
,
prop
:
"
name
"
,
},
...
this
.
month
,
{
label
:
"
合计
"
,
prop
:
"
sum
"
,
},
]
break
case
"
quarter
"
:
tableData
=
this
.
allData
.
quarter
headerData
=
this
.
quarter
this
.
tableColumn
=
[
{
label
:
"
审核员/季度
"
,
prop
:
"
name
"
,
},
...
this
.
quarter
,
{
label
:
"
合计
"
,
prop
:
"
sum
"
,
},
]
break
case
"
year
"
:
tableData
=
this
.
allData
.
year
this
.
year
=
this
.
yearList
.
map
((
e
,
index
)
=>
{
let
obj
=
{
label
:
e
+
"
年
"
,
prop
:
"
value
"
+
(
index
+
1
),
}
return
obj
})
headerData
=
this
.
year
this
.
tableColumn
=
[
{
label
:
"
审核员/年份
"
,
prop
:
"
name
"
,
},
...
this
.
year
,
]
break
default
:
break
}
}
// //处理动态表头 //
this
.
tableData
=
[]
tableData
.
forEach
((
e
,
index
)
=>
{
let
data
=
{
name
:
e
.
name
,
}
// 计算
for
(
let
i
=
0
;
i
<
headerData
.
length
;
i
++
)
{
let
value
=
headerData
[
i
].
label
let
filterArr
=
e
.
list
.
filter
((
item
)
=>
item
.
value
===
value
)
if
(
filterArr
.
length
>
0
)
{
data
[
headerData
[
i
].
prop
]
=
filterArr
[
0
].
checked
}
else
{
data
[
headerData
[
i
].
prop
]
=
0
}
}
// !计算右侧合计条数
let
arr
=
e
.
list
.
map
((
listItem
)
=>
listItem
.
checked
)
data
.
sum
=
eval
(
arr
.
join
(
"
+
"
))
// !计算底部合计
this
.
tableData
.
push
(
data
)
})
}
else
if
(
this
.
curRole
==
"
auditer
"
)
{
headerData
=
[
{
label
:
this
.
periodType
==
"
month
"
?
"
月份
"
:
this
.
periodType
==
"
quarter
"
?
"
季度
"
:
this
.
periodType
==
"
year
"
?
"
年度
"
:
""
,
prop
:
"
value
"
,
},
{
label
:
"
审核病例数(例)
"
,
prop
:
"
checked
"
},
]
this
.
tableColumn
=
headerData
this
.
tableData
=
this
.
periodType
==
"
month
"
?
this
.
allData
.
month
:
this
.
periodType
==
"
quarter
"
?
this
.
allData
.
quarter
:
this
.
periodType
==
"
year
"
?
this
.
allData
.
year
:
[]
}
}
}
},
},
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
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