Commit 1233b7e8 authored by liang's avatar liang

概览总计、审核质控总计、反馈码添加

parent 094bd342
...@@ -10,3 +10,31 @@ export function getPatientPage(params = {}) { ...@@ -10,3 +10,31 @@ export function getPatientPage(params = {}) {
params, params,
}) })
} }
// 数据概览总计
export function getReportCount(params = {}) {
return request({
url: "/disease-data/data/report/count",
method: "get",
params,
})
}
// 审核质控-筛查总计
export function getScreeningTotal(params = {}) {
return request({
url: "disease-data/dataCheck/screening/total",
method: "get",
params,
})
}
// 审核质控-随访总计
export function getFollowTotal(params = {}) {
return request({
url: "disease-data/dataCheck/follow/total",
method: "get",
params,
})
}
...@@ -6,12 +6,19 @@ ...@@ -6,12 +6,19 @@
:max-height="maxHeight || maxTableHeight" :max-height="maxHeight || maxTableHeight"
:height="tableHeight" :height="tableHeight"
:data="tableData" :data="tableData"
:summary-method="getSummaries"
:show-summary="showSummary"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
:highlight-current-row="highLight" :highlight-current-row="highLight"
:header-row-class-name="headerClass" :header-row-class-name="headerClass"
style="width: 100%" style="width: 100%"
> >
<el-table-column v-if="showIndex" type="index" width="120" label="序号"></el-table-column> <el-table-column
v-if="showIndex"
type="index"
width="120"
label="序号"
></el-table-column>
<template v-for="(column, index) in columns"> <template v-for="(column, index) in columns">
<template v-if="!column.type && !column.operType"> <template v-if="!column.type && !column.operType">
<el-table-column <el-table-column
...@@ -30,12 +37,14 @@ ...@@ -30,12 +37,14 @@
> >
<!-- 表头插槽 --> <!-- 表头插槽 -->
<template slot="header" slot-scope="scope"> <template slot="header" slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }">{{column.label}}</span> <span :style="{ fontSize: fontSize + 'px' }">{{
column.label
}}</span>
</template> </template>
<!-- 表内容插槽 --> <!-- 表内容插槽 -->
<template slot-scope="scope"> <template slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }"> <span :style="{ fontSize: fontSize + 'px' }">
<span>{{scope.row[column.value]|| "--"}}</span> <span>{{ scope.row[column.value] || "--" }}</span>
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -55,15 +64,15 @@ ...@@ -55,15 +64,15 @@
<!-- 表头插槽 --> <!-- 表头插槽 -->
<template slot="header" slot-scope="scope"> <template slot="header" slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }"> <span :style="{ fontSize: fontSize + 'px' }">
{{ {{ column.label }}
column.label
}}
</span> </span>
</template> </template>
<!-- 表内容插槽 --> <!-- 表内容插槽 -->
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 按钮 --> <!-- 按钮 -->
<template v-if="column.type === 'button' || column.operType === 'button'"> <template
v-if="column.type === 'button' || column.operType === 'button'"
>
<!-- 按钮数组 --> <!-- 按钮数组 -->
<template v-for="(op, opIndex) in column.operations"> <template v-for="(op, opIndex) in column.operations">
<el-button <el-button
...@@ -177,6 +186,8 @@ export default { ...@@ -177,6 +186,8 @@ export default {
columns: Array, // 表格列配置数据,{vlaue:对应数据对象中的属性,label:对应的是标题文字,fixed:列是否固定,width:列宽, sortable:是否可排序,formatter:列格式化, className:对应的是列的样式类名} columns: Array, // 表格列配置数据,{vlaue:对应数据对象中的属性,label:对应的是标题文字,fixed:列是否固定,width:列宽, sortable:是否可排序,formatter:列格式化, className:对应的是列的样式类名}
tableData: Array, // 表格数据 tableData: Array, // 表格数据
showIndex: { default: false }, // 是否展示索引 showIndex: { default: false }, // 是否展示索引
getSummaries: Function,
showSummary: { type: Boolean, default: false },
}, },
data() { data() {
return { return {
......
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
:close-on-click-modal="true" :close-on-click-modal="true"
:close-on-press-escape="false" :close-on-press-escape="false"
:show-close="true" :show-close="true"
width="520px" width="680px"
> >
<div class="innerBody"> <div class="innerBody">
<div class="title">驳回修改提醒</div> <div class="title">驳回修改提醒</div>
...@@ -200,6 +200,10 @@ ...@@ -200,6 +200,10 @@
> >
</div> </div>
</div> </div>
<div class="qrcode">
<div class="img"></div>
<div class="text">问题反馈群</div>
</div>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
...@@ -688,6 +692,33 @@ export default { ...@@ -688,6 +692,33 @@ export default {
.refuteList { .refuteList {
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
.qrcode {
width: 108px;
height: 136px;
background: #546184;
border-radius: 4px;
padding: 8px;
margin-left: 40px;
margin-top: 5px;
display: flex;
flex-direction: column;
align-items: center;
.img {
width: 92px;
height: 92px;
background: url("~@/assets/img/DataCenter/qrcode.jpg") no-repeat;
background-size: cover;
background-position: center center;
border-radius: 2px;
}
.text {
font-size: 14px;
font-family: AlibabaPuHuiTiR;
color: #ffffff;
text-align: center;
margin-top: 8px;
}
}
.rufuteItem { .rufuteItem {
width: 200px; width: 200px;
height: 148px; height: 148px;
...@@ -699,6 +730,7 @@ export default { ...@@ -699,6 +730,7 @@ export default {
&:first-child { &:first-child {
margin-right: 20px; margin-right: 20px;
} }
.title { .title {
font-size: 16px; font-size: 16px;
margin: 16px 0; margin: 16px 0;
......
...@@ -30,6 +30,8 @@ ...@@ -30,6 +30,8 @@
:page-size="pageSize" :page-size="pageSize"
@pageSizeChange="handleSizeChange" @pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange" @currentPageChange="handleCurrentChange"
:showSummary="auditStatus === '0'"
:getSummaries="getSummaries"
/> />
</div> </div>
</div> </div>
...@@ -40,6 +42,7 @@ ...@@ -40,6 +42,7 @@
import paginationMixin from "@/components/TabComponents/mixin" import paginationMixin from "@/components/TabComponents/mixin"
import { getFollowCheck, getFollowUncheck } from "@/api/followup" import { getFollowCheck, getFollowUncheck } from "@/api/followup"
import { getScreeningCheck, getScreeningUncheck } from "@/api/screeningAudit" import { getScreeningCheck, getScreeningUncheck } from "@/api/screeningAudit"
import { getScreeningTotal, getFollowTotal } from "@/api/dataoverview.js"
export default { export default {
components: { components: {
// CustomsTable, // CustomsTable,
...@@ -59,6 +62,7 @@ export default { ...@@ -59,6 +62,7 @@ export default {
// reportTime: "2022-12-09 09:12:35", // reportTime: "2022-12-09 09:12:35",
// }, // },
], ],
reportMap: {},
} }
}, },
watch: { watch: {
...@@ -213,6 +217,13 @@ export default { ...@@ -213,6 +217,13 @@ export default {
this.handleClick() this.handleClick()
}, },
methods: { methods: {
getSummaries() {
return [
"总计",
this.reportMap["checkNums"],
this.reportMap["unCheckNums"],
]
},
handleClick() { handleClick() {
if (this.auditStatus == 1) { if (this.auditStatus == 1) {
this.columns[this.columns.length - 1].operations[0].label = this.columns[this.columns.length - 1].operations[0].label =
...@@ -265,6 +276,7 @@ export default { ...@@ -265,6 +276,7 @@ export default {
}, },
async handleSearch() { async handleSearch() {
this.listLoading = true this.listLoading = true
this.getReportTotal()
let params = { let params = {
pageSize: this.pageSize, pageSize: this.pageSize,
pageNum: this.pageIndex, pageNum: this.pageIndex,
...@@ -290,6 +302,15 @@ export default { ...@@ -290,6 +302,15 @@ export default {
this.total = res.data.total this.total = res.data.total
this.listLoading = false this.listLoading = false
}, },
getFollowTotal() {
getFollowTotal().then((res) => {})
},
getReportTotal() {
const API = this.type === "1" ? getFollowTotal : getScreeningTotal
API().then((res) => {
this.reportMap = res.data
})
},
}, },
} }
</script> </script>
......
...@@ -22,13 +22,15 @@ ...@@ -22,13 +22,15 @@
:page-size="pageSize" :page-size="pageSize"
@pageSizeChange="handleSizeChange" @pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange" @currentPageChange="handleCurrentChange"
showSummary
:getSummaries="getSummaries"
/> />
</div> </div>
</template> </template>
<script> <script>
import CustomsTable from "@/components/CustomsTable" import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin" import paginationMixin from "@/components/TabComponents/mixin"
import { getPatientPage } from "@/api/dataoverview.js" import { getPatientPage, getReportCount } from "@/api/dataoverview.js"
export default { export default {
// 数据概览 // 数据概览
name: "", name: "",
...@@ -49,7 +51,7 @@ export default { ...@@ -49,7 +51,7 @@ export default {
}, },
{ {
label: "累计上报量", label: "累计上报量",
minWidth: 120, minWidth: 100,
value: "report", value: "report",
}, },
{ {
...@@ -64,36 +66,44 @@ export default { ...@@ -64,36 +66,44 @@ export default {
}, },
{ {
label: "高风险", label: "高风险",
minWidth: 120, minWidth: 80,
value: "high", value: "high",
}, },
{ {
label: "中风险", label: "中风险",
minWidth: 120, minWidth: 80,
value: "middle", value: "middle",
}, },
{ {
label: "低风险", label: "低风险",
minWidth: 120, minWidth: 80,
value: "low", value: "low",
}, },
{ {
label: "胃癌", label: "胃癌",
minWidth: 120, minWidth: 80,
value: "gas", value: "gas",
}, },
{ {
label: "早期胃癌", label: "早期胃癌",
minWidth: 120, minWidth: 80,
value: "earlyGas", value: "earlyGas",
}, },
{ {
label: "食道癌", label: "食道癌",
minWidth: 120, minWidth: 80,
value: "esophagus", value: "esophagus",
}, },
{
label: "内镜数量",
minWidth: 80,
value: "gasCount",
},
], ],
tableData: [], tableData: [],
reportMap: {
middle: 10,
},
} }
}, },
watch: {}, watch: {},
...@@ -101,15 +111,33 @@ export default { ...@@ -101,15 +111,33 @@ export default {
this.handleSearch() this.handleSearch()
}, },
methods: { methods: {
getSummaries() {
const sums = []
this.columns.map((c, i) => {
if (i === 0) {
sums[0] = "总计"
} else {
sums[i] = this.reportMap[c.value] || "--"
}
})
return sums
},
setSelectedIndex(i) { setSelectedIndex(i) {
console.log(this.selectedIndex)
this.selectedIndex = i this.selectedIndex = i
this.pageIndex = 1 this.pageIndex = 1
this.handleSearch() this.handleSearch()
sessionStorage.setItem("homeSelectedIndex", this.selectedIndex) sessionStorage.setItem("homeSelectedIndex", this.selectedIndex)
}, },
getReportCount() {
getReportCount({
patientFrom: this.selectedIndex == "0" ? null : this.selectedIndex,
}).then((res) => {
this.reportMap = res.data
})
},
handleSearch() { handleSearch() {
this.listLoading = true this.listLoading = true
this.getReportCount()
let data = { let data = {
size: this.pageSize, size: this.pageSize,
current: this.pageIndex, current: this.pageIndex,
......
...@@ -347,8 +347,8 @@ export default { ...@@ -347,8 +347,8 @@ export default {
putFollowCheck(params) putFollowCheck(params)
.then((res) => { .then((res) => {
if (res.code == 1 && res.data) { if (res.code == 1 && res.data) {
func()
this.$refs.publicDialog.dialogVisible = true this.$refs.publicDialog.dialogVisible = true
func()
} else { } else {
this.loading = false this.loading = false
} }
...@@ -395,7 +395,6 @@ export default { ...@@ -395,7 +395,6 @@ export default {
//! 合格提交 checkStatus 合格-3 不合格-4 驳回修改-2 待审核-1 //! 合格提交 checkStatus 合格-3 不合格-4 驳回修改-2 待审核-1
showDialog(val) { showDialog(val) {
this.curBtn = val this.curBtn = val
console.log(val)
if (this.editStatus) { if (this.editStatus) {
//! 精准编辑 //! 精准编辑
this.$refs.editDialog.dialogVisible = true this.$refs.editDialog.dialogVisible = true
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment