mirror of
https://github.com/pbrong/hrms.git
synced 2025-09-26 19:51:11 +08:00
feature:完成工资发放模块
This commit is contained in:
323
views/salary_giving_manage.html
Executable file
323
views/salary_giving_manage.html
Executable file
@@ -0,0 +1,323 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>工资发放管理</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="/static/lib/layui-v2.5.5/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="/static/css/public.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
|
||||
{{ if .query }}
|
||||
<fieldset class="table-search-fieldset">
|
||||
<legend>搜索信息</legend>
|
||||
<div style="margin: 10px 10px 10px 10px">
|
||||
<form class="layui-form layui-form-pane" action="">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">员工工号</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="staff_id" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
{{ else }}
|
||||
{{ end }}
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
{{ if .create }}
|
||||
<button id="add_button" class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
|
||||
<!-- <button id="pay_button" class="layui-btn layui-btn-danger layui-btn-sm data-add-btn" lay-event="pay"> 发放 </button>-->
|
||||
{{ else }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
|
||||
|
||||
<script type="text/html" id="currentTableBar">
|
||||
<!-- {{ if .query }}-->
|
||||
<!-- <a id="query_button" class="layui-btn layui-btn-warm layui-btn-xs data-count-get" lay-event="query">查看</a>-->
|
||||
<!-- {{ else }}-->
|
||||
<!-- {{ end }}-->
|
||||
|
||||
|
||||
{{ if .update }}
|
||||
<a id="pay_button" class="layui-btn layui-btn-warm layui-btn-xs data-count-edit" lay-event="pay">发放</a>
|
||||
{{ else }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .update }}
|
||||
<a id="edit_button" class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
|
||||
{{ else }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{ if .delete }}
|
||||
<a id="delete_button" class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
||||
{{ else }}
|
||||
{{ end }}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script src="/static/lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
|
||||
<script src="/static/lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
|
||||
|
||||
<script>
|
||||
{{ if .query }}
|
||||
layui.use(['form', 'table'], function () {
|
||||
var $ = layui.jquery,
|
||||
form = layui.form,
|
||||
table = layui.table;
|
||||
|
||||
table.render({
|
||||
elem: '#currentTableId',
|
||||
url: '/salary_record/query/all',
|
||||
toolbar: '#toolbarDemo',
|
||||
defaultToolbar: ['filter', 'exports', 'print', {
|
||||
title: '提示',
|
||||
layEvent: 'LAYTABLE_TIPS',
|
||||
icon: 'layui-icon-tips'
|
||||
}],
|
||||
cols: [[
|
||||
// {type: "checkbox", width: 30},
|
||||
{field: 'ID', width: 60, title: 'ID', sort: true, hide:true},
|
||||
{field: 'salary_record_id', width: 120, title: '工资ID', hide:true},
|
||||
{field: 'staff_id', width: 80, title: '工号'},
|
||||
{field: 'staff_name', width: 120, title: '姓名'},
|
||||
{field: 'base', width: 80, title: '基本(元)'},
|
||||
{field: 'subsidy', width: 80, title: '补贴(元)'},
|
||||
{field: 'benifits', width: 80, title: '福利(元)'},
|
||||
{field: 'fine', width: 80, title: '罚款(元)'},
|
||||
{field: 'total', width: 80, title: '合计(元)'},
|
||||
{field: 'salary_date', width: 90, title: '月份'},
|
||||
{field: 'is_pay', width: 80, title: '状态', templet: isPayFormat, fixed: 'right'},
|
||||
{title: '操作', minWidth: 160, toolbar: '#currentTableBar', align: "center", fixed: 'right'}
|
||||
]],
|
||||
limits: [10, 15, 20, 25, 50, 100],
|
||||
limit: 10,
|
||||
page: true,
|
||||
skin: 'line',
|
||||
parseData: function(res){ //res 即为原始返回的数据
|
||||
var code = 0, msg = "获取数据成功"
|
||||
if (res.status != 2000) {
|
||||
code = -1
|
||||
msg = "数据不存在"
|
||||
}
|
||||
return {
|
||||
"code": code, //解析接口状态
|
||||
"msg": msg, //解析提示文本
|
||||
"count": res.total, //解析数据长度
|
||||
"data": res.msg //解析数据列表
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
function isPayFormat(data) {
|
||||
if (data.is_pay == 1) {
|
||||
return "未发放"
|
||||
} else {
|
||||
return "已发放"
|
||||
}
|
||||
}
|
||||
|
||||
// 监听搜索操作
|
||||
form.on('submit(data-search-btn)', function (data) {
|
||||
layer.msg("搜索成功");
|
||||
var staff_id = data.field.staff_id;
|
||||
var reqUrl = "/salary_record/query/all"
|
||||
if (typeof staff_id != "undefined" && staff_id != null && staff_id != "") {
|
||||
//执行搜索重载
|
||||
reqUrl = "/salary_record/query/"+staff_id
|
||||
}
|
||||
table.reload('currentTableId', {
|
||||
url: reqUrl,
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
}, 'data');
|
||||
return false;
|
||||
});
|
||||
|
||||
/**
|
||||
* toolbar监听事件
|
||||
*/
|
||||
table.on('toolbar(currentTableFilter)', function (obj) {
|
||||
if (obj.event === 'add') { // 监听添加操作
|
||||
var index = layer.open({
|
||||
title: '添加通知',
|
||||
type: 2,
|
||||
shade: 0.2,
|
||||
maxmin:true,
|
||||
shadeClose: true,
|
||||
area: ['80%', '80%'],
|
||||
content: '/views/salary_record_detail_add.html',
|
||||
end: function(){
|
||||
//执行搜索重载
|
||||
table.reload('currentTableId', {
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
}, 'data');
|
||||
}
|
||||
});
|
||||
$(window).on("resize", function () {
|
||||
layer.full(index);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
//监听表格复选框选择
|
||||
// table.on('checkbox(currentTableFilter)', function (obj) {
|
||||
// console.log(obj)
|
||||
// });
|
||||
|
||||
table.on('tool(currentTableFilter)', function (obj) {
|
||||
var id = obj.data.ID;
|
||||
var salary_record_id = obj.data.salary_record_id;
|
||||
if (obj.event === 'edit') {
|
||||
if (obj.data.is_pay == 2) {
|
||||
layer.msg("已发放,无法编辑");
|
||||
return false
|
||||
}
|
||||
// 本地缓存需要编辑的通知信息
|
||||
localStorage.setItem("salary_record_edit_info", JSON.stringify(obj.data))
|
||||
// alert("待编辑:" + localStorage.getItem("salary_record_edit_info"))
|
||||
var index = layer.open({
|
||||
title: '编辑工资信息',
|
||||
type: 2,
|
||||
shade: 0.2,
|
||||
maxmin:true,
|
||||
shadeClose: true,
|
||||
area: ['80%', '80%'],
|
||||
content: '/views/salary_record_detail_edit.html',
|
||||
end: function(){
|
||||
//执行搜索重载
|
||||
table.reload('currentTableId', {
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
}, 'data');
|
||||
}
|
||||
});
|
||||
$(window).on("resize", function () {
|
||||
layer.full(index);
|
||||
});
|
||||
return false;
|
||||
} else if (obj.event === 'delete') {
|
||||
if (obj.data.is_pay == 2) {
|
||||
layer.msg("已发放,无法删除");
|
||||
return false
|
||||
}
|
||||
layer.confirm('确认删除吗?', function () {
|
||||
// alert(JSON.stringify(obj.data))
|
||||
// alert(depId)
|
||||
$.ajax({
|
||||
type: "DELETE",
|
||||
url: "/salary_record/delete/" + salary_record_id,
|
||||
async: false,
|
||||
success:function (data) {
|
||||
var resp = JSON.parse(JSON.stringify(data));
|
||||
if (resp.status == 2000) {
|
||||
layer.alert("删除信息成功",function(index) {
|
||||
// 重新渲染
|
||||
table.reload('currentTableId', {
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
}, 'data');
|
||||
layer.close(index)
|
||||
// alert("layer.close")
|
||||
});
|
||||
}
|
||||
},
|
||||
error:function (data) {
|
||||
console.log("error resp:" + JSON.stringify(data))
|
||||
layer.msg("系统异常");
|
||||
}
|
||||
});
|
||||
});
|
||||
} else if(obj.event === 'query') {
|
||||
// alert("查看详情")
|
||||
// 本地缓存需要查看的通知信息
|
||||
localStorage.setItem("notification_detail_info", JSON.stringify(obj.data))
|
||||
// alert("待编辑:" + localStorage.getItem("staff_edit_info"))
|
||||
var index = layer.open({
|
||||
title: '通知详情',
|
||||
type: 2,
|
||||
shade: 0.2,
|
||||
maxmin:true,
|
||||
shadeClose: true,
|
||||
area: ['80%', '80%'],
|
||||
content: '/views/admin_notification_detail.html',
|
||||
end: function(){
|
||||
//执行搜索重载
|
||||
table.reload('currentTableId', {
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
}, 'data');
|
||||
}
|
||||
});
|
||||
$(window).on("resize", function () {
|
||||
layer.full(index);
|
||||
});
|
||||
return false;
|
||||
} else if(obj.event === 'pay') {
|
||||
// alert(obj.data.is_pay)
|
||||
if (obj.data.is_pay == 2) {
|
||||
layer.msg("已发放,无法重复发放");
|
||||
return false
|
||||
}
|
||||
layer.confirm('发放后无法再次编辑,确认发放吗?', function () {
|
||||
// alert(JSON.stringify(obj.data))
|
||||
// alert(depId)
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/salary_record/pay_salary_record_by_id/" + id,
|
||||
async: false,
|
||||
success:function (data) {
|
||||
var resp = JSON.parse(JSON.stringify(data));
|
||||
if (resp.status == 2000) {
|
||||
layer.alert("发放成功",function(index) {
|
||||
// 重新渲染
|
||||
table.reload('currentTableId', {
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
}, 'data');
|
||||
layer.close(index)
|
||||
// alert("layer.close")
|
||||
});
|
||||
}
|
||||
},
|
||||
error:function (data) {
|
||||
console.log("error resp:" + JSON.stringify(data))
|
||||
layer.msg("系统异常");
|
||||
}
|
||||
});
|
||||
});
|
||||
return false
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
{{ else }}
|
||||
alert("你没有数据查询权限")
|
||||
{{ end }}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
118
views/salary_record_detail_add.html
Executable file
118
views/salary_record_detail_add.html
Executable file
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>新增</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="/static/lib/layui-v2.5.5/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="/static/css/public.css" media="all">
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-form layuimini-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">员工工号</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="staff_id" lay-verify="required" lay-reqtext="员工工号不能为空" placeholder="请输入员工工号" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">员工姓名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="staff_name" lay-verify="required" lay-reqtext="员工姓名不能为空" placeholder="请输入员工姓名" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">基本薪资(元/月)</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="base" lay-verify="required" lay-reqtext="基本薪资不能为空" placeholder="请输入基本薪资" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">补贴(元/月)</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="subsidy" placeholder="请输入补贴" value="0" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">福利(元/月)</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="benifits" placeholder="请输入福利" value="0" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">罚款(元/月)</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="fine" placeholder="请输入罚款" value="0" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">月份</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="month" name="salary_date" lay-verify="required" lay-reqtext="月份不能为空" placeholder="请输入月份" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">添 加</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/static/lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
|
||||
<script>
|
||||
layui.use(['form'], function () {
|
||||
var form = layui.form,
|
||||
layer = layui.layer,
|
||||
$ = layui.$;
|
||||
|
||||
//监听提交
|
||||
form.on('submit(saveBtn)', function (req) {
|
||||
req.field.base = parseInt(req.field.base)
|
||||
req.field.subsidy = parseInt(req.field.subsidy)
|
||||
req.field.benifits = parseInt(req.field.benifits)
|
||||
req.field.fine = parseInt(req.field.fine)
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/salary_record/create",
|
||||
contentType: "application/json;charset=utf-8",
|
||||
data: JSON.stringify(req.field),
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success:function (data) {
|
||||
var resp = JSON.parse(JSON.stringify(data));
|
||||
if (resp.status == 2000) {
|
||||
layer.alert("添加成功", function (){
|
||||
// 关闭
|
||||
var iframeIndex = parent.layer.getFrameIndex(window.name);
|
||||
parent.layer.close(iframeIndex);
|
||||
})
|
||||
} else {
|
||||
layer.alert("员工薪资已存在")
|
||||
}
|
||||
},
|
||||
error:function (data) {
|
||||
console.log("error resp:" + JSON.stringify(data))
|
||||
layer.msg("系统异常,添加失败");
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
129
views/salary_record_detail_edit.html
Executable file
129
views/salary_record_detail_edit.html
Executable file
@@ -0,0 +1,129 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>编辑</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="/static/lib/layui-v2.5.5/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="/static/css/public.css" media="all">
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-form layuimini-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">员工工号</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="staff_id" id="staff_id" lay-verify="required" lay-reqtext="员工工号不能为空" placeholder="请输入员工工号" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">员工姓名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="staff_name" id="staff_name" lay-verify="required" lay-reqtext="员工姓名不能为空" placeholder="请输入员工姓名" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">基本薪资(元/月)</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="base" id="base" lay-verify="required" lay-reqtext="基本薪资不能为空" placeholder="请输入基本薪资" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">补贴(元/月)</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="subsidy" id="subsidy" placeholder="请输入补贴" value="0" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">福利(元/月)</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="benifits" id="benifits" placeholder="请输入福利" value="0" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">罚款(元/月)</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" id="fine" name="fine" placeholder="请输入罚款" value="0" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">月份</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="month" id="salary_date" name="salary_date" lay-verify="required" lay-reqtext="月份不能为空" placeholder="请输入月份" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">保 存</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/static/lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
|
||||
<script>
|
||||
layui.use(['form'], function () {
|
||||
var form = layui.form,
|
||||
layer = layui.layer,
|
||||
$ = layui.$;
|
||||
var editInfo = JSON.parse(localStorage.getItem("salary_record_edit_info"));
|
||||
// alert(editInfo)
|
||||
$("#staff_id").val(editInfo.staff_id)
|
||||
$("#staff_name").val(editInfo.staff_name)
|
||||
$("#base").val(editInfo.base)
|
||||
$("#subsidy").val(editInfo.subsidy)
|
||||
$("#benifits").val(editInfo.benifits)
|
||||
$("#fine").val(editInfo.fine)
|
||||
$("#salary_date").val(editInfo.salary_date)
|
||||
//监听提交
|
||||
form.on('submit(saveBtn)', function (req) {
|
||||
// alert(localStorage.getItem("dep_edit_info"))
|
||||
var id = editInfo.ID
|
||||
// alert(JSON.stringify(req.field))
|
||||
req.field.id = id
|
||||
req.field.base = parseInt(req.field.base)
|
||||
req.field.subsidy = parseInt(req.field.subsidy)
|
||||
req.field.benifits = parseInt(req.field.benifits)
|
||||
req.field.fine = parseInt(req.field.fine)
|
||||
// alert(JSON.stringify(req.field))
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/salary_record/edit",
|
||||
contentType: "application/json;charset=utf-8",
|
||||
data: JSON.stringify(req.field),
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success:function (data) {
|
||||
var resp = JSON.parse(JSON.stringify(data));
|
||||
if (resp.status == 2000) {
|
||||
layer.alert("编辑成功", function (){
|
||||
// 关闭
|
||||
var iframeIndex = parent.layer.getFrameIndex(window.name);
|
||||
parent.layer.close(iframeIndex);
|
||||
})
|
||||
}
|
||||
},
|
||||
error:function (data) {
|
||||
console.log("error resp:" + JSON.stringify(data))
|
||||
layer.msg("系统异常");
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user