|
@@ -59,7 +59,7 @@
|
|
|
<div>{{ form.socialSecurityPassword }}</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="用工密码" required class="edit-label">
|
|
|
<template #label>
|
|
|
<div>用工密码</div>
|
|
@@ -67,34 +67,116 @@
|
|
|
<div>{{ form.employeePassword }}</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-
|
|
|
- <el-table :data="tableData" style="width: 100%">
|
|
|
- <el-table-column label="" width = "100">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="单位工伤险比例:">
|
|
|
+ <div v-if="form.status !== 3">
|
|
|
+ <el-input-number v-model="form.injuryRadio" size="small" placeholder="单位医疗险" :precision="2"
|
|
|
+ :controls="false" style="width: 80%;" @change="changeUnitInjuryRadio" />
|
|
|
+ <span style="margin-left: 5px;">%</span>
|
|
|
+ </div>
|
|
|
+ <div v-else>{{ rowNum(form.injuryRadio) }}</div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <div style="display: flex; justify-content: flex-end;margin-bottom: 10px;">
|
|
|
+ <el-button type="primary" @click="exportExcel">导出明细表</el-button>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-table :data="tableData" style="width: 100%" show-summary :summary-method="getSummaries">
|
|
|
+ <el-table-column label="" width="100">
|
|
|
<el-table-column label="序号" align="center" type="index" />
|
|
|
- <el-table-column prop="name" label="职工姓名" align="center" width="70" />
|
|
|
- <el-table-column prop="basePayment" label="养老、工伤、失业缴费基数" align="center" />
|
|
|
- <el-table-column prop="mmBasePayment" label="医疗、生育缴费基数" align="center" />
|
|
|
- <el-table-column prop="heatingPayment" label="采暖基数" align="center" width="70" />
|
|
|
+ <el-table-column prop="name" label="职工姓名" align="center" width="70" />
|
|
|
+ <el-table-column prop="basePayment" label="养老、工伤、失业缴费基数" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div> {{ scope.row.basePayment == 0? "0.00":rowNum(scope.row.basePayment) }} </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="mmBasePayment" label="医疗、生育缴费基数" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div> {{ scope.row.mmBasePayment == 0? "0.00":rowNum(scope.row.mmBasePayment) }} </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="heatingPayment" label="采暖基数" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.heatingPayment == 0? "0.00":rowNum(scope.row.heatingPayment) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="公司承担" align="center">
|
|
|
- <el-table-column prop="companyBirth" label="生育保险公司" align="center" />
|
|
|
- <el-table-column prop="companyLargeMedical" label="大额医疗" align="center" width="70" />
|
|
|
- <el-table-column prop="companyMedical" label="医疗" align="center" width="70"/>
|
|
|
- <el-table-column prop="companyElderly" label="养老" align="center" width="70" />
|
|
|
- <el-table-column prop="companyUnemployment" label="失业保险" align="center" width="70" />
|
|
|
- <el-table-column prop="companyInjury" label="工伤" align="center" width="70" />
|
|
|
- <el-table-column prop="companyHeat" label="采暖" align="center" width="70" />
|
|
|
- <el-table-column prop="companyCount" label="小计" align="center" />
|
|
|
+ <el-table-column prop="companyBirth" label="生育保险公司" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.companyBirth == 0? "0.00":rowNum(scope.row.companyBirth) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="companyLargeMedical" label="大额医疗" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.companyLargeMedical == 0? "0.00":rowNum(scope.row.companyLargeMedical) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="companyMedical" label="医疗" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.companyMedical == 0? "0.00":rowNum(scope.row.companyMedical) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="companyElderly" label="养老" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.companyElderly == 0? "0.00":rowNum(scope.row.companyElderly) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="companyUnemployment" label="失业保险" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.companyUnemployment == 0? "0.00":rowNum(scope.row.companyUnemployment) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="companyInjury" label="工伤" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.companyInjury == 0? "0.00":rowNum(scope.row.companyInjury) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="companyHeat" label="采暖" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.companyHeat == 0? "0.00":rowNum(scope.row.companyHeat) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="companyCount" label="小计" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.companyCount == 0? "0.00":rowNum(scope.row.companyCount) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="个人承担" align="center">
|
|
|
- <el-table-column prop="oneSelfLargeMedical" label="大病" align="center" width="70"/>
|
|
|
- <el-table-column prop="oneSelfElderly" label="养老保险" align="center" width="70" />
|
|
|
- <el-table-column prop="oneSelfUnemployment" label="失业保险" align="center" width="70"/>
|
|
|
- <el-table-column prop="oneSelfEMedical" label="医疗保险" align="center" width="70" />
|
|
|
- <el-table-column prop="oneSelfCount" label="小计" align="center" />
|
|
|
+ <el-table-column prop="oneSelfLargeMedical" label="大病" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.oneSelfLargeMedical == 0? "0.00":rowNum(scope.row.oneSelfLargeMedical) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="oneSelfElderly" label="养老保险" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.oneSelfElderly == 0? "0.00":rowNum(scope.row.oneSelfElderly) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="oneSelfUnemployment" label="失业保险" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.oneSelfUnemployment == 0? "0.00":rowNum(scope.row.oneSelfUnemployment) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="oneSelfEMedical" label="医疗保险" align="center" width="70">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.oneSelfEMedical == 0? "0.00":rowNum(scope.row.oneSelfEMedical) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="oneSelfCount" label="小计" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.oneSelfCount == 0? "0.00":rowNum(scope.row.oneSelfCount) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="">
|
|
|
- <el-table-column prop="totalAmount" label="缴费金额" align="center" />
|
|
|
+ <el-table-column prop="totalAmount" label="缴费金额" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>{{ scope.row.totalAmount == 0? "0.00":rowNum(scope.row.totalAmount) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
@@ -295,9 +377,9 @@
|
|
|
import {
|
|
|
getDetail,
|
|
|
saveDetail, turnBackDetail,
|
|
|
- getTableDetail
|
|
|
+ getTableDetail, exportDetail
|
|
|
} from "@/api/business/production/socialSecurityDeclare";
|
|
|
-
|
|
|
+ import match from "@/utils/match";
|
|
|
import { uploadFile } from "@/api/tool/file";
|
|
|
import { rowNum } from "@/utils/index";
|
|
|
import dragUpload from "@/components/dragUpload"
|
|
@@ -365,12 +447,114 @@
|
|
|
// proxy.$modal.msgError("该信息已提交待审核");
|
|
|
// close();
|
|
|
// }
|
|
|
- amountChangeHandler();
|
|
|
- clearForm.injuryRadio =4
|
|
|
+
|
|
|
getTableDetail(clearForm).then((res) => {
|
|
|
tableData.value = res.data;
|
|
|
+ if (form.value.unitPension === undefined || form.value.unitPension == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.companyElderly
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.unitPension = amount
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (form.value.unitMedical === undefined || form.value.unitMedical == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.companyMedical
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.unitMedical = amount
|
|
|
+ }
|
|
|
+
|
|
|
+ if (form.value.unitInjury === undefined || form.value.unitInjury == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.companyInjury
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.unitInjury = amount
|
|
|
+ }
|
|
|
+
|
|
|
+ if (form.value.unitUnemployment === undefined || form.value.unitUnemployment == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.companyUnemployment
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.unitUnemployment = amount
|
|
|
+ }
|
|
|
+
|
|
|
+ if (form.value.unitProcreate === undefined || form.value.unitProcreate == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.companyBirth
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.unitProcreate = amount
|
|
|
+ }
|
|
|
+
|
|
|
+ if (form.value.unitSeriousIllness === undefined || form.value.unitSeriousIllness == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.companyLargeMedical
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.unitSeriousIllness = amount
|
|
|
+ }
|
|
|
+
|
|
|
+ if (form.value.unitHeatingFee === undefined || form.value.unitHeatingFee == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.companyHeat
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.unitHeatingFee = amount
|
|
|
+ }
|
|
|
+
|
|
|
+ if (form.value.individualPension === undefined || form.value.individualPension == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.oneSelfElderly
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.individualPension = amount
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (form.value.individualMedical === undefined || form.value.individualMedical == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.oneSelfEMedical
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.individualMedical = amount
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (form.value.individualUnemployment === undefined || form.value.individualUnemployment == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.oneSelfUnemployment
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.individualUnemployment = amount
|
|
|
+ }
|
|
|
+
|
|
|
+ if (form.value.individualSeriousIllness === undefined || form.value.individualSeriousIllness == 0) {
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.oneSelfLargeMedical
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.individualSeriousIllness = amount
|
|
|
+ }
|
|
|
+ amountChangeHandler();
|
|
|
});
|
|
|
}).finally(() => {
|
|
|
+
|
|
|
loading.value = false;
|
|
|
});
|
|
|
}
|
|
@@ -395,12 +579,62 @@
|
|
|
visible.value = false;
|
|
|
reset();
|
|
|
}
|
|
|
-
|
|
|
+ function exportExcel() {
|
|
|
+ let data = {
|
|
|
+ "companyId": form.value.companyId,
|
|
|
+ "year": form.value.year,
|
|
|
+ "month": form.value.month
|
|
|
+ }
|
|
|
+ exportDetail(data)
|
|
|
+ }
|
|
|
function reset() {
|
|
|
form.value = proxy.deepClone(emptyForm);
|
|
|
canSave.value = false;
|
|
|
}
|
|
|
+ const getSummaries = (param) => {
|
|
|
|
|
|
+ const { columns, data } = param;
|
|
|
+ const sums = [];
|
|
|
+ columns.forEach((column, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ sums[index] = '合计';
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (index === 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const values = data.map(item => Number(item[column.property]));
|
|
|
+ // if (column.property === 'companyAmount') {
|
|
|
+ // if (form.value.unitAmount) {
|
|
|
+ // sums[index] = form.value.unitAmount
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // } else if (column.property === 'oneSelfAmount') {
|
|
|
+ // if (form.value.unitAmount) {
|
|
|
+ // sums[index] = form.value.individualAmount
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // else if (column.property === 'totalAmount') {
|
|
|
+ // if (form.value.unitAmount && form.value.individualAmount) {
|
|
|
+ // sums[index] = form.value.individualAmount + form.value.unitAmount
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ sums[index] = values.reduce((prev, curr) => {
|
|
|
+ const value = Number(curr);
|
|
|
+ if (!isNaN(value)) {
|
|
|
+ return prev + curr;
|
|
|
+ } else {
|
|
|
+ return prev;
|
|
|
+ }
|
|
|
+ }, 0).toFixed(2);
|
|
|
+ });
|
|
|
+
|
|
|
+ return sums
|
|
|
+ }
|
|
|
function handleCurrentChange(row) {
|
|
|
currentSource.value = row;
|
|
|
}
|
|
@@ -421,7 +655,33 @@
|
|
|
visible.value = false;
|
|
|
});
|
|
|
}
|
|
|
+ function changeUnitInjuryRadio(e) {
|
|
|
+ console.log(form.value.injuryRadio);
|
|
|
+ tableData.value.forEach((item) => {
|
|
|
+ let radio = match.divide(form.value.injuryRadio, 100);
|
|
|
+ let tempInjury = item.companyInjury
|
|
|
+ item.companyInjury = Number(match.multiply(item.basePayment, radio).toFixed(2));
|
|
|
+ let tempcompanyCount = match.subtract(item.companyCount, tempInjury);
|
|
|
+ item.companyCount = match.add(tempcompanyCount, item.companyInjury);
|
|
|
+ item.totalAmount = match.add(item.companyCount, item.oneSelfCount);
|
|
|
+ });
|
|
|
+ let amount = 0
|
|
|
+ tableData.value.map(item => {
|
|
|
+ amount += item.companyInjury
|
|
|
+ console.log(item.companyInjury);
|
|
|
+
|
|
|
+ })
|
|
|
+ form.value.unitInjury = amount
|
|
|
+ amountChangeHandler()
|
|
|
+ }
|
|
|
+ function changeUnitMedicalRadio(e) {
|
|
|
+ console.log(form.value.medicalRadio);
|
|
|
+ tableData.value.forEach((item) => {
|
|
|
+ let radio = match.divide(form.value.medicalRadio, 100);
|
|
|
+ let tempMedical = item.companyMedical
|
|
|
+ })
|
|
|
|
|
|
+ }
|
|
|
function handleCheckChange(selection) {
|
|
|
selections.value = selection.map((item) => item);
|
|
|
}
|
|
@@ -576,6 +836,8 @@
|
|
|
? 0
|
|
|
: form.value.individualUnemployment;
|
|
|
amount += form.value.unitHeatingFee == null ? 0 : form.value.unitHeatingFee;
|
|
|
+
|
|
|
+
|
|
|
form.value.amount = amount;
|
|
|
canSave.value =
|
|
|
form.value.unitInjury !== undefined &&
|