Commit fcccd49e authored by 谢子梦's avatar 谢子梦

Merge branch 'develop' of http://git.manong.atliangtian.com/longbiao/hr-xinruitong-ui into develop

parents 819cf165 d6346b66
......@@ -153,7 +153,7 @@ export default {
// 上传成功回调
handleUploadSuccess(res, file) {
if (res.code === 200) {
this.uploadList.push({ name: res.fileName, url: res.fileName });
this.uploadList.push({ name: res.fileName, url: res.url });
this.uploadedSuccessfully();
} else {
this.number--;
......
......@@ -33,13 +33,11 @@ service.interceptors.request.use(config => {
// 请求参数加密
if (process.env.VUE_APP_AES_ENCRYPT_ENABLED == 'true') {
if (config.data) {
console.log(JSON.stringify(config.data));
config.data = {
// 加密参数
dataParams: encodeURIComponent(aes.encrypt(JSON.stringify(config.data)))
}
} else if (config.params) {
console.log(JSON.stringify(config.params));
config.params = {
// 加密参数
dataParams: encodeURIComponent(aes.encrypt(JSON.stringify(config.params)))
......@@ -158,8 +156,6 @@ service.interceptors.response.use(res => {
export function download(url, params, filename) {
downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
return service.post(url, params, {
transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'blob'
}).then(async (data) => {
const isLogin = await blobValidate(data);
......
......@@ -334,20 +334,20 @@
<el-col :span="7">
<el-form-item label="岗位工资" :prop="formData.calculaType == 1 ? 'postWage' : ''">
<el-input-number @change="postcalculateShow = true" v-model="formData.postWage" placeholder="请输入请输入岗位工资"
:precision="2" :step="1" :min="0" controls-position="right"
:step="1" :min="0" controls-position="right"
:disabled="formData.calculaType == 2"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="应发工资" :prop="formData.calculaType == 2 ? 'salaryPayable' : ''">
<el-input-number @change="postcalculateShow = true" v-model="formData.salaryPayable"
placeholder="请输入请输入应发工资" :precision="2" :step="1" :min="0" controls-position="right"
placeholder="请输入请输入应发工资" :step="1" :min="0" controls-position="right"
:disabled="formData.calculaType == 1"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="实发工资">
<el-input-number v-model="formData.actualPayable" placeholder="请输入请输入实发工资:" :precision="2" :step="1"
<el-input-number v-model="formData.actualPayable" placeholder="请输入请输入实发工资:" :step="1"
:min="0" controls-position="right" :disabled="true"></el-input-number>
</el-form-item>
</el-col>
......@@ -358,6 +358,18 @@
</el-row>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 22px;">
<div class="cardMain">
<el-row :gutter="10" style="margin-top: 25px;">
<el-col :span="2">
<div class="projectTitle">合同附件</div>
</el-col>
<el-col :span="10">
<FileUpload ref="fileUpload" :fileType="['doc', 'docx', 'pdf']" :limit="1" v-model="formData.annex" />
</el-col>
</el-row>
</div>
</el-card>
</el-form>
<div class="fixdBottom">
<div class="fixdBottomMain">
......@@ -381,6 +393,7 @@ export default {
banks: [],
loading: false,
formData: {
annex: null,
payeeAccBank: null,
contractId: null,
userName: null,
......@@ -556,6 +569,7 @@ export default {
// 计算方法
postcalculateFN() {
let obj = {
wagesPoint: this.formData.wagesPoint,
sybxBase: this.formData.sybxBase,
sybxCompanyRate: this.formData.sybxCompanyRate,
sybxPersonalRate: this.formData.sybxPersonalRate,
......@@ -622,6 +636,7 @@ export default {
this.formData.providentFundBase = res.data.providentFundBase
this.formData.providentFundCompanyRate = res.data.providentFundCompanyRate
this.formData.providentFundPersonalRate = res.data.providentFundPersonalRate
this.formData.wagesPoint = res.data.wagesPoint
this.ylbxBaseChange()
this.gsbxBaseChange()
this.ysbxBaseChange()
......@@ -688,6 +703,7 @@ export default {
this.formData = res.data
this.formData.contractId = this.$route.query.contractId
this.formData.contractName = this.$route.query.contractName
this.formData.wagesPoint = res.data.wagesPoint
this.ylbxBaseChange()
this.gsbxBaseChange()
this.ysbxBaseChange()
......@@ -794,6 +810,7 @@ export default {
// 表单重置
reset() {
this.form = {
annex: null,
contractId: null,
userName: null,
userCode: null,
......
......@@ -298,7 +298,21 @@
</el-row>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 22px;">
<div slot="header" class="clearfix">
<span class="cardHeartTitle">附件</span>
</div>
<div class="cardMain">
<el-row :gutter="10" style="margin-top: 25px;">
<el-col :span="2">
<div class="projectTitle">合同附件</div>
</el-col>
<el-col :span="10">
<FileUpload ref="fileUpload" :fileType="['doc', 'docx', 'pdf']" :limit="1" v-model="formData.annex" />
</el-col>
</el-row>
</div>
</el-card>
</el-form>
<div class="fixdBottom">
<div class="fixdBottomMain">
......@@ -318,6 +332,7 @@ export default {
return {
payerCompanyArr: [],
formData: {
annex: null,
payerCompanyId: null,
contractName: null,
contractCode: null,
......@@ -751,6 +766,7 @@ export default {
// 表单重置方法
reset() {
this.formData = {
annex: null,
wagesPoint: 2,
contractName: null,
contractCode: null,
......
......@@ -89,14 +89,15 @@
<el-table-column label="管理费" align="center" prop="operationCost" />
<el-table-column label="操作" align="center" width="120px" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['business:outContract:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['business:outContract:remove']">删除</el-button>
<el-button size="mini" type="text" v-if="scope.row.annex" icon="el-icon-link" @click="viewAnnex(scope.row.annex)">查看附件</el-button>
<el-button size="mini" type="text" icon="el-icon-user" @click="staffManage(scope.row)"
v-hasPermi="['business:outContract:manage']">员工管理</el-button>
<el-button type="text" icon="el-icon-s-help" size="mini" @click="createBatchTaskOne(scope.row)"
v-hasPermi="['business:outContract:bco']">生成发薪任务</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['business:outContract:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['business:outContract:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
......@@ -104,88 +105,6 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改发薪合同对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="合同名称" prop="contractName">
<el-input v-model="form.contractName" placeholder="请输入合同名称" />
</el-form-item>
<!-- <el-form-item label="合同编号" prop="contractCode">-->
<!-- <el-input v-model="form.contractCode" placeholder="请输入合同编号" />-->
<!-- </el-form-item>-->
<el-form-item label="单位名称" prop="groupName">
<el-input v-model="form.groupName" placeholder="请输入单位名称" />
</el-form-item>
<el-form-item label="单位编码(社会信用代码)" prop="groupCode">
<el-input v-model="form.groupCode" placeholder="请输入单位编码(社会信用代码)" />
</el-form-item>
<el-form-item label="失业保险缴费基数" prop="sybxBase">
<el-input v-model="form.sybxBase" placeholder="请输入失业保险缴费基数" />
</el-form-item>
<el-form-item label="失业保险公司承担比例" prop="sybxCompanyRate">
<el-input v-model="form.sybxCompanyRate" placeholder="请输入失业保险公司承担比例" />
</el-form-item>
<el-form-item label="失业保险个人承担比例" prop="sybxPersonalRate">
<el-input v-model="form.sybxPersonalRate" placeholder="请输入失业保险个人承担比例" />
</el-form-item>
<el-form-item label="养老保险缴费基数" prop="ylbxBase">
<el-input v-model="form.ylbxBase" placeholder="请输入养老保险缴费基数" />
</el-form-item>
<el-form-item label="养老保险公司承担比例" prop="ylbxCompanyRate">
<el-input v-model="form.ylbxCompanyRate" placeholder="请输入养老保险公司承担比例" />
</el-form-item>
<el-form-item label="养老保险个人承担比例" prop="ylbxPersonalRate">
<el-input v-model="form.ylbxPersonalRate" placeholder="请输入养老保险个人承担比例" />
</el-form-item>
<el-form-item label="工伤保险缴费基数" prop="gsbxBase">
<el-input v-model="form.gsbxBase" placeholder="请输入工伤保险缴费基数" />
</el-form-item>
<el-form-item label="工伤保险公司承担比例" prop="gsbxCompanyRate">
<el-input v-model="form.gsbxCompanyRate" placeholder="请输入工伤保险公司承担比例" />
</el-form-item>
<el-form-item label="工伤保险个人承担比例" prop="gsbxPersonalRate">
<el-input v-model="form.gsbxPersonalRate" placeholder="请输入工伤保险个人承担比例" />
</el-form-item>
<el-form-item label="医疗保险缴费基数(可包含生育险)" prop="ysbxBase">
<el-input v-model="form.ysbxBase" placeholder="请输入医疗保险缴费基数(可包含生育险)" />
</el-form-item>
<el-form-item label="医疗保险公司承担比例" prop="ysbxCompanyRate">
<el-input v-model="form.ysbxCompanyRate" placeholder="请输入医疗保险公司承担比例" />
</el-form-item>
<el-form-item label="医疗保险个人承担比例" prop="ysbxPersonalRate">
<el-input v-model="form.ysbxPersonalRate" placeholder="请输入医疗保险个人承担比例" />
</el-form-item>
<el-form-item label="生育保险缴费基数" prop="syubxBase">
<el-input v-model="form.syubxBase" placeholder="请输入生育保险缴费基数" />
</el-form-item>
<el-form-item label="生育保险公司承担比例" prop="syubxCompanyRate">
<el-input v-model="form.syubxCompanyRate" placeholder="请输入生育保险公司承担比例" />
</el-form-item>
<el-form-item label="生育保险个人承担比例" prop="syubxPersonalRate">
<el-input v-model="form.syubxPersonalRate" placeholder="请输入生育保险个人承担比例" />
</el-form-item>
<el-form-item label="公积金缴费基数" prop="providentFundBase">
<el-input v-model="form.providentFundBase" placeholder="请输入公积金缴费基数" />
</el-form-item>
<el-form-item label="公积金企业承担比例" prop="providentFundCompanyRate">
<el-input v-model="form.providentFundCompanyRate" placeholder="请输入公积金企业承担比例" />
</el-form-item>
<el-form-item label="公积金个人承担比例" prop="providentFundPersonalRate">
<el-input v-model="form.providentFundPersonalRate" placeholder="请输入公积金个人承担比例" />
</el-form-item>
<el-form-item label="管理费" prop="operationCost">
<el-input v-model="form.operationCost" placeholder="请输入管理费" />
</el-form-item>
<el-form-item label="所属部门" prop="deptId">
<el-input v-model="form.deptId" placeholder="请输入所属部门" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 生成发薪任务窗口 -->
<el-dialog title="生成发薪任务" :visible.sync="bcoOpen" width="500px" append-to-body>
<el-form ref="bcoForm" :model="bcoForm" :rules="bcoFormRules" label-width="80px">
......@@ -291,87 +210,6 @@ export default {
},
// 表单参数
form: {},
// 表单校验
rules: {
id: [
{ required: true, message: "$comment不能为空", trigger: "blur" }
],
contractName: [
{ required: true, message: "合同名称不能为空", trigger: "blur" }
],
// contractCode: [
// { required: true, message: "合同编号不能为空", trigger: "blur" }
// ],
groupName: [
{ required: true, message: "单位名称不能为空", trigger: "blur" }
],
groupCode: [
{ required: true, message: "单位编码(社会信用代码)不能为空", trigger: "blur" }
],
bearType: [
{ required: true, message: "五险一金承担方式:1、各自承担;2、个人承担不能为空", trigger: "change" }
],
sybxBase: [
{ required: true, message: "失业保险缴费基数不能为空", trigger: "blur" }
],
sybxCompanyRate: [
{ required: true, message: "失业保险公司承担比例不能为空", trigger: "blur" }
],
sybxPersonalRate: [
{ required: true, message: "失业保险个人承担比例不能为空", trigger: "blur" }
],
ylbxBase: [
{ required: true, message: "养老保险缴费基数不能为空", trigger: "blur" }
],
ylbxCompanyRate: [
{ required: true, message: "养老保险公司承担比例不能为空", trigger: "blur" }
],
ylbxPersonalRate: [
{ required: true, message: "养老保险个人承担比例不能为空", trigger: "blur" }
],
gsbxBase: [
{ required: true, message: "工伤保险缴费基数不能为空", trigger: "blur" }
],
gsbxCompanyRate: [
{ required: true, message: "工伤保险公司承担比例不能为空", trigger: "blur" }
],
gsbxPersonalRate: [
{ required: true, message: "工伤保险个人承担比例不能为空", trigger: "blur" }
],
ysbxBase: [
{ required: true, message: "医疗保险缴费基数(可包含生育险)不能为空", trigger: "blur" }
],
ysbxCompanyRate: [
{ required: true, message: "医疗保险公司承担比例不能为空", trigger: "blur" }
],
ysbxPersonalRate: [
{ required: true, message: "医疗保险个人承担比例不能为空", trigger: "blur" }
],
syubxBase: [
{ required: true, message: "生育保险缴费基数不能为空", trigger: "blur" }
],
syubxCompanyRate: [
{ required: true, message: "生育保险公司承担比例不能为空", trigger: "blur" }
],
syubxPersonalRate: [
{ required: true, message: "生育保险个人承担比例不能为空", trigger: "blur" }
],
providentFundBase: [
{ required: true, message: "公积金缴费基数不能为空", trigger: "blur" }
],
providentFundCompanyRate: [
{ required: true, message: "公积金企业承担比例不能为空", trigger: "blur" }
],
providentFundPersonalRate: [
{ required: true, message: "公积金个人承担比例不能为空", trigger: "blur" }
],
operationCost: [
{ required: true, message: "管理费不能为空", trigger: "blur" }
],
deptId: [
{ required: true, message: "所属部门不能为空", trigger: "blur" }
],
}
};
},
created() {
......@@ -526,6 +364,9 @@ export default {
})
}
});
},
viewAnnex(annexLink) {
window.open(annexLink, "_blank")
}
}
};
......
......@@ -89,6 +89,7 @@
<el-table-column label="管理费(¥)" align="center" prop="operationCost" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="120">
<template slot-scope="scope">
<el-button size="mini" type="text" v-if="scope.row.annex" icon="el-icon-link" @click="viewAnnex(scope.row.annex)">查看附件</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['business:outPersonal:edit']">修改信息</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="editSort(scope.row)"
......@@ -102,99 +103,6 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改收薪人员信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属合同" prop="contractId">
<el-input v-model="form.contractId" placeholder="请输入所属合同" />
</el-form-item>
<el-form-item label="员工姓名" prop="userName">
<el-input v-model="form.userName" placeholder="请输入员工姓名" />
</el-form-item>
<el-form-item label="身份证号" prop="userCode">
<el-input v-model="form.userCode" placeholder="请输入身份证号" />
</el-form-item>
<el-form-item label="收款账号" prop="payeeAccNo">
<el-input v-model="form.payeeAccNo" placeholder="请输入收款账号" />
</el-form-item>
<el-form-item label="岗位名称" prop="postName">
<el-input v-model="form.postName" placeholder="请输入岗位名称" />
</el-form-item>
<el-form-item label="岗位工资" prop="postWage">
<el-input v-model="form.postWage" placeholder="请输入岗位工资" />
</el-form-item>
<el-form-item label="应发工资" prop="salaryPayable">
<el-input v-model="form.salaryPayable" placeholder="请输入应发工资" />
</el-form-item>
<el-form-item label="实发金额" prop="actualPayable">
<el-input v-model="form.actualPayable" placeholder="请输入实发金额" />
</el-form-item>
<el-form-item label="失业保险缴费基数" prop="sybxBase">
<el-input v-model="form.sybxBase" placeholder="请输入失业保险缴费基数" />
</el-form-item>
<el-form-item label="失业保险公司承担比例" prop="sybxCompanyRate">
<el-input v-model="form.sybxCompanyRate" placeholder="请输入失业保险公司承担比例" />
</el-form-item>
<el-form-item label="失业保险个人承担比例" prop="sybxPersonalRate">
<el-input v-model="form.sybxPersonalRate" placeholder="请输入失业保险个人承担比例" />
</el-form-item>
<el-form-item label="养老保险缴费基数" prop="ylbxBase">
<el-input v-model="form.ylbxBase" placeholder="请输入养老保险缴费基数" />
</el-form-item>
<el-form-item label="养老保险公司承担比例" prop="ylbxCompanyRate">
<el-input v-model="form.ylbxCompanyRate" placeholder="请输入养老保险公司承担比例" />
</el-form-item>
<el-form-item label="养老保险个人承担比例" prop="ylbxPersonalRate">
<el-input v-model="form.ylbxPersonalRate" placeholder="请输入养老保险个人承担比例" />
</el-form-item>
<el-form-item label="工伤保险缴费基数" prop="gsbxBase">
<el-input v-model="form.gsbxBase" placeholder="请输入工伤保险缴费基数" />
</el-form-item>
<el-form-item label="工伤保险公司承担比例" prop="gsbxCompanyRate">
<el-input v-model="form.gsbxCompanyRate" placeholder="请输入工伤保险公司承担比例" />
</el-form-item>
<el-form-item label="工伤保险个人承担比例" prop="gsbxPersonalRate">
<el-input v-model="form.gsbxPersonalRate" placeholder="请输入工伤保险个人承担比例" />
</el-form-item>
<el-form-item label="医疗保险缴费基数(可包含生育险)" prop="ysbxBase">
<el-input v-model="form.ysbxBase" placeholder="请输入医疗保险缴费基数(可包含生育险)" />
</el-form-item>
<el-form-item label="医疗保险公司承担比例" prop="ysbxCompanyRate">
<el-input v-model="form.ysbxCompanyRate" placeholder="请输入医疗保险公司承担比例" />
</el-form-item>
<el-form-item label="医疗保险个人承担比例" prop="ysbxPersonalRate">
<el-input v-model="form.ysbxPersonalRate" placeholder="请输入医疗保险个人承担比例" />
</el-form-item>
<el-form-item label="生育保险缴费基数" prop="syubxBase">
<el-input v-model="form.syubxBase" placeholder="请输入生育保险缴费基数" />
</el-form-item>
<el-form-item label="生育保险公司承担比例" prop="syubxCompanyRate">
<el-input v-model="form.syubxCompanyRate" placeholder="请输入生育保险公司承担比例" />
</el-form-item>
<el-form-item label="生育保险个人承担比例" prop="syubxPersonalRate">
<el-input v-model="form.syubxPersonalRate" placeholder="请输入生育保险个人承担比例" />
</el-form-item>
<el-form-item label="公积金缴费基数" prop="providentFundBase">
<el-input v-model="form.providentFundBase" placeholder="请输入公积金缴费基数" />
</el-form-item>
<el-form-item label="公积金企业承担比例" prop="providentFundCompanyRate">
<el-input v-model="form.providentFundCompanyRate" placeholder="请输入公积金企业承担比例" />
</el-form-item>
<el-form-item label="公积金个人承担比例" prop="providentFundPersonalRate">
<el-input v-model="form.providentFundPersonalRate" placeholder="请输入公积金个人承担比例" />
</el-form-item>
<el-form-item label="管理费" prop="operationCost">
<el-input v-model="form.operationCost" placeholder="请输入管理费" />
</el-form-item>
<el-form-item label="所属部门" prop="deptId">
<el-input v-model="form.deptId" placeholder="请输入所属部门" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog title="导入人员信息" :visible.sync="upload.open" width="400px" append-to-body>
<el-form label-width="80px">
......@@ -317,102 +225,6 @@ export default {
},
// 表单参数
form: {},
// 表单校验
rules: {
id: [
{ required: true, message: "$comment不能为空", trigger: "blur" }
],
contractId: [
{ required: true, message: "所属合同不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "员工姓名不能为空", trigger: "blur" }
],
userCode: [
{ required: true, message: "身份证号不能为空", trigger: "blur" }
],
payeeAccType: [
{ required: true, message: "收款账号类型;1-银行卡;2-支付宝不能为空", trigger: "change" }
],
payeeAccNo: [
{ required: true, message: "收款账号不能为空", trigger: "blur" }
],
postName: [
{ required: true, message: "岗位名称不能为空", trigger: "blur" }
],
postWage: [
{ required: true, message: "岗位工资不能为空", trigger: "blur" }
],
salaryPayable: [
{ required: true, message: "应发工资不能为空", trigger: "blur" }
],
actualPayable: [
{ required: true, message: "实发金额不能为空", trigger: "blur" }
],
bearType: [
{ required: true, message: "五险一金承担方式:1、各自承担;2、个人承担不能为空", trigger: "change" }
],
sybxBase: [
{ required: true, message: "失业保险缴费基数不能为空", trigger: "blur" }
],
sybxCompanyRate: [
{ required: true, message: "失业保险公司承担比例不能为空", trigger: "blur" }
],
sybxPersonalRate: [
{ required: true, message: "失业保险个人承担比例不能为空", trigger: "blur" }
],
ylbxBase: [
{ required: true, message: "养老保险缴费基数不能为空", trigger: "blur" }
],
ylbxCompanyRate: [
{ required: true, message: "养老保险公司承担比例不能为空", trigger: "blur" }
],
ylbxPersonalRate: [
{ required: true, message: "养老保险个人承担比例不能为空", trigger: "blur" }
],
gsbxBase: [
{ required: true, message: "工伤保险缴费基数不能为空", trigger: "blur" }
],
gsbxCompanyRate: [
{ required: true, message: "工伤保险公司承担比例不能为空", trigger: "blur" }
],
gsbxPersonalRate: [
{ required: true, message: "工伤保险个人承担比例不能为空", trigger: "blur" }
],
ysbxBase: [
{ required: true, message: "医疗保险缴费基数(可包含生育险)不能为空", trigger: "blur" }
],
ysbxCompanyRate: [
{ required: true, message: "医疗保险公司承担比例不能为空", trigger: "blur" }
],
ysbxPersonalRate: [
{ required: true, message: "医疗保险个人承担比例不能为空", trigger: "blur" }
],
syubxBase: [
{ required: true, message: "生育保险缴费基数不能为空", trigger: "blur" }
],
syubxCompanyRate: [
{ required: true, message: "生育保险公司承担比例不能为空", trigger: "blur" }
],
syubxPersonalRate: [
{ required: true, message: "生育保险个人承担比例不能为空", trigger: "blur" }
],
providentFundBase: [
{ required: true, message: "公积金缴费基数不能为空", trigger: "blur" }
],
providentFundCompanyRate: [
{ required: true, message: "公积金企业承担比例不能为空", trigger: "blur" }
],
providentFundPersonalRate: [
{ required: true, message: "公积金个人承担比例不能为空", trigger: "blur" }
],
operationCost: [
{ required: true, message: "管理费不能为空", trigger: "blur" }
],
deptId: [
{ required: true, message: "所属部门不能为空", trigger: "blur" }
],
}
};
},
created() {
......@@ -587,6 +399,9 @@ export default {
return this.$modal.msgWarning("请选择计薪模式")
}
this.$refs.upload.submit();
},
viewAnnex(annexLink) {
window.open(annexLink, "_blank")
}
}
};
......
......@@ -40,6 +40,10 @@
v-hasPermi="['business:payOutDetail:export']">导出
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" icon="el-icon-upload2" @click="upload.open = true"
v-hasPermi="['business:payOutDetail:add']">导入考勤</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
......@@ -320,8 +324,8 @@
<!-- 调整薪资 -->
<el-dialog title="调整薪资" :visible.sync="checkWorkOpen" width="1000px" append-to-body>
<el-form label-width="120px">
<el-form-item label="原实发金额">
<el-input v-model="preForm.actualPayableNormal" disabled />
<el-form-item label="原应发金额">
<el-input v-model="preForm.payableNormal" disabled />
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="newAdjustItem">新增调整项</el-button>
......@@ -360,7 +364,7 @@
<el-button type="primary" size="small" @click="doAdjustCalculate">预览</el-button>
</el-form-item>
<el-form-item v-show="adjustView.open">
<span>合计调整: {{adjustView.adjustSalary}}, 最终实发: {{adjustView.finalSalary}}</span>
<span>合计调整: {{adjustView.adjustSalary}}, 最终应发: {{adjustView.finalSalary}}, 最终实发: {{adjustView.actualPayable}}</span>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -368,6 +372,25 @@
<el-button @click="checkWorkOpen = false">取 消</el-button>
</div>
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog title="导入考勤信息" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?templateType=' + upload.uploadRadio" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
<a style="color:#1890ff;margin:0px;line-height:14px" class="download" download="考勤导入模板"
href="/考勤数据模板.xlsx" target="_blank">下载模板</a>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="importByExcel">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -381,15 +404,31 @@ import {
} from '@/api/business/payOutDetail'
import { adjustCalculate, listAllAdjustInfo } from '@/api/business/adjustInfo'
import { saveAdjustCalculate } from '@/api/business/payOutRecord'
import { getToken } from '@/utils/auth'
export default {
name: 'PayOutDetail',
dicts: ['pay_status', 'bx_bear_type', 'payee_acc_type'],
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
uploadRadio: 1,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/business/payOutRecord/attendance/importByExcel/" + this.$route.query.batchNo
},
adjustItem: [],
preForm: {
actualPayableNormal: 0,
payableNormal: 0,
},
preFormOpen: false,
checkWorkOpen: false,
......@@ -438,6 +477,7 @@ export default {
adjustView: {
open: false,
finalSalary: 0,
actualPayable: 0,
adjustSalary: '',
},
// 表单参数
......@@ -752,13 +792,11 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('business/payOutDetail/export', {
...this.queryParams
}, `payOutDetail_${new Date().getTime()}.xlsx`)
this.download('business/payOutDetail/export', ...this.queryParams, `payOutDetail_${new Date().getTime()}.xlsx`)
},
async checkWork(row) {
this.preForm.salaryPayDetailId = row.id
this.preForm.actualPayableNormal = row.actualPayableNormal
this.preForm.payableNormal = row.payableNormal
await listAllAdjustInfo({
salaryPayDetailId: row.id
}).then(resp => {
......@@ -812,11 +850,29 @@ export default {
this.adjustView = {
open: true,
adjustSalary: resp.data.adjustSalary + "",
actualPayable: resp.data.actualPayable + "",
finalSalary: resp.data.finalSalary + ""
}
}
})
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
this.getList();
},
importByExcel() {
this.$refs.upload.submit();
}
}
}
</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