|
|
|
@ -1,16 +1,15 @@ |
|
|
|
<template> |
|
|
|
<div class="box"> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<div class="middlebox"> |
|
|
|
<div class="contenttitle"> |
|
|
|
客户报表 / |
|
|
|
<span class="contenttitleBold" |
|
|
|
>人员阳性结果</span |
|
|
|
> |
|
|
|
<span class="contenttitleBold">人员阳性结果</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div :style="'display: block;'"> |
|
|
|
<div style="background-color: #fff; padding: 15px; border-radius: 8px;display: flex;flex-wrap: wrap; margin-bottom: 10px;height:35px;margin-top: 7px;"> |
|
|
|
<div |
|
|
|
style="background-color: #fff; padding: 15px; border-radius: 8px;display: flex;flex-wrap: wrap; margin-bottom: 10px;height:35px;margin-top: 7px;"> |
|
|
|
<div class="query"> |
|
|
|
<span>体检单位:</span> |
|
|
|
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:240px;" size="small" |
|
|
|
@ -18,7 +17,7 @@ |
|
|
|
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true" |
|
|
|
style="font-size: 20px;"></el-button> |
|
|
|
</el-input> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- <div class="query"> |
|
|
|
<span>检查状态:</span> |
|
|
|
<el-select v-model="completeFlag" placeholder="请选择" clearable style="width: 80px" |
|
|
|
@ -55,35 +54,40 @@ |
|
|
|
<div class="query"> |
|
|
|
<el-button @click="onPrint" size="small" class="commonbutton">打印</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div ref="imageDom" style="background-color: #fff; padding: 15px; border-radius: 8px;"> |
|
|
|
<el-table :data="dataList" border width="45%" :height="flag |
|
|
|
?window.pageHeight < 600 ? 415 : window.pageHeight - 185-20: ''" |
|
|
|
row-key="id" highlight-current-row ref="dataList" :row-class-name="tableRowClassName" id="table" show-summary |
|
|
|
:summary-method="getSummaries"> |
|
|
|
<el-table-column prop="patientNo" label="档案号" width="120"/> |
|
|
|
<el-table-column prop="patientName" label="姓名" width="120"/> |
|
|
|
<el-table-column prop="sexName" label="性别" width="50"/> |
|
|
|
<el-table-column prop="age" label="年龄" width="80"/> |
|
|
|
<el-table-column prop="medicalTimes" label="次数" width="50"/> |
|
|
|
<el-table-column prop="mobileTelephone" label="手机号码" width="120"/> |
|
|
|
<el-table-column prop="diagnosisNames" label="诊断名称" /> |
|
|
|
</el-table> |
|
|
|
? window.pageHeight < 600 ? 415 : window.pageHeight - 185 - 20 : ''" row-key="id" highlight-current-row |
|
|
|
ref="dataList" :row-class-name="tableRowClassName" id="table" show-summary :summary-method="getSummaries"> |
|
|
|
<el-table-column |
|
|
|
:label="`开始时间: ${summary.startDate || ''} 结束时间:${summary.endDate || ''} 男性: ${summary.maleCount} 女性: ${summary.femaleCount}`" align="left"> |
|
|
|
<el-table-column type="index" label="序号" width="60" align="center" /> |
|
|
|
<el-table-column prop="customerOrgParentName" label="单位" /> |
|
|
|
<el-table-column prop="customerOrgName" label="部门" /> |
|
|
|
<el-table-column prop="patientNo" label="档案号" width="120" /> |
|
|
|
<el-table-column prop="patientName" label="姓名" width="120" /> |
|
|
|
<el-table-column prop="sexName" label="性别" width="50" /> |
|
|
|
<el-table-column prop="age" label="年龄" width="80" /> |
|
|
|
<el-table-column prop="medicalTimes" label="次数" width="50" /> |
|
|
|
<el-table-column prop="mobileTelephone" label="手机号码" width="120" /> |
|
|
|
<el-table-column prop="diagnosisNames" label="检查结果" /> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!--通用选单位、体检次数、分组的控件--> |
|
|
|
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" |
|
|
|
:close-on-click-modal="false" width="880px" height="600px"> |
|
|
|
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" :close-on-click-modal="false" width="880px" |
|
|
|
height="600px"> |
|
|
|
<CusOrgOCX :initDateType="'creationTime'" :useCustomerOrg="true" /> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script> |
|
|
|
import moment from "moment"; |
|
|
|
import { mapState, mapActions } from "vuex"; |
|
|
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|
|
|
import { dddw, objCopy, arrayReduce, arrayExistObj,tcdate } from "@/utlis/proFunc"; |
|
|
|
import { dddw, objCopy, arrayReduce, arrayExistObj, tcdate } from "@/utlis/proFunc"; |
|
|
|
import CusOrgOCX from "../../components/report/CusOrgOCX.vue"; |
|
|
|
import { exportToExcel } from "../../utlis/Export2Excel"; |
|
|
|
import html2canvas from "html2canvas"; |
|
|
|
@ -94,11 +98,17 @@ export default { |
|
|
|
CusOrgOCX |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
return { |
|
|
|
dataList: [], //列表数据 |
|
|
|
completeFlag:"", |
|
|
|
classification:"Y", |
|
|
|
flag:true |
|
|
|
completeFlag: "", |
|
|
|
classification: "Y", |
|
|
|
flag: true, |
|
|
|
summary:{ |
|
|
|
startDate:"", |
|
|
|
endDate:"", |
|
|
|
femaleCount:"", |
|
|
|
maleCount:"" |
|
|
|
} |
|
|
|
}; |
|
|
|
}, |
|
|
|
|
|
|
|
@ -110,13 +120,13 @@ export default { |
|
|
|
mounted() { |
|
|
|
// this.btnQuery(); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
computed: { |
|
|
|
...mapState(["window", "dict","patientRegister","report"]), |
|
|
|
...mapState(["window", "dict", "patientRegister", "report"]), |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
moment,dddw, |
|
|
|
moment, dddw, |
|
|
|
//数据初始化 |
|
|
|
dictInit() { |
|
|
|
//体检中心 |
|
|
|
@ -136,26 +146,26 @@ export default { |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// //体检类别 |
|
|
|
// getapi("/api/app/medical-type/in-filter").then((res) => { |
|
|
|
// if (res.code == 1) { |
|
|
|
// this.dict.medicalType = res.data.items; |
|
|
|
// } |
|
|
|
// }); |
|
|
|
// //体检类别 |
|
|
|
// getapi("/api/app/medical-type/in-filter").then((res) => { |
|
|
|
// if (res.code == 1) { |
|
|
|
// this.dict.medicalType = res.data.items; |
|
|
|
// } |
|
|
|
// }); |
|
|
|
|
|
|
|
// //体检类别 树结构 |
|
|
|
// getapi("/api/app/item-type/by-code-all").then((res) => { |
|
|
|
// if (res.code == 1) { |
|
|
|
// this.dict.itemTypeTree = res.data; |
|
|
|
// tcdate(this.dict.itemTypeTree); |
|
|
|
// } |
|
|
|
// }); |
|
|
|
// //体检类别 树结构 |
|
|
|
// getapi("/api/app/item-type/by-code-all").then((res) => { |
|
|
|
// if (res.code == 1) { |
|
|
|
// this.dict.itemTypeTree = res.data; |
|
|
|
// tcdate(this.dict.itemTypeTree); |
|
|
|
// } |
|
|
|
// }); |
|
|
|
|
|
|
|
// postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => { |
|
|
|
// if (res.code == 1) { |
|
|
|
// this.dict.asbItemAll = res.data; |
|
|
|
// } |
|
|
|
// }); |
|
|
|
// postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => { |
|
|
|
// if (res.code == 1) { |
|
|
|
// this.dict.asbItemAll = res.data; |
|
|
|
// } |
|
|
|
// }); |
|
|
|
|
|
|
|
console.log("dict", this.dict); |
|
|
|
}, |
|
|
|
@ -163,10 +173,10 @@ export default { |
|
|
|
tableRowClassName({ row, rowIndex }) { |
|
|
|
switch (row.isCharge) { |
|
|
|
case 'N': |
|
|
|
return 'danger'; |
|
|
|
return 'danger'; |
|
|
|
default: |
|
|
|
return ''; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
getSummaries(param) { |
|
|
|
const { columns, data } = param; |
|
|
|
@ -189,7 +199,7 @@ export default { |
|
|
|
if (this.report.dataCusOrgOCX.length > 0) { |
|
|
|
this.report.dataCusOrgOCX.forEach(e => { |
|
|
|
let dateType = '1' |
|
|
|
switch (e.dateType) { |
|
|
|
switch (e.dateType) { |
|
|
|
case 'medicalStartDate': |
|
|
|
dateType = '2' |
|
|
|
break; |
|
|
|
@ -232,7 +242,7 @@ export default { |
|
|
|
// } |
|
|
|
|
|
|
|
body.customerOrgs = customerOrgs |
|
|
|
// body.diagnosisIds = diagnosisIds |
|
|
|
// body.diagnosisIds = diagnosisIds |
|
|
|
// if(this.completeFlag) body.completeFlag = this.completeFlag |
|
|
|
// body.isAudit=this.classification |
|
|
|
|
|
|
|
@ -243,10 +253,14 @@ export default { |
|
|
|
|
|
|
|
postapi('/api/customerreport/getpatientregisterpositivereport', body).then(res => { |
|
|
|
if (res.code != -1) { |
|
|
|
this.dataList = res.data; |
|
|
|
this.dataList = res.data.details; |
|
|
|
this.summary.startDate=res.data.startDate; |
|
|
|
this.summary.endDate=res.data.endDate; |
|
|
|
this.summary.femaleCount=res.data.femaleCount; |
|
|
|
this.summary.maleCount=res.data.maleCount; |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs.dataList.doLayout(); |
|
|
|
}); |
|
|
|
this.$refs.dataList.doLayout(); |
|
|
|
}); |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
@ -301,20 +315,23 @@ export default { |
|
|
|
@import "../../assets/css/global_form.css"; |
|
|
|
@import "../../assets/css/global_input.css"; |
|
|
|
@import "../../assets/css/global.css"; |
|
|
|
.query{ |
|
|
|
margin-right: 10px; |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
font-size: 14px; |
|
|
|
color: #232748; |
|
|
|
font-size: 400; |
|
|
|
font-family: "NotoSansSC-Regular"; |
|
|
|
|
|
|
|
.query { |
|
|
|
margin-right: 10px; |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
font-size: 14px; |
|
|
|
color: #232748; |
|
|
|
font-size: 400; |
|
|
|
font-family: "NotoSansSC-Regular"; |
|
|
|
} |
|
|
|
|
|
|
|
.box { |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
} |
|
|
|
|
|
|
|
::v-deep .el-input__inner { |
|
|
|
/*text-align: center;*/ |
|
|
|
padding-left: 5px; |
|
|
|
@ -334,7 +351,8 @@ export default { |
|
|
|
::v-deep .el-icon-search:before { |
|
|
|
color: #00F; |
|
|
|
} |
|
|
|
.query:last-child{ |
|
|
|
|
|
|
|
.query:last-child { |
|
|
|
margin-right: 0; |
|
|
|
} |
|
|
|
</style> |