|
@@ -12,7 +12,7 @@
|
|
|
</div>
|
|
|
<div class="payroll-head-li">
|
|
|
<el-button type="primary" @click="addsalary()">新增员工薪资结构</el-button>
|
|
|
- <el-button type="primary" @click="SalaryCalculator()">计算当月工资</el-button>
|
|
|
+ <el-button type="primary" @click="openSalaryCalculator()">计算当月工资</el-button>
|
|
|
<!-- <el-button type="primary">成都公司工资单</el-button>
|
|
|
<el-button type="primary">四川公司工资单</el-button>
|
|
|
<el-button type="primary">纽茵公司工资单</el-button> -->
|
|
@@ -49,9 +49,12 @@
|
|
|
请假类型:{{itemss.SubType}}
|
|
|
</div> -->
|
|
|
</div>
|
|
|
- <div v-else-if="items.Type=='打卡'">
|
|
|
+ <div v-if="items.Type=='打卡'">
|
|
|
<div class="title-popover">{{items.Type}}异常({{(items.Ex_ItemInfo).length}})</div>
|
|
|
</div>
|
|
|
+ <div v-if="items=='[]'">
|
|
|
+ <div class="title-popover">本月无假勤</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div style="cursor: pointer;" slot="reference">移上查看</div>
|
|
|
</el-popover>
|
|
@@ -60,35 +63,50 @@
|
|
|
<el-table-column
|
|
|
prop="startDate"
|
|
|
label="起止日期"
|
|
|
- width="220">
|
|
|
+ width="200">
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{scope.row.startDate+'~'+scope.row.endDate}}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="workDays"
|
|
|
+ label="应出勤天数"
|
|
|
+ width="100">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="regularDays"
|
|
|
+ label="正常出勤天数"
|
|
|
+ width="110">
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
prop="should"
|
|
|
label="应发合计"
|
|
|
- width="100">
|
|
|
+ width="100"
|
|
|
+ :formatter="rounding">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
prop="totalDeductions"
|
|
|
label="扣款合计"
|
|
|
- width="100">
|
|
|
+ width="100"
|
|
|
+ :formatter="rounding">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="name"
|
|
|
+ prop="beforeTax"
|
|
|
label="税前合计 "
|
|
|
- width="100">
|
|
|
+ width="100"
|
|
|
+ :formatter="rounding">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
prop="withholdingTax"
|
|
|
label="代缴个税"
|
|
|
- width="100">
|
|
|
+ width="100"
|
|
|
+ :formatter="rounding">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
prop="afterTax"
|
|
|
label="税后合计"
|
|
|
- width="100">
|
|
|
+ width="100"
|
|
|
+ :formatter="rounding">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
prop="lastUpdateUserName"
|
|
@@ -112,7 +130,24 @@
|
|
|
</el-table>
|
|
|
</template>
|
|
|
</div>
|
|
|
- <el-dialog class="pan" top="3.5vh" title="薪资详细信息" :visible.sync="dialogFormVisible">
|
|
|
+ <el-dialog width="380px" title="选择计算当月工资日期" :visible.sync="gridTableVisible">
|
|
|
+ <el-form :model="gridData" ref="gridData" :rules="gridrules">
|
|
|
+ <el-form-item label="年月" prop="yearMonth" :label-width="formLabelWidth">
|
|
|
+ <el-date-picker v-model="gridData.yearMonth" size="medium" type="month" placeholder="选择月"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工资日期起" prop="startDate" :label-width="formLabelWidth">
|
|
|
+ <el-date-picker v-model="gridData.startDate" size="medium" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工资日期止" prop="endDate" :label-width="formLabelWidth">
|
|
|
+ <el-date-picker v-model="gridData.endDate" size="medium" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="SalaryCalculator('gridData')">计 算</el-button>
|
|
|
+ <el-button @click="gridTableVisible = false">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog width="960px" class="pan" top="3.5vh" title="薪资详细信息" :visible.sync="dialogFormVisible">
|
|
|
<el-form :model="salaryinif" ref="salaryinif" :rules="rules">
|
|
|
<div class="payroll-inif">
|
|
|
<el-form-item label="员工" prop="userId" :label-width="formLabelWidth">
|
|
@@ -125,6 +160,10 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <!-- <el-form-item label="是否转正" :label-width="formLabelWidth">
|
|
|
+ <el-switch v-model="salaryinif.regularization" active-color="" inactive-color="">
|
|
|
+ </el-switch>
|
|
|
+ </el-form-item> -->
|
|
|
<el-form-item label="年月" prop="yearMonth" :label-width="formLabelWidth">
|
|
|
<el-date-picker @change="Rangetime()" v-model="salaryinif.yearMonth" size="medium" type="month" placeholder="选择月"></el-date-picker>
|
|
|
</el-form-item>
|
|
@@ -143,32 +182,46 @@
|
|
|
<el-form-item label="岗位津贴" prop="postAllowance" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.postAllowance"></el-input-number>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="服装洗理补贴" prop="garmentWashSubsidies" :label-width="formLabelWidth">
|
|
|
+ <!-- <el-form-item label="服装洗理补贴" prop="garmentWashSubsidies" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.garmentWashSubsidies"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="通讯补贴" prop="communicationSubsidies" :label-width="formLabelWidth">
|
|
|
+ </el-form-item> -->
|
|
|
+ <!-- <el-form-item label="通讯补贴" prop="communicationSubsidies" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.communicationSubsidies"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="交通补贴" prop="trafficSubsidies" :label-width="formLabelWidth">
|
|
|
- <el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.trafficSubsidies"></el-input-number>
|
|
|
+ </el-form-item> -->
|
|
|
+ <el-form-item label="月度补贴" prop="otherSubsidies" :label-width="formLabelWidth">
|
|
|
+ <el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.otherSubsidies"></el-input-number>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="保密费" prop="informationSecurityFee" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.informationSecurityFee"></el-input-number>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="操作奖金" prop="operationBonus" :label-width="formLabelWidth">
|
|
|
+ <!-- <el-form-item label="操作奖金" prop="operationBonus" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.operationBonus"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="部门团建费" prop="groupCost" :label-width="formLabelWidth">
|
|
|
+ </el-form-item> -->
|
|
|
+ <!-- <el-form-item label="部门团建费" prop="groupCost" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.groupCost"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="过节费" prop="specialAllowance" :label-width="formLabelWidth">
|
|
|
+ </el-form-item> -->
|
|
|
+ <!-- <el-form-item label="过节费" prop="specialAllowance" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.specialAllowance"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="其他补贴" prop="otherSubsidies" :label-width="formLabelWidth">
|
|
|
+ </el-form-item> -->
|
|
|
+ <!-- <el-form-item label="其他补贴" prop="otherSubsidies" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.otherSubsidies"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item> -->
|
|
|
<el-form-item label="餐补" prop="mealsupplement" :label-width="formLabelWidth">
|
|
|
- <el-input-number disabled :precision="2" size="medium" :controls="false" v-model="salaryinif.mealsupplement"></el-input-number>
|
|
|
+ <el-popover
|
|
|
+ placement="top"
|
|
|
+ width="412"
|
|
|
+ trigger="hover">
|
|
|
+ <el-table :border="border" :data="transfer">
|
|
|
+ <el-table-column width="100" property="StartTimeDt" label="开始时间"></el-table-column>
|
|
|
+ <el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column>
|
|
|
+ <el-table-column width="50" property="Duration" label="时长"></el-table-column>
|
|
|
+ <el-table-column width="80" property="unit" label="时长单位"></el-table-column>
|
|
|
+ <el-table-column width="80" property="Deduction" label="扣款金额" :formatter="rounding"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-input-number slot="reference" :precision="2" size="medium" :controls="false" v-model="salaryinif.mealsupplement">
|
|
|
+ <span slot="reference"></span>
|
|
|
+ </el-input-number>
|
|
|
+ </el-popover>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="代扣保险" prop="withholdingInsurance" :label-width="formLabelWidth">
|
|
|
<el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.withholdingInsurance"></el-input-number>
|
|
@@ -189,6 +242,14 @@
|
|
|
<!-- <div style="margin: 0 80px;text-align: right;margin-bottom: 5px;">
|
|
|
<el-button type="primary">获取企微假勤</el-button>
|
|
|
</div> -->
|
|
|
+ <div class="leave-inif">
|
|
|
+ <el-form-item label="应出勤天数" :label-width="formLabelWidth">
|
|
|
+ <span>{{salaryinif.workDays}}</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="正常出勤天数" :label-width="formLabelWidth">
|
|
|
+ <span>{{salaryinif.regularDays}}</span>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
<div class="leave-inif">
|
|
|
<el-form-item label="事假" :label-width="formLabelWidth">
|
|
|
<el-popover
|
|
@@ -196,11 +257,11 @@
|
|
|
width="412"
|
|
|
trigger="hover">
|
|
|
<el-table :border="border" :data="leave">
|
|
|
- <el-table-column width="80" property="Deduction" label="扣款金额"></el-table-column>
|
|
|
<el-table-column width="100" property="StartTimeDt" label="开始时间"></el-table-column>
|
|
|
<el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column>
|
|
|
<el-table-column width="50" property="Duration" label="时长"></el-table-column>
|
|
|
<el-table-column width="80" property="unit" label="时长单位"></el-table-column>
|
|
|
+ <el-table-column width="80" property="Deduction" :formatter="rounding" label="扣款金额"></el-table-column>
|
|
|
</el-table>
|
|
|
<span slot="reference">{{salaryinif.somethingFalse.toFixed(2)}}</span>
|
|
|
</el-popover>
|
|
@@ -211,11 +272,11 @@
|
|
|
width="412"
|
|
|
trigger="hover">
|
|
|
<el-table :border="border" :data="sickleave">
|
|
|
- <el-table-column width="80" property="Deduction" label="扣款金额"></el-table-column>
|
|
|
<el-table-column width="100" property="StartTimeDt" label="开始时间"></el-table-column>
|
|
|
<el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column>
|
|
|
<el-table-column width="50" property="Duration" label="时长"></el-table-column>
|
|
|
<el-table-column width="80" property="unit" label="时长单位"></el-table-column>
|
|
|
+ <el-table-column width="80" property="Deduction" :formatter="rounding" label="扣款金额"></el-table-column>
|
|
|
</el-table>
|
|
|
<span slot="reference">{{salaryinif.sickLeave.toFixed(2)}}</span>
|
|
|
</el-popover>
|
|
@@ -226,11 +287,11 @@
|
|
|
width="412"
|
|
|
trigger="hover">
|
|
|
<el-table :border="border" :data="late">
|
|
|
- <el-table-column width="80" property="Deduction" label="扣款金额"></el-table-column>
|
|
|
<el-table-column width="100" property="StartTimeDt" label="开始时间"></el-table-column>
|
|
|
<el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column>
|
|
|
<el-table-column width="50" property="Duration" label="时长"></el-table-column>
|
|
|
<el-table-column width="80" property="unit" label="时长单位"></el-table-column>
|
|
|
+ <el-table-column width="80" property="Deduction" :formatter="rounding" label="扣款金额"></el-table-column>
|
|
|
</el-table>
|
|
|
<span slot="reference">{{salaryinif.lateTo.toFixed(2)}}</span>
|
|
|
</el-popover>
|
|
@@ -241,11 +302,11 @@
|
|
|
width="412"
|
|
|
trigger="hover">
|
|
|
<el-table :border="border" :data="early">
|
|
|
- <el-table-column width="80" property="Deduction" label="扣款金额"></el-table-column>
|
|
|
<el-table-column width="100" property="StartTimeDt" label="开始时间"></el-table-column>
|
|
|
<el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column>
|
|
|
<el-table-column width="50" property="Duration" label="时长"></el-table-column>
|
|
|
<el-table-column width="80" property="unit" label="时长单位"></el-table-column>
|
|
|
+ <el-table-column width="80" property="Deduction" :formatter="rounding" label="扣款金额"></el-table-column>
|
|
|
</el-table>
|
|
|
<span slot="reference">{{salaryinif.leaveEarly.toFixed(2)}}</span>
|
|
|
</el-popover>
|
|
@@ -256,11 +317,11 @@
|
|
|
width="412"
|
|
|
trigger="hover">
|
|
|
<el-table :border="border" :data="absenteeism">
|
|
|
- <el-table-column width="80" property="Deduction" label="扣款金额"></el-table-column>
|
|
|
<el-table-column width="100" property="StartTimeDt" label="开始时间"></el-table-column>
|
|
|
<el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column>
|
|
|
<el-table-column width="50" property="Duration" label="时长"></el-table-column>
|
|
|
<el-table-column width="80" property="unit" label="时长单位"></el-table-column>
|
|
|
+ <el-table-column width="80" property="Deduction" :formatter="rounding" label="扣款金额"></el-table-column>
|
|
|
</el-table>
|
|
|
<span class="sx" slot="reference">{{salaryinif.absenteeism.toFixed(2)}}</span>
|
|
|
</el-popover>
|
|
@@ -271,11 +332,11 @@
|
|
|
width="412"
|
|
|
trigger="hover">
|
|
|
<el-table :border="border" :data="notout">
|
|
|
- <el-table-column width="80" property="Deduction" label="扣款金额"></el-table-column>
|
|
|
<el-table-column width="100" property="StartTimeDt" label="开始时间"></el-table-column>
|
|
|
<el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column>
|
|
|
<el-table-column width="50" property="Duration" label="时长"></el-table-column>
|
|
|
<el-table-column width="80" property="unit" label="时长单位"></el-table-column>
|
|
|
+ <el-table-column width="80" property="Deduction" :formatter="rounding" label="扣款金额"></el-table-column>
|
|
|
</el-table>
|
|
|
<span slot="reference">{{salaryinif.notPunch.toFixed(2)}}</span>
|
|
|
</el-popover>
|
|
@@ -289,7 +350,7 @@
|
|
|
<span>{{salaryinif.totalDeductions.toFixed(2)}}</span>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="税前合计" :label-width="formLabelWidth">
|
|
|
- <span>{{salaryinif.Beforetax}}</span>
|
|
|
+ <span>{{salaryinif.beforeTax}}</span>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="税后合计" :label-width="formLabelWidth">
|
|
|
<span>{{salaryinif.afterTax.toFixed(2)}}</span>
|
|
@@ -297,7 +358,7 @@
|
|
|
</div>
|
|
|
<div class="remark-box">
|
|
|
<el-form-item label="备注" :label-width="formLabelWidth">
|
|
|
- <el-input :rows="1" type="textarea" v-model="salaryinif.remark"></el-input>
|
|
|
+ <el-input :rows="8" type="textarea" v-model="salaryinif.remark"></el-input>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</el-form>
|
|
@@ -317,6 +378,7 @@ import { el } from '@fullcalendar/core/internal-common';
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ gridTableVisible:false,
|
|
|
fullscreenLoading:false,
|
|
|
border:true,
|
|
|
userlist:[],
|
|
@@ -333,14 +395,32 @@ export default {
|
|
|
sickleave:[],//病假
|
|
|
late:[],//迟到
|
|
|
early:[],//早退
|
|
|
+ transfer:[],//调休假
|
|
|
absenteeism:[],//旷工
|
|
|
notout:[],//未打卡
|
|
|
|
|
|
clicknot:false,//是否获取企业微信
|
|
|
jsonstring:'',//企业微信json字符串
|
|
|
-
|
|
|
+ //计算工资
|
|
|
+ gridData:{
|
|
|
+ yearMonth:"",//年月
|
|
|
+ startDate:"",//工资日期 起
|
|
|
+ endDate:"",//工资日期 止
|
|
|
+ },
|
|
|
+ gridrules:{
|
|
|
+ yearMonth: [
|
|
|
+ { type: 'date', required: true, trigger: 'blur',message:'选择年月' }
|
|
|
+ ],
|
|
|
+ startDate: [
|
|
|
+ { type: 'date', required: true, trigger: 'blur',message:'选择工资日期起' }
|
|
|
+ ],
|
|
|
+ endDate: [
|
|
|
+ { type: 'date', required: true, trigger: 'blur',message:'选择工资日期止' }
|
|
|
+ ],
|
|
|
+ },
|
|
|
//薪资详细
|
|
|
salaryinif:{
|
|
|
+ // regularization: true,//是否转正
|
|
|
userId:"",//员工Id
|
|
|
name:"",//姓名
|
|
|
yearMonth:"",//年月
|
|
@@ -349,17 +429,17 @@ export default {
|
|
|
basic:0,//基本工资
|
|
|
floats:0,//绩效工资
|
|
|
postAllowance:0,//岗位津贴
|
|
|
- garmentWashSubsidies:0,//服装洗理补贴
|
|
|
- communicationSubsidies:0,// 通讯补贴
|
|
|
- trafficSubsidies:0,// 交通补贴
|
|
|
+ //garmentWashSubsidies:0,//服装洗理补贴
|
|
|
+ //communicationSubsidies:0,// 通讯补贴
|
|
|
+ otherSubsidies:0,// 月度补贴
|
|
|
informationSecurityFee:0,// 保密费
|
|
|
- operationBonus:0,// 操作奖金
|
|
|
- specialAllowance:0,// 特殊津贴
|
|
|
- otherSubsidies:0,// 其他补贴
|
|
|
+ //operationBonus:0,// 操作奖金
|
|
|
+ //specialAllowance:0,// 特殊津贴
|
|
|
+ //otherSubsidies:0,// 其他补贴
|
|
|
withholdingInsurance:0,// 代扣保险
|
|
|
mealsupplement:0,// 餐补
|
|
|
reservedFunds:0,// 代扣公积金
|
|
|
- groupCost:0,// 部门集体团建费
|
|
|
+ //groupCost:0,// 部门集体团建费
|
|
|
sickLeave:0,// 病假
|
|
|
somethingFalse:0,// 事假
|
|
|
lateTo:0,// 迟到
|
|
@@ -368,6 +448,8 @@ export default {
|
|
|
notPunch:0,//未打卡
|
|
|
otherDeductions:0,//其他扣款
|
|
|
should:0,//应发合计
|
|
|
+ workDays:0,//应出勤天数
|
|
|
+ regularDays:0,//正常出勤天数
|
|
|
totalDeductions:0,//扣款合计
|
|
|
totalRealHair:0,//实发合计
|
|
|
withholdingTax:0,//代扣个税
|
|
@@ -377,7 +459,7 @@ export default {
|
|
|
lastUpdateUserName:"",//最后操作人Name
|
|
|
lastUpdateDt:"",//最后操作时间
|
|
|
remark:"",//备注
|
|
|
- Beforetax:0//税前合计
|
|
|
+ beforeTax:0//税前合计
|
|
|
},
|
|
|
rules: {
|
|
|
userId: [
|
|
@@ -401,30 +483,30 @@ export default {
|
|
|
postAllowance: [
|
|
|
{ required: true, trigger: 'blur' },
|
|
|
],
|
|
|
- garmentWashSubsidies: [
|
|
|
- { required: true, trigger: 'blur' },
|
|
|
- ],
|
|
|
- communicationSubsidies: [
|
|
|
- { required: true, trigger: 'blur' },
|
|
|
- ],
|
|
|
- trafficSubsidies: [
|
|
|
- { required: true, trigger: 'blur' },
|
|
|
- ],
|
|
|
- informationSecurityFee: [
|
|
|
- { required: true, trigger: 'blur' },
|
|
|
- ],
|
|
|
- operationBonus: [
|
|
|
- { required: true, trigger: 'blur' },
|
|
|
- ],
|
|
|
+ // garmentWashSubsidies: [
|
|
|
+ // { required: true, trigger: 'blur' },
|
|
|
+ // ],
|
|
|
+ // communicationSubsidies: [
|
|
|
+ // { required: true, trigger: 'blur' },
|
|
|
+ // ],
|
|
|
otherSubsidies: [
|
|
|
{ required: true, trigger: 'blur' },
|
|
|
],
|
|
|
- groupCost: [
|
|
|
- { required: true, trigger: 'blur' },
|
|
|
- ],
|
|
|
- specialAllowance: [
|
|
|
+ informationSecurityFee: [
|
|
|
{ required: true, trigger: 'blur' },
|
|
|
],
|
|
|
+ // operationBonus: [
|
|
|
+ // { required: true, trigger: 'blur' },
|
|
|
+ // ],
|
|
|
+ // otherSubsidies: [
|
|
|
+ // { required: true, trigger: 'blur' },
|
|
|
+ // ],
|
|
|
+ // groupCost: [
|
|
|
+ // { required: true, trigger: 'blur' },
|
|
|
+ // ],
|
|
|
+ // specialAllowance: [
|
|
|
+ // { required: true, trigger: 'blur' },
|
|
|
+ // ],
|
|
|
mealsupplement: [
|
|
|
{ required: true, trigger: 'blur' },
|
|
|
],
|
|
@@ -450,19 +532,17 @@ export default {
|
|
|
},
|
|
|
methods:{
|
|
|
submitForm(formName) {
|
|
|
- console.log(123)
|
|
|
this.$refs[formName].validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- // alert('submit!');
|
|
|
- this.clicknot=true;
|
|
|
- this.SalaryCalculatorSingle();
|
|
|
- } else {
|
|
|
- this.$message.error('请将红框内容补全!');
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if (valid) {
|
|
|
+ // alert('submit!');
|
|
|
+ this.clicknot=true;
|
|
|
+ this.SalaryCalculatorSingle();
|
|
|
+ } else {
|
|
|
+ this.$message.error('请将红框内容补全!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
-
|
|
|
Rangetime(){
|
|
|
console.log('2023-10' instanceof Date)
|
|
|
console.log(this.salaryinif.startDate instanceof Date)
|
|
@@ -505,6 +585,7 @@ export default {
|
|
|
GetWageSheetList(){
|
|
|
var url = "/api/PersonnelModule/GetWageSheetList"
|
|
|
var that = this
|
|
|
+ console.log(that.value2)
|
|
|
this.$axios({
|
|
|
method: 'post',
|
|
|
url: url,
|
|
@@ -590,6 +671,7 @@ export default {
|
|
|
this.sickleave=[];//病假
|
|
|
this.late=[];//迟到
|
|
|
this.early=[];//早退
|
|
|
+ this.transfer=[];//调休假
|
|
|
this.absenteeism=[];//旷工
|
|
|
this.notout=[];//未打卡
|
|
|
|
|
@@ -618,7 +700,7 @@ export default {
|
|
|
that.salaryinif.startDate=new Date(res.data.data.startDate);
|
|
|
that.salaryinif.endDate=new Date(res.data.data.endDate);
|
|
|
that.jsonstring=res.data.data.ex_ItemsRemark;
|
|
|
- that.salaryinif.Beforetax=(res.data.data.afterTax+res.data.data.withholdingTax).toFixed(2);
|
|
|
+ that.salaryinif.beforeTax=(res.data.data.afterTax+res.data.data.withholdingTax).toFixed(2);
|
|
|
let ItemsRemark=JSON.parse(res.data.data.ex_ItemsRemark);
|
|
|
let jiaqininif;
|
|
|
let dakainif;
|
|
@@ -640,24 +722,29 @@ export default {
|
|
|
if(jiaqininif.Ex_ItemInfo[j].SubType=="病假"){
|
|
|
that.sickleave.push(jiaqininif.Ex_ItemInfo[j])
|
|
|
}
|
|
|
+ if(jiaqininif.Ex_ItemInfo[j].SubType=="调休假"||jiaqininif.Ex_ItemInfo[j].SubType=="年假"){
|
|
|
+ that.transfer.push(jiaqininif.Ex_ItemInfo[j])
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ console.log(that.transfer)
|
|
|
if(dakainif!=undefined){
|
|
|
- for(let x=0;x<dakainif.length;x++){
|
|
|
- if(dakainif[x].SubType=="迟到"){
|
|
|
- that.late.push(dakainif[x])
|
|
|
+ for(let x=0;x<dakainif.Ex_ItemInfo.length;x++){
|
|
|
+ if(dakainif.Ex_ItemInfo[x].SubType=="迟到"){
|
|
|
+ that.late.push(dakainif.Ex_ItemInfo[x])
|
|
|
}
|
|
|
- if(dakainif[x].SubType=="早退"){
|
|
|
- that.early.push(dakainif[x])
|
|
|
+ if(dakainif.Ex_ItemInfo[x].SubType=="早退"){
|
|
|
+ that.early.push(dakainif.Ex_ItemInfo[x])
|
|
|
}
|
|
|
- if(dakainif[x].SubType=="旷工"){
|
|
|
- that.absenteeism.push(dakainif[x])
|
|
|
+ if(dakainif.Ex_ItemInfo[x].SubType=="旷工"){
|
|
|
+ that.absenteeism.push(dakainif.Ex_ItemInfo[x])
|
|
|
}
|
|
|
- if(dakainif[x].SubType=="未打卡"){
|
|
|
- that.notout.push(dakainif[x])
|
|
|
+ if(dakainif.Ex_ItemInfo[x].SubType=="未打卡"||dakainif.Ex_ItemInfo[x].SubType=="缺卡"||dakainif.Ex_ItemInfo[x].SubType=="补卡次数"){
|
|
|
+ that.notout.push(dakainif.Ex_ItemInfo[x])
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ console.log(that.late)
|
|
|
}else{
|
|
|
that.$message({
|
|
|
message: '加载失败!原因:'+res.data.msg,
|
|
@@ -689,17 +776,17 @@ export default {
|
|
|
basic:that.salaryinif.basic,
|
|
|
floats:that.salaryinif.floats,
|
|
|
postAllowance:that.salaryinif.postAllowance,
|
|
|
- garmentWashSubsidies:that.salaryinif.garmentWashSubsidies,
|
|
|
- communicationSubsidies:that.salaryinif.communicationSubsidies,
|
|
|
- trafficSubsidies:that.salaryinif.trafficSubsidies,
|
|
|
- informationSecurityFee:that.salaryinif.informationSecurityFee,
|
|
|
- operationBonus:that.salaryinif.operationBonus,
|
|
|
- specialAllowance:that.salaryinif.specialAllowance,
|
|
|
+ // garmentWashSubsidies:that.salaryinif.garmentWashSubsidies,
|
|
|
+ // communicationSubsidies:that.salaryinif.communicationSubsidies,
|
|
|
otherSubsidies:that.salaryinif.otherSubsidies,
|
|
|
+ informationSecurityFee:that.salaryinif.informationSecurityFee,
|
|
|
+ // operationBonus:that.salaryinif.operationBonus,
|
|
|
+ // specialAllowance:that.salaryinif.specialAllowance,
|
|
|
+ // otherSubsidies:that.salaryinif.otherSubsidies,
|
|
|
withholdingInsurance:that.salaryinif.withholdingInsurance,
|
|
|
mealsupplement:that.salaryinif.mealsupplement,
|
|
|
reservedFunds:that.salaryinif.reservedFunds,
|
|
|
- groupCost:that.salaryinif.groupCost,
|
|
|
+ // groupCost:that.salaryinif.groupCost,
|
|
|
sickLeave:that.salaryinif.sickLeave,
|
|
|
somethingFalse:that.salaryinif.somethingFalse,
|
|
|
lateTo:that.salaryinif.lateTo,
|
|
@@ -712,12 +799,18 @@ export default {
|
|
|
totalRealHair:that.salaryinif.totalRealHair,
|
|
|
withholdingTax:that.salaryinif.withholdingTax,
|
|
|
afterTax:that.salaryinif.afterTax,
|
|
|
+ workDays:that.salaryinif.workDays,
|
|
|
+ regularDays:that.salaryinif.regularDays,
|
|
|
ex_ItemsRemark:that.jsonstring
|
|
|
}
|
|
|
}).then(function (res) {
|
|
|
if(res.data.code==200){
|
|
|
console.log(res)
|
|
|
that.GetWageSheetList();
|
|
|
+ that.$message({
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
}else{
|
|
|
that.$message({
|
|
|
message: '操作失败!原因:'+res.data.msg,
|
|
@@ -773,6 +866,7 @@ export default {
|
|
|
this.sickleave=[];//病假
|
|
|
this.late=[];//迟到
|
|
|
this.early=[];//早退
|
|
|
+ this.transfer=[];//调休假
|
|
|
this.absenteeism=[];//旷工
|
|
|
this.notout=[];//未打卡
|
|
|
|
|
@@ -781,6 +875,7 @@ export default {
|
|
|
this.disabled=false;
|
|
|
this.preserve=true;
|
|
|
this.salaryinif={
|
|
|
+ // regularization:true,
|
|
|
userId:"",//员工Id
|
|
|
name:"",//姓名
|
|
|
yearMonth:"",//年月
|
|
@@ -789,17 +884,17 @@ export default {
|
|
|
basic:0,//基本工资
|
|
|
floats:0,//绩效工资
|
|
|
postAllowance:0,//岗位津贴
|
|
|
- garmentWashSubsidies:0,//服装洗理补贴
|
|
|
- communicationSubsidies:0,// 通讯补贴
|
|
|
- trafficSubsidies:0,// 交通补贴
|
|
|
+ // garmentWashSubsidies:0,//服装洗理补贴
|
|
|
+ // communicationSubsidies:0,// 通讯补贴
|
|
|
+ otherSubsidies:0,// 月度补贴
|
|
|
informationSecurityFee:0,// 保密费
|
|
|
- operationBonus:0,// 操作奖金
|
|
|
- specialAllowance:0,// 特殊津贴
|
|
|
- otherSubsidies:0,// 其他补贴
|
|
|
+ // operationBonus:0,// 操作奖金
|
|
|
+ // specialAllowance:0,// 特殊津贴
|
|
|
+ // otherSubsidies:0,// 其他补贴
|
|
|
withholdingInsurance:0,// 代扣保险
|
|
|
mealsupplement:0,// 餐补
|
|
|
reservedFunds:0,// 代扣公积金
|
|
|
- groupCost:0,// 部门集体团建费
|
|
|
+ // groupCost:0,// 部门集体团建费
|
|
|
sickLeave:0,// 病假
|
|
|
somethingFalse:0,// 事假
|
|
|
lateTo:0,// 迟到
|
|
@@ -808,6 +903,8 @@ export default {
|
|
|
notPunch:0,//未打卡
|
|
|
otherDeductions:0,//其他扣款
|
|
|
should:0,//应发合计
|
|
|
+ workDays:0,//应出勤天数
|
|
|
+ regularDays:0,//正常出勤天数
|
|
|
totalDeductions:0,//扣款合计
|
|
|
totalRealHair:0,//实发合计
|
|
|
withholdingTax:0,//代扣个税
|
|
@@ -817,7 +914,7 @@ export default {
|
|
|
lastUpdateUserName:"",//最后操作人Name
|
|
|
lastUpdateDt:"",//最后操作时间
|
|
|
remark:"",//备注
|
|
|
- Beforetax:0,//税前合计
|
|
|
+ beforeTax:0,//税前合计
|
|
|
};
|
|
|
},
|
|
|
//删除薪资列表
|
|
@@ -859,43 +956,69 @@ export default {
|
|
|
|
|
|
},
|
|
|
//计算工资
|
|
|
- SalaryCalculator(){
|
|
|
- this.fullscreenLoading=true;
|
|
|
- var url = "/api/PersonnelModule/SalaryCalculator"
|
|
|
- var that = this
|
|
|
- this.$axios({
|
|
|
- method: 'post',
|
|
|
- url: url,
|
|
|
- headers: {
|
|
|
- Authorization: 'Bearer ' + this.token
|
|
|
- },
|
|
|
- data:{
|
|
|
- userId:that.loginuserid,
|
|
|
- yearMonth:that.value2
|
|
|
- }
|
|
|
- }).then(function (res) {
|
|
|
- console.log(res)
|
|
|
- if(res.data.code==200){
|
|
|
- console.log(res)
|
|
|
- that.fullscreenLoading=false;
|
|
|
- that.GetWageSheetList();
|
|
|
- that.$message({
|
|
|
- message: res.data.msg,
|
|
|
- type: 'success'
|
|
|
- });
|
|
|
- }else{
|
|
|
- that.$message({
|
|
|
- message: res.data.msg,
|
|
|
- type: 'warning'
|
|
|
- });
|
|
|
+ SalaryCalculator(formName){
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.fullscreenLoading=true;
|
|
|
+ var url = "/api/PersonnelModule/SalaryCalculator"
|
|
|
+ var that = this
|
|
|
+ console.log(that.TimeProcessingyue(that.gridData.yearMonth))
|
|
|
+ this.$axios({
|
|
|
+ method: 'post',
|
|
|
+ url: url,
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + this.token
|
|
|
+ },
|
|
|
+ data:{
|
|
|
+ userId:that.loginuserid,
|
|
|
+ yearMonth:that.TimeProcessingyue(that.gridData.yearMonth),
|
|
|
+ startDt:that.TimeProcessingri(that.gridData.startDate),
|
|
|
+ endDt:that.TimeProcessingri(that.gridData.endDate),
|
|
|
+ }
|
|
|
+ }).then(function (res) {
|
|
|
+ console.log(res)
|
|
|
+ if(res.data.code==200){
|
|
|
+ console.log(res)
|
|
|
+ that.value2=that.TimeProcessingyue(that.gridData.yearMonth);
|
|
|
+ that.gridTableVisible=false;
|
|
|
+ that.fullscreenLoading=false;
|
|
|
+ that.GetWageSheetList();
|
|
|
+ that.$message({
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ that.value2=that.TimeProcessingyue(that.gridData.yearMonth);
|
|
|
+ that.gridTableVisible=false;
|
|
|
+ that.fullscreenLoading=false;
|
|
|
+ that.GetWageSheetList();
|
|
|
+ that.$message({
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'warning'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$message.error('请将红框内容补全!');
|
|
|
+ return false;
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //打开计算工资
|
|
|
+ openSalaryCalculator(){
|
|
|
+ this.gridTableVisible=true;
|
|
|
+ this.gridData={
|
|
|
+ yearMonth:"",//年月
|
|
|
+ startDate:"",//工资日期 起
|
|
|
+ endDate:"",//工资日期 止
|
|
|
+ }
|
|
|
},
|
|
|
//获取企业微信假勤
|
|
|
SalaryCalculatorSingle(){
|
|
|
|
|
|
this.leave=[];//事假
|
|
|
this.sickleave=[];//病假
|
|
|
+ this.transfer=[];//调休假
|
|
|
this.late=[];//迟到
|
|
|
this.early=[];//早退
|
|
|
this.absenteeism=[];//旷工
|
|
@@ -918,18 +1041,18 @@ export default {
|
|
|
basic:that.salaryinif.basic,
|
|
|
floats:that.salaryinif.floats,
|
|
|
postAllowance:that.salaryinif.postAllowance,
|
|
|
- garmentWashSubsidies:that.salaryinif.garmentWashSubsidies,
|
|
|
- communicationSubsidies:that.salaryinif.communicationSubsidies,
|
|
|
- trafficSubsidies:that.salaryinif.trafficSubsidies,
|
|
|
- informationSecurityFee:that.salaryinif.informationSecurityFee,
|
|
|
- operationBonus:that.salaryinif.operationBonus,
|
|
|
- specialAllowance:that.salaryinif.specialAllowance,
|
|
|
+ // garmentWashSubsidies:that.salaryinif.garmentWashSubsidies,
|
|
|
+ // communicationSubsidies:that.salaryinif.communicationSubsidies,
|
|
|
otherSubsidies:that.salaryinif.otherSubsidies,
|
|
|
+ informationSecurityFee:that.salaryinif.informationSecurityFee,
|
|
|
+ // operationBonus:that.salaryinif.operationBonus,
|
|
|
+ // specialAllowance:that.salaryinif.specialAllowance,
|
|
|
+ // otherSubsidies:that.salaryinif.otherSubsidies,
|
|
|
withholdingInsurance:that.salaryinif.withholdingInsurance,
|
|
|
mealsupplement:that.salaryinif.mealsupplement,
|
|
|
withholdingTax:that.salaryinif.withholdingTax,
|
|
|
- groupCost:that.salaryinif.groupCost,
|
|
|
- reservedFunds:that.salaryinif.groupCost,
|
|
|
+ // groupCost:that.salaryinif.groupCost,
|
|
|
+ reservedFunds:that.salaryinif.reservedFunds,
|
|
|
withholdingInsurance:that.salaryinif.withholdingInsurance,
|
|
|
otherDeductions:that.salaryinif.otherDeductions,
|
|
|
}
|
|
@@ -949,10 +1072,12 @@ export default {
|
|
|
that.salaryinif.absenteeism=res.data.data.absenteeism;
|
|
|
that.salaryinif.notPunch=res.data.data.notPunch;
|
|
|
that.salaryinif.should=res.data.data.should;
|
|
|
+ that.salaryinif.workDays=res.data.data.workDays;
|
|
|
+ that.salaryinif.regularDays=res.data.data.regularDays;
|
|
|
that.salaryinif.totalDeductions=res.data.data.totalDeductions;
|
|
|
that.salaryinif.afterTax=res.data.data.afterTax;
|
|
|
that.salaryinif.mealsupplement=res.data.data.mealsupplement;
|
|
|
- that.salaryinif.Beforetax=(res.data.data.afterTax+res.data.data.withholdingTax).toFixed(2);
|
|
|
+ that.salaryinif.beforeTax=(res.data.data.afterTax+res.data.data.withholdingTax).toFixed(2);
|
|
|
|
|
|
let jiaqin;
|
|
|
let daka;
|
|
@@ -974,43 +1099,47 @@ export default {
|
|
|
if(jiaqin.Ex_ItemInfo[j].SubType=="病假"){
|
|
|
that.sickleave.push(jiaqin.Ex_ItemInfo[j])
|
|
|
}
|
|
|
+ if(jiaqin.Ex_ItemInfo[j].SubType=="调休假"||jiaqin.Ex_ItemInfo[j].SubType=="年假"){
|
|
|
+ that.transfer.push(jiaqin.Ex_ItemInfo[j])
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ console.log(that.transfer)
|
|
|
if(daka!=undefined){
|
|
|
- for(let x=0;x<daka.length;x++){
|
|
|
- if(daka[x].SubType=="迟到"){
|
|
|
- that.late.push(daka[x])
|
|
|
+ for(let x=0;x<daka.Ex_ItemInfo.length;x++){
|
|
|
+ if(daka.Ex_ItemInfo[x].SubType=="迟到"){
|
|
|
+ that.late.push(daka.Ex_ItemInfo[x])
|
|
|
}
|
|
|
- if(daka[x].SubType=="早退"){
|
|
|
- that.early.push(daka[x])
|
|
|
+ if(daka.Ex_ItemInfo[x].SubType=="早退"){
|
|
|
+ that.early.push(daka.Ex_ItemInfo[x])
|
|
|
}
|
|
|
- if(daka[x].SubType=="旷工"){
|
|
|
- that.absenteeism.push(daka[x])
|
|
|
+ if(daka.Ex_ItemInfo[x].SubType=="旷工"){
|
|
|
+ that.absenteeism.push(daka.Ex_ItemInfo[x])
|
|
|
}
|
|
|
- if(daka[x].SubType=="未打卡"){
|
|
|
- that.notout.push(daka[x])
|
|
|
+ if(daka.Ex_ItemInfo[x].SubType=="未打卡"||daka.Ex_ItemInfo[x].SubType=="缺卡"||daka.Ex_ItemInfo[x].SubType=="补卡次数"){
|
|
|
+ that.notout.push(daka.Ex_ItemInfo[x])
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- console.log(that.leave)
|
|
|
- console.log(that.sickleave)
|
|
|
- console.log(that.late)
|
|
|
- console.log(that.early)
|
|
|
- console.log(that.absenteeism)
|
|
|
- console.log(that.notout)
|
|
|
- // that.GetWageSheetList();
|
|
|
- // that.$message({
|
|
|
- // message: res.data.msg,
|
|
|
- // type: 'success'
|
|
|
- // });
|
|
|
+ that.GetWageSheetList();
|
|
|
+ that.$message({
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
}else{
|
|
|
- // that.$message({
|
|
|
- // message: res.data.msg,
|
|
|
- // type: 'warning'
|
|
|
- // });
|
|
|
+ that.fullscreenLoading = false;
|
|
|
+ that.$message({
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'warning'
|
|
|
+ });
|
|
|
}
|
|
|
})
|
|
|
- }
|
|
|
+ },
|
|
|
+ //保留两位小数
|
|
|
+ rounding(row,column) {
|
|
|
+ return parseFloat(row[column.property]).toFixed(2)
|
|
|
+ },
|
|
|
+
|
|
|
},
|
|
|
mounted(){
|
|
|
this.GetWageSheetBasicsDataSource()
|