|
|
|
@ -46,17 +46,17 @@ |
|
|
|
style="width: 380px" |
|
|
|
size="small" |
|
|
|
> |
|
|
|
<el-option label="按实检组合项目" value="0" /> |
|
|
|
<el-option label="按实检人员(只检一项算则全部算已检)" value="1" /> |
|
|
|
<el-option label="按实检组合项目" value="1" /> |
|
|
|
<el-option label="按实检人员(只检一项算则全部算已检)" value="2" /> |
|
|
|
<el-option |
|
|
|
label="按实检人员(只检一项算则全部算已检且仅单位支付)" |
|
|
|
value="2" |
|
|
|
value="3" |
|
|
|
/> |
|
|
|
<el-option |
|
|
|
label="按实检人员(只检一项算则全部算已检且仅个人支付)" |
|
|
|
value="3" |
|
|
|
value="4" |
|
|
|
/> |
|
|
|
<el-option label="按已收费组合项目" value="4" /> |
|
|
|
<el-option label="按已收费组合项目" value="5" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="query"> |
|
|
|
@ -98,22 +98,67 @@ |
|
|
|
show-summary |
|
|
|
:summary-method="getSummaries" |
|
|
|
> |
|
|
|
<el-table-column prop="patientNo" label="档案号" width="120" /> |
|
|
|
<el-table-column prop="medicalTimes" label="次数" width="50" /> |
|
|
|
<el-table-column prop="customerOrgParentName" label="单位" /> |
|
|
|
<el-table-column prop="customerOrgName" label="部门" width="200" /> |
|
|
|
<el-table-column prop="patientName" label="分组" width="200" /> |
|
|
|
<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="mobileTelephone" |
|
|
|
label="身份证号" |
|
|
|
prop="patientNo" |
|
|
|
label="档案号" |
|
|
|
width="120" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="medicalTimes" |
|
|
|
label="次数" |
|
|
|
width="50" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="customerOrgName" |
|
|
|
label="单位" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="departmentName" |
|
|
|
label="部门" |
|
|
|
width="200" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="groupPackageName" |
|
|
|
label="分组" |
|
|
|
width="200" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="patientName" |
|
|
|
label="姓名" |
|
|
|
width="100" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="sexName" |
|
|
|
label="性别" |
|
|
|
width="50" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="age" |
|
|
|
label="年龄" |
|
|
|
width="60" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="idNo" |
|
|
|
label="身份证号" |
|
|
|
width="160" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column prop="checkedAsbitem" label="已检项目" /> |
|
|
|
<el-table-column |
|
|
|
prop="asbitemPrice" |
|
|
|
label="金额" |
|
|
|
width="100" |
|
|
|
align="center" |
|
|
|
/> |
|
|
|
<el-table-column prop="diagnosisNames" label="已检项目" /> |
|
|
|
<el-table-column prop="diagnosisNames" label="金额" width="120" /> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -167,7 +212,7 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
computed: { |
|
|
|
...mapState(["window", "dict", "patientRegister", "diagnosis"]), |
|
|
|
...mapState(["window", "dict", "patientRegister", "diagnosis", "report"]), |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
@ -212,9 +257,81 @@ export default { |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
btnQuery() {}, |
|
|
|
handleExport() {}, |
|
|
|
onPrint() {}, |
|
|
|
btnQuery() { |
|
|
|
let body = {}, |
|
|
|
customerOrgs = []; |
|
|
|
if (this.report.dataCusOrgOCX.length > 0) { |
|
|
|
this.report.dataCusOrgOCX.forEach((e) => { |
|
|
|
let rd = { |
|
|
|
startDate: moment(e.startDate).format("yyyy-MM-DD"), |
|
|
|
endDate: moment(e.endDate).format("yyyy-MM-DD"), |
|
|
|
dateType: |
|
|
|
e.dateType == "summaryDate" |
|
|
|
? "3" |
|
|
|
: e.dateType == "medicalStartDate" |
|
|
|
? "2" |
|
|
|
: "1", |
|
|
|
}; |
|
|
|
|
|
|
|
if (e.customerOrgId) { |
|
|
|
rd.customerOrgId = e.customerOrgId; |
|
|
|
if (e.customerOrgId == this.dict.personOrgId) { |
|
|
|
rd.customerOrgRegisterId = null; |
|
|
|
rd.customerOrgGroupId = []; |
|
|
|
} else { |
|
|
|
rd.customerOrgRegisterId = e.customerOrgRegister.id; |
|
|
|
rd.customerOrgGroupId = e.customerOrgGroupIds; |
|
|
|
} |
|
|
|
} |
|
|
|
customerOrgs.push(rd); |
|
|
|
}); |
|
|
|
} |
|
|
|
if (customerOrgs.length == 0) { |
|
|
|
this.$message.warning({ showClose: true, message: "请选择单位" }); |
|
|
|
return; |
|
|
|
} |
|
|
|
body.customerOrgs = customerOrgs; |
|
|
|
if (this.completeFlag) body.statisticsType = this.completeFlag; |
|
|
|
postapi( |
|
|
|
"/api/app/CustomerReport/GetCustomerOrPersonCheckedStatistics", |
|
|
|
body |
|
|
|
).then((res) => { |
|
|
|
if (res.code != -1) { |
|
|
|
this.dataList = res.data; |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
handleExport() { |
|
|
|
exportToExcel("#table", "单位个人已检统计"+ moment(new Date()).format('yyyyMMDDHHmmss') ,false); |
|
|
|
}, |
|
|
|
onPrint() { |
|
|
|
this.flag = false; |
|
|
|
this.$nextTick(() => { |
|
|
|
let width = this.$refs.imageDom.style.width; |
|
|
|
let cloneDom = this.$refs.imageDom.cloneNode(true); |
|
|
|
let imageDom = this.$refs.imageDom; |
|
|
|
cloneDom.style.position = "absolute"; |
|
|
|
cloneDom.style.top = "0px"; |
|
|
|
cloneDom.style.zIndex = "-1"; |
|
|
|
cloneDom.style.width = width; |
|
|
|
console.log(cloneDom); |
|
|
|
imageDom.appendChild(cloneDom); |
|
|
|
html2canvas(cloneDom).then((canvas) => { |
|
|
|
// 转成图片,生成图片地址 |
|
|
|
const url = canvas.toDataURL("image/png"); |
|
|
|
printJs({ |
|
|
|
printable: url, |
|
|
|
type: "image", |
|
|
|
documentTitle: "", // 标题 |
|
|
|
style: `@media print { @page {size: auto; margin: 0 0 0 0; } body{margin:0 5px}canvas{page-break-after: always;page-break-inside: avoid; |
|
|
|
page-break-after: avoid; |
|
|
|
page-break-before: avoid;}}`, // 去除页眉页脚 |
|
|
|
}); |
|
|
|
}); |
|
|
|
cloneDom.style.display = "none"; |
|
|
|
this.flag = true; |
|
|
|
}); |
|
|
|
}, |
|
|
|
tableRowClassName({ row, rowIndex }) { |
|
|
|
switch (row.isCharge) { |
|
|
|
case "N": |
|
|
|
@ -224,6 +341,9 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
getSummaries(param) { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs.dataList.doLayout(); |
|
|
|
}); |
|
|
|
const { columns, data } = param; |
|
|
|
const sums = []; |
|
|
|
columns.forEach((column, index) => { |
|
|
|
@ -234,6 +354,22 @@ export default { |
|
|
|
if (index === 1) { |
|
|
|
sums[index] = data.length + " 人"; |
|
|
|
} |
|
|
|
const values = data.map(item => Number(item[column.property])); |
|
|
|
if (column.label == "金额") { |
|
|
|
if (!values.every(value => isNaN(value))) { |
|
|
|
sums[index] = values.reduce((prev, curr) => { |
|
|
|
const value = Number(curr); |
|
|
|
if (!isNaN(value)) { |
|
|
|
return prev + curr; |
|
|
|
} else { |
|
|
|
return prev; |
|
|
|
} |
|
|
|
}, 0); |
|
|
|
// sums[index] += ' kg'; |
|
|
|
} else { |
|
|
|
// sums[index] = 'N/A'; |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
return sums; |
|
|
|
|