Commit 3d94ba6d authored by 许珑标's avatar 许珑标

优化、发薪

parent d1ed412b
import request from '@/utils/request'
export function listPayAccInfo() {
return request({
url: '/business/accInfo/listAll',
method: 'get',
})
}
This diff is collapsed.
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
v-hasPermi="['business:outContract:edit']">修改</el-button> v-hasPermi="['business:outContract:edit']">修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" icon="el-icon-help" size="mini" :disabled="single" @click="createBatchTask" <el-button type="success" icon="el-icon-help" size="mini" :disabled="multiple" @click="createBatchTask"
v-hasPermi="['business:outContract:bco']">生成发薪任务</el-button> v-hasPermi="['business:outContract:bco']">生成发薪任务</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
...@@ -246,6 +246,7 @@ export default { ...@@ -246,6 +246,7 @@ export default {
loading: true, loading: true,
// 选中数组 // 选中数组
ids: [], ids: [],
contractNames: [],
// 非单个禁用 // 非单个禁用
single: true, single: true,
// 非多个禁用 // 非多个禁用
...@@ -447,6 +448,7 @@ export default { ...@@ -447,6 +448,7 @@ export default {
// 多选框选中数据 // 多选框选中数据
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.id) this.ids = selection.map(item => item.id)
this.contractNames = selection.map(item => item.contractName)
this.single = selection.length !== 1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
...@@ -502,8 +504,9 @@ export default { ...@@ -502,8 +504,9 @@ export default {
}, `outContract_${new Date().getTime()}.xlsx`) }, `outContract_${new Date().getTime()}.xlsx`)
}, },
createBatchTask() { createBatchTask() {
const ids = row.id || this.ids; this.bcoForm.contractName = this.contractNames.join(',')
this.bcoForm.targetIds = this.ids
this.bcoOpen = true
}, },
// 单条生成发薪任务 // 单条生成发薪任务
createBatchTaskOne(row) { createBatchTaskOne(row) {
......
...@@ -110,24 +110,6 @@ ...@@ -110,24 +110,6 @@
<el-form-item label="身份证号" prop="userCode"> <el-form-item label="身份证号" prop="userCode">
<el-input v-model="form.userCode" placeholder="请输入身份证号" /> <el-input v-model="form.userCode" placeholder="请输入身份证号" />
</el-form-item> </el-form-item>
<el-form-item label="开户行" prop="userCode">
<el-select
v-model="form.payeeAccBank"
multiple
filterable
remote
reserve-keyword
placeholder="请输入关键词"
:remote-method="listBanks"
:loading="loading">
<el-option
v-for="item in banks"
:key="item.bankName"
:label="item.bankName"
:value="item.bankName">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="收款账号" prop="payeeAccNo"> <el-form-item label="收款账号" prop="payeeAccNo">
<el-input v-model="form.payeeAccNo" placeholder="请输入收款账号" /> <el-input v-model="form.payeeAccNo" placeholder="请输入收款账号" />
</el-form-item> </el-form-item>
......
...@@ -130,53 +130,77 @@ ...@@ -130,53 +130,77 @@
<el-table-column label="岗位工资" align="center" prop="postWage" /> <el-table-column label="岗位工资" align="center" prop="postWage" />
<el-table-column label="应发工资" align="center" prop="salaryPayable" /> <el-table-column label="应发工资" align="center" prop="salaryPayable" />
<el-table-column label="实发金额" align="center" prop="actualPayable" /> <el-table-column label="实发金额" align="center" prop="actualPayable" />
<el-table-column label="五险一金承担方式" align="center" prop="bearType"> <el-table-column label="五险一金承担方式" align="center" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.bx_bear_type" :value="scope.row.bearType"/> <dict-tag :options="dict.type.bx_bear_type" :value="scope.row.standard.bearType"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="保险缴纳基数"> <el-table-column label="保险缴纳基数">
<el-table-column label="失业保险(¥)" align="center" prop="sybxBase" /> <el-table-column label="失业保险(¥)" align="center">
<el-table-column label="养老保险(¥)" align="center" prop="ylbxBase" /> <template slot-scope="scope">
<el-table-column label="工伤保险(¥)" align="center" prop="gsbxBase" /> {{scope.row.standard.sybxBase}}
<el-table-column label="医疗保险(¥)" align="center" prop="ysbxBase" /> </template>
<el-table-column label="生育保险(¥)" align="center" prop="syubxBase" /> </el-table-column>
<el-table-column label="公积金(¥)" align="center" prop="providentFundBase" /> <el-table-column label="养老保险(¥)" align="center">
<template slot-scope="scope">
{{scope.row.standard.ylbxBase}}
</template>
</el-table-column>
<el-table-column label="工伤保险(¥)" align="center">
<template slot-scope="scope">
{{scope.row.standard.gsbxBase}}
</template>
</el-table-column>
<el-table-column label="医疗保险(¥)" align="center">
<template slot-scope="scope">
{{scope.row.standard.ysbxBase}}
</template>
</el-table-column>
<el-table-column label="生育保险(¥)" align="center">
<template slot-scope="scope">
{{scope.row.standard.syubxBase}}
</template>
</el-table-column>
<el-table-column label="公积金(¥)" align="center">
<template slot-scope="scope">
{{scope.row.standard.providentFundBase}}
</template>
</el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="单位缴纳保险情况"> <el-table-column label="单位缴纳保险情况">
<el-table-column label="失业保险" align="center"> <el-table-column label="失业保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.sybxCompanyRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.sybxCompanyRate}}%</el-tag>
<el-tag>¥{{scope.row.sybxCompanyMoney}}</el-tag> <el-tag>¥{{scope.row.sybxCompanyMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="养老保险" align="center"> <el-table-column label="养老保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.ylbxCompanyRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.ylbxCompanyRate}}%</el-tag>
<el-tag>¥{{scope.row.ylbxCompanyMoney}}</el-tag> <el-tag>¥{{scope.row.ylbxCompanyMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工伤保险" align="center"> <el-table-column label="工伤保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.gsbxCompanyRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.gsbxCompanyRate}}%</el-tag>
<el-tag>¥{{scope.row.gsbxCompanyMoney}}</el-tag> <el-tag>¥{{scope.row.gsbxCompanyMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="医疗保险" align="center"> <el-table-column label="医疗保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.ysbxCompanyRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.ysbxCompanyRate}}%</el-tag>
<el-tag>¥{{scope.row.ysbxCompanyMoney}}</el-tag> <el-tag>¥{{scope.row.ysbxCompanyMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="生育保险" align="center"> <el-table-column label="生育保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.syubxCompanyRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.syubxCompanyRate}}%</el-tag>
<el-tag>¥{{scope.row.syubxCompanyMoney}}</el-tag> <el-tag>¥{{scope.row.syubxCompanyMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="公积金" align="center"> <el-table-column label="公积金" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.providentFundCompanyRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.providentFundCompanyRate}}%</el-tag>
<el-tag>¥{{scope.row.providentFundCompanyMoeny}}</el-tag> <el-tag>¥{{scope.row.providentFundCompanyMoeny}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
...@@ -184,42 +208,43 @@ ...@@ -184,42 +208,43 @@
<el-table-column label="个人缴纳保险情况"> <el-table-column label="个人缴纳保险情况">
<el-table-column label="失业保险" align="center"> <el-table-column label="失业保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.sybxPersonalRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.sybxPersonalRate}}%</el-tag>
<el-tag>¥{{scope.row.sybxPersonalMoney}}</el-tag> <el-tag>¥{{scope.row.sybxPersonalMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="养老保险" align="center"> <el-table-column label="养老保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.ylbxPersonalRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.ylbxPersonalRate}}%</el-tag>
<el-tag>¥{{scope.row.ylbxPersonalMoney}}</el-tag> <el-tag>¥{{scope.row.ylbxPersonalMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工伤保险" align="center"> <el-table-column label="工伤保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.gsbxPersonalRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.gsbxPersonalRate}}%</el-tag>
<el-tag>¥{{scope.row.gsbxPersonalMoney}}</el-tag> <el-tag>¥{{scope.row.gsbxPersonalMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="医疗保险" align="center"> <el-table-column label="医疗保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.ysbxPersonalRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.ysbxPersonalRate}}%</el-tag>
<el-tag>¥{{scope.row.ysbxPersonalMoney}}</el-tag> <el-tag>¥{{scope.row.ysbxPersonalMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="生育保险" align="center"> <el-table-column label="生育保险" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.syubxPersonalRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.syubxPersonalRate}}%</el-tag>
<el-tag>¥{{scope.row.syubxPersonalMoney}}</el-tag> <el-tag>¥{{scope.row.syubxPersonalMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="公积金" align="center"> <el-table-column label="公积金" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="warning">{{scope.row.providentFundPersonalRate}}%</el-tag> <el-tag type="warning">{{scope.row.standard.providentFundPersonalRate}}%</el-tag>
<el-tag>¥{{scope.row.providentFundPersonalMoney}}</el-tag> <el-tag>¥{{scope.row.providentFundPersonalMoney}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="管理费" align="center" prop="operationCost" /> <el-table-column label="管理费" align="center" prop="operationCost" />
<el-table-column label="考勤扣除" align="center" prop="checkWorkCost" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
...@@ -229,6 +254,13 @@ ...@@ -229,6 +254,13 @@
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['business:payOutDetail:edit']" v-hasPermi="['business:payOutDetail:edit']"
>修改</el-button> >修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['business:payOutDetail:edit']"
>考勤核对</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
......
...@@ -105,6 +105,14 @@ ...@@ -105,6 +105,14 @@
v-if="scope.row.payStatus && scope.row.payStatus > 0" v-if="scope.row.payStatus && scope.row.payStatus > 0"
v-hasPermi="['business:payOutRecord:remove']" v-hasPermi="['business:payOutRecord:remove']"
>删除</el-button> >删除</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-money"
@click="paySalary(scope.row)"
v-if="scope.row.payStatus && 1 == scope.row.payStatus"
v-hasPermi="['business:payOutRecord:list']"
>支付</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
...@@ -183,17 +191,53 @@ ...@@ -183,17 +191,53 @@
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="支付薪资" :visible.sync="payOpen" width="500px" append-to-body>
<el-form ref="payForm" :model="payForm" :rules="rules" label-width="80px">
<el-form-item label="任务名称" prop="batchName">
<el-input v-model="payForm.batchName" disabled placeholder="请输入发薪批/任务次名称" />
</el-form-item>
<el-form-item label="发薪单位" prop="companyName">
<el-input v-model="payForm.companyName" disabled placeholder="请输入发薪单位" />
</el-form-item>
<el-form-item label="下发人数" prop="totalCount">
<el-input v-model="payForm.totalCount" disabled placeholder="请输入发放条数" />
</el-form-item>
<el-form-item label="下发金额" prop="totalAmount">
<el-input v-model="payForm.totalAmount" disabled placeholder="请输入发放总金额" />
</el-form-item>
<el-form-item label="付款账号" prop="payAccNo">
<el-select v-model="payForm.payAccNo" placeholder="请选择">
<el-option
v-for="item in payAccList"
:key="item.id"
:label="item.payAccNo"
:value="item.payAccNo">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmPay">确定支付</el-button>
<el-button @click="payOpen = false">取 消</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listPayOutRecord, getPayOutRecord, delPayOutRecord, addPayOutRecord, updatePayOutRecord } from "@/api/business/payOutRecord"; import { listPayOutRecord, getPayOutRecord, delPayOutRecord, addPayOutRecord, updatePayOutRecord } from "@/api/business/payOutRecord";
import { listPayAccInfo } from '@/api/business/payAcc'
export default { export default {
name: "PayOutRecord", name: "PayOutRecord",
dicts: ['pay_status'], dicts: ['pay_status'],
data() { data() {
return { return {
payAccList: [],
payForm: {
payAccNo: null,
},
payOpen: false,
// 根路径 // 根路径
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
// 遮罩层 // 遮罩层
...@@ -289,6 +333,15 @@ export default { ...@@ -289,6 +333,15 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
getPayAccList() {
if (!this.payAccList || this.payAccList.length < 1) {
listPayAccInfo().then(resp => {
if (resp.code == 200) {
this.payAccList = resp.data
}
})
}
},
/** 查询发薪批次信息列表 */ /** 查询发薪批次信息列表 */
getList() { getList() {
this.loading = true; this.loading = true;
...@@ -394,7 +447,19 @@ export default { ...@@ -394,7 +447,19 @@ export default {
}, },
batchDetails(row) { batchDetails(row) {
this.$router.push({ path: "/business/payOutDetail", query: { batchNo: row.batchNo, batchName: row.batchName } }); this.$router.push({ path: "/business/payOutDetail", query: { batchNo: row.batchNo, batchName: row.batchName } });
},
paySalary(row) {
this.payForm.taskId = row.id;
this.payForm.batchName = row.batchName;
this.payForm.companyName = row.companyName;
this.payForm.totalCount = row.totalCount;
this.payForm.totalAmount = row.totalAmount;
this.payOpen = true
this.getPayAccList();
},
confirmPay() {
console.log(this.payForm)
} }
} },
}; };
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment