diff --git a/src/main/resources/static/js/basic/lineManagement/child/towerFormTemp.js b/src/main/resources/static/js/basic/lineManagement/child/towerFormTemp.js index b569728..80932aa 100644 --- a/src/main/resources/static/js/basic/lineManagement/child/towerFormTemp.js +++ b/src/main/resources/static/js/basic/lineManagement/child/towerFormTemp.js @@ -1,4 +1,4 @@ -let form, layer, util,laydate, idParam, phoneParam; +let form, layer, util,laydate, idParam, phoneParam,proId; let arr = ['background', 'web', 'mobile', 'wx']; let background, web, mobile, wx; let data = [], appResList = []; @@ -7,6 +7,7 @@ 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,11 +15,18 @@ function setParams(params) { laydate = layui.laydate; var $ = layui.jquery; + // 默认选择WGS-84 + // $('.coordinate-option[data-system="WGS-84"]').addClass('active').trigger('click'); + $('#wgs84Fields').show(); + $('#2000Fields').hide(); + // 设置验证规则 + $('input[name^="longitude2000"], input[name^="latitude2000"], input[name="centralMeridian"]').removeAttr('lay-verify'); + $('input[name="longitude"], input[name="latitude"]').attr('lay-verify', 'required|number'); + console.log(idParam + "idParam") if (idParam) { getTowerById(); } - // 初始化表单 form.render(); @@ -27,7 +35,6 @@ function setParams(params) { let system = $(this).data('system'); $('.coordinate-option').removeClass('active'); $(this).addClass('active'); - if(system === 'WGS-84') { $('#wgs84Fields').show(); $('#2000Fields').hide(); @@ -53,7 +60,29 @@ function setParams(params) { number: [ /^-?\d+\.?\d*$/, '请输入有效的数字' - ] + ], + customSortNumber: function (value) { + if (value < 1) { // 验证是否小于1 + return '排序号不能小于1'; + } + }, + // 经度验证 + longitude: function (value, item) { + if (value) { + 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) { + if (!/^[\-\+]?((90(\.0{1,6})?)|(([0-8]?\d)(\.\d{1,6})?))$/.test(value)) { + return '请输入正确的纬度(-90.0~+90.0)'; + } + } + } }); // 表单提交 @@ -61,52 +90,26 @@ function setParams(params) { let formData = data.field; let currentSystem = $('.coordinate-option.active').data('system'); formData.coordinateSystem = currentSystem; - - // 验证必填项 - if(!formData.towerName) { - layer.msg('请输入杆塔名称', {icon: 2}); - return false; - } - if(!formData.sortNumber) { - layer.msg('请输入排序号', {icon: 2}); - return false; - } - - // 根据坐标系验证必填项 - if(currentSystem === 'WGS-84') { - if(!formData.longitude) { - layer.msg('请输入经度', {icon: 2}); - return false; - } - if(!formData.latitude) { - layer.msg('请输入纬度', {icon: 2}); - return false; - } - } else { - if(!formData.centralMeridian) { - layer.msg('请输入中央子午线', {icon: 2}); - return false; - } - if(!formData.longitude2000) { - layer.msg('请输入经度', {icon: 2}); - return false; - } - if(!formData.latitude2000) { - layer.msg('请输入纬度', {icon: 2}); - return false; - } - } - // 处理提交数据 if(currentSystem === 'WGS-84') { delete formData.longitude2000; delete formData.latitude2000; delete formData.centralMeridian; + formData.uploadType = "1"; + formData.lon = formData.longitude; + formData.lat = formData.latitude; } else { delete formData.longitude; delete formData.latitude; + formData.uploadType = "2"; + formData.lon = formData.longitude2000; + formData.lat = formData.latitude2000; } - + if(formData.sort<1){ + layer.msg('排序号不能小于1', {icon: 2}); + return false; + } + formData.proId=proId; saveData(formData); return false; }); @@ -117,7 +120,7 @@ function setParams(params) { // 根据id获取杆塔信息 function getTowerById() { let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, time: 0}); - let url = dataUrl + "/tower/getById"; + let url = dataUrl + "/tbTower/getTbTowerById"; let params = { id: idParam, encryptedData: encryptCBC(JSON.stringify({id: idParam})) @@ -139,10 +142,41 @@ function getTowerById() { // 设置表单数据 function setFormData(data) { if(data) { + // 先设置基本表单数据 form.val("towerForm", data); - // 设置坐标系 - $('.coordinate-option').removeClass('active'); - $(`.coordinate-option[data-system="${data.coordinateSystem}"]`).addClass('active').trigger('click'); + + // 根据 uploadType 设置坐标系选择 + if(data.uploadType) { + $('.coordinate-option').removeClass('active'); + switch(data.uploadType) { + case "1": + // WGS-84地心坐标系 + $('.coordinate-option[data-system="WGS-84"]').addClass('active').trigger('click'); + break; + case "2": + // 2000国家大地坐标系 + $('.coordinate-option[data-system="2000"]').addClass('active').trigger('click'); + break; + default: + // 默认选择WGS-84 + $('.coordinate-option[data-system="WGS-84"]').addClass('active').trigger('click'); + } + } + + // 根据坐标系类型设置值 + if(data.uploadType == "1"){ + // 设置WGS-84的经纬度值 + $('input[name="longitude"]').val(data.lon); + $('input[name="latitude"]').val(data.lat); + } else if(data.uploadType == "2"){ + // 设置2000坐标系的经纬度和中央子午线 + $('input[name="longitude2000"]').val(data.lon); + $('input[name="latitude2000"]').val(data.lat); + $('input[name="centralMeridian"]').val(data.centralMeridian); + } + + // 重新渲染表单 + form.render(); } } @@ -152,13 +186,13 @@ function saveData2() { // 保存数据 function saveData(data) { + console.log("保存数据", data) let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0}); - let url = dataUrl + "/tower/add"; + let url = dataUrl + "/tbTower/addTbTower"; let params = data; // 修改这里,因为data已经是处理好的数据 if (params.id) { - url = dataUrl + "/tower/update"; + url = dataUrl + "/tbTower/updateTbTower"; } - console.log("杆塔管理的新增修改", params); params = { encryptedData: encryptCBC(JSON.stringify(params)) @@ -202,5 +236,6 @@ function closePage(type) { 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/towerList.js b/src/main/resources/static/js/basic/lineManagement/child/towerList.js index 8b48609..1c7261c 100644 --- a/src/main/resources/static/js/basic/lineManagement/child/towerList.js +++ b/src/main/resources/static/js/basic/lineManagement/child/towerList.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 + "/tbTower/getTbTowerList" ajaxRequest(url, "POST", params, true, function () { }, function (result) { console.log(result); @@ -70,10 +70,10 @@ 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: "roleName", title: "排序号", unresize: true, align: "center"}, + {field: "towerName", title: "杆塔号", unresize: true, align: "center"}, + {field: "lon", title: "经度", unresize: true, align: "center"}, + {field: "lat", title: "纬度", unresize: true, align: "center"}, + {field: "sort", title: "排序号", unresize: true, align: "center"}, { title: "操作", unresize: true, width: 200, align: "center", templet: function (d) { @@ -109,6 +109,7 @@ function getReqParams(page, limit, type) { obj = { page: page + "", limit: limit + "", + proId: idParam, towerName: $('#towerName').val() }; console.log("杆塔管理查询条件", obj) @@ -136,7 +137,8 @@ function reloadData() { function addData(id) { let title = '修改' let param = { - 'id': id + 'id': id, + 'proId':idParam } openIframe2("editPro", title, "towerFormTemp.html", '1000px', '625px', param); } @@ -144,7 +146,8 @@ function addData(id) { function addDataTower(id) { let title = '新增' let param = { - 'id': id + 'id': id, + 'proId':idParam } openIframe2("addDataTower", title, "towerFormTemp.html", '1000px', '625px', param); } @@ -155,7 +158,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 + "/tbTower/delTbTower"; let params = { 'id': id } @@ -166,10 +169,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); // 关闭提示层 @@ -232,7 +236,34 @@ function addRopeway(id){ } function exportTower(){ - 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 + "/tbTower/tbTowerExport?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(); } function importTower(){ diff --git a/src/main/resources/static/pages/basic/lineManagement/child/towerFormTemp.html b/src/main/resources/static/pages/basic/lineManagement/child/towerFormTemp.html index c2a27fe..d7c19c7 100644 --- a/src/main/resources/static/pages/basic/lineManagement/child/towerFormTemp.html +++ b/src/main/resources/static/pages/basic/lineManagement/child/towerFormTemp.html @@ -59,15 +59,15 @@
+ placeholder="请输入杆塔名称" class="layui-input" maxlength="30">
- +
@@ -88,16 +88,16 @@
- +
- +
@@ -107,24 +107,24 @@
- +
- +
- +