563 lines
19 KiB
JavaScript
563 lines
19 KiB
JavaScript
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();
|
||
} |