基础管理-线路工程管理

This commit is contained in:
lSun 2025-04-27 15:42:46 +08:00
parent 8e4662b68b
commit 220f00bb8a
3 changed files with 138 additions and 72 deletions

View File

@ -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()
}
}

View File

@ -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(){

View File

@ -59,15 +59,15 @@
<label class="layui-form-label"><span class="required-mark">*</span>杆塔:</label>
<div class="layui-input-inline">
<input type="text" name="towerName" lay-verify="required" autocomplete="off"
placeholder="请输入杆塔名称" class="layui-input">
placeholder="请输入杆塔名称" class="layui-input" maxlength="30">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>排序号:</label>
<div class="layui-input-inline">
<input type="text" name="sortNumber" lay-verify="required|number" autocomplete="off"
placeholder="请输入排序号" class="layui-input">
<input type="text" name="sort" lay-verify="required|number|customSortNumber" autocomplete="off"
placeholder="请输入排序号" class="layui-input" maxlength="10">
</div>
</div>
@ -88,16 +88,16 @@
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>经度:</label>
<div class="layui-input-inline">
<input type="text" name="longitude" lay-verify="required|number" autocomplete="off"
placeholder="请输入经度" class="layui-input">
<input type="text" name="longitude" lay-verify="required|longitude" autocomplete="off"
placeholder="请输入经度-180.0+180.0" maxlength="10" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>纬度:</label>
<div class="layui-input-inline">
<input type="text" name="latitude" lay-verify="required|number" autocomplete="off"
placeholder="请输入纬度" class="layui-input">
<input type="text" name="latitude" lay-verify="required|latitude" autocomplete="off"
placeholder="请输入纬度-90.0+90.0" maxlength="10" class="layui-input">
</div>
</div>
</div>
@ -107,24 +107,24 @@
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>中央子午线:</label>
<div class="layui-input-inline">
<input type="text" name="centralMeridian" lay-verify="required|number" autocomplete="off"
placeholder="请输入中央子午线" class="layui-input">
<input type="text" name="centralMeridian" lay-verify="required" autocomplete="off"
placeholder="请输入中央子午线" class="layui-input" maxlength="30">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>经度:</label>
<div class="layui-input-inline">
<input type="text" name="longitude2000" lay-verify="required|number" autocomplete="off"
placeholder="请输入经度" class="layui-input">
<input type="text" name="longitude2000" lay-verify="required|longitude" autocomplete="off"
placeholder="请输入经度-180.0+180.0" maxlength="10" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>纬度:</label>
<div class="layui-input-inline">
<input type="text" name="latitude2000" lay-verify="required|number" autocomplete="off"
placeholder="请输入纬度" class="layui-input">
<input type="text" name="latitude2000" lay-verify="required|latitude" autocomplete="off"
placeholder="请输入纬度-90.0+90.0" maxlength="10" class="layui-input">
</div>
</div>
</div>