员工补贴页面修改

master
wanglei 7 months ago
parent 310cb2d317
commit c4324286bd

@ -1,54 +1,38 @@
import request from '@/utils/request' import request from '@/utils/request'
// 查询补贴和员工联系列表
export function listButieEmplyee(query) { // 查询员工补贴 列表
export function listSummary(query) {
return request({ return request({
url: '/pay/butieEmplyee/list', url: '/pay/butieEmplyee/summary',
method: 'get', method: 'get',
params: query params: query
}) })
} }
// 查询补贴和员工联系详细 // 检查数据是否存在
export function getButieEmplyee(id) { export function checkDataExist(data) {
return request({ return request({
url: '/pay/butieEmplyee/' + id, url: '/pay/butieEmplyee/check',
method: 'get' method: 'post',
data: data
}) })
} }
// 新增补贴和员工联系 // 按月生成
export function addButieEmplyee(data) { export function generateBuTieEmpByMonth(data) {
return request({ return request({
url: '/pay/butieEmplyee', url: '/pay/butieEmplyee/gen',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改补贴和员工联系 // 修改补贴和员工联系
export function updateButieEmplyee(data) { export function updateAllbt(data) {
return request({ return request({
url: '/pay/butieEmplyee', url: '/pay/butieEmplyee/allbt',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除补贴和员工联系
export function delButieEmplyee(id) {
return request({
url: '/pay/butieEmplyee/' + id,
method: 'delete'
})
}
// 查询员工补贴 列表
export function listSummary(query) {
return request({
url: '/pay/butieEmplyee/summary',
method: 'get',
params: query
})
}

@ -16,27 +16,11 @@
</div> </div>
<div :class="$store.state.user.tenantId?'content-all':'content'"> <div :class="$store.state.user.tenantId?'content-all':'content'">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="租户id" prop="tenantId"> <el-form-item label="员工姓名" prop="employeeId">
<el-input <el-input
v-model="queryParams.tenantId" v-model="queryParams.empName"
placeholder="请输入租户id" placeholder="请输入员工姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="补贴id" prop="butieId">
<el-input
v-model="queryParams.butieId"
placeholder="请输入补贴id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="员工id" prop="employeeId">
<el-input
v-model="queryParams.employeeId"
placeholder="请输入员工id"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -50,12 +34,12 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="年月日期" prop="date"> <el-form-item label="年月日期" prop="date">
<el-input <el-date-picker
v-model="queryParams.date" v-model="queryParams.date"
placeholder="请输入年月日期" type="month"
clearable value-format="yyyy-MM"
@keyup.enter.native="handleQuery" placeholder="请选择年月日期">
/> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
@ -64,76 +48,65 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
plain plain
icon="el-icon-plus" icon="el-icon-magic-stick"
size="mini" size="mini"
@click="handleAdd" @click="openGenerateDialog"
v-hasPermi="['pay:butieEmplyee:add']" v-hasPermi="['pay:butieEmplyee:gen']"
>新增</el-button> >生成</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['pay:butieEmplyee:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['pay:butieEmplyee:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['pay:butieEmplyee:export']"
>导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="butieEmplyeeList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="butieEmplyeeList">
<el-table-column type="selection" width="55" align="center" /> <el-table-column label="员工" align="center" prop="empName" />
<el-table-column label="主键ID" align="center" prop="id" v-if="true"/> <!-- <el-table-column label="补贴扣减金额" align="center" prop="money" />-->
<el-table-column label="租户id" align="center" prop="tenantId" /> <el-table-column label="年月日期" align="center" prop="date">
<el-table-column label="补贴id" align="center" prop="butieId" /> <template slot-scope="scope">
<el-table-column label="员工id" align="center" prop="employeeId" /> <span>{{ parseTime(scope.row.date, '{y}年{m}月') }}</span>
<el-table-column label="补贴扣减金额" align="center" prop="money" /> </template>
<el-table-column label="年月日期" align="center" prop="date" /> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column :label="item.butieName" align="center" :prop="item.butieName" min-width="80%" v-for="(item, index) in butieMap" :key="index">
<template slot-scope="scope" >
<template v-for="(sum,i) in scope.row.btList">
<template v-if="scope.row.edit && item.butieName === sum.butieName">
<el-input v-model="sum.money" class="edit-input" size="small" />
</template>
<template v-else>
<span :key="i" v-if="item.butieName === sum.butieName">{{sum.money}}</span>
</template>
</template>
</template>
</el-table-column>
<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
v-if="!scope.row.edit"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['pay:butieEmplyee:edit']" v-hasPermi="['pay:butieEmplyee:alledit']"
>修改</el-button> >修改</el-button>
<el-button <el-button
v-if="scope.row.edit"
size="mini"
type="text"
icon="el-icon-circle-check"
@click="ensureRowEdit(scope.row)"
v-hasPermi="['pay:butieEmplyee:alledit']"
>确定</el-button>
<el-button
v-if="scope.row.edit"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-circle-close"
@click="handleDelete(scope.row)" @click="cancelRowEdit(scope.row)"
v-hasPermi="['pay:butieEmplyee:remove']" v-hasPermi="['pay:butieEmplyee:alledit']"
>删除</el-button> >取消</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -147,38 +120,27 @@
/> />
</div> </div>
<!-- 添加或修改补贴和员工联系对话框 --> <el-dialog title="选择自动生成月份" :visible.sync="generateDialogVisible" :close-on-click-modal="false" width="300">
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <div class="block">
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <span class="demonstration">请选择月份 </span>
<el-form-item label="租户id" prop="tenantId"> <el-date-picker
<el-input v-model="form.tenantId" placeholder="请输入租户id" /> v-model="genMonth"
</el-form-item> type="month"
<el-form-item label="补贴id" prop="butieId"> value-format="yyyy-MM"
<el-input v-model="form.butieId" placeholder="请输入补贴id" /> placeholder="月份">
</el-form-item> </el-date-picker>
<el-form-item label="员工id" prop="employeeId"> </div>
<el-input v-model="form.employeeId" placeholder="请输入员工id" />
</el-form-item>
<el-form-item label="补贴扣减金额" prop="money">
<el-input v-model="form.money" placeholder="请输入补贴扣减金额" />
</el-form-item>
<el-form-item label="年月日期" prop="date">
<el-input v-model="form.date" placeholder="请输入年月日期" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button> <el-button @click="generateDialogVisible = false"> </el-button>
<el-button @click="cancel"> </el-button> <el-button type="primary" @click="generateBuTieEmpByMonth"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listSummary, getButieEmplyee, delButieEmplyee, addButieEmplyee, updateButieEmplyee } from "@/api/pay/butieEmplyee"; import { listSummary, checkDataExist, generateBuTieEmpByMonth, updateAllbt } from "@/api/pay/butieEmplyee";
import { listTenant } from "@/api/pay/tenant"; import { listTenant } from "@/api/pay/tenant";
export default { export default {
@ -191,26 +153,14 @@ export default {
active_id:this.$store.state.user.tenantId, active_id:this.$store.state.user.tenantId,
list:[] list:[]
}, },
// loading
buttonLoading: false,
// //
loading: true, loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
// //
showSearch: true, showSearch: true,
// //
total: 0, total: 0,
// //
butieEmplyeeList: [], butieEmplyeeList: [],
//
title: "",
//
open: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -221,32 +171,10 @@ export default {
money: undefined, money: undefined,
date: undefined, date: undefined,
}, },
// butieMap: [],
form: {}, //
// generateDialogVisible: false,
rules: { genMonth: null,
id: [
{ required: true, message: "主键ID不能为空", trigger: "blur" }
],
tenantId: [
{ required: true, message: "租户id不能为空", trigger: "blur" }
],
butieId: [
{ required: true, message: "补贴id不能为空", trigger: "blur" }
],
employeeId: [
{ required: true, message: "员工id不能为空", trigger: "blur" }
],
money: [
{ required: true, message: "补贴扣减金额不能为空", trigger: "blur" }
],
date: [
{ required: true, message: "年月日期不能为空", trigger: "blur" }
],
remark: [
{ required: true, message: "备注不能为空", trigger: "blur" }
]
}
}; };
}, },
created() { created() {
@ -283,32 +211,31 @@ export default {
this.queryParams.tenantId = this.gsInfo.active_id; this.queryParams.tenantId = this.gsInfo.active_id;
listSummary(this.queryParams).then(response => { listSummary(this.queryParams).then(response => {
this.butieEmplyeeList = response.rows; this.butieEmplyeeList = response.rows;
if(this.butieEmplyeeList.length > 0){
this.butieMap = [];
this.butieEmplyeeList.forEach(item => {
this.$set(item,"btList",[]);
for(const key in item.butieMap){
var list = {
butieName: key,
money: item.butieMap[key].money,
btid: item.butieMap[key].btid
}
item.btList.push(list);
}
})
for(const key in this.butieEmplyeeList[0].butieMap){
var list = {
butieName: key
}
this.butieMap.push(list);
}
}
console.log(this.butieEmplyeeList);
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: undefined,
tenantId: undefined,
butieId: undefined,
employeeId: undefined,
money: undefined,
date: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
@ -319,75 +246,76 @@ export default {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加补贴和员工联系";
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.loading = true; if (!row.edit) {
this.reset(); row.edit = true;
const id = row.id || this.ids }
getButieEmplyee(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改补贴和员工联系";
});
}, },
/** 提交按钮 */ /** 确定修改按钮操作*/
submitForm() { ensureRowEdit(row) {
this.$refs["form"].validate(valid => { updateAllbt(row).then(res => {
if (valid) { if (res.code === 200) {
this.buttonLoading = true; this.$message({
if (this.form.id != null) { message: '修改成功',
updateButieEmplyee(this.form).then(response => { type: 'success'
this.$modal.msgSuccess("修改成功"); });
this.open = false; if (row.edit) {
this.getList(); row.edit = false;
}).finally(() => {
this.buttonLoading = false;
});
} else {
addButieEmplyee(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} }
} }
}); })
}, },
/** 删除按钮操作 */ /** 取消修改按钮操作*/
handleDelete(row) { cancelRowEdit(row) {
const ids = row.id || this.ids; this.getList();
this.$modal.confirm('是否确认删除补贴和员工联系编号为"' + ids + '"的数据项?').then(() => { },
this.loading = true; openGenerateDialog() {
return delButieEmplyee(ids); this.genMonth = null;
}).then(() => { this.generateDialogVisible = true;
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
}, },
/** 导出按钮操作 */ generateBuTieEmpByMonth() {
handleExport() { let param = {
this.download('pay/butieEmplyee/export', { month: this.genMonth,
...this.queryParams tenantId : this.gsInfo.active_id
}, `butieEmplyee_${new Date().getTime()}.xlsx`) }
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
checkDataExist(param).then(res => {
if (res.code === 200 && res.msg == '数据已经存在,是否覆盖?') {
this.$confirm('此操作将覆盖掉当月已录入数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
generateBuTieEmpByMonth(param).then(res => {
this.$message({
type: 'success',
message: res.msg
});
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消操作'
});
});
this.generateDialogVisible = false
loading.close();
} else {
if (res.code === 200) {
this.$message({
message: res.msg,
type: 'success'
});
loading.close();
}
}
})
} }
} }
}; };

Loading…
Cancel
Save