From 12a55f235a9d58674f980ff02555f3b36494b185 Mon Sep 17 00:00:00 2001 From: lSun <15893999301@qq.com> Date: Mon, 28 Apr 2025 15:58:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=AE=A1=E7=90=86-=E7=BA=BF?= =?UTF-8?q?=E8=B7=AF=E5=B7=A5=E7=A8=8B=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mappers/basic/TbSpanTowerMapper.xml | 2 +- .../mappers/basic/TbThreeSpanMapper.xml | 2 +- .../lineManagement/child/threeSpanFormTemp.js | 402 ++++++++++++------ .../lineManagement/child/threeSpanList.js | 91 +++- .../child/threeSpanFormTemp.html | 123 +++--- .../lineManagement/child/threeSpanList.html | 2 +- 6 files changed, 431 insertions(+), 191 deletions(-) diff --git a/src/main/resources/mappers/basic/TbSpanTowerMapper.xml b/src/main/resources/mappers/basic/TbSpanTowerMapper.xml index 4643131..5a96d61 100644 --- a/src/main/resources/mappers/basic/TbSpanTowerMapper.xml +++ b/src/main/resources/mappers/basic/TbSpanTowerMapper.xml @@ -12,7 +12,7 @@ baidu_lon, baidu_lat, sort, - is_actvice + is_active #{threeSpanId}, diff --git a/src/main/resources/mappers/basic/TbThreeSpanMapper.xml b/src/main/resources/mappers/basic/TbThreeSpanMapper.xml index c04cd29..ec66bec 100644 --- a/src/main/resources/mappers/basic/TbThreeSpanMapper.xml +++ b/src/main/resources/mappers/basic/TbThreeSpanMapper.xml @@ -19,7 +19,7 @@ highway_width, create_time, create_user_id, - is_actvice + is_active #{proId}, diff --git a/src/main/resources/static/js/basic/lineManagement/child/threeSpanFormTemp.js b/src/main/resources/static/js/basic/lineManagement/child/threeSpanFormTemp.js index 0441377..4fd2482 100644 --- a/src/main/resources/static/js/basic/lineManagement/child/threeSpanFormTemp.js +++ b/src/main/resources/static/js/basic/lineManagement/child/threeSpanFormTemp.js @@ -1,12 +1,13 @@ -let form, layer, util,laydate, idParam, phoneParam; +let form, layer, util,laydate, idParam,proId; let arr = ['background', 'web', 'mobile', 'wx']; let background, web, mobile, wx; -let data = [], appResList = []; +let data = [], appResList = [], towerList = []; let startDate, endDate; function setParams(params) { console.log(params) idParam = JSON.parse(params).id; + proId = JSON.parse(params).proId; layui.use(['form', 'layer', 'util', 'laydate'], function () { form = layui.form; layer = layui.layer; @@ -14,140 +15,200 @@ function setParams(params) { laydate = layui.laydate; var $ = layui.jquery; - console.log(idParam + "idParam") + crossLineFields() if (idParam) { getThreeSpanById(); - } else { - // 确保默认选中跨线路并触发相关验证规则 - $('.span-type-option[data-type="cross-line"]').trigger('click'); } // 初始化表单 form.render(); loadTowerOptions(); - // 跨越类型切换 - $('.span-type-option').click(function() { + $('.span-type-option').on('click', function() { $('.span-type-option').removeClass('active'); $(this).addClass('active'); let type = $(this).data('type'); - - // 隐藏所有输入框 - $('#crossLineFields, #crossPublicFields, #crossRailwayFields').hide(); - // 移除所有验证规则 - $('input[name^="upper"], input[name^="lower"], input[name^="road"], input[name^="railway"]').removeAttr('lay-verify'); - - // 显示对应的输入框并设置验证规则 + switch(type) { case 'cross-line': $('#crossLineFields').show(); - $('input[name="upperLine"], input[name="lowerLine"]').attr('lay-verify', 'required'); + $('#crossPublicFields').hide(); + $('#crossRailwayFields').hide(); + crossLineFields() break; case 'cross-public': + $('#crossLineFields').hide(); $('#crossPublicFields').show(); - $('input[name="roadName"], input[name="roadLevel"]').attr('lay-verify', 'required'); + $('#crossRailwayFields').hide(); + crossPublicFields() break; case 'cross-railway': + $('#crossLineFields').hide(); + $('#crossPublicFields').hide(); $('#crossRailwayFields').show(); - $('input[name="railwayName"], input[name="railwayType"]').attr('lay-verify', 'required'); + crossRailwayFields() break; } + form.render(); }); // 监听杆塔选择 form.on('select(towerSelect)', function(data) { - // 这里可以根据选择的杆塔自动填写相关信息 if(data.value) { - getTowerInfo(data.value); + // 获取当前选中的索引 + let currentIndex = -1; + for(let i = 0; i < towerList.length; i++) { + if(towerList[i].id == data.value) { + currentIndex = i; + break; + } + } + + // 先清空第二个下拉框 + let $nextTowerSelect = $('#nextTowerName'); + $nextTowerSelect.empty(); + + // 如果找到当前索引且不是最后一个 + if(currentIndex !== -1 && currentIndex < towerList.length - 1) { + // 获取下一个杆塔的信息 + let nextTower = towerList[currentIndex + 1]; + + // 设置隐藏的ID + $('#nextTowerId').val(nextTower.id); + + // 创建新的option元素并添加 + let newOption = new Option(nextTower.towerName, nextTower.id); + $nextTowerSelect.append(newOption); + + } else { + // 清空ID + $('#nextTowerId').val(''); + // 创建提示选项 + let newOption = new Option('选择的已经是最后一个', ''); + $nextTowerSelect.append(newOption); + } + + // 重新渲染select + layui.form.render('select'); + + } else { + // 当没有选择值时,重置为默认状态 + $('#nextTowerId').val(''); + let $nextTowerSelect = $('#nextTowerName'); + $nextTowerSelect.empty(); + let newOption = new Option('根据杆塔行序号自动填写下方杆塔序号', ''); + $nextTowerSelect.append(newOption); + layui.form.render('select'); } }); - // 表单验证 + // 表单验证规则 form.verify({ - required: function(value, item) { - if(!value) { - return '必填项不能为空'; + number: function(value, item) { + if(value && !/^-?\d+\.?\d*$/.test(value)) { + return '请输入数字'; } }, - number: [ - /^-?\d+\.?\d*$/, - '请输入有效的数字' - ] + // 经度验证 + longitude: function(value, item) { + // 如果为空则直接通过验证 + if(!value || value.trim() === '') { + return; + } + // 如果经度有值,则纬度也必须填写 + let latInput = $(item).closest('.layui-form-item').find('input[name^="crossTowerLatitude"]'); + let latValue = latInput.val(); + if(!latValue || latValue.trim() === '') { + return '经度和纬度需要同时填写'; + } + // 验证经度格式 + if(!/^[\-\+]?((180(\.0{1,6})?)|((\d{1,2}|1[0-7]\d)(\.\d{1,6})?))$/.test(value)) { + return '请输入正确的经度(-180.0~+180.0)'; + } + }, + + // 纬度验证 + latitude: function(value, item) { + // 如果为空则直接通过验证 + if(!value || value.trim() === '') { + return; + } + // 如果纬度有值,则经度也必须填写 + let lonInput = $(item).closest('.layui-form-item').find('input[name^="crossTowerLongitude"]'); + let lonValue = lonInput.val(); + if(!lonValue || lonValue.trim() === '') { + return '经度和纬度需要同时填写'; + } + // 验证纬度格式 + if(!/^[\-\+]?((90(\.0{1,6})?)|(([0-8]?\d)(\.\d{1,6})?))$/.test(value)) { + return '请输入正确的纬度(-90.0~+90.0)'; + } + } }); - // 表单提交 + // 表单提交验证 form.on('submit(formData)', function(data) { let formData = data.field; - let spanType = $('.span-type-option.active').data('type'); - - if(!spanType) { - layer.msg('请选择跨越类型', {icon: 2}); - return false; + let currentSystem = $('.span-type-option.active').data('type'); + if(currentSystem === 'cross-line'){ + delete formData.verticalClearDistance; + delete formData.towerSpacing; + delete formData.highwayWidth; + + delete formData.verticalClearDistances; + delete formData.towerSpacings; + delete formData.intersectionAngles; + formData.spanType ="1"; + }else if (currentSystem === 'cross-public'){ + delete formData.upperLine; + delete formData.lowerLine; + delete formData.intersectionAngle; + delete formData.verticalDistance; + delete formData.safetyMargin; + + delete formData.crossTowerLongitude1; + delete formData.crossTowerLatitude1; + delete formData.crossTowerLongitude2; + delete formData.crossTowerLatitude2; + delete formData.crossTowerLongitude3; + delete formData.crossTowerLatitude3; + delete formData.crossTowerLongitude4; + delete formData.crossTowerLatitude4; + + delete formData.verticalClearDistances; + delete formData.towerSpacings; + delete formData.intersectionAngles; + + formData.spanType ="2"; + }else if(currentSystem === 'cross-railway'){ + delete formData.upperLine; + delete formData.lowerLine; + delete formData.intersectionAngle; + delete formData.verticalDistance; + delete formData.safetyMargin; + + delete formData.crossTowerLongitude1; + delete formData.crossTowerLatitude1; + delete formData.crossTowerLongitude2; + delete formData.crossTowerLatitude2; + delete formData.crossTowerLongitude3; + delete formData.crossTowerLatitude3; + delete formData.crossTowerLongitude4; + delete formData.crossTowerLatitude4; + + delete formData.verticalClearDistance; + delete formData.towerSpacing; + delete formData.highwayWidth; + + formData.verticalClearDistance = formData.verticalClearDistances; + formData.towerSpacing = formData.towerSpacings; + formData.intersectionAngle = formData.intersectionAngles; + + formData.spanType ="3"; } - formData.spanType = spanType; - - // 验证必填项 - if(!formData.towerId) { - layer.msg('请选择杆塔', {icon: 2}); - return false; - } - - // 根据跨越类型验证必填项 - switch(spanType) { - case 'cross-line': - if(!formData.upperLine) { - layer.msg('请输入上层线路', {icon: 2}); - return false; - } - if(!formData.lowerLine) { - layer.msg('请输入下层线路', {icon: 2}); - return false; - } - if(!formData.crossAngle) { - layer.msg('请输入交叉角度', {icon: 2}); - return false; - } - if(!formData.verticalDistance) { - layer.msg('请输入垂直距离', {icon: 2}); - return false; - } - if(!formData.safetyMargin) { - layer.msg('请输入安全裕度', {icon: 2}); - return false; - } - break; - case 'cross-public': - if(!formData.verticalClearance) { - layer.msg('请输入垂直净距', {icon: 2}); - return false; - } - if(!formData.towerSpacing) { - layer.msg('请输入杆塔间距', {icon: 2}); - return false; - } - if(!formData.roadWidth) { - layer.msg('请输入公路宽度', {icon: 2}); - return false; - } - break; - case 'cross-railway': - if(!formData.verticalClearance) { - layer.msg('请输入垂直净距', {icon: 2}); - return false; - } - if(!formData.towerSpacing) { - layer.msg('请输入杆塔间距', {icon: 2}); - return false; - } - if(!formData.crossAngle) { - layer.msg('请输入交叉角度', {icon: 2}); - return false; - } - break; - } - + console.log(currentSystem) + formData.proId=proId; saveData(formData); - return false; }); }); @@ -155,31 +216,24 @@ function setParams(params) { // 加载杆塔选项 function loadTowerOptions() { - let url = dataUrl + "/tower/list"; - ajaxRequest(url, "GET", {}, true, null, function(result) { - if(result.code === 200) { - let options = ''; - result.data.forEach(item => { - options += ``; - }); - $('select[name="towerId"]').html(options); - form.render('select'); - } - }); -} - -// 获取杆塔信息 -function getTowerInfo(towerId) { - let url = dataUrl + "/tower/getById"; - let params = { - id: towerId, - encryptedData: encryptCBC(JSON.stringify({id: towerId})) - }; + let url = dataUrl + "/tbTower/getTbTowerAll"; + let params = {"proId":proId}; + params = { + encryptedData: encryptCBC(JSON.stringify(params)) + } ajaxRequest(url, "POST", params, true, null, function(result) { if(result.code === 200) { - // 可以根据杆塔信息自动填写一些表单项 - console.log("获取到杆塔信息:", result.data); + let options = ''; + // 保存杆塔列表数据 + towerList = result.data; + towerList.forEach(item => { + options += ``; + }); + // 为两个select都添加选项 + $('select[name="towerId"]').html(options); + $('select[name="nextTowerName"]').html(''); + form.render('select'); } }); } @@ -187,7 +241,7 @@ function getTowerInfo(towerId) { // 根据id获取三跨信息 function getThreeSpanById() { let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, time: 0}); - let url = dataUrl + "/threeSpan/getById"; + let url = dataUrl + "/tbThreeSpan/getTbThreeSpanById"; let params = { id: idParam, encryptedData: encryptCBC(JSON.stringify({id: idParam})) @@ -222,18 +276,40 @@ function saveData2() { // 保存数据 function saveData(data) { + // 组装经纬度数据 + let tbSpanTowerList = []; + for(let i = 1; i <= 4; i++) { + let lon = data[`crossTowerLongitude${i}`]; + let lat = data[`crossTowerLatitude${i}`]; + + // 只有当经纬度都有值时才添加到列表 + if(lon && lat) { + tbSpanTowerList.push({ + lon: lon, + lat: lat, + sort: i // 使用循环索引作为排序号 + }); + } + + // 删除原始的经纬度字段 + delete data[`crossTowerLongitude${i}`]; + delete data[`crossTowerLatitude${i}`]; + } + + // 将经纬度列表添加到提交数据中 + data.tbSpanTowerList = tbSpanTowerList; + let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0}); - let url = dataUrl + "/threeSpan/add"; + let url = dataUrl + "/tbThreeSpan/addTbThreeSpan"; let params = data; if (params.id) { - url = dataUrl + "/threeSpan/update"; + url = dataUrl + "/tbThreeSpan/updateTbThreeSpan"; } console.log("三跨管理的新增修改", params); params = { encryptedData: encryptCBC(JSON.stringify(params)) } - // 禁用所有输入框和按钮 function disableForm() { $('input, select').attr('disabled', true); @@ -257,7 +333,9 @@ function saveData(data) { parent.layer.msg(result.msg, {icon: 1}); } else { layer.alert(result.msg, {icon: 2}) - enableForm(); + setTimeout(function () { + enableForm(); + },3000) } }, function (xhr) { layer.close(loadingMsg); @@ -266,11 +344,87 @@ function saveData(data) { }); } +function crossLineFields(){ + $('input[name="upperLine"]').attr('lay-verify', 'required'); + $('input[name="lowerLine"]').attr('lay-verify', 'required'); + $('input[name="intersectionAngle"]').attr('lay-verify', 'required|number'); + $('input[name="verticalDistance"]').attr('lay-verify', 'required|number'); + $('input[name="safetyMargin"]').attr('lay-verify', 'required|number'); + $('input[name="crossTowerLongitude1"]').attr('lay-verify', 'longitude'); + $('input[name="crossTowerLatitude1"]').attr('lay-verify', 'latitude'); + $('input[name="crossTowerLongitude2"]').attr('lay-verify', 'longitude'); + $('input[name="crossTowerLatitude2"]').attr('lay-verify', 'latitude'); + $('input[name="crossTowerLongitude3"]').attr('lay-verify', 'longitude'); + $('input[name="crossTowerLatitude3"]').attr('lay-verify', 'latitude'); + $('input[name="crossTowerLongitude4"]').attr('lay-verify', 'longitude'); + $('input[name="crossTowerLatitude4"]').attr('lay-verify', 'latitude'); + + + $('input[name="verticalClearDistance"]').removeAttr('lay-verify'); + $('input[name="towerSpacing"]').removeAttr('lay-verify'); + $('input[name="highwayWidth"]').removeAttr('lay-verify'); + + $('input[name="verticalClearDistances"]').removeAttr('lay-verify'); + $('input[name="towerSpacings"]').removeAttr('lay-verify'); + $('input[name="intersectionAngles"]').removeAttr('lay-verify'); + +} + +function crossPublicFields(){ + $('input[name="upperLine"]').removeAttr('lay-verify'); + $('input[name="lowerLine"]').removeAttr('lay-verify'); + $('input[name="intersectionAngle"]').removeAttr('lay-verify'); + $('input[name="verticalDistance"]').removeAttr('lay-verify'); + $('input[name="safetyMargin"]').removeAttr('lay-verify'); + $('input[name="crossTowerLongitude1"]').removeAttr('lay-verify'); + $('input[name="crossTowerLatitude1"]').removeAttr('lay-verify'); + $('input[name="crossTowerLongitude2"]').removeAttr('lay-verify'); + $('input[name="crossTowerLatitude2"]').removeAttr('lay-verify'); + $('input[name="crossTowerLongitude3"]').removeAttr('lay-verify'); + $('input[name="crossTowerLatitude3"]').removeAttr('lay-verify'); + $('input[name="crossTowerLongitude4"]').removeAttr('lay-verify'); + $('input[name="crossTowerLatitude4"]').removeAttr('lay-verify'); + + $('input[name="verticalClearDistance"]').attr('lay-verify', 'required|number'); + $('input[name="towerSpacing"]').attr('lay-verify', 'required|number'); + $('input[name="highwayWidth"]').attr('lay-verify', 'required|number'); + + $('input[name="verticalClearDistances"]').removeAttr('lay-verify'); + $('input[name="towerSpacings"]').removeAttr('lay-verify'); + $('input[name="intersectionAngles"]').removeAttr('lay-verify'); +} + +function crossRailwayFields(){ + $('input[name="upperLine"]').removeAttr('lay-verify'); + $('input[name="lowerLine"]').removeAttr('lay-verify'); + $('input[name="intersectionAngle"]').removeAttr('lay-verify'); + $('input[name="verticalDistance"]').removeAttr('lay-verify'); + $('input[name="safetyMargin"]').removeAttr('lay-verify'); + $('input[name="crossTowerLongitude1"]').removeAttr('lay-verify'); + $('input[name="crossTowerLatitude1"]').removeAttr('lay-verify'); + $('input[name="crossTowerLongitude2"]').removeAttr('lay-verify'); + $('input[name="crossTowerLatitude2"]').removeAttr('lay-verify'); + $('input[name="crossTowerLongitude3"]').removeAttr('lay-verify'); + $('input[name="crossTowerLatitude3"]').removeAttr('lay-verify'); + $('input[name="crossTowerLongitude4"]').removeAttr('lay-verify'); + $('input[name="crossTowerLatitude4"]').removeAttr('lay-verify'); + + $('input[name="verticalClearDistance"]').removeAttr('lay-verify'); + $('input[name="towerSpacing"]').removeAttr('lay-verify'); + $('input[name="highwayWidth"]').removeAttr('lay-verify'); + + $('input[name="verticalClearDistances"]').attr('lay-verify', 'required|number'); + $('input[name="towerSpacings"]').attr('lay-verify', 'required|number'); + $('input[name="intersectionAngles"]').attr('lay-verify', 'required|number'); +} + + // 关闭页面 function closePage(type) { let index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); if (type === 1) { parent.reloadData() + parent.parent.reloadData() } } \ No newline at end of file diff --git a/src/main/resources/static/js/basic/lineManagement/child/threeSpanList.js b/src/main/resources/static/js/basic/lineManagement/child/threeSpanList.js index d47fc66..aca8b8f 100644 --- a/src/main/resources/static/js/basic/lineManagement/child/threeSpanList.js +++ b/src/main/resources/static/js/basic/lineManagement/child/threeSpanList.js @@ -14,7 +14,7 @@ function setParams(params) { function pages(pageNum, pageSize, typeNum) { let params = getReqParams(pageNum, pageSize, typeNum); - let url = dataUrl + "/users/getList" + let url = dataUrl + "/tbThreeSpan/getTbThreeSpanList" ajaxRequest(url, "POST", params, true, function () { }, function (result) { console.log(result); @@ -70,9 +70,43 @@ function initTable(dataList, limit, page) { return (page - 1) * limit + d.LAY_INDEX; } }, - {field: "loginName", title: "杆塔号", unresize: true, align: "center"}, - {field: "username", title: "跨越类型", unresize: true, align: "center"}, - {field: "username", title: "跨越信息", unresize: true, align: "center"}, + {field: "towerName", title: "杆塔号", unresize: true, align: "center"}, + {field: "", title: "跨越类型", unresize: true, align: "center", + templet: function (d) { + if(d.spanType == 1){ + return '跨线路'; + }else if(d.spanType == 2){ + return '跨公路'; + }else if(d.spanType == 3){ + return '跨铁路'; + } + } + }, + {field: "", title: "跨越信息", unresize: true, align: "center", + templet: function (d) { + if(d.spanType == 1){ + var html = ''; + html+="上层线路:" + d.upperLine + "

"; + html+="下层线路:" + d.lowerLine + "

"; + html+="交叉角度:" + d.intersectionAngle + "

"; + html+="垂直距离:" + d.verticalDistance + "

"; + html+="安全裕度:" + d.safetyMargin + "

"; + return html; + }else if(d.spanType == 2){ + var html = ''; + html+="垂直净距:" + d.verticalClearDistance + "

"; + html+="杆塔间距:" + d.towerSpacing + "

"; + html+="公路宽度:" + d.highwayWidth + "

"; + return html; + }else if(d.spanType == 3){ + var html = ''; + html+="垂直净距:" + d.verticalClearDistance + "

"; + html+="杆塔间距:" + d.towerSpacing + "

"; + html+="交叉角度:" + d.intersectionAngle + "

"; + return html; + } + } + }, { title: "操作", unresize: true, width: 200, align: "center", templet: function (d) { @@ -102,13 +136,14 @@ function initTable(dataList, limit, page) { function getReqParams(page, limit, type) { let obj = {}; if (type === 2) { - $('#towerName').val('') + $('#keyWord').val('') layui.form.render(); } obj = { page: page + "", limit: limit + "", - towerName: $('#towerName').val() + proId: idParam, + keyWord: $('#keyWord').val() }; console.log("杆塔管理查询条件", obj) obj={ @@ -121,7 +156,7 @@ function getReqParams(page, limit, type) { function query(type) { pageNum = 1; if(type === 2){ - $('#towerName').val('') + $('#keyWord').val('') layui.form.render(); } pages(1, limitSize,type); @@ -135,7 +170,8 @@ function reloadData() { function addData(id) { let title = '修改' let param = { - 'id': id + 'id': id, + 'proId':idParam } openIframe2("editPro", title, "threeSpanFormTemp.html", '1000px', '625px', param); } @@ -143,7 +179,8 @@ function addData(id) { function addDataThreeSpan(id) { let title = '新增' let param = { - 'id': id + 'id': id, + 'proId':idParam } openIframe2("addDataThreeSpan", title, "threeSpanFormTemp.html", '1000px', '625px', param); } @@ -154,7 +191,7 @@ function delData(id) { move: false }, function () { let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0}); - let url = dataUrl + "/users/delById"; + let url = dataUrl + "/tbThreeSpan/delTbThreeSpan"; let params = { 'id': id } @@ -165,10 +202,11 @@ function delData(id) { }, function (result) { layer.close(loadingMsg); // 关闭提示层 if (result.code === 200) { - parent.layer.msg(result.msg, {icon: 1}) + parent.layer.msg(result.data, {icon: 1}) + parent.reloadData() query() } else if (result.code === 500) { - layer.alert(result.msg, {icon: 2}) + layer.alert(result.data, {icon: 2}) } }, function (xhr) { layer.close(loadingMsg); // 关闭提示层 @@ -178,5 +216,32 @@ function delData(id) { } function exportThreeSpan(){ - alert("导出") + let obj = { + towerName: $('#towerName').val(), + } + let params = { + encryptedData: encryptCBC(JSON.stringify(obj)) + } + let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); + let url = dataUrl + "/tbThreeSpan/tbProjectExport?token=" + tokens + "&encryptedData=" + encodeURIComponent(encryptCBC(JSON.stringify(obj))); + let xhr = new XMLHttpRequest(); + xhr.open("post", url, true); + xhr.responseType = "blob"; // 转换流 + xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8') + xhr.onload = function () { + layer.close(loadingMsg); + if (this.status === 200) { + let blob = this.response; + var a = document.createElement("a"); + var url = window.URL.createObjectURL(blob); + a.href = url; + a.download = "三跨管理" + ".xlsx"; // 文件名 + } else { + layer.msg("数据导出发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000}); + } + a.click(); + window.URL.revokeObjectURL(url); + }; + // xhr.send(params); + xhr.send(); } \ No newline at end of file diff --git a/src/main/resources/static/pages/basic/lineManagement/child/threeSpanFormTemp.html b/src/main/resources/static/pages/basic/lineManagement/child/threeSpanFormTemp.html index 2d77499..828510d 100644 --- a/src/main/resources/static/pages/basic/lineManagement/child/threeSpanFormTemp.html +++ b/src/main/resources/static/pages/basic/lineManagement/child/threeSpanFormTemp.html @@ -41,11 +41,14 @@ border-color: #409eff; color: #409eff; } + .layui-form-mid{ + padding: 0px !important; + }
-
+
@@ -59,21 +62,28 @@
-
- +
-
根据杆塔行序号自动填写下方杆塔序号
+
+ +
+ + +
- -
+ +
+ placeholder="请输入上层线路" class="layui-input" maxlength="30">
@@ -81,23 +91,26 @@
+ placeholder="请输入下层线路" class="layui-input" maxlength="30">
- +
- +
@@ -105,82 +118,90 @@
+ placeholder="请输入安全裕度" class="layui-input" maxlength="30">
- +
-
- +
+
-
+
+ placeholder="请输入纬度(-90.0~+90.0)" + class="layui-input" maxlength="10" lay-verify="latitude">
-
1
+
1
-
- +
+
-
- +
+
-
2
+
2
-
- +
+
-
- +
+
-
3
+
3
-
- +
+
-
- +
+
-
4
+
4
- + - +