pengjun 2 weeks ago
parent
commit
b86f1f33c2
  1. 557
      src/views/customerReport/unitSettlement.vue

557
src/views/customerReport/unitSettlement.vue

@ -8,7 +8,8 @@
</div>
</div>
<div :style="'display: block;'">
<div style="
<div
style="
background-color: #fff;
padding: 15px;
border-radius: 8px;
@ -17,26 +18,51 @@
margin-bottom: 10px;
height: 35px;
margin-top: 7px;
">
"
>
<div class="query">
<span>体检单位</span>
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="'width:350px" 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:350px"
size="small"
disabled
>
<el-button
slot="append"
icon="el-icon-search"
@click="report.dialogCusOrgOCX = true"
style="font-size: 20px"
></el-button>
</el-input>
</div>
<div class="query">
<span>组合项目</span>
<el-input placeholder="请选择组合项目" v-model="patientRegister.query.asbitemOCX" style="'width:350px" size="small"
disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogAsbitemOCX = true"
style="font-size: 20px"></el-button>
<el-input
placeholder="请选择组合项目"
v-model="patientRegister.query.asbitemOCX"
style="'width:350px"
size="small"
disabled
>
<el-button
slot="append"
icon="el-icon-search"
@click="report.dialogAsbitemOCX = true"
style="font-size: 20px"
></el-button>
</el-input>
</div>
<div class="query" v-if="!cut">
<span>报表格式</span>
<el-select v-model="registerType" placeholder="请选择" clearable style="width: 80px" size="small">
<el-select
v-model="registerType"
placeholder="请选择"
clearable
style="width: 80px"
size="small"
>
<el-option label="按分组包含预登记" value="1" />
<el-option label="按分组不包含预登记" value="2" />
<el-option label="按分组实检(只检1项也算全部已检)" value="3" />
@ -44,7 +70,13 @@
</div>
<div class="query" v-if="cut">
<span>报表格式</span>
<el-select v-model="complexregisterType" placeholder="请选择" clearable style="width: 80px" size="small">
<el-select
v-model="complexregisterType"
placeholder="请选择"
clearable
style="width: 80px"
size="small"
>
<el-option label="按组合包含预登记" value="1" />
<el-option label="按组合不包含预登记" value="2" />
<el-option label="按组合实检" value="3" />
@ -52,48 +84,116 @@
</el-select>
</div>
<div class="query">
<el-checkbox v-model="checkbox" true-label="1" false-label="0" @change="bespeak" />
<el-checkbox
v-model="checkbox"
true-label="1"
false-label="0"
@change="bespeak"
/>
<span style="margin-left: 5px">显示人员名单</span>
</div>
<div class="query">
<el-checkbox v-model="isPersonalPayment" true-label="Y" false-label="N" />
<el-checkbox
v-model="isPersonalPayment"
true-label="Y"
false-label="N"
/>
<span style="margin-left: 5px">包含个人支付和免费赠送</span>
</div>
<div class="query">
<el-button size="small" @click="onSubmit" class="commonbutton">查询</el-button>
<el-button size="small" @click="onSubmit" class="commonbutton"
>查询</el-button
>
</div>
<div class="query">
<el-button size="small" class="commonbutton" @click="handleExport">导出excel</el-button>
<el-button size="small" class="commonbutton" @click="handleExport"
>导出excel</el-button
>
</div>
<div class="query">
<el-button size="small" @click="onPrint" class="commonbutton">打印</el-button>
<el-button size="small" @click="onPrint" class="commonbutton"
>打印</el-button
>
</div>
</div>
<div id="domTable">
<div style="background-color: #fff; padding: 15px; border-radius: 8px" ref="imageDom0" v-show="format == 0">
<div
style="background-color: #fff; padding: 15px; border-radius: 8px"
ref="imageDom0"
v-show="format == 0"
>
<div>
<el-table border :height="flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
" :data="tableData" id="tableData" ref="tableData" style="width: 100%" show-summary
:summary-method="summarizeRegisterCountes">
<el-table
border
:height="
flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
"
:data="tableData"
id="tableData"
ref="tableData"
style="width: 100%"
show-summary
:summary-method="summarizeRegisterCountes"
>
<el-table-column label="单位结算统计">
<template slot-scope="scope">
<el-table :data="scope.row.groupDetails" border show-summary :summary-method="summarizeRegisterCount">
<el-table-column label="分组" prop="customerOrgGroupName"></el-table-column>
<el-table-column label="分组价格" prop="customerOrgGroupPrice"></el-table-column>
<el-table-column label="人数" prop="patientCount"></el-table-column>
<el-table-column label="总金额" prop="sumPrice"></el-table-column>
<el-table
:data="scope.row.groupDetails"
border
show-summary
:summary-method="summarizeRegisterCount"
>
<el-table-column
label="分组"
prop="customerOrgGroupName"
></el-table-column>
<el-table-column
label="分组价格"
prop="customerOrgGroupPrice"
></el-table-column>
<el-table-column
label="人数"
prop="patientCount"
></el-table-column>
<el-table-column
label="总金额"
prop="sumPrice"
></el-table-column>
</el-table>
<el-table :data="scope.row.addItems" border show-summary :summary-method="summarizeRegisterCount2">
<el-table-column label="加做项目" prop="asbitemName"></el-table-column>
<el-table-column label="人数" prop="patientCount"></el-table-column>
<el-table-column label="标准价格" prop="standardPrice"></el-table-column>
<el-table-column label="应收价格" prop="price"></el-table-column>
<el-table-column label="标准金额" prop="standardMoney"></el-table-column>
<el-table-column label="应收金额" prop="sumPrice"></el-table-column>
<el-table
:data="scope.row.addItems"
border
show-summary
:summary-method="summarizeRegisterCount2"
>
<el-table-column
label="加做项目"
prop="asbitemName"
></el-table-column>
<el-table-column
label="人数"
prop="patientCount"
></el-table-column>
<el-table-column
label="标准价格"
prop="standardPrice"
></el-table-column>
<el-table-column
label="应收价格"
prop="price"
></el-table-column>
<el-table-column
label="标准金额"
prop="standardMoney"
></el-table-column>
<el-table-column
label="应收金额"
prop="sumPrice"
></el-table-column>
</el-table>
</template>
</el-table-column>
@ -101,58 +201,123 @@
</div>
</div>
<div style="background-color: #fff; padding: 15px; border-radius: 8px" ref="imageDom1" v-show="format == 1">
<div
style="background-color: #fff; padding: 15px; border-radius: 8px"
ref="imageDom1"
v-show="format == 1"
>
<div>
<el-table border :height="flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
" :data="stafftableData" id="stafftableData" ref="stafftableData" style="width: 100%" show-summary
:summary-method="summarizeRegisterCountes">
<el-table
border
:height="
flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
"
:data="stafftableData"
id="stafftableData"
ref="stafftableData"
style="width: 100%"
show-summary
:summary-method="summarizeRegisterCountes"
>
<el-table-column label="单位结算统计">
<template slot-scope="scope">
<el-table :data="scope.row.groupDetails" border>
<el-table-column label="分组">
<template slot-scope="scopes">
<el-table :data="scopes.row.patients" border show-summary :summary-method="(params) =>
summarizeRegisterCounts(
params,
scopes.row.sumPrice
)
">
<el-table-column :label="scopes.row.customerOrgGroupName +
' 价格:' +
scopes.row.customerOrgGroupPrice
">
<el-table-column label="姓名" prop="patientName"></el-table-column>
<el-table-column label="条码号" prop="patientRegisterNo"></el-table-column>
<el-table-column label="档案号" prop="patientNo"></el-table-column>
<el-table-column label="性别" prop="sexName"></el-table-column>
<el-table-column label="年龄" prop="age"></el-table-column>
<el-table
:data="scopes.row.patients"
border
show-summary
:summary-method="
(params) =>
summarizeRegisterCounts(
params,
scopes.row.sumPrice
)
"
>
<el-table-column
:label="
scopes.row.customerOrgGroupName +
' 价格:' +
scopes.row.customerOrgGroupPrice
"
>
<el-table-column
label="姓名"
prop="patientName"
></el-table-column>
<el-table-column
label="条码号"
prop="patientRegisterNo"
></el-table-column>
<el-table-column
label="档案号"
prop="patientNo"
></el-table-column>
<el-table-column
label="性别"
prop="sexName"
></el-table-column>
<el-table-column
label="年龄"
prop="age"
></el-table-column>
</el-table-column>
</el-table>
</template>
</el-table-column>
</el-table>
<el-table :data="scope.row.addItems" border style="margin-top: 10px">
<el-table
:data="scope.row.addItems"
border
style="margin-top: 10px"
>
<el-table-column label="加做项目">
<template slot-scope="scopes">
<el-table :data="scopes.row.patients" border show-summary :summary-method="(params) =>
summarizeRegisterCounts(
params,
scopes.row.sumPrice
)
">
<el-table-column :label="scopes.row.asbitemName +
' 价格:' +
scopes.row.price
">
<el-table-column label="姓名" prop="patientName"></el-table-column>
<el-table-column label="条码号" prop="patientRegisterNo"></el-table-column>
<el-table-column label="档案号" prop="patientNo"></el-table-column>
<el-table-column label="性别" prop="sexName"></el-table-column>
<el-table-column label="年龄" prop="age"></el-table-column>
<el-table
:data="scopes.row.patients"
border
show-summary
:summary-method="
(params) =>
summarizeRegisterCounts(
params,
scopes.row.sumPrice
)
"
>
<el-table-column
:label="
scopes.row.asbitemName +
' 价格:' +
scopes.row.price
"
>
<el-table-column
label="姓名"
prop="patientName"
></el-table-column>
<el-table-column
label="条码号"
prop="patientRegisterNo"
></el-table-column>
<el-table-column
label="档案号"
prop="patientNo"
></el-table-column>
<el-table-column
label="性别"
prop="sexName"
></el-table-column>
<el-table-column
label="年龄"
prop="age"
></el-table-column>
</el-table-column>
</el-table>
</template>
@ -163,54 +328,128 @@
</el-table>
</div>
</div>
<div style="background-color: #fff; padding: 15px; border-radius: 8px" ref="imageDom2" v-show="format == 2">
<div
style="background-color: #fff; padding: 15px; border-radius: 8px"
ref="imageDom2"
v-show="format == 2"
>
<div>
<el-table border :height="flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
" :data="projecttableData" id="projecttableData" ref="projecttableData" style="width: 100%"
show-summary :summary-method="projectsummarizeRegisterCount">
<el-table
border
:height="
flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
"
:data="projecttableData"
id="projecttableData"
ref="projecttableData"
style="width: 100%"
show-summary
:summary-method="projectsummarizeRegisterCount"
>
<el-table-column label="单位结算统计">
<el-table-column label="项目类别" prop="itmeTypeName"></el-table-column>
<el-table-column label="组合项目" prop="asbitemName"></el-table-column>
<el-table-column label="标准价格" prop="standardPrice"></el-table-column>
<el-table-column label="价格" prop="chargePrice"></el-table-column>
<el-table-column label="人数" prop="patientCount"></el-table-column>
<el-table-column label="标准金额" prop="standardAmount"></el-table-column>
<el-table-column label="折扣" prop="discount"></el-table-column>
<el-table-column label="金额" prop="chargeAmount"></el-table-column>
<el-table-column
label="项目类别"
prop="itmeTypeName"
></el-table-column>
<el-table-column
label="组合项目"
prop="asbitemName"
></el-table-column>
<el-table-column
label="标准价格"
prop="standardPrice"
></el-table-column>
<el-table-column
label="价格"
prop="chargePrice"
></el-table-column>
<el-table-column
label="人数"
prop="patientCount"
></el-table-column>
<el-table-column
label="标准金额"
prop="standardAmount"
></el-table-column>
<el-table-column
label="折扣"
prop="discount"
></el-table-column>
<el-table-column
label="金额"
prop="chargeAmount"
></el-table-column>
</el-table-column>
</el-table>
</div>
</div>
<div style="background-color: #fff; padding: 15px; border-radius: 8px" ref="imageDom3" v-show="format == 3">
<div
style="background-color: #fff; padding: 15px; border-radius: 8px"
ref="imageDom3"
v-show="format == 3"
>
<div>
<el-table border :height="flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
" :data="projectcomplextableData" id="projectcomplextableData" ref="projectcomplextableData"
style="width: 100%" show-summary :summary-method="projectcomplexsummarizeRegisterCountes">
<el-table
border
:height="
flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
"
:data="projectcomplextableData"
id="projectcomplextableData"
ref="projectcomplextableData"
style="width: 100%"
show-summary
:summary-method="projectcomplexsummarizeRegisterCountes"
>
<el-table-column label="单位结算统计">
<template slot-scope="scope">
<el-table :data="scope.row.patients" border show-summary :summary-method="(params) =>
projectcomplexsummarizeRegisterCounts(
params,
scope.row.chargeAmount
)
">
<el-table-column :label="scope.row.asbitemName +
' 价格:' +
scope.row.chargePrice
">
<el-table-column label="姓名" prop="patientName"></el-table-column>
<el-table-column label="条码号" prop="patientRegisterNo"></el-table-column>
<el-table-column label="档案号" prop="patientNo"></el-table-column>
<el-table-column label="性别" prop="sexName"></el-table-column>
<el-table-column label="年龄" prop="age"></el-table-column>
<el-table
:data="scope.row.patients"
border
show-summary
:summary-method="
(params) =>
projectcomplexsummarizeRegisterCounts(
params,
scope.row.chargeAmount
)
"
>
<el-table-column
:label="
scope.row.asbitemName +
' 价格:' +
scope.row.chargePrice
"
>
<el-table-column
label="姓名"
prop="patientName"
></el-table-column>
<el-table-column
label="条码号"
prop="patientRegisterNo"
></el-table-column>
<el-table-column
label="档案号"
prop="patientNo"
></el-table-column>
<el-table-column
label="性别"
prop="sexName"
></el-table-column>
<el-table-column
label="年龄"
prop="age"
></el-table-column>
</el-table-column>
</el-table>
</template>
@ -222,13 +461,23 @@
</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 title="组合项目选择" :visible.sync="report.dialogAsbitemOCX" :close-on-click-modal="false" width="700px"
height="600px">
<el-dialog
title="组合项目选择"
:visible.sync="report.dialogAsbitemOCX"
:close-on-click-modal="false"
width="700px"
height="600px"
>
<AsbitemOCX />
</el-dialog>
</div>
@ -262,7 +511,7 @@ export default {
complexregisterType: "2",
};
},
created() { },
created() {},
mounted() {
if (this.report.dataAsbitemOCX.length > 0) {
this.cut = true;
@ -370,8 +619,8 @@ page-break-before: avoid;}}`, // 去除页眉页脚
e.dateType == "summaryDate"
? "3"
: e.dateType == "medicalStartDate"
? "2"
: "1",
? "2"
: "1",
};
if (e.customerOrgId) {
@ -456,7 +705,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
if (index === 3) {
let sum = 0;
data.forEach((data, index) => {
sum =(Number(sum) + Number(data.sumPrice)).toFixed(2);
sum = (Number(sum) + Number(data.sumPrice)).toFixed(2);
});
sums[index] = sum;
return;
@ -477,7 +726,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
if (index == 4) {
let sum = 0;
data.forEach((data, index) => {
sum =(Number(sum) + Number(data.standardMoney)).toFixed(2);
sum = (Number(sum) + Number(data.standardMoney)).toFixed(2);
});
sums[index] = sum;
return;
@ -485,7 +734,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
if (index === 5) {
let sum = 0;
data.forEach((data, index) => {
sum =(Number(sum) + Number(data.sumPrice)).toFixed(2);
sum = (Number(sum) + Number(data.sumPrice)).toFixed(2);
});
sums[index] = sum;
return;
@ -519,25 +768,27 @@ page-break-before: avoid;}}`, // 去除页眉页脚
summarizeRegisterCountes(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
let sumPrice = 0;
let groupDetail = data[0].groupDetails;
let addItem = data[0].addItems;
for (let i = 0; i < groupDetail.length; i++) {
sumPrice = (
Number(sumPrice) + Number(groupDetail[i].sumPrice)
).toFixed(2);
}
for (let i = 0; i < addItem.length; i++) {
sumPrice = (
Number(sumPrice) + Number(addItem[i].sumPrice)
).toFixed(2);
if (data.length > 0) {
columns.forEach((column, index) => {
if (index === 0) {
let sumPrice = 0;
let groupDetail = data[0].groupDetails;
let addItem = data[0].addItems;
for (let i = 0; i < groupDetail.length; i++) {
sumPrice = (
Number(sumPrice) + Number(groupDetail[i].sumPrice)
).toFixed(2);
}
for (let i = 0; i < addItem.length; i++) {
sumPrice = (
Number(sumPrice) + Number(addItem[i].sumPrice)
).toFixed(2);
}
sums[index] = "总计" + sumPrice;
return;
}
sums[index] = "总计" + sumPrice;
return;
}
});
});
}
return sums;
},
@ -546,11 +797,11 @@ page-break-before: avoid;}}`, // 去除页眉页脚
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总计';
sums[index] = "总计";
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
const values = data.map((item) => Number(item[column.property]));
if (!values.every((value) => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
@ -560,7 +811,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
}
}, 0);
} else {
sums[index] = '';
sums[index] = "";
}
});
@ -579,7 +830,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
return;
}
if (index === 4) {
sums[index] = e + '元';
sums[index] = e + "元";
return;
}
});
@ -639,10 +890,10 @@ page-break-before: avoid;}}`, // 去除页眉页脚
},
updated() {
this.$nextTick(() => {
this.$refs.tableData.doLayout()
this.$refs.projecttableData.doLayout()
})
}
this.$refs.tableData.doLayout();
this.$refs.projecttableData.doLayout();
});
},
};
</script>
<style scoped>
@ -685,7 +936,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
}
::v-deep .el-icon-search:before {
color: #00F;
color: #00f;
}
::v-deep .el-input-group {

Loading…
Cancel
Save