pengjun 2 weeks ago
parent
commit
ce71db2386
  1. 164
      src/views/customerReport/detailedIitems.vue
  2. 192
      src/views/customerReport/personnelPositive.vue
  3. 2
      src/views/customerReport/positiveResultsList.vue

164
src/views/customerReport/detailedIitems.vue

@ -4,13 +4,22 @@
<div class="middlebox"> <div class="middlebox">
<div class="contenttitle"> <div class="contenttitle">
客户报表 / 客户报表 /
<span class="contenttitleBold"
>明细项目具体结果统计</span
>
<span class="contenttitleBold">明细项目具体结果统计</span>
</div> </div>
</div> </div>
<div :style="'display: block;'"> <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"> <div class="query">
<span>体检单位</span> <span>体检单位</span>
<el-input <el-input
@ -59,21 +68,36 @@
</el-select> </el-select>
</div> </div>
<div class="query"> <div class="query">
<el-button @click="btnQuery" size="small" class="commonbutton">查询</el-button>
<el-button @click="btnQuery" size="small" class="commonbutton"
>查询</el-button
>
</div> </div>
<div class="query"> <div class="query">
<el-button @click="handleExport" size="small" class="commonbutton">导出excel</el-button>
<el-button @click="handleExport" size="small" class="commonbutton"
>导出excel</el-button
>
</div> </div>
<div class="query"> <div class="query">
<el-button @click="onPrint" size="small" class="commonbutton">打印</el-button>
<el-button @click="onPrint" size="small" class="commonbutton"
>打印</el-button
>
</div> </div>
</div> </div>
<div v-show="format == 0" style="background-color: #fff; padding: 15px; border-radius: 8px;">
<div
v-show="format == 0"
style="background-color: #fff; padding: 15px; border-radius: 8px"
>
<div ref="imageDom0"> <div ref="imageDom0">
<el-table <el-table
:data="dataList" :data="dataList"
border border
:height="flag?window.pageHeight < 600 ? 415 : window.pageHeight - 185-20:''"
:height="
flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
"
row-key="id" row-key="id"
highlight-current-row highlight-current-row
ref="dataList" ref="dataList"
@ -81,12 +105,38 @@
show-summary show-summary
:summary-method="summarizeRegisterCount" :summary-method="summarizeRegisterCount"
:header-cell-class-name="headerStyle" :header-cell-class-name="headerStyle"
style="width:100%;"
style="width: 100%"
> >
<el-table-column label="明细项目具体结果统计"> <el-table-column label="明细项目具体结果统计">
<el-table-column :label="'项目名称:' + columnData"> <el-table-column :label="'项目名称:' + columnData">
<el-table-column prop="patientName" label="姓名"></el-table-column>
<el-table-column prop="sexName" label="性别"></el-table-column>
<el-table-column
type="index"
label="序号"
></el-table-column>
<el-table-column
prop="customerOrgParentName"
label="单位"
></el-table-column>
<el-table-column
prop="customerOrgName"
label="部门"
></el-table-column>
<el-table-column
prop="patientNo"
label="档案号"
></el-table-column>
<el-table-column
prop="patientRegisterNo"
label="条码号"
></el-table-column>
<el-table-column
prop="patientName"
label="姓名"
></el-table-column>
<el-table-column
prop="sexName"
label="性别"
></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column <el-table-column
prop="medicalTimes" prop="medicalTimes"
@ -105,12 +155,21 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div v-show="format == 1" style="background-color: #fff; padding: 15px; border-radius: 8px;">
<div
v-show="format == 1"
style="background-color: #fff; padding: 15px; border-radius: 8px"
>
<div ref="imageDom1"> <div ref="imageDom1">
<el-table <el-table
:data="dataLists" :data="dataLists"
border border
:height="flag?window.pageHeight < 600 ? 415 : window.pageHeight - 185-20:''"
:height="
flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
"
row-key="id" row-key="id"
highlight-current-row highlight-current-row
ref="dataLists" ref="dataLists"
@ -118,12 +177,38 @@
show-summary show-summary
:summary-method="summarizeRegisterCount" :summary-method="summarizeRegisterCount"
:header-cell-class-name="headerStyle" :header-cell-class-name="headerStyle"
style="width:100%;"
style="width: 100%"
> >
<el-table-column label="明细项目具体结果统计"> <el-table-column label="明细项目具体结果统计">
<el-table-column :label="'项目名称:' + columnData"> <el-table-column :label="'项目名称:' + columnData">
<el-table-column prop="patientName" label="姓名"></el-table-column>
<el-table-column prop="sexName" label="性别"></el-table-column>
<el-table-column
type="index"
label="序号"
></el-table-column>
<el-table-column
prop="customerOrgParentName"
label="单位"
></el-table-column>
<el-table-column
prop="customerOrgName"
label="部门"
></el-table-column>
<el-table-column
prop="patientNo"
label="档案号"
></el-table-column>
<el-table-column
prop="patientRegisterNo"
label="条码号"
></el-table-column>
<el-table-column
prop="patientName"
label="姓名"
></el-table-column>
<el-table-column
prop="sexName"
label="性别"
></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column <el-table-column
prop="medicalTimes" prop="medicalTimes"
@ -137,8 +222,14 @@
align="left" align="left"
> >
</el-table-column> </el-table-column>
<el-table-column prop="diagnosisNames" label="诊断"></el-table-column>
<el-table-column prop="sumSummarys" label="结论"></el-table-column>
<el-table-column
prop="diagnosisNames"
label="诊断"
></el-table-column>
<el-table-column
prop="sumSummarys"
label="结论"
></el-table-column>
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -196,7 +287,7 @@ export default {
columnData: [], columnData: [],
flag: true, flag: true,
category: [], category: [],
format: "0"
format: "0",
}; };
}, },
@ -320,7 +411,6 @@ export default {
// this.dict.asbItemAll = res.data; // this.dict.asbItemAll = res.data;
// } // }
// }); // });
}, },
onPrint() { onPrint() {
@ -402,7 +492,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
let body = {}, let body = {},
customerOrgs = [], customerOrgs = [],
asbitemIds = []; asbitemIds = [];
this.columnData=[]
this.columnData = [];
if (this.project.dataCusOrgOCX.length > 0) { if (this.project.dataCusOrgOCX.length > 0) {
this.project.dataCusOrgOCX.forEach((e) => { this.project.dataCusOrgOCX.forEach((e) => {
@ -453,12 +543,18 @@ page-break-before: avoid;}}`, // 去除页眉页脚
if (res.code != -1) { if (res.code != -1) {
for (let i = 0; i < res.data.length; i++) { for (let i = 0; i < res.data.length; i++) {
for (let k = 0; k < res.data[i].registerCheckItems.length; k++) { for (let k = 0; k < res.data[i].registerCheckItems.length; k++) {
this.$set(res.data[i],res.data[i].registerCheckItems[k].itemName,res.data[i].registerCheckItems[k].result)
this.columnData.push(res.data[i].registerCheckItems[k].itemName)
this.$set(
res.data[i],
res.data[i].registerCheckItems[k].itemName,
res.data[i].registerCheckItems[k].result
);
this.columnData.push(
res.data[i].registerCheckItems[k].itemName
);
} }
} }
this.columnData = Array.from(new Set(this.columnData)); this.columnData = Array.from(new Set(this.columnData));
this.dataList=[...res.data]
this.dataList = [...res.data];
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.dataList.doLayout(); this.$refs.dataList.doLayout();
}); });
@ -472,12 +568,18 @@ page-break-before: avoid;}}`, // 去除页眉页脚
if (res.code != -1) { if (res.code != -1) {
for (let i = 0; i < res.data.length; i++) { for (let i = 0; i < res.data.length; i++) {
for (let k = 0; k < res.data[i].registerCheckItems.length; k++) { for (let k = 0; k < res.data[i].registerCheckItems.length; k++) {
this.$set(res.data[i],res.data[i].registerCheckItems[k].itemName,res.data[i].registerCheckItems[k].result)
this.columnData.push(res.data[i].registerCheckItems[k].itemName)
this.$set(
res.data[i],
res.data[i].registerCheckItems[k].itemName,
res.data[i].registerCheckItems[k].result
);
this.columnData.push(
res.data[i].registerCheckItems[k].itemName
);
} }
} }
this.columnData = Array.from(new Set(this.columnData)); this.columnData = Array.from(new Set(this.columnData));
this.dataLists=[...res.data]
this.dataLists = [...res.data];
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.dataLists.doLayout(); this.$refs.dataLists.doLayout();
}); });
@ -485,8 +587,6 @@ page-break-before: avoid;}}`, // 去除页眉页脚
}); });
} }
// postapi("/api/customerreport/getasbitemspecificresultreport", body).then( // postapi("/api/customerreport/getasbitemspecificresultreport", body).then(
// (res) => { // (res) => {
// if (res.code != -1) { // if (res.code != -1) {
@ -598,7 +698,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
flex-direction: column; flex-direction: column;
} }
::v-deep .el-table__header-wrapper th.backcolor { ::v-deep .el-table__header-wrapper th.backcolor {
background-color: #F5F7FA;
background-color: #f5f7fa;
} }
:deep .left-align .cell { :deep .left-align .cell {
text-align: left !important; text-align: left !important;
@ -620,7 +720,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
} }
::v-deep .el-icon-search:before { ::v-deep .el-icon-search:before {
color: #00F;
color: #00f;
} }
.query:last-child { .query:last-child {
margin-right: 0; margin-right: 0;

192
src/views/customerReport/personnelPositive.vue

@ -9,13 +9,32 @@
</div> </div>
<div :style="'display: block;'"> <div :style="'display: block;'">
<div <div
style="background-color: #fff; padding: 15px; border-radius: 8px;display: flex;flex-wrap: wrap; margin-bottom: 10px;height:35px;margin-top: 7px;">
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"> <div class="query">
<span>体检单位</span> <span>体检单位</span>
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:240px;" size="small"
disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true"
style="font-size: 20px;"></el-button>
<el-input
placeholder="请选择体检单位"
v-model="patientRegister.query.cusOrgOCX"
style="width: 240px"
size="small"
disabled
>
<el-button
slot="append"
icon="el-icon-search"
@click="report.dialogCusOrgOCX = true"
style="font-size: 20px"
></el-button>
</el-input> </el-input>
</div> </div>
<!-- <div class="query"> <!-- <div class="query">
@ -46,22 +65,59 @@
<span>分类统计</span> <span>分类统计</span>
</div> --> </div> -->
<div class="query"> <div class="query">
<el-button @click="btnQuery" size="small" class="commonbutton">查询</el-button>
<el-button @click="btnQuery" size="small" class="commonbutton"
>查询</el-button
>
</div> </div>
<div class="query"> <div class="query">
<el-button @click="handleExport" size="small" class="commonbutton">导出excel</el-button>
<el-button @click="handleExport" size="small" class="commonbutton"
>导出excel</el-button
>
</div> </div>
<div class="query"> <div class="query">
<el-button @click="onPrint" size="small" class="commonbutton">打印</el-button>
<el-button @click="onPrint" size="small" class="commonbutton"
>打印</el-button
>
</div> </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">
<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 :label="summary.customerOrgName">
<el-table-column
:label="`开始时间: ${summary.startDate || ''} 结束时间:${
summary.endDate || ''
} 体检人员共计 ${
summary.maleCount + summary.femaleCount
} 男性 ${summary.maleCount} 女性 ${summary.femaleCount}`"
align="left"
>
<el-table-column <el-table-column
:label="`开始时间: ${summary.startDate || ''} 结束时间:${summary.endDate || ''} 男性: ${summary.maleCount} 女性: ${summary.femaleCount}`" align="left">
<el-table-column type="index" label="序号" width="60" align="center" />
type="index"
label="序号"
width="60"
align="center"
/>
<el-table-column prop="customerOrgParentName" label="单位" /> <el-table-column prop="customerOrgParentName" label="单位" />
<el-table-column prop="customerOrgName" label="部门" /> <el-table-column prop="customerOrgName" label="部门" />
<el-table-column prop="patientNo" label="档案号" width="120" /> <el-table-column prop="patientNo" label="档案号" width="120" />
@ -69,16 +125,26 @@
<el-table-column prop="sexName" label="性别" width="50" /> <el-table-column prop="sexName" label="性别" width="50" />
<el-table-column prop="age" label="年龄" width="80" /> <el-table-column prop="age" label="年龄" width="80" />
<el-table-column prop="medicalTimes" label="次数" width="50" /> <el-table-column prop="medicalTimes" label="次数" width="50" />
<el-table-column prop="mobileTelephone" label="手机号码" width="120" />
<el-table-column
prop="mobileTelephone"
label="手机号码"
width="120"
/>
<el-table-column prop="diagnosisNames" label="检查结果" /> <el-table-column prop="diagnosisNames" label="检查结果" />
</el-table-column> </el-table-column>
</el-table-column>
</el-table> </el-table>
</div> </div>
</div> </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" /> <CusOrgOCX :initDateType="'creationTime'" :useCustomerOrg="true" />
</el-dialog> </el-dialog>
</div> </div>
@ -87,7 +153,13 @@
import moment from "moment"; import moment from "moment";
import { mapState, mapActions } from "vuex"; import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; 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 CusOrgOCX from "../../components/report/CusOrgOCX.vue";
import { exportToExcel } from "../../utlis/Export2Excel"; import { exportToExcel } from "../../utlis/Export2Excel";
import html2canvas from "html2canvas"; import html2canvas from "html2canvas";
@ -95,7 +167,7 @@ import printJs from "print-js";
export default { export default {
components: { components: {
CusOrgOCX
CusOrgOCX,
}, },
data() { data() {
return { return {
@ -107,8 +179,9 @@ export default {
startDate: "", startDate: "",
endDate: "", endDate: "",
femaleCount: "", femaleCount: "",
maleCount:""
}
maleCount: "",
customerOrgName:""
},
}; };
}, },
@ -126,7 +199,8 @@ export default {
}, },
methods: { methods: {
moment, dddw,
moment,
dddw,
// //
dictInit() { dictInit() {
// //
@ -172,10 +246,10 @@ export default {
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
switch (row.isCharge) { switch (row.isCharge) {
case 'N':
return 'danger';
case "N":
return "danger";
default: default:
return '';
return "";
} }
}, },
getSummaries(param) { getSummaries(param) {
@ -195,44 +269,46 @@ export default {
}, },
// //
btnQuery() { btnQuery() {
let body = {}, customerOrgs = [], diagnosisIds = [];
let body = {},
customerOrgs = [],
diagnosisIds = [];
if (this.report.dataCusOrgOCX.length > 0) { if (this.report.dataCusOrgOCX.length > 0) {
this.report.dataCusOrgOCX.forEach(e => {
let dateType = '1'
this.report.dataCusOrgOCX.forEach((e) => {
let dateType = "1";
switch (e.dateType) { switch (e.dateType) {
case 'medicalStartDate':
dateType = '2'
case "medicalStartDate":
dateType = "2";
break; break;
case 'checkDate':
dateType = '4'
case "checkDate":
dateType = "4";
break; break;
case 'summaryDate':
dateType = '3'
case "summaryDate":
dateType = "3";
break; break;
case 'sumCheckDate':
dateType = '5'
case "sumCheckDate":
dateType = "5";
break; break;
default: default:
break; break;
} }
let rd = { let rd = {
startDate: moment(e.startDate).format('yyyy-MM-DD'),
endDate: moment(e.endDate).format('yyyy-MM-DD'),
dateType
}
startDate: moment(e.startDate).format("yyyy-MM-DD"),
endDate: moment(e.endDate).format("yyyy-MM-DD"),
dateType,
};
console.log(e);
if (e.customerOrgId) { if (e.customerOrgId) {
rd.customerOrgId = e.customerOrgId
rd.customerOrgId = e.customerOrgId;
if (e.customerOrgId == this.dict.personOrgId) { if (e.customerOrgId == this.dict.personOrgId) {
rd.customerOrgRegisterId = null
rd.customerOrgGroupId = []
rd.customerOrgRegisterId = null;
rd.customerOrgGroupId = [];
} else { } else {
rd.customerOrgRegisterId = e.customerOrgRegister.id
rd.customerOrgGroupId = e.customerOrgGroupIds
rd.customerOrgRegisterId = e.customerOrgRegister.id;
rd.customerOrgGroupId = e.customerOrgGroupIds;
} }
} }
customerOrgs.push(rd)
})
customerOrgs.push(rd);
});
} }
// if (this.report.dataAsbitemOCX.length > 0) { // if (this.report.dataAsbitemOCX.length > 0) {
@ -241,28 +317,35 @@ export default {
// }) // })
// } // }
body.customerOrgs = customerOrgs
body.customerOrgs = customerOrgs;
// body.diagnosisIds = diagnosisIds // body.diagnosisIds = diagnosisIds
// if(this.completeFlag) body.completeFlag = this.completeFlag // if(this.completeFlag) body.completeFlag = this.completeFlag
// body.isAudit=this.classification // body.isAudit=this.classification
// if (this.patientRegister.query.isCharge) body.isCharge = this.patientRegister.query.isCharge // if (this.patientRegister.query.isCharge) body.isCharge = this.patientRegister.query.isCharge
//console.log('/api/app/peisreport/getregisterasbitemchargestatus',body) //console.log('/api/app/peisreport/getregisterasbitemchargestatus',body)
postapi('/api/customerreport/getpatientregisterpositivereport', body).then(res => {
postapi(
"/api/customerreport/getpatientregisterpositivereport",
body
).then((res) => {
if (res.code != -1) { if (res.code != -1) {
this.dataList = res.data.details; this.dataList = res.data.details;
this.summary.startDate = res.data.startDate; this.summary.startDate = res.data.startDate;
this.summary.endDate = res.data.endDate; this.summary.endDate = res.data.endDate;
this.summary.femaleCount = res.data.femaleCount; this.summary.femaleCount = res.data.femaleCount;
this.summary.maleCount = res.data.maleCount; this.summary.maleCount = res.data.maleCount;
if(this.report.dataCusOrgOCX.length>1){
this.summary.customerOrgName=""
}else{
this.summary.customerOrgName=this.report.dataCusOrgOCX[0].customerOrgName
}
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.dataList.doLayout(); this.$refs.dataList.doLayout();
}); });
} }
})
});
}, },
onPrint() { onPrint() {
this.flag = false; this.flag = false;
@ -292,7 +375,7 @@ export default {
}, },
handleExport() { handleExport() {
exportToExcel("#table", "人员阳性结果清单", false); exportToExcel("#table", "人员阳性结果清单", false);
}
},
}, },
// //
@ -304,7 +387,6 @@ export default {
// this.query(); // this.query();
// } // }
// }, // },
}, },
}; };
</script> </script>
@ -349,7 +431,7 @@ export default {
} }
::v-deep .el-icon-search:before { ::v-deep .el-icon-search:before {
color: #00F;
color: #00f;
} }
.query:last-child { .query:last-child {

2
src/views/customerReport/positiveResultsList.vue

@ -179,7 +179,7 @@
:summary-method="getSummaris" :summary-method="getSummaris"
> >
<el-table-column label="阳性结果人员清单"> <el-table-column label="阳性结果人员清单">
<el-table-column :label="`开始时间: ${summary.startDate || ''} 结束时间:${summary.endDate || ''} 男性: ${summary.maleCount} 女性: ${summary.femaleCount}`" align="left">
<el-table-column :label="`开始时间: ${summary.startDate || ''} 结束时间:${summary.endDate || ''}体检人员共计: ${(summary.maleCount+summary.femaleCount)} 男性: ${summary.maleCount} 女性: ${summary.femaleCount}`" align="left">
<el-table-column <el-table-column
prop="diagnosisName" prop="diagnosisName"
label="诊断名称" label="诊断名称"

Loading…
Cancel
Save