hn_cloud_web/smz-web/js/work/ownPerson/paySlipForm.js

555 lines
20 KiB
JavaScript
Raw Normal View History

2025-11-27 16:55:35 +08:00
var from;
2025-12-05 15:39:43 +08:00
var token = localStorage.getItem("smz-token");
2025-11-27 16:55:35 +08:00
$(function () {
initTrees();
layui.use(['form', 'laydate','layer'], function () {
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
var laydate = layui.laydate;
var layer = layui.layer;
form.render();
form.verify({
ssdw: [/^(?!-1).*$/, '请选择所属单位'],
rylx: [/^(?!-1).*$/, '请选择人员类型'],
hkxz: [/^(?!-1).*$/, '请选择户口性质'],
name:[/^[\u4e00-\u9fa5_]{2,20}$/,'请输入2-20位中文真实姓名'],//2-20位中文真实姓名
idCard:[/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, '请正确输入身份证'],//身份证号码
phone: [/^1[3456789]\d{9}$/, '请正确输入的负责人电话'],
age:[/\b(1[8-9]|[2-9][0-9])\b/,'请正确输入18-99年龄'],
ryxz: [/^(?!-1).*$/, '请选择员工性质'],
bankCard: [/(^$)|^[0-9]\d{11,22}$/, '请输入12-22位正整数字符(无符号)'],
be:[/^\d+(\.\d{1,2})?$/,'请正确输入保额,保留两位小数'],
phones: [/(^$)|^1[3456789]\d{9}$/, '请正确填写电话号码'],
});
from = form;
form.render();
// 验证成功后才会执行下面的操作
form.on('submit(formDemo)', function (data) {
var id = $("#id").val();
if (id == '') {
insertWorker(data); // 新增
} else {
updateWorker(data);//修改
}
});
laydate.render({
elem: '#month' //指定元素 元素选择器
, type: 'month' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, format: 'yyyy-MM' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
}
});
laydate.render({
elem: '#fundMonth' //指定元素 元素选择器
, type: 'month' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, format: 'yyyy-MM' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
}
});
});
});
function calculateAge() {
var idCard = document.getElementById("idNumber").value;
var birthday = idCard.substring(6, 14); // 从身份证号码中提取出生年月日
var birthYear = birthday.substring(0, 4);
var birthMonth = birthday.substring(4, 6) - 1;
var birthDay = birthday.substring(6, 8);
var today = new Date();
var age = today.getFullYear() - birthYear;
if (today.getMonth() < birthMonth || (today.getMonth() == birthMonth && today.getDate() < birthDay)) {
age--;
}
document.getElementById("age").value = age;
}
function initTrees() {
$.ajax({
type: 'POST',
headers : {
"token" : token
},
url: ctxPath + '/org/getCompanyTreeListOWN',
data: {},
dataType: 'json',
success: function (data) {
$.fn.zTree.init($("#orgTree"),{
view:{
dblClickExpand:false,
selectedMulti:false,
nameIsHTML:true
},
data:{
simpleData:{
enable: true
}
},
callback:{
onClick:clickRoles
}
}, data.obj);
},
error: function (e) {
console.log(e.resMsg);
},
});
}
function clickRoles(e, treeId, treeNode) {
//设置父节点不能被选择
if(treeNode.id =="x"){
var check = (treeNode);
if(check){
var zTree = $.fn.zTree.getZTreeObj("orgTree"),
nodes = zTree.getSelectedNodes(),v ="",n ="",o="",p="",c="";
for (var i=0, l=nodes.length; i<l; i++) {
v += nodes[i].name + ",";//获取name值
n += nodes[i].id + ",";//获取id值
o += nodes[i].other + ",";//获取自定义值
c += nodes[i].companyId + ",";
var pathNodes=nodes[i].getPath();
for(var y=0;y<pathNodes.length;y++){
p+=pathNodes[y].name+"/";//获取path/name值
}
}
if (v.length > 0 ) v = v.substring(0, v.length-1);
if (n.length > 0 ) n = n.substring(0, n.length-1);
if (o.length > 0 ) o = o.substring(0, o.length-1);
if (p.length > 0 ) p = p.substring(0, p.length-1);
if (c.length > 0 ) c = c.substring(0, c.length-1);
$("#orgName").val(p);
$("#companyId").val(c);
$("#auForm input[name$='orgId']").prop("value",n);
hideRole(n,c);
}
}else{
if (treeNode.level !="1") {
layer.msg('请选择组织管理中的最后一级');
}else{
var check = (treeNode);
if(check){
var zTree = $.fn.zTree.getZTreeObj("orgTree"),
nodes = zTree.getSelectedNodes(),v ="",n ="",o="",p="",c="";
for (var i=0, l=nodes.length; i<l; i++) {
v += nodes[i].name + ",";//获取name值
n += nodes[i].id + ",";//获取id值
o += nodes[i].other + ",";//获取自定义值
c += nodes[i].companyId + ",";
var pathNodes=nodes[i].getPath();
for(var y=0;y<pathNodes.length;y++){
p+=pathNodes[y].name+"/";//获取path/name值
}
}
if (v.length > 0 ) v = v.substring(0, v.length-1);
if (n.length > 0 ) n = n.substring(0, n.length-1);
if (o.length > 0 ) o = o.substring(0, o.length-1);
if (p.length > 0 ) p = p.substring(0, p.length-1);
if (c.length > 0 ) c = c.substring(0, c.length-1);
$("#orgName").val(p);
$("#companyId").val(c);
$("#auForm input[name$='orgId']").prop("value",n);
hideRole(n,c);
}
}
}
}
function loadCompanyInfo(n, c) { //分公司工程联动
var orgId = n;
}
//自有人员-所属单位
function getAffiliatedUnits(id) {
$("#ssdw").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/users/getAffiliatedUnit',
data: {},
dataType: 'json',
success: function (data) {
var str = '<option value="-1">--请选择所属单位--</option>';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (id == data[i].userId) {
str += '<option selected value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
} else {
str += '<option value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
}
}
}
$("#ssdw").append(str);
layui.form.render();
}
})
}
//自有人员-人员类型字典下拉
function getOWNrylx(id) {
$("#rylx").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/users/getOWNType',
data: {
type:"rylx"
},
dataType: 'json',
success: function (data) {
var str = '<option value="-1">--请选择人员类型--</option>';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (id == data[i].userId) {
str += '<option selected value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
} else {
str += '<option value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
}
}
}
$("#rylx").append(str);
layui.form.render(); //这里就是我们要渲染的地方了
}
})
}
//自有人员-员工性质字典下拉
function getOWNryxz(id) {
$("#ryxz").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/users/getOWNType',
data: {
type:"ryxz"
},
dataType: 'json',
success: function (data) {
var str = '<option value="-1">--请选择员工性质--</option>';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (id == data[i].userId) {
str += '<option selected value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
} else {
str += '<option value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
}
}
}
$("#ryxz").append(str);
layui.form.render(); //这里就是我们要渲染的地方了
}
})
}
//自有人员-学历字典下拉
function getOWNxl(id) {
$("#xl").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/users/getOWNType',
data: {
type:"xl"
},
dataType: 'json',
success: function (data) {
var str = '<option value="-1">--请选择学历--</option>';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (id == data[i].userId) {
str += '<option selected value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
} else {
str += '<option value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
}
}
}
$("#xl").append(str);
layui.form.render(); //这里就是我们要渲染的地方了
}
})
}
//自有人员-最高学历字典下拉
function getOWNzgxl(id) {
$("#zgxl").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/users/getOWNType',
data: {
type:"xl"
},
dataType: 'json',
success: function (data) {
var str = '<option value="-1">--请选择学历--</option>';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (id == data[i].userId) {
str += '<option selected value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
} else {
str += '<option value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
}
}
}
$("#zgxl").append(str);
layui.form.render(); //这里就是我们要渲染的地方了
}
})
}
//自有人员-户口类型字典下拉
function getOWNhkxz(id) {
$("#hkxz").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/users/getOWNType',
data: {
type:"hkxz"
},
dataType: 'json',
success: function (data) {
var str = '<option value="-1">--请选择学历--</option>';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (id == data[i].userId) {
str += '<option selected value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
} else {
str += '<option value=\'' + data[i].userId + '\'>' + data[i].userName + '</option>';
}
}
}
$("#hkxz").append(str);
layui.form.render(); //这里就是我们要渲染的地方了
}
})
}
//新增
function insertWorker(formData) {
// 加载提示
var loadingMsg = parent.layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
var formUrl = ctxPath + "/workerOn";
$.ajax({
type: 'POST',
async: true, // 默认异步true,false表示同步
url: formUrl, // 请求地址
contentType: "application/json; charset=utf-8",
dataType: 'text', // 服务器返回数据类型
data: JSON.stringify(formData.field), //获取提交的表单字段
success: function (data) {
var dataJson = JSON.parse(data);
var res = dataJson.resMsg;
if(dataJson.obj != "1"){
layer.msg(res,{icon:2,time:2000});
layer.alert(res);
}else{
layer.msg(res,{icon:1,time:2000});
setTimeout("reloading()", 2100);
}
parent.layer.close(loadingMsg); //关闭提示层
},
error: function (XMLHttpRequest, textStatus, e) {
parent.layer.close(loadingMsg); //关闭提示层
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
}
//修改
function updateWorker(formData) {
// 加载提示
var loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
var formUrl = ctxPath + "/paySlip/updatePaySlip";
$.ajax({
type: 'POST',
async: false, // 默认异步true,false表示同步
url: formUrl, // 请求地址
contentType: "application/json; charset=utf-8",
dataType: 'json', // 服务器返回数据类型
data: JSON.stringify(formData.field), //获取提交的表单字段
success: function (data) {
layer.close(loadingMsg); // 关闭提示层
if (data.obj == "修改成功") {
parent.layer.msg("修改成功", {icon: 1});
setTimeout("reloading()", 2100);
} else if(data.resMsg !=""){
parent.layer.msg(data.resMsg, {icon: 2});
// setTimeout("reloading()", 2100);
} else {
parent.layer.msg(data.obj, {icon: 2});
setTimeout("reloading()", 2100);
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
}
// 表单赋值
function setData(data) {
console.log(data);
$("#id").val(data.id);
$("#id").val(data.id);
$("#name").val(data.name);
$("#idNumber").val(data.idNumber);
$("#phone").val(data.phone);
$("#month").val(data.month);
$("#basePay").val(data.basePay);
$("#monthPerPay").val(data.monthPerPay);
$("#quarterPerPay").val(data.quarterPerPay);
$("#yearPerPay").val(data.yearPerPay);
$("#quotaPay").val(data.quotaPay);
$("#overtimePay").val(data.overtimePay);
$("#countPay").val(data.countPay);
$("#festivalPay").val(data.festivalPay);
$("#foodPay").val(data.foodPay);
$("#certificatePay").val(data.certificatePay);
$("#hyperthermyPay").val(data.hyperthermyPay);
$("#nightPay").val(data.nightPay);
$("#healthPay").val(data.healthPay);
$("#securePay").val(data.securePay);
$("#qualityPay").val(data.qualityPay);
$("#projectPay").val(data.projectPay);
$("#feedPay").val(data.feedPay);
$("#advancedPay").val(data.advancedPay);
$("#praisePay").val(data.praisePay);
$("#otherPay").val(data.otherPay);
$("#secureFine").val(data.secureFine);
$("#qualityFine").val(data.qualityFine);
$("#otherFine").val(data.otherFine);
$("#payablePay").val(data.payablePay);
$("#fundMonth").val(data.fundMonth);
$("#socialPay").val(data.socialPay);
$("#fundPay").val(data.fundPay);
$("#retirement").val(data.retirement);
$("#treatment").val(data.treatment);
$("#unemployment").val(data.unemployment);
$("#illness").val(data.illness);
$("#socialDiffer").val(data.socialDiffer);
$("#fundFine").val(data.fundFine);
$("#fundDiffer").val(data.fundDiffer);
$("#personTotal").val(data.personTotal);
$("#preTax").val(data.preTax);
$("#personTax").val(data.personTax);
$("#foodFine").val(data.foodFine);
$("#realPay").val(data.realPay);
$("#orgName").val(data.orgName);
$("#typeName").val(data.typeName);
}
// 设置只读
function setReadOnly() {
$("#ssdw").attr("disabled","disabled");
$("#orgName").attr("disabled","disabled");
$("#rylx").attr("disabled", true);
$("#name").attr("readonly", true);
$("#idNumber").attr("readonly", true);
$("#lxdh").attr("readonly", true);
$("#age").attr("readonly", true);
$("#sex").attr("disabled", true);
$("#ryxz").attr("disabled", true);
$("#gw").attr("readonly", true);
$("#rzrq").attr("readonly", true);
$("#yhmc").attr("readonly", true);
$("#yhzh").attr("readonly", true);
$("#htOn").attr("readonly", true);
$("#htOff").attr("readonly", true);
$("#sbzy").attr("readonly", true);
$("#gjjzy").attr("readonly", true);
$("#be").attr("readonly", true);
$("#ywxOn").attr("readonly", true);
$("#ywxOff").attr("readonly", true);
$("#zgbyxx").attr("readonly", true);
$("#zgzy").attr("readonly", true);
$("#zgxl").attr("disabled", true);
$("#byxx").attr("readonly", true);
$("#zy").attr("readonly", true);
$("#xl").attr("disabled", true);
$("#hkxz").attr("disabled", true);
$("#hkdz").attr("readonly", true);
$("#jjlxr").attr("readonly", true);
$("#jjlxrdh").attr("readonly", true);
$("#jjlxrgx").attr("readonly", true);
}
// 取消只读
function cancelReadOnly() {
$("#ssdw").removeAttr("disabled");
$("#orgName").removeAttr("disabled");
$("#rylx").removeAttr("disabled");
$("#name").attr("readonly", false);
$("#idNumber").attr("readonly", false);
$("#lxdh").attr("readonly", false);
$("#age").attr("readonly", false);
$("#sex").removeAttr("disabled");
$("#ryxz").removeAttr("disabled");
$("#gw").attr("readonly", false);
$("#rzrq").attr("readonly", false);
$("#yhmc").attr("readonly", false);
$("#yhzh").attr("readonly", false);
$("#htOn").attr("readonly", false);
$("#htOff").attr("readonly", false);
$("#sbzy").attr("readonly", false);
$("#gjjzy").attr("readonly", false);
$("#be").attr("readonly", false);
$("#ywxOn").attr("readonly", false);
$("#ywxOff").attr("readonly", false);
$("#zgbyxx").attr("readonly", false);
$("#zgzy").attr("readonly", false);
$("#zgxl").removeAttr("disabled");
$("#byxx").attr("readonly", false);
$("#zy").attr("readonly", false);
$("#xl").removeAttr("disabled");
$("#hkxz").removeAttr("disabled");
$("#hkdz").attr("readonly", false);
$("#jjlxr").attr("readonly", false);
$("#jjlxrdh").attr("readonly", false);
$("#jjlxrgx").attr("readonly", false);
}
function Hide(){
$("#loginInformation").css("display","none");
$("#loginInformation #phone").attr("lay-verify","");
$("#loginInformation #userName").attr("lay-verify","");
}
function show(){
$("#loginInformation").css("display","");
$("#loginInformation #phone").attr("lay-verify","phone");
$("#loginInformation #userName").attr("lay-verify","userName");
}
//设置弹窗关闭
function reloading() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
window.parent.example.ajax.reload( null, false ); // 刷新页面
}