569 lines
20 KiB
JavaScript
569 lines
20 KiB
JavaScript
var idNumber;
|
|
var loadingMsg;
|
|
var trainFileNames = [];
|
|
var trainFilePaths = [];
|
|
var examFileNames = [];
|
|
var examFilePaths = [];
|
|
var assignmentTypeStatus = "";
|
|
|
|
var workTypeValue = "";
|
|
var workMethodValue = "";
|
|
var controlLevelValue = "";
|
|
var riskLevelValue = "";
|
|
var controlMethodsValue = "";
|
|
var isSupportValue = "";
|
|
layui.use(['layer', 'form', 'upload','laydate'], function () {
|
|
var laydate = layui.laydate;
|
|
var upload1 = layui.upload;
|
|
var upload2 = layui.upload;
|
|
var form = layui.form;
|
|
var layer = layui.layer;
|
|
|
|
|
|
//按钮样式
|
|
btnStyle();
|
|
|
|
// 渲染开始时间选择器
|
|
laydate.render({
|
|
elem: '#planStartTime',
|
|
type: 'datetime',
|
|
format: 'yyyy-MM-dd HH:mm',
|
|
fullPanel: true,
|
|
done: function(value) {
|
|
// 当选择开始时间大于结束时间,将结束时间置为空
|
|
var statrTime = value;
|
|
var endTime= $("#planEndTime").val();
|
|
if (statrTime != '') {
|
|
if (endTime != '') {
|
|
if (statrTime > endTime) {
|
|
$("#planEndTime").val('');
|
|
}
|
|
}
|
|
}
|
|
|
|
// 当选择开始时间后,更新结束时间选择器的最小值
|
|
// 当选择开始时间后,更新结束时间选择器的最小值
|
|
var endTimePicker = laydate.render({
|
|
elem: '#planEndTime',
|
|
type: 'datetime',
|
|
format: 'yyyy-MM-dd HH:mm',
|
|
fullPanel: true,
|
|
// 将开始时间作为结束时间选择器的最小值,包括时分
|
|
min: value,
|
|
// 设置结束日期最大值为下个月的最后一天
|
|
max: getNextMonthLastDay(),
|
|
done: function(value) {
|
|
var startTime = $("#planStartTime").val();
|
|
if (startTime != '' && value != '') {
|
|
if (value < startTime) {
|
|
$("#planStartTime").val('');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
// 设置开始日期最小值为下个月的第一天
|
|
min: getNextMonthFirstDay(),
|
|
// 设置开始日期最大值为下个月的最后一天
|
|
max: getNextMonthLastDay()
|
|
});
|
|
|
|
// 渲染结束时间选择器
|
|
laydate.render({
|
|
elem: '#planEndTime',
|
|
type: 'datetime',
|
|
format: 'yyyy-MM-dd HH:mm',
|
|
fullPanel: true,
|
|
// 设置结束日期最小值为下个月的第一天
|
|
min: getNextMonthFirstDay(),
|
|
// 设置结束日期最大值为下个月的最后一天
|
|
max: getNextMonthLastDay()
|
|
});
|
|
|
|
// 监听输入框值变化
|
|
//预估运检站投入人员数(人)
|
|
$('#stationNum').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('');
|
|
}
|
|
});
|
|
//预估需要外协高空人员数(人)
|
|
$('#highNum').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('');
|
|
}
|
|
});
|
|
//预估需要外协地面人员数(人)
|
|
$('#groundNum').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('');
|
|
}
|
|
});
|
|
|
|
$("#closeBt").click(function () {
|
|
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
|
parent.layer.close(index); //再执行关闭
|
|
});
|
|
|
|
// 验证成功后才会执行下面的操作
|
|
form.on('submit(formDemo)', function (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';
|
|
}
|
|
|
|
|
|
/**
|
|
* 新增
|
|
* @param formData
|
|
*/
|
|
function addData(formData) {
|
|
if (workTypeValue == "") {
|
|
layer.msg("请选择作业类型", {icon: 0})
|
|
return
|
|
}else if (workMethodValue == "") {
|
|
layer.msg("请选择作业方式", {icon: 0})
|
|
return
|
|
}else if (controlLevelValue == "") {
|
|
layer.msg("请选择管控层级", {icon: 0})
|
|
return
|
|
}else if (riskLevelValue == "") {
|
|
layer.msg("请选择风险等级", {icon: 0})
|
|
return
|
|
}else if (controlMethodsValue == "") {
|
|
layer.msg("请选择管控方式", {icon: 0})
|
|
return
|
|
}else if (isSupportValue == "") {
|
|
layer.msg("请选择是否需要外协人员支援", {icon: 0})
|
|
return
|
|
}else {
|
|
console.log(formData.field);
|
|
var allCheckboxStates = getAllCheckboxStates();
|
|
console.log(allCheckboxStates);
|
|
|
|
|
|
// 加载提示
|
|
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:{
|
|
"proName": $("#proName").val(),
|
|
"content": $("#content").val(),
|
|
"taskSourceId": $("#taskSourceId").val(),
|
|
"workType": workTypeValue,
|
|
"planStartTime": $("#planStartTime").val(),
|
|
"planEndTime": $("#planEndTime").val(),
|
|
"workMethod": workMethodValue,
|
|
"powerDevice": $("#powerDevice").val(),
|
|
"supervisorPhone": $("#supervisorPhone").val(),
|
|
"personLiablePhone": $("#personLiablePhone").val(),
|
|
"controlLevel": controlLevelValue,
|
|
"riskLevel": riskLevelValue,
|
|
|
|
"controlMethods": controlMethodsValue,
|
|
"constructionPlan": allCheckboxStates['AAA'],
|
|
"workGuideBook": allCheckboxStates['BBB'],
|
|
"workForm": allCheckboxStates['CCC'],
|
|
"workTicket": allCheckboxStates['DDD'],
|
|
|
|
"isSupport": isSupportValue,
|
|
"stationNum": $("#stationNum").val(),
|
|
"highNum": $("#highNum").val(),
|
|
"groundNum": $("#groundNum").val(),
|
|
"remark": $("#remark").val(),
|
|
"remarks": $("#remarks").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) {
|
|
var allCheckboxStates = getAllCheckboxStates();
|
|
// 加载提示
|
|
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(),
|
|
"proName": $("#proName").val(),
|
|
"content": $("#content").val(),
|
|
"taskSourceId": $("#taskSourceId").val(),
|
|
"workType": workTypeValue,
|
|
"planStartTime": $("#planStartTime").val(),
|
|
"planEndTime": $("#planEndTime").val(),
|
|
"workMethod": workMethodValue,
|
|
"powerDevice": $("#powerDevice").val(),
|
|
"supervisorPhone": $("#supervisorPhone").val(),
|
|
"personLiablePhone": $("#personLiablePhone").val(),
|
|
"controlLevel": controlLevelValue,
|
|
"riskLevel": riskLevelValue,
|
|
|
|
"controlMethods": controlMethodsValue,
|
|
"constructionPlan": allCheckboxStates['AAA'],
|
|
"workGuideBook": allCheckboxStates['BBB'],
|
|
"workForm": allCheckboxStates['CCC'],
|
|
"workTicket": allCheckboxStates['DDD'],
|
|
|
|
"isSupport": isSupportValue,
|
|
"stationNum": $("#stationNum").val(),
|
|
"highNum": $("#highNum").val(),
|
|
"groundNum": $("#groundNum").val(),
|
|
"remark": $("#remark").val(),
|
|
"remarks": $("#remarks").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 getAllCheckboxStates() {
|
|
var checkboxes = document.querySelectorAll('.bmscTrain input[type="checkbox"]');
|
|
var states = {};
|
|
checkboxes.forEach(function(checkbox) {
|
|
if (checkbox.checked){
|
|
states[checkbox.name] = 1;
|
|
}else {
|
|
states[checkbox.name] = 0;
|
|
}
|
|
});
|
|
console.log(states);
|
|
return states;
|
|
}
|
|
|
|
|
|
/**
|
|
* 按钮样式,以及取值
|
|
*/
|
|
function btnStyle() {
|
|
$('.btnOption1 > div').click(function () {
|
|
$(this).addClass('pass').siblings().removeClass('pass');
|
|
var value = $(this).data('value');
|
|
$(this).attr('value', value).siblings().attr('value', '');
|
|
workTypeValue = value;
|
|
});
|
|
|
|
$('.btnOption2 > div').click(function () {
|
|
$(this).addClass('pass').siblings().removeClass('pass');
|
|
var value = $(this).data('value');
|
|
$(this).attr('value', value).siblings().attr('value', '');
|
|
workMethodValue = value;
|
|
});
|
|
|
|
$('.btnOption3 > div').click(function () {
|
|
$(this).addClass('pass').siblings().removeClass('pass');
|
|
var value = $(this).data('value');
|
|
$(this).attr('value', value).siblings().attr('value', '');
|
|
controlLevelValue = value;
|
|
});
|
|
|
|
$('.btnOption4 > div').click(function () {
|
|
$(this).addClass('pass').siblings().removeClass('pass');
|
|
var value = $(this).data('value');
|
|
$(this).attr('value', value).siblings().attr('value', '');
|
|
riskLevelValue = value;
|
|
});
|
|
|
|
$('.btnOption5 > div').click(function () {
|
|
$(this).addClass('pass').siblings().removeClass('pass');
|
|
var value = $(this).data('value');
|
|
$(this).attr('value', value).siblings().attr('value', '');
|
|
controlMethodsValue = value;
|
|
});
|
|
|
|
$('.btnOption6 > div').click(function () {
|
|
$(this).addClass('pass').siblings().removeClass('pass');
|
|
var value = $(this).data('value');
|
|
$(this).attr('value', value).siblings().attr('value', '');
|
|
isSupportValue = value;
|
|
console.log(isSupportValue);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
|
$("#proName").val(data[0].proName);
|
|
$("#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', '');
|
|
}
|
|
});
|
|
|
|
$("#planStartTime").val(data[0].planStartTime);
|
|
$("#planEndTime").val(data[0].planEndTime);
|
|
// 首先移除所有选项的 pass 类
|
|
$('.btnOption2 > div').removeClass('pass');
|
|
// 根据 值 添加 pass 类和设置 value 属性
|
|
$('.btnOption2 > div').each(function () {
|
|
if ($(this).data('value') == data[0].workMethod) {
|
|
$(this).addClass('pass').attr('value', data[0].workMethod);
|
|
} else {
|
|
$(this).attr('value', '');
|
|
}
|
|
});
|
|
$("#powerDevice").val(data[0].powerDevice);
|
|
$("#supervisorPhone").val(data[0].supervisorPhone);
|
|
$("#personLiablePhone").val(data[0].personLiablePhone);
|
|
// 首先移除所有选项的 pass 类
|
|
$('.btnOption3 > div').removeClass('pass');
|
|
// 根据 值 添加 pass 类和设置 value 属性
|
|
$('.btnOption3 > div').each(function () {
|
|
if ($(this).data('value') == data[0].controlLevel) {
|
|
$(this).addClass('pass').attr('value', data[0].controlLevel);
|
|
} else {
|
|
$(this).attr('value', '');
|
|
}
|
|
});
|
|
// 首先移除所有选项的 pass 类
|
|
$('.btnOption4 > div').removeClass('pass');
|
|
// 根据 值 添加 pass 类和设置 value 属性
|
|
$('.btnOption4 > div').each(function () {
|
|
if ($(this).data('value') == data[0].riskLevel) {
|
|
$(this).addClass('pass').attr('value', data[0].riskLevel);
|
|
} else {
|
|
$(this).attr('value', '');
|
|
}
|
|
});
|
|
// 首先移除所有选项的 pass 类
|
|
$('.btnOption5 > div').removeClass('pass');
|
|
// 根据 值 添加 pass 类和设置 value 属性
|
|
$('.btnOption5 > div').each(function () {
|
|
if ($(this).data('value') == data[0].controlMethods) {
|
|
$(this).addClass('pass').attr('value', data[0].controlMethods);
|
|
} else {
|
|
$(this).attr('value', '');
|
|
}
|
|
});
|
|
|
|
var checkStatus = {};
|
|
console.log(data[0].constructionPlan);
|
|
console.log(data[0].workGuideBook);
|
|
console.log(data[0].workForm);
|
|
console.log(data[0].workTicket);
|
|
checkStatus['AAA'] = data[0].constructionPlan==1 ? true : false;
|
|
checkStatus['BBB'] = data[0].workGuideBook==1 ? true : false;
|
|
checkStatus['CCC'] = data[0].workForm==1 ? true : false;
|
|
checkStatus['DDD'] = data[0].workTicket==1 ? true : false;
|
|
setCheckboxStates(checkStatus);
|
|
console.log(checkStatus);
|
|
|
|
// 首先移除所有选项的 pass 类
|
|
$('.btnOption6 > div').removeClass('pass');
|
|
// 根据 值 添加 pass 类和设置 value 属性
|
|
$('.btnOption6 > div').each(function () {
|
|
if ($(this).data('value') == data[0].isSupport) {
|
|
$(this).addClass('pass').attr('value', data[0].isSupport);
|
|
} else {
|
|
$(this).attr('value', '');
|
|
}
|
|
});
|
|
$("#stationNum").val(data[0].stationNum);
|
|
$("#highNum").val(data[0].highNum);
|
|
$("#groundNum").val(data[0].groundNum);
|
|
$("#remark").val(data[0].remark);
|
|
$("#remarks").val(data[0].remarks);
|
|
}
|
|
|
|
// 根据提供的状态对象来设置复选框的状态
|
|
function setCheckboxStates(states) {
|
|
var checkboxes = document.querySelectorAll('.bmscTrain input[type="checkbox"]');
|
|
checkboxes.forEach(function(checkbox) {
|
|
if (states.hasOwnProperty(checkbox.name)) {
|
|
checkbox.checked = states[checkbox.name]; // 直接赋值布尔值
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 关闭页面 刷新页面
|
|
*/
|
|
function reloading() {
|
|
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
|
parent.layer.close(index); //再执行关闭
|
|
window.parent.location.reload();
|
|
} |