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 += ''; } else { html += ''; } } $("#"+id).append(html); }else{ $("#"+id).append(''); } 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(); }