yn_hxy_web/hxy-web/js/wireManager/staff/staffAdd.js

664 lines
20 KiB
JavaScript
Raw Normal View History

2024-07-26 18:15:22 +08:00
var idNumber;
var loadingMsg;
var trainFileNames = [];
var trainFilePaths = [];
var examFileNames = [];
var examFilePaths = [];
var staffType = "";
var tree;
2024-08-20 10:42:21 +08:00
var transfer;
var formSelects;
var olddata;
2024-08-22 13:57:12 +08:00
var purl="";
var pname="";
var filedata;
var chosenum=0;
2024-08-20 10:42:21 +08:00
layui.use(['element','layer','transfer', 'form', 'upload','laydate','tree'], function () {
2024-07-26 18:15:22 +08:00
var laydate = layui.laydate;
var upload = layui.upload;
var form = layui.form;
var layer = layui.layer;
tree = layui.tree;
2024-08-20 10:42:21 +08:00
formSelects= layui.formSelects;
transfer = layui.transfer ;
formSelects.disabled('proName', true);
$('#gtName').attr('disabled', true);
$('#chonsenBtn').show()
if(olddata){
setData2(olddata);
}
2024-07-26 18:15:22 +08:00
form.render();
//人员类型选择
$('.btnOption1 > div').click(function () {
$(this).addClass('pass').siblings().removeClass('pass');
var value = $(this).data('value');
$(this).attr('value', value).siblings().attr('value', '');
staffType = value;
console.log(staffType)
2024-08-20 10:42:21 +08:00
if(staffType==1){
formSelects.disabled('proName', false);
formSelects.render()
initProSelect();
$('#gtName').attr('disabled', false);
2024-07-26 18:15:22 +08:00
$('#chonsenBtn').hide()
2024-08-20 10:42:21 +08:00
$("#userType").val(1);
2024-07-26 18:15:22 +08:00
}
2024-08-20 10:42:21 +08:00
if(staffType==0){
formSelects.disabled('proName', true);
$('#gtName').attr('disabled', true);
2024-07-26 18:15:22 +08:00
$('#chonsenBtn').show()
2024-08-20 10:42:21 +08:00
$("#userType").val(0);
2024-07-26 18:15:22 +08:00
}
form.render();
});
//文件上传
var uploadInst = upload.render({
elem: '#contractFile' //绑定元素
2024-08-22 18:00:55 +08:00
,url: FILE_URL + "/file/uploadmake" //上传接口
2024-07-26 18:15:22 +08:00
,auto: false //选择文件后不自动上传
2024-08-20 10:42:21 +08:00
,multiple: true //是否允许多文件上传默认未false
,dataType: "json"
2024-08-22 13:57:12 +08:00
,exts: 'pdf'
2024-08-20 10:42:21 +08:00
,number: 1 //最大上传数量
,size: 1024 * 5 //最大文件大小单位k
2024-08-22 13:57:12 +08:00
,bindAction: '#hideUpload1' //指向一个按钮触发上传
2024-07-26 18:15:22 +08:00
,choose: function(obj){
//将每次选择的文件追加到文件队列
var files = obj.pushFile();
2024-08-22 13:57:12 +08:00
chosenum=1;
2024-07-26 18:15:22 +08:00
//预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
obj.preview(function(index, file, result){
console.log(index); //得到文件索引
console.log(file); //得到文件对象
console.log(result); //得到文件base64编码比如图片
//这里还可以做一些 append 文件列表 DOM 的操作
//obj.upload(index, file); //对上传失败的单个文件重新上传,一般在某个事件中使用
//delete files[index]; //删除列表中对应的文件,一般在某个事件中使用
});
},
2024-08-20 10:42:21 +08:00
before: function (obj) {
this.data = {
photoType: "hxy"
};
},
2024-07-26 18:15:22 +08:00
done: function(res){
2024-08-20 10:42:21 +08:00
console.log(res,"upload");
2024-08-22 13:57:12 +08:00
purl=purl+res.data.url+",";
pname=pname+res.data.name+",";
2024-08-22 17:08:53 +08:00
$("#fileName").val(res.data.name);
$("#filePath").val(res.data.url);
$("#pdfPath").val(res.data.url);
2024-07-26 18:15:22 +08:00
},
2024-08-22 13:57:12 +08:00
allDone: function (data) {
var userType=$("#userType").val();
if(userType==1){
var proid="";
var dd=formSelects.value('proName', 'all');
console.log(dd,"formSelects");
if(dd.length>0){
$.each(dd,function(index,value){
proid=proid+value.value+",";
});
filedata.field.proId=proid;
}else{
layer.msg("请选择工程")
return;
}
}
if($("#id").val()==''){
addData(filedata); // 新增
}else{
updateData(filedata); // 修改
}
},
2024-07-26 18:15:22 +08:00
error: function(){
//请求异常回调
}
});
// 渲染开始时间选择器
laydate.render({
elem: '#startTime',
type: 'date',
format: 'yyyy-MM-dd',
fullPanel: true,
done: function(value) {
// 当选择开始时间大于结束时间,将结束时间置为空
var statrTime = value;
var endTime= $("#endTime").val();
if (statrTime != '') {
if (endTime != '') {
if (statrTime > endTime) {
$("#endTime").val('');
}
}
}
// 当选择开始时间后,更新结束时间选择器的最小值
// 当选择开始时间后,更新结束时间选择器的最小值
var endTimePicker = laydate.render({
elem: '#endTime',
type: 'date',
format: 'yyyy-MM-dd',
fullPanel: true,
// 将开始时间作为结束时间选择器的最小值,包括时分
2024-08-20 10:42:21 +08:00
// min: value,
// // 设置结束日期最大值为下个月的最后一天
// max: getNextMonthLastDay(),
2024-07-26 18:15:22 +08:00
done: function(value) {
var startTime = $("#startTime").val();
if (startTime != '' && value != '') {
if (value < startTime) {
$("#startTime").val('');
}
}
}
});
},
// 设置开始日期最小值为下个月的第一天
2024-08-20 10:42:21 +08:00
// min: getNextMonthFirstDay(),
2024-07-26 18:15:22 +08:00
// 设置开始日期最大值为下个月的最后一天
2024-08-20 10:42:21 +08:00
// max: getNextMonthLastDay()
2024-07-26 18:15:22 +08:00
});
// 渲染结束时间选择器
laydate.render({
elem: '#endTime',
type: 'date',
format: 'yyyy-MM-dd',
fullPanel: true,
// 设置结束日期最小值为下个月的第一天
2024-08-20 10:42:21 +08:00
// min: getNextMonthFirstDay(),
2024-07-26 18:15:22 +08:00
// 设置结束日期最大值为下个月的最后一天
2024-08-20 10:42:21 +08:00
// max: getNextMonthLastDay()
2024-07-26 18:15:22 +08:00
});
//监听填写事件-身份证号码
2024-08-20 10:42:21 +08:00
$('#idNumber').on('input', function() {
2024-07-26 18:15:22 +08:00
let inputVal = $(this).val();
2024-08-20 10:42:21 +08:00
let IDNu = document.getElementById('idNumber');
2024-07-26 18:15:22 +08:00
if (inputVal==''){
$(this).val('');
}
var re =/^\d{6}(((19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}([0-9]|x|X))|(\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}))$/;
if (re.test(inputVal)) {
// layer.msg('身份证号码填写完成');
//出生日期
let age = inputVal.substring(6, 10) + "-" + inputVal.substring(10, 12) + "-" + inputVal.substring(12, 14);
2024-08-20 10:42:21 +08:00
$('#beBorn').val(age)
2024-07-26 18:15:22 +08:00
//性别
let sew = ''
var sec = inputVal.substring(16, 17);
if (sec % 2 == 0) {
sew = "女";
} else {
sew = "男";
}
$('#sex').val(sew)
}
});
//监听填写事件
2024-08-20 10:42:21 +08:00
$('#wagesMeasure').on('input', function() {
2024-07-26 18:15:22 +08:00
var inputVal = $(this).val();
if (inputVal==''){
$(this).val('');
}
// 转换为数字,并检查是否超出范围
var numVal = Number(inputVal);
if (isNaN(numVal) || numVal < 0 || numVal > 10000) {
// 如果值不合法,清空输入框
layer.msg('请输入不超过10000的正整数', {icon: 5});
$(this).val('');
}
});
//监听填写事件
2024-08-20 10:42:21 +08:00
$('#wagesDay').on('input', function() {
2024-07-26 18:15:22 +08:00
var inputVal = $(this).val();
if (inputVal==''){
$(this).val('');
}
// 转换为数字,并检查是否超出范围
var numVal = Number(inputVal);
if (isNaN(numVal) || numVal < 0 || numVal > 10000) {
// 如果值不合法,清空输入框
layer.msg('请输入不超过10000的正整数', {icon: 5});
$(this).val('');
}
});
form.verify({
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
2024-08-20 10:42:21 +08:00
tel: [/^1[3-9]\d{9}$/,'手机号格式不正确'],
idNumber:[/^\d{6}(((19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}([0-9]|x|X))|(\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}))$/,'身份证号码不正确']
2024-07-26 18:15:22 +08:00
});
//取消按钮
$("#closeBt").click(function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
});
// 提交按钮
// 验证成功后才会执行下面的操作
form.on('submit(formDemo)', function (data) {
2024-08-22 13:57:12 +08:00
filedata=data;
if($("#id").val()==''){
if(chosenum==0){
layer.msg("请上传附件!")
2024-08-20 10:42:21 +08:00
return;
}
2024-08-22 13:57:12 +08:00
$("#hideUpload1").trigger("click");
}else{
updateData(data); // 修改
2024-08-20 10:42:21 +08:00
}
2024-07-26 18:15:22 +08:00
});
});
2024-08-20 10:42:21 +08:00
function initProSelect(arr){
2024-08-22 15:30:31 +08:00
var yj_id=localStorage.getItem("oneselectyj");
2024-08-20 10:42:21 +08:00
$.ajax({
type:"post",
url : PATH_URL + "/personbase/getProDetail",
data:{
id:yj_id
},
dataType:"json",
success:function(res){
var data=[];
for(var i=0;i<res.data.length;i++){
var obj={};
obj.value=res.data[i].id;
obj.name=res.data[i].title;
data.push(obj)
}
formSelects.data('proName', 'local', {
arr: data
});
try{
var arr=$("#proId").val().split(",");
formSelects.value('proName', arr);
}catch(e){}
},
error:function(data){
}
});
}
2024-07-26 18:15:22 +08:00
/**
* 获取下个月第一天
* @returns {string}
*/
function getNextMonthFirstDay() {
var today = new Date();
var nextMonth = new Date(today.getFullYear(), today.getMonth() + 1, 1);
return nextMonth.getFullYear() + '-' + (nextMonth.getMonth() + 1) + '-01 00:00';
}
/**
* 获取下个月最后一天
* @returns {string}
*/
function getNextMonthLastDay() {
var today = new Date();
var nextMonth = new Date(today.getFullYear(), today.getMonth() + 2, 0);
return nextMonth.getFullYear() + '-' + (nextMonth.getMonth() + 1) + '-' + nextMonth.getDate() + ' 23:59';
}
//打开人员选择工程弹窗
function openChosenBox(){
var height = '90%';
var width = '60%';
var index = layer.open({
title: [`选择工程、杆塔 `, 'color:#3B70A1;background-color:#fff;font-size:20px'],
type: 1,
content: $("#chosenLine").html(),
btn: ['确认', '取消'],
closeBtn: 1,
area: [width, height],
success: function (layero, index) {
initTree()
/*var myIframe = parent.window[layero.find('iframe')[0]['name']];
var json = {'proIds': proId}
myIframe.setParams(json)*/
},
yes: function (index, layero) {//确认
console.log(1)
2024-08-20 10:42:21 +08:00
var getData = transfer.getData('gtList');
var pros=[];
var gts=[];
$.each(getData,function(index,item){
pros.push(item.proName);
gts.push(item.value);
})
var uniqueproArray = $.grep(pros, function (item, index) {
return index === $.inArray(item, pros);
});
var uniquegtsArray = $.grep(gts, function (item, index) {
return index === $.inArray(item, gts);
});
var area="";
$.each(uniqueproArray,function(index,item){
var gt="";
$.each(getData,function(index1,item1){
if(item==item1.proName){
gt=gt+item1.gtName+"/";
}
})
area=area+item+"("+gt+");"
})
var gtid="";
$.each(uniquegtsArray,function(index,item){
gtid=gtid+item+",";
})
$("#gtName").val(area);
$("#gtId").val(gtid);
2024-07-26 18:15:22 +08:00
layer.close(index);
},
btn2: function (index, layero) {//取消
console.log(2)
layer.close(index);
},
cancel: function(index, layero){//关闭
console.log(3)
layer.close(index);
},
});
}
//工程树Tree
function initTree(){
layui.use(['tree'], function () {
var tree = layui.tree;
var renderTree = function (data) {
tree.render({
elem: '#lineTree',
data: data,
id: 'lineTree',
showCheckbox: false,
accordion: false,
click: function (obj) {
console.log(obj);
2024-08-20 10:42:21 +08:00
initGtList(obj.data.id);
2024-07-26 18:15:22 +08:00
}
});
}
2024-08-22 15:30:31 +08:00
var yj_id=localStorage.getItem("oneselectyj");
2024-08-20 10:42:21 +08:00
console.log(yj_id,"yj_id");
$.ajax({//id获取详情打开弹窗传值子页面
type: 'post',
url: PATH_URL + "/personbase/getTreeDetail",
dataType: 'json',
data: {
id: yj_id
},
success: function (data) {
renderTree(data.data);
}
})
2024-07-26 18:15:22 +08:00
});
}
2024-08-20 10:42:21 +08:00
function initGtList(id){
var gtdata=[];
try{
gtdata=transfer.getData('gtList');
}catch(e){}
$.ajax({//id获取详情打开弹窗传值子页面
type: 'post',
url: PATH_URL + "/personbase/getGtDetail",
dataType: 'json',
data: {
id: id,
userId:$("#id").val()
},
success: function (data) {
var newvalue=[];
var newdata=[];
if(gtdata.length>0){
$.each(gtdata,function(index,item){
item.disabled=false;
newvalue.push(item.value);
newdata.push(item);
});
$.each(data.data,function(index,item){
var f=0;
$.each(newdata,function(index1,item1){
if(item.value==item1.value){
f=1;
}
});
if(f==0){
newdata.push(item);
}
});
}else if(data.datad.length>0){
gtdata=data.datad;
$.each(gtdata,function(index,item){
item.disabled=false;
newvalue.push(item.value);
newdata.push(item);
});
$.each(data.data,function(index,item){
var f=0;
$.each(newdata,function(index1,item1){
if(item.value==item1.value){
f=1;
}
});
if(f==0){
newdata.push(item);
}
});
}else{
newdata=data.data;
}
transfer.render({
elem: '#gtList',
data: newdata,
value:newvalue,
showSearch: true,
id: 'gtList',
title: ['杆塔', '已选'] //自定义标题
,onchange: function(obj, index){
var arr = ['左边', '右边'];
// layer.alert('来自 <strong>'+ arr[index] + '</strong> 的数据:'+ JSON.stringify(obj)); //获得被穿梭时的数据
}
})
console.log(transfer.getData('gtList'))
}
})
2024-07-26 18:15:22 +08:00
}
/**
* 新增
* @param formData
*/
function addData(formData) {
2024-08-22 13:57:12 +08:00
if(purl.length=0){
2024-08-20 10:42:21 +08:00
layer.msg("请上传合同附件!");
return;
}
2024-07-26 18:15:22 +08:00
// 加载提示
2024-08-20 10:42:21 +08:00
let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址file
let formUrl = PATH_URL + "/personbase/insertUser";
2024-08-22 13:57:12 +08:00
formData.field.pdfPath=purl;
formData.field.fileName=pname;
2024-08-20 10:42:21 +08:00
$.ajax({
type: 'POST',
async: false, // 默认异步true,false表示同步
url: formUrl, // 请求地址
data:formData.field,
success: function (data) {
layer.close(loadingMsg); // 关闭提示层
if(data.code == 200){
layer.msg("新增成功");
reloading();
}else{
layer.alert(data.msg);
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.close(loadingMsg);
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
2024-07-26 18:15:22 +08:00
}
/**
* 修改
* @param formData
* @returns {boolean}
*/
function updateData(formData) {
// 加载提示
let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
2024-08-20 10:42:21 +08:00
let formUrl = PATH_URL + "/personbase/updateUser";
2024-07-26 18:15:22 +08:00
$.ajax({
type: 'POST',
async: false, // 默认异步true,false表示同步
url: formUrl, // 请求地址
2024-08-20 10:42:21 +08:00
data:formData.field,
2024-07-26 18:15:22 +08:00
success: function (data) {
layer.close(loadingMsg); // 关闭提示层
if(data.code == 200){
2024-08-22 17:08:53 +08:00
// layer.msg("修改成功");
reloading();
2024-07-26 18:15:22 +08:00
}else{
layer.alert(data.msg);
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.close(loadingMsg);
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
}
/**
* 隐藏提交按钮和关闭按钮
*/
function hideSubmit() {
// 使用getElementById根据ID选择按钮
var submitButton = document.getElementById('submitBt');
var closeButton = document.getElementById('closeBt');
// 如果按钮存在,则隐藏它
if (submitButton) {
submitButton.style.display = 'none';
}
if (closeButton) {
closeButton.style.display = 'none';
}
}
2024-08-20 10:42:21 +08:00
function setData(data){
olddata=data;
}
2024-07-26 18:15:22 +08:00
/**
* 设置数据
* @param data
*/
2024-08-20 10:42:21 +08:00
function setData2(data) {
2024-07-26 18:15:22 +08:00
console.log(data);
2024-08-20 10:42:21 +08:00
$("#id").val(data.id);
$("#userName").val(data.userName);
$("#idNumber").val(data.idNumber);
$("#sex").val(data.sex);
$("#beBorn").val(data.beBorn);
$("#tel").val(data.tel);
$("#address").val(data.address);
$("#healthStatus").val(data.healthStatus);
$("#degree").val(data.degree);
$("#gtName").val(data.gtName);
$("#wagesMeasure").val(data.wagesMeasure);
$("#wagesDay").val(data.wagesDay);
$("#startTime").val(data.startTime);
$("#endTime").val(data.endTime);
$("#bank").val(data.bank);
$("#bankCard").val(data.bankCard);
$("#unionpayNum").val(data.unionpayNum);
$("#bankBranch").val(data.bankBranch);
2024-08-22 17:08:53 +08:00
$("#fileName").val(data.fileName);
$("#filePath").val(data.filePath);
$("#pdfPath").val(data.pdfPath);
2024-07-26 18:15:22 +08:00
// getTaskSource("taskSourceId",data[0].taskSourceId);
// $("#taskSourceId").val(data[0].taskSourceId);
// 首先移除所有选项的 pass 类
$('.btnOption1 > div').removeClass('pass');
// 根据 值 添加 pass 类和设置 value 属性
$('.btnOption1 > div').each(function () {
2024-08-20 10:42:21 +08:00
console.log($(this).data('value'),"bot");
if ($(this).data('value') == data.userType) {
$(this).addClass('pass').attr('value', data.userType);
2024-07-26 18:15:22 +08:00
} else {
$(this).attr('value', '');
}
});
2024-08-20 10:42:21 +08:00
$("#userType").val(data.userType);
if(data.userType==1){
$("#proId").val(data.proId);
// formSelects.disabled('proName', false);
initProSelect();
$('#gtName').attr('disabled', false);
$('#chonsenBtn').hide()
}
if(data.userType==0){
$("#gtId").val(data.gtId);
formSelects.disabled('proName', true);
$('#gtName').attr('disabled', true);
$('#chonsenBtn').show()
}
2024-07-26 18:15:22 +08:00
}
/**
* 关闭页面 刷新页面
*/
function reloading() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
window.parent.location.reload();
2024-08-20 10:42:21 +08:00
}
function importData() {
var fileData = new FormData();
fileData.append('file', $('#file')[0].files[0]);
fileData.append('remark', $("#remark").val());
fileData.append('trainFileName', trainFileNames.toString());
fileData.append('trainFilePath', trainFilePaths.toString());
fileData.append('examFileName', examFileNames.toString());
fileData.append('examFilePath', examFilePaths.toString());
// 加载提示
loadingMsg = top.layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
var formUrl = oiPlanUrl + "/offlineResUpload/importData";
$.ajax({
type: 'POST',
url: formUrl, // 请求地址
data: fileData,
processData: false,
contentType: false,
success: function (data) {
top.layer.close(loadingMsg); //再执行关闭
if (data.code == 200) {
top.layer.alert(data.msg);
reloading();
} else {
top.layer.alert(data.msg, {icon: 2});
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
top.layer.close(addLoadingMsg); //再执行关闭
}
});
}