You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
736 lines
26 KiB
736 lines
26 KiB
<template>
|
|
<div class="box">
|
|
<div>
|
|
<div class="middlebox">
|
|
<div class="contenttitle">
|
|
客户报表 /
|
|
<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 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>
|
|
</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>
|
|
</div>
|
|
<div class="query" v-if="!cut">
|
|
<span>报表格式:</span>
|
|
<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" />
|
|
</el-select>
|
|
</div>
|
|
<div class="query" v-if="cut">
|
|
<span>报表格式:</span>
|
|
<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" />
|
|
<el-option label="按组合实检(只检1项也算全部已检)" value="4" />
|
|
</el-select>
|
|
</div>
|
|
<div class="query">
|
|
<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" />
|
|
<span style="margin-left: 5px">包含个人支付和免费赠送</span>
|
|
</div>
|
|
<div class="query">
|
|
<el-button size="small" @click="onSubmit" class="commonbutton">查询</el-button>
|
|
</div>
|
|
<div class="query">
|
|
<!--旧导出方式 handleExport、btnExport('expUnitSettlement') -->
|
|
<el-button size="small" class="commonbutton" @click="btnExport('expUnitSettlement')">导出excel</el-button>
|
|
</div>
|
|
<div class="query">
|
|
<el-button size="small" @click="onPrint" class="commonbutton">打印</el-button>
|
|
</div>
|
|
</div>
|
|
<div id="expUnitSettlement">
|
|
<div id="expUnitSettlement0" 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 - 25
|
|
: ''
|
|
" :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>
|
|
<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>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="expUnitSettlement1" 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 - 25
|
|
: ''
|
|
" :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"
|
|
:formatter="forceStringFormatter"></el-table-column>
|
|
<el-table-column label="档案号" prop="patientNo" :formatter="forceStringFormatter">
|
|
</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-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" :formatter="forceStringFormatter"></el-table-column>
|
|
<el-table-column label="档案号" prop="patientNo" :formatter="forceStringFormatter"></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>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
<div id="expUnitSettlement2" 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 - 25
|
|
: ''
|
|
" :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>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
<div id="expUnitSettlement3" 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 - 25
|
|
: ''
|
|
" :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" :formatter="forceStringFormatter"></el-table-column>
|
|
<el-table-column label="档案号" prop="patientNo" :formatter="forceStringFormatter"></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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!--通用选单位、体检次数、分组的控件-->
|
|
<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">
|
|
<AsbitemOCX />
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import moment from "moment";
|
|
import { mapState, mapActions } from "vuex";
|
|
import { getapi, postapi, putapi, deletapi } from "@/api/api";
|
|
import { exportToExcel } from "../../utlis/Export2Excel";
|
|
import FileSaver from 'file-saver';
|
|
import html2canvas from "html2canvas";
|
|
import printJs from "print-js";
|
|
import CusOrgOCX from "../../components/report/CusOrgOCX.vue";
|
|
import AsbitemOCX from "../../components/report/AsbitemOCX.vue";
|
|
export default {
|
|
components: {
|
|
CusOrgOCX,
|
|
AsbitemOCX,
|
|
},
|
|
data() {
|
|
return {
|
|
tableData: [],
|
|
flag: true,
|
|
format: "0",
|
|
registerType: "2",
|
|
isPersonalPayment: "N",
|
|
stafftableData: [],
|
|
cut: false,
|
|
checkbox: "0",
|
|
projecttableData: [],
|
|
projectcomplextableData: [],
|
|
complexregisterType: "2",
|
|
};
|
|
},
|
|
created() { },
|
|
mounted() {
|
|
if (this.report.dataAsbitemOCX.length > 0) {
|
|
this.cut = true;
|
|
if (this.checkbox == 0) {
|
|
this.format = "2";
|
|
} else {
|
|
this.format = "3";
|
|
}
|
|
} else {
|
|
this.cut = false;
|
|
if (this.checkbox == 0) {
|
|
this.format = "0";
|
|
} else {
|
|
this.format = "1";
|
|
}
|
|
}
|
|
},
|
|
computed: {
|
|
...mapState(["window", "dict", "patientRegister", "report"]),
|
|
},
|
|
watch: {
|
|
"report.dataAsbitemOCX"(newVal, oldVal) {
|
|
if (newVal.length > 0) {
|
|
this.cut = true;
|
|
if (this.checkbox == 0) {
|
|
this.format = "2";
|
|
} else {
|
|
this.format = "3";
|
|
}
|
|
} else {
|
|
this.cut = false;
|
|
if (this.checkbox == 0) {
|
|
this.format = "0";
|
|
} else {
|
|
this.format = "1";
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
bespeak(e) {
|
|
console.log(e);
|
|
if (this.cut) {
|
|
if (e == 0) {
|
|
this.format = "2";
|
|
} else {
|
|
this.format = "3";
|
|
}
|
|
} else {
|
|
if (e == 0) {
|
|
this.format = "0";
|
|
} else {
|
|
this.format = "1";
|
|
}
|
|
}
|
|
},
|
|
onPrint() {
|
|
this.flag = false;
|
|
let index = "";
|
|
if (this.format == 0) {
|
|
index = "imageDom0";
|
|
} else if (this.format == 1) {
|
|
index = "imageDom1";
|
|
} else if (this.format == 2) {
|
|
index = "imageDom2";
|
|
} else if (this.format == 3) {
|
|
index = "imageDom3";
|
|
}
|
|
this.$nextTick(() => {
|
|
let width = this.$refs[index].style.width;
|
|
let cloneDom = this.$refs[index].cloneNode(true);
|
|
let imageDom = this.$refs[index];
|
|
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;
|
|
});
|
|
},
|
|
|
|
// 强制将单元格值转换为字符串
|
|
forceStringFormatter(row, column, cellValue) {
|
|
// 如果 cellValue 存在,则转为字符串;否则返回原值
|
|
return cellValue ? "\u200C" + String(cellValue) : cellValue
|
|
},
|
|
|
|
//通用导出
|
|
btnExport(elId) {
|
|
// 获取HTML元素(表格)
|
|
// let table = document.getElementById(elId); //.cloneNode(true)
|
|
this.$nextTick(() => {
|
|
// let refsTable = this.$refs[elId] //.cloneNode(true) true
|
|
let table = document.getElementById(elId + this.format)
|
|
// console.log('table,refsTable', table, refsTable)
|
|
|
|
let tableData = table.innerHTML
|
|
let fileName = moment(new Date()).format('yyyyMMDDHHmmss')
|
|
|
|
let blob = new Blob([tableData], { type: "text/plain;charset=utf-8" });
|
|
|
|
FileSaver.saveAs(blob, fileName + '.xls');
|
|
|
|
})
|
|
},
|
|
|
|
|
|
onSubmit() {
|
|
let body = {},
|
|
customerOrgs = [],
|
|
asbitemIds = [];
|
|
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 (this.report.dataAsbitemOCX.length > 0) {
|
|
this.report.dataAsbitemOCX.forEach((e) => {
|
|
asbitemIds.push(e.id);
|
|
});
|
|
}
|
|
|
|
body.customerOrgs = customerOrgs;
|
|
body.registerType = this.registerType;
|
|
if (this.cut) {
|
|
body.asbitemIds = asbitemIds;
|
|
body.registerType = this.complexregisterType;
|
|
}
|
|
body.isPersonalPayment = this.isPersonalPayment;
|
|
|
|
if (this.format == 0) {
|
|
postapi(
|
|
"/api/customerreport/getcustomerorgfeesettlementingroupreportreduce",
|
|
body
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.tableData = [];
|
|
this.tableData.push(res.data);
|
|
}
|
|
});
|
|
} else if (this.format == 1) {
|
|
postapi(
|
|
"/api/customerreport/getcustomerorgfeesettlementingroupreportdetail",
|
|
body
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.stafftableData = [];
|
|
this.stafftableData.push(res.data);
|
|
}
|
|
});
|
|
} else if (this.format == 2) {
|
|
postapi(
|
|
"/api/customerreport/getcustomerorgfeesettlementinasbitemreportreduce",
|
|
body
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.projecttableData = [];
|
|
this.projecttableData = res.data.asbtiems;
|
|
}
|
|
});
|
|
} else if (this.format == 3) {
|
|
postapi(
|
|
"/api/customerreport/getcustomerorgfeesettlementinasbitemreportdetail",
|
|
body
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.projectcomplextableData = [];
|
|
this.projectcomplextableData = res.data.asbtiems;
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
summarizeRegisterCount(param) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
sums[index] = "合计";
|
|
return;
|
|
}
|
|
if (index === 3) {
|
|
let sum = 0;
|
|
data.forEach((data, index) => {
|
|
sum = (Number(sum) + Number(data.sumPrice)).toFixed(2);
|
|
});
|
|
sums[index] = sum;
|
|
return;
|
|
}
|
|
});
|
|
|
|
return sums;
|
|
},
|
|
|
|
summarizeRegisterCount2(param) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
sums[index] = "合计";
|
|
return;
|
|
}
|
|
if (index == 4) {
|
|
let sum = 0;
|
|
data.forEach((data, index) => {
|
|
sum = (Number(sum) + Number(data.standardMoney)).toFixed(2);
|
|
});
|
|
sums[index] = sum;
|
|
return;
|
|
}
|
|
if (index === 5) {
|
|
let sum = 0;
|
|
data.forEach((data, index) => {
|
|
sum = (Number(sum) + Number(data.sumPrice)).toFixed(2);
|
|
});
|
|
sums[index] = sum;
|
|
return;
|
|
}
|
|
});
|
|
|
|
return sums;
|
|
},
|
|
|
|
summarizeRegisterCounts(param, e) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
sums[index] = "共" + data.length + "人";
|
|
return;
|
|
}
|
|
if (index === 3) {
|
|
sums[index] = "小计";
|
|
return;
|
|
}
|
|
if (index === 4) {
|
|
sums[index] = e;
|
|
return;
|
|
}
|
|
});
|
|
|
|
return sums;
|
|
},
|
|
|
|
summarizeRegisterCountes(param) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
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;
|
|
}
|
|
});
|
|
}
|
|
return sums;
|
|
},
|
|
|
|
projectsummarizeRegisterCount(param) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
sums[index] = "总计";
|
|
return;
|
|
}
|
|
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)) {
|
|
return (Number(prev) + Number(curr)).toFixed(2);
|
|
} else {
|
|
return prev;
|
|
}
|
|
}, 0);
|
|
} else {
|
|
sums[index] = "";
|
|
}
|
|
});
|
|
|
|
return sums;
|
|
},
|
|
projectcomplexsummarizeRegisterCounts(param, e) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
sums[index] = "共" + data.length + "人";
|
|
return;
|
|
}
|
|
if (index === 3) {
|
|
sums[index] = "小计";
|
|
return;
|
|
}
|
|
if (index === 4) {
|
|
sums[index] = e + "元";
|
|
return;
|
|
}
|
|
});
|
|
|
|
return sums;
|
|
},
|
|
projectcomplexsummarizeRegisterCountes(param) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
let sumPrice = 0;
|
|
for (let i = 0; i < data.length; i++) {
|
|
sumPrice = (
|
|
Number(sumPrice) + Number(data[i].chargeAmount)
|
|
).toFixed(2);
|
|
}
|
|
sums[index] = "总计" + sumPrice;
|
|
return;
|
|
}
|
|
});
|
|
return sums;
|
|
},
|
|
|
|
// 旧的导出方式
|
|
handleExport() {
|
|
if (this.format == 0) {
|
|
exportToExcel("#tableData", "单位体检结算", true, [2]);
|
|
} else if (this.format == 1) {
|
|
let index = 4;
|
|
let list = [2, 4];
|
|
for (
|
|
let i = 0;
|
|
i < this.stafftableData[0].groupDetails.length - 1;
|
|
i++
|
|
) {
|
|
index += this.stafftableData[0].groupDetails[i].patients.length + 3;
|
|
list.push(index);
|
|
}
|
|
index += 4;
|
|
list.push(index);
|
|
for (let i = 0; i < this.stafftableData[0].addItems.length - 1; i++) {
|
|
index += this.stafftableData[0].addItems[i].patients.length + 3;
|
|
list.push(index);
|
|
}
|
|
exportToExcel("#stafftableData", "单位体检结算", true, list);
|
|
} else if (this.format == 2) {
|
|
exportToExcel("#projecttableData", "单位体检结算", false);
|
|
} else if (this.format == 3) {
|
|
let index = 2;
|
|
let list = [2];
|
|
for (let i = 0; i < this.projectcomplextableData.length - 1; i++) {
|
|
index += this.projectcomplextableData[i].patients.length + 3;
|
|
list.push(index);
|
|
}
|
|
exportToExcel("#projectcomplextableData", "单位体检结算", true, list);
|
|
}
|
|
},
|
|
|
|
|
|
},
|
|
updated() {
|
|
this.$nextTick(() => {
|
|
this.$refs.tableData.doLayout();
|
|
this.$refs.projecttableData.doLayout();
|
|
});
|
|
},
|
|
};
|
|
</script>
|
|
<style scoped>
|
|
@import "../../assets/css/global_button.css";
|
|
@import "../../assets/css/global_card.css";
|
|
@import "../../assets/css/global_input.css";
|
|
@import "../../assets/css/global_table.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";
|
|
}
|
|
|
|
.box {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
::v-deep .el-input__inner {
|
|
/*text-align: center;*/
|
|
padding-left: 5px;
|
|
padding-right: 15px;
|
|
}
|
|
|
|
::v-deep .el-input__icon {
|
|
width: 15px;
|
|
/* 输入框下拉箭头或清除图标 默认 25 */
|
|
}
|
|
|
|
::v-deep .el-input-group__append {
|
|
padding: 0 5px;
|
|
/* 控件默认 0 20px;*/
|
|
}
|
|
|
|
::v-deep .el-icon-search:before {
|
|
color: #00f;
|
|
}
|
|
|
|
::v-deep .el-input-group {
|
|
width: 75%;
|
|
}
|
|
|
|
.query:last-child {
|
|
margin-right: 0;
|
|
}
|
|
</style>
|