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

563 lines
19 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var idNumber;
var loadingMsg;
var trainFileNames = [];
var trainFilePaths = [];
var examFileNames = [];
var examFilePaths = [];
var staffType = "";
var tree;
layui.use(['layer', 'form', 'upload','laydate','tree'], function () {
var laydate = layui.laydate;
var upload = layui.upload;
var form = layui.form;
var layer = layui.layer;
tree = layui.tree;
$("#line").attr("disabled",true);
$('#area').attr('disabled', true);
$('#chonsenBtn').show()
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)
if(staffType==2){
$('#line').attr("disabled",false);
$('#area').attr('disabled', false);
$('#chonsenBtn').hide()
}
if(staffType==1){
$("#line").attr("disabled",true);
$('#area').attr('disabled', true);
$('#chonsenBtn').show()
}
form.render();
});
//文件上传
var uploadInst = upload.render({
elem: '#contractFile' //绑定元素
,url: '' //上传接口
,auto: false //选择文件后不自动上传
,bindAction: '#submitBt' //指向一个按钮触发上传
,choose: function(obj){
//将每次选择的文件追加到文件队列
var files = obj.pushFile();
//预读本地文件,如果是多文件,则会遍历。(不支持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]; //删除列表中对应的文件,一般在某个事件中使用
});
},
done: function(res){
//上传完毕回调
},
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,
// 将开始时间作为结束时间选择器的最小值,包括时分
min: value,
// 设置结束日期最大值为下个月的最后一天
max: getNextMonthLastDay(),
done: function(value) {
var startTime = $("#startTime").val();
if (startTime != '' && value != '') {
if (value < startTime) {
$("#startTime").val('');
}
}
}
});
},
// 设置开始日期最小值为下个月的第一天
min: getNextMonthFirstDay(),
// 设置开始日期最大值为下个月的最后一天
max: getNextMonthLastDay()
});
// 渲染结束时间选择器
laydate.render({
elem: '#endTime',
type: 'date',
format: 'yyyy-MM-dd',
fullPanel: true,
// 设置结束日期最小值为下个月的第一天
min: getNextMonthFirstDay(),
// 设置结束日期最大值为下个月的最后一天
max: getNextMonthLastDay()
});
//监听填写事件-身份证号码
$('#idCard').on('input', function() {
let inputVal = $(this).val();
let IDNu = document.getElementById('idCard');
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);
$('#ages').val(age)
//性别
let sew = ''
var sec = inputVal.substring(16, 17);
if (sec % 2 == 0) {
sew = "女";
} else {
sew = "男";
}
$('#sex').val(sew)
}
});
//监听填写事件
$('#payAll').on('input', function() {
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('');
}
});
//监听填写事件
$('#payDay').on('input', function() {
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({
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
phoneNum: [/^1[3-9]\d{9}$/,'手机号格式不正确'],
idCard:[/^\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}))$/,'身份证号码不正确']
});
//取消按钮
$("#closeBt").click(function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
});
// 提交按钮
// 验证成功后才会执行下面的操作
form.on('submit(formDemo)', function (data) {
console.log(data)
// if($("#id").val()==''){
// addData(data); // 新增
// }else{
// updateData(data); // 修改
// }
});
});
/**
* 获取下个月第一天
* @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)
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 data = [
{
title: "丽江运检站",id: 1,spread:true,
children: [{title: "±500kV永富直流线"}, {title: "500kV草宝甲线 "},{title: "500kV草宝乙线 "}, {title: "500kV大宝回线"}, {title: "500kV大宝Ⅱ回线"}]
},
{
title: "迪庆运检站",id: 1,spread:true,
children: [{title: "±500kV永富直流线"}, {title: "500kV草宝甲线 "},{title: "500kV草宝乙线 "}, {title: "500kV大宝回线"}, {title: "500kV大宝Ⅱ回线"}]
},
{
title: "昆明运检一站",id: 1,spread:true,
children: [{title: "±500kV永富直流线"}, {title: "500kV草宝甲线 "},{title: "500kV草宝乙线 "}, {title: "500kV大宝回线"}, {title: "500kV大宝Ⅱ回线"}]
},
{
title: "昆明运检二站",id: 1,spread:true,
children: [{title: "±500kV永富直流线"}, {title: "500kV草宝甲线 "},{title: "500kV草宝乙线 "}, {title: "500kV大宝回线"}, {title: "500kV大宝Ⅱ回线"}]
},
{
title: "怒江运检站",id: 1,spread:true,
children: [{title: "±500kV永富直流线"}, {title: "500kV草宝甲线 "},{title: "500kV草宝乙线 "}, {title: "500kV大宝回线"}, {title: "500kV大宝Ⅱ回线"}]
},
{
title: "怒江运检站",id: 1,spread:true,
children: [{title: "±500kV永富直流线"}, {title: "500kV草宝甲线 "},{title: "500kV草宝乙线 "}, {title: "500kV大宝回线"}, {title: "500kV大宝Ⅱ回线"}]
},
];
var renderTree = function (data) {
tree.render({
elem: '#lineTree',
data: data,
id: 'lineTree',
showCheckbox: false,
accordion: false,
click: function (obj) {
console.log(obj);
initGtList([])
}
});
}
renderTree(data);
});
}
function initGtList(arr){
layui.use(['transfer'], function () {
var transfer = layui.transfer ;
arr = [
{value:'1',title:'N1',name:'N111-500kV草宝甲线'},
{value:'2',title:'N2',name:'N111-500kV草宝甲线'},
{value:'3',title:'N3',name:'N111-500kV草宝甲线'},
{value:'4',title:'N4',name:'N111-500kV草宝甲线'},
{value:'5',title:'N5',name:'N111-500kV草宝甲线'},
{value:'6',title:'N6',name:'N111-500kV草宝甲线'},
{value:'7',title:'N7',name:'N111-500kV草宝甲线'},
{value:'8',title:'N8',name:'N111-500kV草宝甲线'},
{value:'9',title:'N9',name:'N111-500kV草宝甲线'},
{value:'10',title:'N10',name:'N111-500kV草宝甲线'},
{value:'11',title:'N11',name:'N111-500kV草宝甲线'},
{value:'12',title:'N12',name:'N111-500kV草宝甲线'},
{value:'13',title:'N13',name:'N111-500kV草宝甲线'},
]
transfer.render({
elem: '#gtList',
data: arr,
showSearch: true,
title: ['杆塔', '已选'] //自定义标题
})
});
}
/**
* 新增
* @param formData
*/
function addData(formData) {
if (staffType == "") {
layer.msg("请选择人员类型", {icon: 0})
return
}else {
console.log(formData.field);
// 加载提示
// let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
// let formUrl = oiPlanUrl + "/monthlyPlanSubmission/add";
// $.ajax({
// type: 'POST',
// async: false, // 默认异步true,false表示同步
// url: formUrl, // 请求地址
// data:{
// "userName": $("#userName").val(),
// "idCard": $("#idCard").val(),
// "sex": $("#sex").val(),
// "ages": $("#ages").val(),
// "phone": $("#phone").val(),
// "address": $("#address").val(),
// "health": $("#health").val(),
// "level": $("#level").val(),
// "line": $("#line").val(),
// "area": $("#area").val(),
// "payAll": $("#payAll").val(),
// "payDay": $("#payDay").val(),
// "startTime": $("#startTime").val(),
// "endTime": $("#endTime").val(),
// },
// success: function (data) {
// layer.close(loadingMsg); // 关闭提示层
// if(data.code == 200){
// top.layer.msg("添加成功");
// reloading();
// }else{
// layer.alert(data.msg);
// }
// },
// error: function (XMLHttpRequest, textStatus, e) {
// layer.close(loadingMsg);
// layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
// }
// });
}
}
/**
* 修改
* @param formData
* @returns {boolean}
*/
function updateData(formData) {
// 加载提示
let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
let formUrl = oiPlanUrl + "/monthlyPlanSubmission/update";
$.ajax({
type: 'POST',
async: false, // 默认异步true,false表示同步
url: formUrl, // 请求地址
data:{
"id": $("#id").val(),
"userName": $("#userName").val(),
"idCard": $("#idCard").val(),
"sex": $("#sex").val(),
"ages": $("#ages").val(),
"phone": $("#phone").val(),
"address": $("#address").val(),
"health": $("#health").val(),
"level": $("#level").val(),
"staffType": staffType,
"startTime": $("#startTime").val(),
"endTime": $("#endTime").val(),
},
success: function (data) {
layer.close(loadingMsg); // 关闭提示层
if(data.code == 200){
top.layer.msg("修改成功");
reloading();
}else{
layer.alert(data.msg);
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.close(loadingMsg);
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
}
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); //再执行关闭
}
});
}
/**
* 获取任务来源-下拉数据
* @param id
* @param key
*/
function getTaskSource(id,key) {
$("#"+id).empty();
$.ajax({
type: 'get',
url: oiPlanUrl + '/monthlyPlanSubmission/getTaskSource',
async: false,
success: function (data) {
if(data.code == 200){
var html = ''
for (let i = 0; i < data.data.length; i++) {
if (key == data.data[i].id) {
html += '<option selected value=\'' + data.data[i].id + '\'>' + data.data[i].name + '</option>';
} else {
html += '<option value=\'' + data.data[i].id + '\'>' + data.data[i].name + '</option>';
}
}
$("#"+id).append(html);
}else{
$("#"+id).append('<option value="">--无数据--</option>');
}
layui.form.render();
},
error: function (err) {
console.log("获取字典表出错:", err);
}
});
}
/**
* 隐藏提交按钮和关闭按钮
*/
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';
}
}
/**
* 设置数据
* @param data
*/
function setData(data) {
console.log(data);
$("#id").val(data[0].id);
$("#userName").val(data[0].userName);
$("#content").val(data[0].content);
// getTaskSource("taskSourceId",data[0].taskSourceId);
// $("#taskSourceId").val(data[0].taskSourceId);
// 首先移除所有选项的 pass 类
$('.btnOption1 > div').removeClass('pass');
// 根据 值 添加 pass 类和设置 value 属性
$('.btnOption1 > div').each(function () {
if ($(this).data('value') === data[0].workType) {
$(this).addClass('pass').attr('value', data[0].workType);
} else {
$(this).attr('value', '');
}
});
$("#startTime").val(data[0].startTime);
$("#endTime").val(data[0].endTime);
}
/**
* 关闭页面 刷新页面
*/
function reloading() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
window.parent.location.reload();
}