Commit 1233b7e8 authored by liang's avatar liang

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

parent 094bd342
......@@ -10,3 +10,31 @@ export function getPatientPage(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 @@
:max-height="maxHeight || maxTableHeight"
:height="tableHeight"
:data="tableData"
:summary-method="getSummaries"
:show-summary="showSummary"
:show-overflow-tooltip="true"
:highlight-current-row="highLight"
:header-row-class-name="headerClass"
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-if="!column.type && !column.operType">
<el-table-column
......@@ -30,12 +37,14 @@
>
<!-- 表头插槽 -->
<template slot="header" slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }">{{column.label}}</span>
<span :style="{ fontSize: fontSize + 'px' }">{{
column.label
}}</span>
</template>
<!-- 表内容插槽 -->
<template slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }">
<span>{{scope.row[column.value]|| "--"}}</span>
<span>{{ scope.row[column.value] || "--" }}</span>
</span>
</template>
</el-table-column>
......@@ -55,15 +64,15 @@
<!-- 表头插槽 -->
<template slot="header" slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }">
{{
column.label
}}
{{ column.label }}
</span>
</template>
<!-- 表内容插槽 -->
<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">
<el-button
......@@ -81,11 +90,11 @@
@click="op.func(scope.row, scope.$index)"
>
{{
op.formatter
? op.formatter(scope.row).label
: op.label
? op.label
: scope.row[column.value]
op.formatter
? op.formatter(scope.row).label
: op.label
? op.label
: scope.row[column.value]
}}
</el-button>
</template>
......@@ -118,9 +127,9 @@
<template v-if="column.type === 'file'">
<span>
{{
scope.row[column.value]
? scope.row[column.value][0].fileName
: ""
scope.row[column.value]
? scope.row[column.value][0].fileName
: ""
}}
</span>
</template>
......@@ -177,6 +186,8 @@ export default {
columns: Array, // 表格列配置数据,{vlaue:对应数据对象中的属性,label:对应的是标题文字,fixed:列是否固定,width:列宽, sortable:是否可排序,formatter:列格式化, className:对应的是列的样式类名}
tableData: Array, // 表格数据
showIndex: { default: false }, // 是否展示索引
getSummaries: Function,
showSummary: { type: Boolean, default: false },
},
data() {
return {
......
......@@ -182,7 +182,7 @@
:close-on-click-modal="true"
:close-on-press-escape="false"
:show-close="true"
width="520px"
width="680px"
>
<div class="innerBody">
<div class="title">驳回修改提醒</div>
......@@ -200,6 +200,10 @@
>
</div>
</div>
<div class="qrcode">
<div class="img"></div>
<div class="text">问题反馈群</div>
</div>
</div>
</div>
</el-dialog>
......@@ -688,6 +692,33 @@ export default {
.refuteList {
display: flex;
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 {
width: 200px;
height: 148px;
......@@ -699,6 +730,7 @@ export default {
&:first-child {
margin-right: 20px;
}
.title {
font-size: 16px;
margin: 16px 0;
......
......@@ -30,6 +30,8 @@
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
:showSummary="auditStatus === '0'"
:getSummaries="getSummaries"
/>
</div>
</div>
......@@ -40,6 +42,7 @@
import paginationMixin from "@/components/TabComponents/mixin"
import { getFollowCheck, getFollowUncheck } from "@/api/followup"
import { getScreeningCheck, getScreeningUncheck } from "@/api/screeningAudit"
import { getScreeningTotal, getFollowTotal } from "@/api/dataoverview.js"
export default {
components: {
// CustomsTable,
......@@ -59,6 +62,7 @@ export default {
// reportTime: "2022-12-09 09:12:35",
// },
],
reportMap: {},
}
},
watch: {
......@@ -213,6 +217,13 @@ export default {
this.handleClick()
},
methods: {
getSummaries() {
return [
"总计",
this.reportMap["checkNums"],
this.reportMap["unCheckNums"],
]
},
handleClick() {
if (this.auditStatus == 1) {
this.columns[this.columns.length - 1].operations[0].label =
......@@ -265,6 +276,7 @@ export default {
},
async handleSearch() {
this.listLoading = true
this.getReportTotal()
let params = {
pageSize: this.pageSize,
pageNum: this.pageIndex,
......@@ -290,6 +302,15 @@ export default {
this.total = res.data.total
this.listLoading = false
},
getFollowTotal() {
getFollowTotal().then((res) => {})
},
getReportTotal() {
const API = this.type === "1" ? getFollowTotal : getScreeningTotal
API().then((res) => {
this.reportMap = res.data
})
},
},
}
</script>
......
......@@ -22,13 +22,15 @@
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
showSummary
:getSummaries="getSummaries"
/>
</div>
</template>
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import { getPatientPage } from "@/api/dataoverview.js"
import { getPatientPage, getReportCount } from "@/api/dataoverview.js"
export default {
// 数据概览
name: "",
......@@ -49,7 +51,7 @@ export default {
},
{
label: "累计上报量",
minWidth: 120,
minWidth: 100,
value: "report",
},
{
......@@ -64,36 +66,44 @@ export default {
},
{
label: "高风险",
minWidth: 120,
minWidth: 80,
value: "high",
},
{
label: "中风险",
minWidth: 120,
minWidth: 80,
value: "middle",
},
{
label: "低风险",
minWidth: 120,
minWidth: 80,
value: "low",
},
{
label: "胃癌",
minWidth: 120,
minWidth: 80,
value: "gas",
},
{
label: "早期胃癌",
minWidth: 120,
minWidth: 80,
value: "earlyGas",
},
{
label: "食道癌",
minWidth: 120,
minWidth: 80,
value: "esophagus",
},
{
label: "内镜数量",
minWidth: 80,
value: "gasCount",
},
],
tableData: [],
reportMap: {
middle: 10,
},
}
},
watch: {},
......@@ -101,15 +111,33 @@ export default {
this.handleSearch()
},
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) {
console.log(this.selectedIndex)
this.selectedIndex = i
this.pageIndex = 1
this.handleSearch()
sessionStorage.setItem("homeSelectedIndex", this.selectedIndex)
},
getReportCount() {
getReportCount({
patientFrom: this.selectedIndex == "0" ? null : this.selectedIndex,
}).then((res) => {
this.reportMap = res.data
})
},
handleSearch() {
this.listLoading = true
this.getReportCount()
let data = {
size: this.pageSize,
current: this.pageIndex,
......
......@@ -347,8 +347,8 @@ export default {
putFollowCheck(params)
.then((res) => {
if (res.code == 1 && res.data) {
func()
this.$refs.publicDialog.dialogVisible = true
func()
} else {
this.loading = false
}
......@@ -395,7 +395,6 @@ export default {
//! 合格提交 checkStatus 合格-3 不合格-4 驳回修改-2 待审核-1
showDialog(val) {
this.curBtn = val
console.log(val)
if (this.editStatus) {
//! 精准编辑
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