diff --git a/src/main/resources/static/img/digitalSignage/line_r.png b/src/main/resources/static/img/digitalSignage/line_r.png
new file mode 100644
index 0000000..f9e04eb
Binary files /dev/null and b/src/main/resources/static/img/digitalSignage/line_r.png differ
diff --git a/src/main/resources/static/img/digitalSignage/line_y.png b/src/main/resources/static/img/digitalSignage/line_y.png
new file mode 100644
index 0000000..6c7b897
Binary files /dev/null and b/src/main/resources/static/img/digitalSignage/line_y.png differ
diff --git a/src/main/resources/static/js/basic/lineManagement/child/setSpanTowerLonAndLat.js b/src/main/resources/static/js/basic/lineManagement/child/setSpanTowerLonAndLat.js
new file mode 100644
index 0000000..5a80b36
--- /dev/null
+++ b/src/main/resources/static/js/basic/lineManagement/child/setSpanTowerLonAndLat.js
@@ -0,0 +1,394 @@
+let form, layer;
+let objParams = {};
+let map = null; // 地图实例
+let intLng = 116.254; // 初始经度
+let intLat = 39.965; // 初始纬度
+let isMap = true; // 是否是地图模式
+let markerCount = 0; // 标记点计数器
+let markers = []; // 标记点数组
+let polylineView = null;
+
+function setParams(obj) {
+ objParams = JSON.parse(obj);
+ layui.use(["form", "layer"], function () {
+ form = layui.form;
+ layer = layui.layer;
+ table = layui.table;
+ initData();
+ });
+}
+
+// 地图配置项
+const config = {
+ polyline: {
+ strokeWeight: 1, // 线条宽度
+ strokeOpacity: 0.9, // 透明度
+ strokeStyle: "dashed", // solid(实线)或dashed(虚线)
+ enableEditing: false, // 是否可编辑
+ enableClicking: true, // 是否可点击
+ },
+};
+
+// 加载工程杆塔数据
+function initData() {
+ let url = dataUrl + "/backstage/digitalSignage/getTowersPosition";
+ let obj = {
+ id: objParams.id,
+ };
+ let params = {
+ encryptedData: encryptCBC(JSON.stringify(obj)),
+ };
+ ajaxRequest(
+ url,
+ "POST",
+ params,
+ true,
+ function () {},
+ function (result) {
+ if (result.status === 200) {
+ setData(result.data);
+ } else {
+ layer.msg(result.msg, { icon: 2 });
+ }
+ },
+ function (xhr) {
+ error(xhr);
+ }
+ );
+
+ function setData(list) {
+ if (list && list.length > 0) {
+ if (objParams.points) {
+ let points = JSON.parse(objParams.points);
+ intLng = points[0].lng;
+ intLat = points[0].lat;
+ } else {
+ intLng = list[0].proLon ? list[0].proLon : list[0].lon;
+ intLat = list[0].proLat ? list[0].proLat : list[0].lat;
+ }
+ }
+ initMap(list);
+ }
+}
+
+// 百度地图初始化
+function initMap(list) {
+ if (map) {
+ map = null;
+ }
+ map = new BMapGL.Map("map-box");
+ // 以第一个点为中心初始化地图
+ map.centerAndZoom(new BMapGL.Point(intLng, intLat), 16);
+
+ map.setTilt(65); //设置地图的倾斜角度
+ map.enableScrollWheelZoom(true); // 启用滚轮缩放
+
+ // 设置显示3D建筑物
+ map.setDisplayOptions({
+ building: true, // 显示3D建筑物
+ indoor: false,
+ poi: true,
+ });
+ var navigationControl = new BMapGL.NavigationControl3D();
+ map.addControl(navigationControl);
+
+ // 每次初始化的时候清除所有标点以及线
+ map.clearOverlays();
+ var styleJson = [
+ // 隐藏道路
+ {
+ featureType: "highway",
+ elementType: "all",
+ stylers: { visibility: "off" },
+ },
+ {
+ featureType: "arterial",
+ elementType: "all",
+ stylers: { visibility: "off" },
+ },
+ {
+ featureType: "local",
+ elementType: "all",
+ stylers: { visibility: "off" },
+ },
+ {
+ featureType: "railway",
+ elementType: "all",
+ stylers: { visibility: "off" },
+ },
+
+ // 保留背景、水域、绿地等(避免地图变空白)
+ {
+ featureType: "background",
+ elementType: "all",
+ stylers: { visibility: "on" },
+ },
+ {
+ featureType: "water",
+ elementType: "all",
+ stylers: { visibility: "on" },
+ },
+ {
+ featureType: "green",
+ elementType: "all",
+ stylers: { visibility: "on" },
+ },
+
+ // 保留标点和文字(避免自定义点被隐藏)
+ {
+ featureType: "point",
+ elementType: "all",
+ stylers: { visibility: "on" },
+ },
+ {
+ featureType: "label",
+ elementType: "all",
+ stylers: { visibility: "on" },
+ },
+ ];
+
+ if (isMap) {
+ // map.setMapType(BMAP_EARTH_MAP); // 地球模式
+ map.setMapType(BMAP_SATELLITE_MAP); // 地球模式
+ /*map.setDisplayOptions({
+ poiText: false, // 隐藏POI文字
+ poiIcon: false, // 隐藏POI图标
+ building: false, // 隐藏建筑物
+ });*/
+ } else {
+ map.setMapType(BMAP_NORMAL_MAP); // 普通模式
+
+ // 增加不是纯白的背景色
+ map.setMapStyleV2({
+ styleJson: [
+ {
+ featureType: "background",
+ elementType: "all",
+ stylers: { color: "#f5f5f5" },
+ },
+ ],
+ });
+ }
+
+ if (isMap) {
+ map.setMapStyleV2({
+ styleJson,
+ });
+ }
+ initTowerLine(list);
+ if (objParams.points) {
+ let points = JSON.parse(objParams.points);
+ if (points.length > 0) {
+ $.each(points, function (i, item) {
+ addMarker(item.lng || item.lon, item.lat || item.lat);
+ });
+ viewPointLine();
+ map.addEventListener("click", function (e) {
+ addMarker(e.latlng.lng, e.latlng.lat);
+ });
+ }
+ } else {
+ // 点击地图添加标记
+ map.addEventListener("click", function (e) {
+ addMarker(e.latlng.lng, e.latlng.lat);
+ });
+ }
+}
+
+// 添加点坐标
+function addMarker(lng, lat) {
+ console.log("markers标点集合", markers);
+ var point = new BMapGL.Point(lng, lat);
+ // 创建点标记
+ var marker = new BMapGL.Marker(point);
+ // 添加到地图
+ map.addOverlay(marker);
+
+ // 创建标签
+ // 2025-06-10 修改第一个标点名称为索道口
+ // let markerName = "";
+ // if (markers.length === 0) {
+ // markerName = "公路口";
+ // } else {
+ // markerName = "点" + (markerCount + 1);
+ // }
+ var label = new BMapGL.Label("杆塔" + (markerCount + 1), {
+ position: point,
+ offset: new BMapGL.Size(10, -30),
+ });
+ label.setStyle({
+ color: "#333",
+ fontSize: "12px",
+ fontWeight: "bold",
+ backgroundColor: "rgba(255,255,255,0.9)",
+ border: "1px solid #ddd",
+ borderRadius: "4px",
+ padding: "2px 6px",
+ });
+ map.addOverlay(label);
+ // 存储标记和标签
+ markers.push({
+ marker: marker,
+ label: label,
+ point: point,
+ });
+ console.log(markers);
+ // 更新计数器
+ markerCount++;
+}
+
+// 杆塔连线
+function initTowerLine(points) {
+ // 存储所有点的坐标用于连线
+ var linePoints = [];
+ // 添加点覆盖物和标签
+ points.forEach(function (item, index) {
+ var point = new BMapGL.Point(item.lon, item.lat);
+ linePoints.push(point); // 添加到连线数组
+ // 创建点标记
+ var icon = new BMapGL.Icon(
+ "../../../../img/synthesisQuery/tower.png",
+ new BMapGL.Size(30, 66),
+ {
+ // 图标定位点
+ anchor: new BMapGL.Size(15, 66),
+ }
+ );
+ var marker = new BMapGL.Marker(point, { icon: icon });
+ map.addOverlay(marker);
+ // 创建标签
+ var label = new BMapGL.Label(item.towerName, {
+ position: point,
+ offset: new BMapGL.Size(20, -60),
+ });
+ label.setStyle({
+ color: "#333",
+ fontSize: "12px",
+ fontWeight: "bold",
+ backgroundColor: "rgba(255,255,255,0.9)",
+ border: "1px solid #ddd",
+ borderRadius: "4px",
+ padding: "2px 6px",
+ });
+ map.addOverlay(label);
+ });
+ // 创建连线
+ var polyline = new BMapGL.Polyline(linePoints, {
+ strokeColor: "#FF0305",
+ strokeWeight: 6,
+ strokeOpacity: 0.8,
+ });
+ map.addOverlay(polyline);
+ // 可选:自动调整视图以包含所有点
+ map.setViewport(linePoints);
+ // 2. 获取视口边界和中心点
+ var bounds = map.getBounds();
+ var center = bounds.getCenter();
+ // 3. 计算视口距离
+ var viewportDistance = Math.max(
+ BMapGL.Map.prototype.getDistance(
+ center,
+ new BMapGL.Point(bounds.getSouthWest().lng, center.lat)
+ ),
+ BMapGL.Map.prototype.getDistance(
+ center,
+ new BMapGL.Point(center.lng, bounds.getSouthWest().lat)
+ )
+ );
+ // 4. 设置3D参数
+ var zoom = map.getZoom();
+ var newTilt = 65;
+ var newHeading = 30;
+
+ // 5. 应用3D视角
+ map.setTilt(newTilt);
+ map.setHeading(newHeading);
+
+ // 6. 稍微缩小以确保所有点在3D视角下可见
+ setTimeout(function () {
+ map.setZoom(zoom - 1);
+ }, 100);
+}
+
+// 清除所有标点
+document.getElementById("clearMarkers").addEventListener("click", function () {
+ markers.forEach(function (item) {
+ map.removeOverlay(item.marker);
+ map.removeOverlay(item.label);
+ });
+ markers = [];
+ markerCount = 0;
+ if (polylineView) {
+ map.removeOverlay(polylineView); // 移除旧的折线
+ polylineView = null;
+ }
+
+ let frameId = parent.document
+ .getElementById("addDataRopeway")
+ .getElementsByTagName("iframe")[0];
+ frameId.contentWindow.clearPointData();
+});
+
+// 预览标点连线
+document.getElementById("viewPoint").addEventListener("click", function () {
+ viewPointLine();
+});
+
+function viewPointLine() {
+ if (markers && markers.length === 0) {
+ return layer.msg("请先创建点位", { icon: 7 });
+ }
+ if (polylineView) {
+ map.removeOverlay(polylineView); // 移除旧的折线
+ polylineView = null;
+ }
+ let points = [];
+ $.each(markers, function (index, item) {
+ points.push(item.point);
+ });
+ // 2. 创建折线连接这些点位
+ var polyline = new BMapGL.Polyline(points, {
+ strokeColor: "#0C14CA", // 线颜色
+ strokeWeight: 4, // 线宽
+ strokeOpacity: 0.8, // 线透明度
+ });
+ polylineView = polyline;
+ map.addOverlay(polyline);
+ // 点击地图添加标记
+ // 2025-06-10 移除点击地图添加标记 解决连线之后 再次标点时标点展示异常问题
+ // map.addEventListener("click", function (e) {
+ // addMarker(e.latlng.lng, e.latlng.lat);
+ // });
+}
+
+// 保存点位数据
+function saveData() {
+ if (markers && markers.length === 0) {
+ return layer.msg("请先创建点位", { icon: 7 });
+ }
+
+ if (markers && markers.length < 2) {
+ return layer.msg("至少创建两个点位", { icon: 7 });
+ }
+ let points = [];
+ $.each(markers, function (index, item) {
+ points.push({
+ lng: item.point.lng,
+ lat: item.point.lat,
+ sort: index + 1,
+ });
+ });
+ let frameId = parent.document
+ .getElementById("addDataThreeSpan")
+ .getElementsByTagName("iframe")[0];
+ frameId.contentWindow.savePointData(JSON.stringify(points));
+ parent.layer.msg("保存成功", { icon: 1 });
+ let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
+ parent.layer.close(index); //再执行关闭
+}
+
+// 关闭页面
+function closePage() {
+ let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
+ parent.layer.close(index); //再执行关闭
+}
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 9ba48b0..ffd5cb4 100644
--- a/src/main/resources/static/js/basic/lineManagement/child/threeSpanFormTemp.js
+++ b/src/main/resources/static/js/basic/lineManagement/child/threeSpanFormTemp.js
@@ -1,14 +1,17 @@
-let form, layer, util,laydate, idParam,proId;
-let arr = ['background', 'web', 'mobile', 'wx'];
+let form, layer, util, laydate, idParam, proId;
+let pointsStr = null;
+let arr = ["background", "web", "mobile", "wx"];
let background, web, mobile, wx;
-let data = [], appResList = [], towerList = [];
+let data = [],
+ appResList = [],
+ towerList = [];
let startDate, endDate;
function setParams(params) {
- console.log(params)
+ console.log(params);
idParam = JSON.parse(params).id;
proId = JSON.parse(params).proId;
- layui.use(['form', 'layer', 'util', 'laydate'], function () {
+ layui.use(["form", "layer", "util", "laydate"], function () {
form = layui.form;
layer = layui.layer;
util = layui.util;
@@ -17,171 +20,193 @@ function setParams(params) {
// 初始化表单
form.render();
loadTowerOptions();
- crossLineFields()
+ crossLineFields();
if (idParam) {
getThreeSpanById();
}
- $('.span-type-option').on('click', function() {
- $('.span-type-option').removeClass('active');
- $(this).addClass('active');
- let type = $(this).data('type');
+ $(".span-type-option").on("click", function () {
+ $(".span-type-option").removeClass("active");
+ $(this).addClass("active");
+ let type = $(this).data("type");
- switch(type) {
- case 'cross-line':
- $('#crossLineFields').show();
- $('#crossPublicFields').hide();
- $('#crossRailwayFields').hide();
- crossLineFields()
+ switch (type) {
+ case "cross-line":
+ $("#crossLineFields").show();
+ $("#crossPublicFields").hide();
+ $("#crossRailwayFields").hide();
+ crossLineFields();
break;
- case 'cross-public':
- $('#crossLineFields').hide();
- $('#crossPublicFields').show();
- $('#crossRailwayFields').hide();
- crossPublicFields()
+ case "cross-public":
+ $("#crossLineFields").hide();
+ $("#crossPublicFields").show();
+ $("#crossRailwayFields").hide();
+ crossPublicFields();
break;
- case 'cross-railway':
- $('#crossLineFields').hide();
- $('#crossPublicFields').hide();
- $('#crossRailwayFields').show();
- crossRailwayFields()
+ case "cross-railway":
+ $("#crossLineFields").hide();
+ $("#crossPublicFields").hide();
+ $("#crossRailwayFields").show();
+ crossRailwayFields();
break;
}
form.render();
});
// 监听杆塔选择
- form.on('select(towerSelect)', function(data) {
- if(data.value) {
+ form.on("select(towerSelect)", function (data) {
+ if (data.value) {
// 获取当前选中的索引
let currentIndex = -1;
- for(let i = 0; i < towerList.length; i++) {
- if(towerList[i].id == data.value) {
+ for (let i = 0; i < towerList.length; i++) {
+ if (towerList[i].id == data.value) {
currentIndex = i;
break;
}
}
-
+
// 先清空第二个下拉框
- let $nextTowerSelect = $('#nextTowerName');
+ let $nextTowerSelect = $("#nextTowerName");
$nextTowerSelect.empty();
-
+
// 如果找到当前索引且不是最后一个
- if(currentIndex !== -1 && currentIndex < towerList.length - 1) {
+ if (
+ currentIndex !== -1 &&
+ currentIndex < towerList.length - 1
+ ) {
// 获取下一个杆塔的信息
let nextTower = towerList[currentIndex + 1];
-
+
// 设置隐藏的ID
- $('#nextTowerId').val(nextTower.id);
-
+ $("#nextTowerId").val(nextTower.id);
+
// 创建新的option元素并添加
- let newOption = new Option(nextTower.towerName, nextTower.id);
+ let newOption = new Option(
+ nextTower.towerName,
+ nextTower.id
+ );
$nextTowerSelect.append(newOption);
-
} else {
// 清空ID
- $('#nextTowerId').val('');
+ $("#nextTowerId").val("");
// 创建提示选项
- let newOption = new Option('选择的已经是最后一个', '');
+ let newOption = new Option("选择的已经是最后一个", "");
$nextTowerSelect.append(newOption);
}
-
+
// 重新渲染select
- layui.form.render('select');
-
+ layui.form.render("select");
} else {
// 当没有选择值时,重置为默认状态
- $('#nextTowerId').val('');
- let $nextTowerSelect = $('#nextTowerName');
+ $("#nextTowerId").val("");
+ let $nextTowerSelect = $("#nextTowerName");
$nextTowerSelect.empty();
- let newOption = new Option('根据杆塔行序号自动填写下方杆塔序号', '');
+ let newOption = new Option(
+ "根据杆塔行序号自动填写下方杆塔序号",
+ ""
+ );
$nextTowerSelect.append(newOption);
- layui.form.render('select');
+ layui.form.render("select");
}
});
// 表单验证规则
form.verify({
- number: function(value, item) {
- if(value && !/^-?\d+\.?\d*$/.test(value)) {
- return '请输入数字';
+ number: function (value, item) {
+ if (value && !/^-?\d+\.?\d*$/.test(value)) {
+ return "请输入数字";
}
},
- // 经度验证
- 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)';
- // }
+ // // 经度验证
+ // 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)';
+ // // }
- // 验证经度格式并检查数值是否在中国范围内(73.55 至 135.08)
- const longitudeValue = parseFloat(value);
- if(isNaN(longitudeValue) || longitudeValue < 73.55 || longitudeValue > 135.08) {
- return '请输入位于正确的经度(大约73.55°E至135.08°E)';
- }
- // 可选:检查小数位数,假设要求最多6位小数
- if(!/^[\-\+]?((135(\.0{1,6})?)|((\d{1,2}|1[0-2]\d|13[0-4])(\.\d{1,6})?))$/.test(value)) {
- return '经度应精确到最多6位小数且在正确范围内';
- }
- },
-
- // 纬度验证
- 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)';
- // }
- // 验证纬度格式并检查数值是否在中国范围内(4 至 53)
- const latitudeValue = parseFloat(value);
- if(isNaN(latitudeValue) || latitudeValue < 4 || latitudeValue > 53) {
- return '请输入位于正确的纬度(大约4°N至53°N)';
- }
- // 可选:检查小数位数,假设要求最多6位小数
- // if(!/^[\-\+]?((53(\.0{1,6})?)|(([0-4]?\d)(\.\d{1,6})?))$/.test(value)) {
- // return '纬度应精确到最多6位小数且在正确范围内';
- // }
+ // // 验证经度格式并检查数值是否在中国范围内(73.55 至 135.08)
+ // const longitudeValue = parseFloat(value);
+ // if (
+ // isNaN(longitudeValue) ||
+ // longitudeValue < 73.55 ||
+ // longitudeValue > 135.08
+ // ) {
+ // return "请输入位于正确的经度(大约73.55°E至135.08°E)";
+ // }
+ // // 可选:检查小数位数,假设要求最多6位小数
+ // if (
+ // !/^[\-\+]?((135(\.0{1,6})?)|((\d{1,2}|1[0-2]\d|13[0-4])(\.\d{1,6})?))$/.test(
+ // value
+ // )
+ // ) {
+ // return "经度应精确到最多6位小数且在正确范围内";
+ // }
+ // },
- // 检查最多6位小数(允许整数或最多6位小数)
- if (!/^-?\d+(\.\d{1,6})?$/.test(value)) {
- return '纬度应精确到最多6位小数';
- }
- }
+ // // 纬度验证
+ // 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)';
+ // // }
+ // // 验证纬度格式并检查数值是否在中国范围内(4 至 53)
+ // const latitudeValue = parseFloat(value);
+ // if (
+ // isNaN(latitudeValue) ||
+ // latitudeValue < 4 ||
+ // latitudeValue > 53
+ // ) {
+ // return "请输入位于正确的纬度(大约4°N至53°N)";
+ // }
+ // // 可选:检查小数位数,假设要求最多6位小数
+ // // if(!/^[\-\+]?((53(\.0{1,6})?)|(([0-4]?\d)(\.\d{1,6})?))$/.test(value)) {
+ // // return '纬度应精确到最多6位小数且在正确范围内';
+ // // }
+
+ // // 检查最多6位小数(允许整数或最多6位小数)
+ // if (!/^-?\d+(\.\d{1,6})?$/.test(value)) {
+ // return "纬度应精确到最多6位小数";
+ // }
+ // },
});
// 表单提交验证
- form.on('submit(formData)', function(data) {
+ form.on("submit(formData)", function (data) {
let formData = data.field;
- let nextTowerId= $("#nextTowerId").val();
- if(nextTowerId){
-
- }else{
- layer.msg('没有下一杆塔,请确认', {icon: 2});
+ let nextTowerId = $("#nextTowerId").val();
+ if (nextTowerId) {
+ } else {
+ layer.msg("没有下一杆塔,请确认", { icon: 2 });
return false;
}
- let currentSystem = $('.span-type-option.active').data('type');
- if(currentSystem === 'cross-line'){
+ let currentSystem = $(".span-type-option.active").data("type");
+ if (currentSystem === "cross-line") {
delete formData.verticalClearDistance2;
delete formData.towerSpacing2;
delete formData.highwayWidth;
@@ -191,127 +216,142 @@ function setParams(params) {
delete formData.intersectionAngle3;
formData.intersectionAngle = formData.intersectionAngle1;
- formData.spanType ="1";
- }else if (currentSystem === 'cross-public'){
+ formData.spanType = "1";
+ } else if (currentSystem === "cross-public") {
delete formData.upperLine;
delete formData.lowerLine;
delete formData.intersectionAngle1;
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.crossTowerLongitude1;
+ // delete formData.crossTowerLatitude1;
+ // delete formData.crossTowerLongitude2;
+ // delete formData.crossTowerLatitude2;
+ // delete formData.crossTowerLongitude3;
+ // delete formData.crossTowerLatitude3;
+ // delete formData.crossTowerLongitude4;
+ // delete formData.crossTowerLatitude4;
delete formData.verticalClearDistance3;
delete formData.towerSpacing3;
delete formData.intersectionAngle3;
formData.towerSpacing = formData.towerSpacing2;
- formData.verticalClearDistance = formData.verticalClearDistance2;
+ formData.verticalClearDistance =
+ formData.verticalClearDistance2;
- formData.spanType ="2";
- }else if(currentSystem === 'cross-railway'){
+ formData.spanType = "2";
+ } else if (currentSystem === "cross-railway") {
delete formData.upperLine;
delete formData.lowerLine;
delete formData.intersectionAngle1;
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.crossTowerLongitude1;
+ // delete formData.crossTowerLatitude1;
+ // delete formData.crossTowerLongitude2;
+ // delete formData.crossTowerLatitude2;
+ // delete formData.crossTowerLongitude3;
+ // delete formData.crossTowerLatitude3;
+ // delete formData.crossTowerLongitude4;
+ // delete formData.crossTowerLatitude4;
delete formData.verticalClearDistance2;
delete formData.towerSpacing2;
delete formData.highwayWidth;
- formData.verticalClearDistance = formData.verticalClearDistance3;
- formData.towerSpacing = formData.towerSpacing3;
- formData.intersectionAngle = formData.intersectionAngle3;
+ formData.verticalClearDistance =
+ formData.verticalClearDistance3;
+ formData.towerSpacing = formData.towerSpacing3;
+ formData.intersectionAngle = formData.intersectionAngle3;
- formData.spanType ="3";
+ formData.spanType = "3";
}
- console.log(currentSystem)
- formData.proId=proId;
+ console.log(currentSystem);
+ formData.proId = proId;
saveData(formData);
});
-
});
}
// 加载杆塔选项
function loadTowerOptions() {
let url = dataUrl + "/tbTower/getTbTowerAll";
-
- let params = {"proId":proId};
+
+ let params = { proId: proId };
params = {
- encryptedData: encryptCBC(JSON.stringify(params))
- }
- ajaxRequest(url, "POST", params, true, null, function(result) {
- if(result.code === 200) {
+ encryptedData: encryptCBC(JSON.stringify(params)),
+ };
+ ajaxRequest(url, "POST", params, true, null, function (result) {
+ if (result.code === 200) {
let options = '';
// 保存杆塔列表数据
towerList = result.data;
- towerList.forEach(item => {
+ towerList.forEach((item) => {
options += ``;
});
// 为两个select都添加选项
$('select[name="towerId"]').html(options);
- $('select[name="nextTowerName"]').html('');
- form.render('select');
+ $('select[name="nextTowerName"]').html(
+ ''
+ );
+ form.render("select");
}
});
}
// 根据id获取三跨信息
function getThreeSpanById() {
- let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, time: 0});
+ let loadingMsg = layer.msg("数据加载中,请稍候...", { icon: 16, time: 0 });
let url = dataUrl + "/tbThreeSpan/getTbThreeSpanById";
let params = {
- encryptedData: encryptCBC(JSON.stringify({id: idParam}))
+ encryptedData: encryptCBC(JSON.stringify({ id: idParam })),
};
-
- ajaxRequest(url, "POST", params, true, null, function(result) {
- layer.close(loadingMsg);
- if (result.code === 200) {
- setFormData(result.data);
- } else {
- layer.alert(result.msg, {icon: 2});
+
+ ajaxRequest(
+ url,
+ "POST",
+ params,
+ true,
+ null,
+ function (result) {
+ layer.close(loadingMsg);
+ if (result.code === 200) {
+ setFormData(result.data);
+ } else {
+ layer.alert(result.msg, { icon: 2 });
+ }
+ },
+ function (xhr) {
+ layer.close(loadingMsg);
+ error(xhr);
}
- }, function(xhr) {
- layer.close(loadingMsg);
- error(xhr);
- });
+ );
}
// 设置表单数据
function setFormData(data) {
- if(data) {
+ if (data) {
// 根据spanType设置不同字段的值
- switch(data.spanType) {
- case "1": // 跨线路
- $('.span-type-option[data-type="cross-line"]').trigger('click');
+ switch (data.spanType) {
+ case "1": // 跨线路
+ $('.span-type-option[data-type="cross-line"]').trigger("click");
// 处理跨铁路特殊字段
data.intersectionAngle1 = data.intersectionAngle;
break;
- case "2": // 跨公路
- $('.span-type-option[data-type="cross-public"]').trigger('click');
+ case "2": // 跨公路
+ $('.span-type-option[data-type="cross-public"]').trigger(
+ "click"
+ );
data.verticalClearDistance2 = data.verticalClearDistance;
data.towerSpacing2 = data.towerSpacing;
break;
- case "3": // 跨铁路
- $('.span-type-option[data-type="cross-railway"]').trigger('click');
+ case "3": // 跨铁路
+ $('.span-type-option[data-type="cross-railway"]').trigger(
+ "click"
+ );
// 处理跨铁路特殊字段
data.verticalClearDistance3 = data.verticalClearDistance;
data.towerSpacing3 = data.towerSpacing;
@@ -320,202 +360,363 @@ function setFormData(data) {
}
// 处理经纬度数据
- if(data.tbSpanTowerList && data.tbSpanTowerList.length > 0) {
- data.tbSpanTowerList.forEach((tower) => {
- // 使用sort作为索引
- let num = tower.sort; // 直接使用sort值
- data[`crossTowerLongitude${num}`] = tower.lon;
- data[`crossTowerLatitude${num}`] = tower.lat;
- data[`id${num}`] = tower.id; // 设置每个点位的id
+ if (data.tbSpanTowerList && data.tbSpanTowerList.length > 0) {
+ pointsStr = JSON.stringify(data.tbSpanTowerList);
+ // data.tbSpanTowerList.forEach((tower) => {
+ // // 使用sort作为索引
+ // let num = tower.sort; // 直接使用sort值
+ // data[`crossTowerLongitude${num}`] = tower.lon;
+ // data[`crossTowerLatitude${num}`] = tower.lat;
+ // data[`id${num}`] = tower.id; // 设置每个点位的id
+ // });
+
+ let spanTowerInfo = "";
+ data.tbSpanTowerList.forEach((item, index) => {
+ spanTowerInfo += `
+
`;
+
+ // $('input[name="crossTowerLongitude' + (index + 1) + '"]').val(
+ // item.lng.toString().slice(0, 10)
+ // );
+ // $('input[name="crossTowerLatitude' + (index + 1) + '"]').val(
+ // item.lat.toString().slice(0, 10)
+ // );
});
+ $(".span-tower-info").html(spanTowerInfo);
}
// 使用layui表单赋值
form.val("threeSpanForm", data);
// 处理下一个杆塔的赋值
- if(data.nextTowerId) {
- $('#nextTowerId').val(data.nextTowerId);
+ if (data.nextTowerId) {
+ $("#nextTowerId").val(data.nextTowerId);
// 清空并设置下一个杆塔的选择框
- let $nextTowerSelect = $('#nextTowerName');
+ let $nextTowerSelect = $("#nextTowerName");
$nextTowerSelect.empty();
// 从towerList中找到对应的杆塔信息
- let nextTower = towerList.find(tower => tower.id == data.nextTowerId);
- if(nextTower) {
+ let nextTower = towerList.find(
+ (tower) => tower.id == data.nextTowerId
+ );
+ if (nextTower) {
let newOption = new Option(nextTower.towerName, nextTower.id);
$nextTowerSelect.append(newOption);
} else {
- let newOption = new Option('根据杆塔行序号自动填写下方杆塔序号', '');
+ let newOption = new Option(
+ "根据杆塔行序号自动填写下方杆塔序号",
+ ""
+ );
$nextTowerSelect.append(newOption);
}
-
+
// 重新渲染select
- form.render('select');
+ form.render("select");
}
}
}
function saveData2() {
- $('#formSubmit').trigger('click')
+ $("#formSubmit").trigger("click");
}
// 保存数据
function saveData(data) {
// 组装经纬度数据
let tbSpanTowerList = [];
- for(let i = 1; i <= 4; i++) {
- let lon = data[`crossTowerLongitude${i}`];
- let lat = data[`crossTowerLatitude${i}`];
- let id = data[`id${i}`]; // 获取点位id
-
- // 只有当经纬度都有值时才添加到列表
- if(lon && lat) {
- tbSpanTowerList.push({
- id: id || null, // 如果有id就使用,没有就null
- lon: lon,
- lat: lat,
- sort: i, // 使用当前循环的索引作为sort值
- threeSpanId: data.id // 如果需要,添加三跨id
- });
- }
-
- // 删除原始的字段
- delete data[`crossTowerLongitude${i}`];
- delete data[`crossTowerLatitude${i}`];
- delete data[`id${i}`];
+
+ if (!pointsStr) {
+ return layer.msg("请配置跨越杆塔经纬度", { icon: 7 });
}
-
- // 将经纬度列表添加到提交数据中
- data.tbSpanTowerList = tbSpanTowerList;
-
- let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
+
+ tbSpanTowerList = JSON.parse(pointsStr).map((item) => {
+ return {
+ id: item.id || null,
+ lon: item.lng.toString().slice(0, 10),
+ lat: item.lat.toString().slice(0, 10),
+ sort: item.sort,
+ };
+ });
+ // for (let i = 1; i <= 4; i++) {
+ // let lon = data[`crossTowerLongitude${i}`];
+ // let lat = data[`crossTowerLatitude${i}`];
+ // let id = data[`id${i}`]; // 获取点位id
+
+ // // 只有当经纬度都有值时才添加到列表
+ // if (lon && lat) {
+ // tbSpanTowerList.push({
+ // id: id || null, // 如果有id就使用,没有就null
+ // lon: lon,
+ // lat: lat,
+ // sort: i, // 使用当前循环的索引作为sort值
+ // threeSpanId: data.id, // 如果需要,添加三跨id
+ // });
+ // }
+
+ // // 删除原始的字段
+ // delete data[`crossTowerLongitude${i}`];
+ // delete data[`crossTowerLatitude${i}`];
+ // delete data[`id${i}`];
+ // }
+
+ // // 将经纬度列表添加到提交数据中
+
+ let loadingMsg = layer.msg("数据上传中,请稍候...", {
+ icon: 16,
+ scrollbar: false,
+ time: 0,
+ });
let url = dataUrl + "/tbThreeSpan/addTbThreeSpan";
let params = data;
if (params.id) {
url = dataUrl + "/tbThreeSpan/updateTbThreeSpan";
}
-
+
+ params.tbSpanTowerList = tbSpanTowerList;
+
console.log("三跨管理的新增修改", params);
params = {
- encryptedData: encryptCBC(JSON.stringify(params))
- }
+ encryptedData: encryptCBC(JSON.stringify(params)),
+ };
// 禁用所有输入框和按钮
function disableForm() {
- $('input, select').attr('disabled', true);
- $('.span-type-option').css('pointer-events', 'none');
- $('.save, .cancel').addClass("layui-btn-disabled").attr("disabled", true);
+ $("input, select").attr("disabled", true);
+ $(".span-type-option").css("pointer-events", "none");
+ $(".save, .cancel")
+ .addClass("layui-btn-disabled")
+ .attr("disabled", true);
}
// 启用所有输入框和按钮
function enableForm() {
- $('input, select').attr('disabled', false);
- $('.span-type-option').css('pointer-events', 'auto');
- $('.save, .cancel').removeClass("layui-btn-disabled").attr("disabled", false);
+ $("input, select").attr("disabled", false);
+ $(".span-type-option").css("pointer-events", "auto");
+ $(".save, .cancel")
+ .removeClass("layui-btn-disabled")
+ .attr("disabled", false);
}
-
- ajaxRequest(url, "POST", params, true, function () {
- disableForm();
- }, function (result) {
- layer.close(loadingMsg);
- if (result.code === 200) {
- layer.msg(result.msg, {icon: 1});
- setTimeout(function () {
- closePage(1);
- },3000)
- } else {
- layer.alert(result.msg, {icon: 2})
- setTimeout(function () {
- enableForm();
- },3000)
+
+ ajaxRequest(
+ url,
+ "POST",
+ params,
+ true,
+ function () {
+ disableForm();
+ },
+ function (result) {
+ layer.close(loadingMsg);
+ if (result.code === 200) {
+ layer.msg(result.msg, { icon: 1 });
+ setTimeout(function () {
+ closePage(1);
+ }, 3000);
+ } else {
+ layer.alert(result.msg, { icon: 2 });
+ setTimeout(function () {
+ enableForm();
+ }, 3000);
+ }
+ },
+ function (xhr) {
+ layer.close(loadingMsg);
+ enableForm();
+ error(xhr);
}
- }, function (xhr) {
- layer.close(loadingMsg);
- enableForm();
- error(xhr)
+ );
+}
+
+function crossLineFields() {
+ $('input[name="upperLine"]').attr("lay-verify", "required");
+ $('input[name="lowerLine"]').attr("lay-verify", "required");
+ $('input[name="intersectionAngle1"]').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",
+ // "required|longitude"
+ // );
+ // $('input[name="crossTowerLatitude1"]').attr(
+ // "lay-verify",
+ // "required|latitude"
+ // );
+ // $('input[name="crossTowerLongitude2"]').attr(
+ // "lay-verify",
+ // "required|longitude"
+ // );
+ // $('input[name="crossTowerLatitude2"]').attr(
+ // "lay-verify",
+ // "required|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="verticalClearDistance2"]').removeAttr("lay-verify");
+ $('input[name="towerSpacing2"]').removeAttr("lay-verify");
+ $('input[name="highwayWidth"]').removeAttr("lay-verify");
+
+ $('input[name="verticalClearDistance3"]').removeAttr("lay-verify");
+ $('input[name="towerSpacing3"]').removeAttr("lay-verify");
+ $('input[name="intersectionAngle3"]').removeAttr("lay-verify");
+}
+
+function crossPublicFields() {
+ $('input[name="upperLine"]').removeAttr("lay-verify");
+ $('input[name="lowerLine"]').removeAttr("lay-verify");
+ $('input[name="intersectionAngle1"]').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="verticalClearDistance2"]').attr(
+ "lay-verify",
+ "required|number"
+ );
+ $('input[name="towerSpacing2"]').attr("lay-verify", "required|number");
+ $('input[name="highwayWidth"]').attr("lay-verify", "required|number");
+
+ $('input[name="verticalClearDistance3"]').removeAttr("lay-verify");
+ $('input[name="towerSpacing3"]').removeAttr("lay-verify");
+ $('input[name="intersectionAngle3"]').removeAttr("lay-verify");
+}
+
+function crossRailwayFields() {
+ $('input[name="upperLine"]').removeAttr("lay-verify");
+ $('input[name="lowerLine"]').removeAttr("lay-verify");
+ $('input[name="intersectionAngle1"]').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="verticalClearDistance2"]').removeAttr("lay-verify");
+ $('input[name="towerSpacing2"]').removeAttr("lay-verify");
+ $('input[name="highwayWidth"]').removeAttr("lay-verify");
+
+ $('input[name="verticalClearDistance3"]').attr(
+ "lay-verify",
+ "required|number"
+ );
+ $('input[name="towerSpacing3"]').attr("lay-verify", "required|number");
+ $('input[name="intersectionAngle3"]').attr("lay-verify", "required|number");
+}
+
+// 打开配置页面
+function setSpanTowerLonAndLatData() {
+ let obj = {};
+ obj.id = proId;
+ obj.points = pointsStr;
+ openIframeByParamObj2(
+ "setLonAndLatData",
+ "配置跨越杆塔经纬度",
+ "../../lineManagement/child/setSpanTowerLonAndLat.html",
+ "92%",
+ "95%",
+ obj
+ );
+}
+
+function savePointData(str) {
+ pointsStr = str;
+ console.log("pointsStr", pointsStr);
+ const points = JSON.parse(str);
+ // 对页面的输入框进行赋值回显
+
+ let spanTowerInfo = "";
+ points.forEach((item, index) => {
+ spanTowerInfo += `
+ `;
+
+ // $('input[name="crossTowerLongitude' + (index + 1) + '"]').val(
+ // item.lng.toString().slice(0, 10)
+ // );
+ // $('input[name="crossTowerLatitude' + (index + 1) + '"]').val(
+ // item.lat.toString().slice(0, 10)
+ // );
});
+ // 先清空再赋值
+ $(".span-tower-info").empty();
+ $(".span-tower-info").html(spanTowerInfo);
}
-function crossLineFields(){
- $('input[name="upperLine"]').attr('lay-verify', 'required');
- $('input[name="lowerLine"]').attr('lay-verify', 'required');
- $('input[name="intersectionAngle1"]').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', 'required|longitude');
- $('input[name="crossTowerLatitude1"]').attr('lay-verify', 'required|latitude');
- $('input[name="crossTowerLongitude2"]').attr('lay-verify', 'required|longitude');
- $('input[name="crossTowerLatitude2"]').attr('lay-verify', 'required|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="verticalClearDistance2"]').removeAttr('lay-verify');
- $('input[name="towerSpacing2"]').removeAttr('lay-verify');
- $('input[name="highwayWidth"]').removeAttr('lay-verify');
-
- $('input[name="verticalClearDistance3"]').removeAttr('lay-verify');
- $('input[name="towerSpacing3"]').removeAttr('lay-verify');
- $('input[name="intersectionAngle3"]').removeAttr('lay-verify');
-
-}
-
-function crossPublicFields(){
- $('input[name="upperLine"]').removeAttr('lay-verify');
- $('input[name="lowerLine"]').removeAttr('lay-verify');
- $('input[name="intersectionAngle1"]').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="verticalClearDistance2"]').attr('lay-verify', 'required|number');
- $('input[name="towerSpacing2"]').attr('lay-verify', 'required|number');
- $('input[name="highwayWidth"]').attr('lay-verify', 'required|number');
-
- $('input[name="verticalClearDistance3"]').removeAttr('lay-verify');
- $('input[name="towerSpacing3"]').removeAttr('lay-verify');
- $('input[name="intersectionAngle3"]').removeAttr('lay-verify');
-}
-
-function crossRailwayFields(){
- $('input[name="upperLine"]').removeAttr('lay-verify');
- $('input[name="lowerLine"]').removeAttr('lay-verify');
- $('input[name="intersectionAngle1"]').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="verticalClearDistance2"]').removeAttr('lay-verify');
- $('input[name="towerSpacing2"]').removeAttr('lay-verify');
- $('input[name="highwayWidth"]').removeAttr('lay-verify');
-
- $('input[name="verticalClearDistance3"]').attr('lay-verify', 'required|number');
- $('input[name="towerSpacing3"]').attr('lay-verify', 'required|number');
- $('input[name="intersectionAngle3"]').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()
+ 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 8b10f80..fb620c9 100644
--- a/src/main/resources/static/js/basic/lineManagement/child/threeSpanList.js
+++ b/src/main/resources/static/js/basic/lineManagement/child/threeSpanList.js
@@ -1,61 +1,72 @@
-let form, layer, table, tableIns,idParam;
-let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10
+let form, layer, table, tableIns, idParam;
+let pageNum = 1,
+ limitSize = 10; // 默认第一页,分页数量为10
function setParams(params) {
idParam = JSON.parse(params).id;
- layui.use(['form', 'layer', 'table', 'laydate'], function () {
+ layui.use(["form", "layer", "table", "laydate"], function () {
form = layui.form;
layer = layui.layer;
table = layui.table;
layui.form.render();
pages(1, 10, 1);
- })
+ });
}
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
- let url = dataUrl + "/tbThreeSpan/getTbThreeSpanList"
- ajaxRequest(url, "POST", params, true, function () {
- }, function (result) {
- console.log(result);
- if (result.code === 200) {
- if (result.data) {
- initTable(result.data, result.limit, result.curr)
- laypages(result.count, result.curr, result.limit)
+ let url = dataUrl + "/tbThreeSpan/getTbThreeSpanList";
+ ajaxRequest(
+ url,
+ "POST",
+ params,
+ true,
+ function () {},
+ function (result) {
+ console.log(result);
+ if (result.code === 200) {
+ if (result.data) {
+ initTable(result.data, result.limit, result.curr);
+ laypages(result.count, result.curr, result.limit);
+ }
+ } else if (result.code === 500) {
+ layer.alert(result.msg, { icon: 2 });
}
- } else if (result.code === 500) {
- layer.alert(result.msg, {icon: 2})
+ },
+ function (xhr) {
+ error(xhr);
}
- }, function (xhr) {
- error(xhr)
- });
-
+ );
}
function laypages(total, page, limit) {
- layui.use(['laypage'], function () {
+ layui.use(["laypage"], function () {
let laypage = layui.laypage;
laypage.render({
- elem: 'voi-page',
+ elem: "voi-page",
count: total,
curr: page,
limit: limit,
limits: [10, 20, 50, 100, 200, 500],
- layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
+ layout: ["prev", "page", "next", "skip", "count", "limit"],
groups: 5,
jump: function (obj, first) {
if (!first) {
- pageNum = obj.curr, limitSize = obj.limit;
+ (pageNum = obj.curr), (limitSize = obj.limit);
pages(obj.curr, obj.limit, null);
}
- }
+ },
});
- })
+ });
}
/*初始化表格*/
function initTable(dataList, limit, page) {
- let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
+ let loadingMsg = layer.msg("数据加载中,请稍候...", {
+ icon: 16,
+ scrollbar: false,
+ time: 0,
+ });
tableIns = table.render({
elem: "#table_data",
height: "full-130",
@@ -65,106 +76,158 @@ function initTable(dataList, limit, page) {
[
//表头
{
- title: "序号", width: 80, unresize: true, align: "center",
+ title: "序号",
+ width: 80,
+ unresize: true,
+ align: "center",
templet: function (d) {
return (page - 1) * limit + d.LAY_INDEX;
- }
- },
- {field: "towerName", title: "杆塔号", unresize: true, align: "center",
- templet: function (d) {
- return d.towerName+"-"+d.nextTowerName;
- }
- },
- {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 + "(m)
";
- html+="安全裕度:" + d.safetyMargin + "(°)
";
- return html;
- }else if(d.spanType == 2){
- var html = '';
- html+="垂直净距:" + d.verticalClearDistance + "(m)
";
- html+="杆塔间距:" + d.towerSpacing + "(m)
";
- html+="公路宽度:" + d.highwayWidth + "(m)
";
- return html;
- }else if(d.spanType == 3){
- var html = '';
- html+="垂直净距:" + d.verticalClearDistance + "(m)
";
- html+="杆塔间距:" + d.towerSpacing + "(m)
";
- html+="交叉角度:" + d.intersectionAngle + "(°)
";
- return html;
- }
- }
+ },
},
{
- title: "操作", unresize: true, width: 200, align: "center",
+ field: "towerName",
+ title: "杆塔号",
+ unresize: true,
+ align: "center",
templet: function (d) {
- let html = '';
- let encodedTowerList = encodeURIComponent(JSON.stringify(d.tbSpanTowerList));
- let del = "删除";
- let edit = "修改";
+ return d.towerName + "-" + d.nextTowerName;
+ },
+ },
+ {
+ 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 +
+ "(m)
";
+ html +=
+ "安全裕度:" + d.safetyMargin + "(°)
";
+ return html;
+ } else if (d.spanType == 2) {
+ var html = "";
+ html +=
+ "垂直净距:" +
+ d.verticalClearDistance +
+ "(m)
";
+ html +=
+ "杆塔间距:" + d.towerSpacing + "(m)
";
+ html +=
+ "公路宽度:" + d.highwayWidth + "(m)
";
+ return html;
+ } else if (d.spanType == 3) {
+ var html = "";
+ html +=
+ "垂直净距:" +
+ d.verticalClearDistance +
+ "(m)
";
+ html +=
+ "杆塔间距:" + d.towerSpacing + "(m)
";
+ html +=
+ "交叉角度:" +
+ d.intersectionAngle +
+ "(°)
";
+ return html;
+ }
+ },
+ },
+ {
+ title: "操作",
+ unresize: true,
+ width: 200,
+ align: "center",
+ templet: function (d) {
+ let html = "";
+ let encodedTowerList = encodeURIComponent(
+ JSON.stringify(d.tbSpanTowerList)
+ );
+ let del =
+ "删除";
+ let edit =
+ "修改";
html = edit + del;
if (d.delFlag == 1) {
- return '';
+ return "";
}
return html;
- }
+ },
},
],
],
done: function (res, curr, count) {
layer.close(loadingMsg);
table.resize("table_data");
- count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block");
- count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto");
+ count ||
+ this.elem
+ .next(".layui-table-view")
+ .find(".layui-table-header")
+ .css("display", "inline-block");
+ count ||
+ this.elem
+ .next(".layui-table-view")
+ .find(".layui-table-box")
+ .css("overflow", "auto");
},
});
}
-
// 获取参数
function getReqParams(page, limit, type) {
let obj = {};
if (type === 2) {
- $('#keyWord').val('')
+ $("#keyWord").val("");
layui.form.render();
}
obj = {
page: page + "",
limit: limit + "",
proId: idParam,
- keyWord: $('#keyWord').val()
+ keyWord: $("#keyWord").val(),
+ };
+ console.log("杆塔管理查询条件", obj);
+ obj = {
+ encryptedData: encryptCBC(JSON.stringify(obj)),
};
- console.log("杆塔管理查询条件", obj)
- obj={
- encryptedData:encryptCBC(JSON.stringify(obj))
- }
return obj;
}
// 查询/重置
function query(type) {
pageNum = 1;
- if(type === 2){
- $('#keyWord').val('')
+ if (type === 2) {
+ $("#keyWord").val("");
layui.form.render();
}
- pages(1, limitSize,type);
+ pages(1, limitSize, type);
}
function reloadData() {
@@ -173,21 +236,35 @@ function reloadData() {
// 修改用户
function addData(id) {
- let title = '修改'
+ let title = "修改";
let param = {
- 'id': id,
- 'proId':idParam
- }
- openIframe2("editPro", title, "threeSpanFormTemp.html", '1000px', '625px', param);
+ id: id,
+ proId: idParam,
+ };
+ openIframe2(
+ "addDataThreeSpan",
+ title,
+ "threeSpanFormTemp.html",
+ "1000px",
+ "625px",
+ param
+ );
}
function addDataThreeSpan(id) {
- let title = '新增'
+ let title = "新增";
let param = {
- 'id': id,
- 'proId':idParam
- }
- openIframe2("addDataThreeSpan", title, "threeSpanFormTemp.html", '1000px', '625px', param);
+ id: id,
+ proId: idParam,
+ };
+ openIframe2(
+ "addDataThreeSpan",
+ title,
+ "threeSpanFormTemp.html",
+ "1000px",
+ "625px",
+ param
+ );
}
/*删除用户*/
@@ -195,58 +272,82 @@ function delData(id, tbSpanTowerList) {
// 将字符串转回对象
try {
// 处理可能的编码问题
- tbSpanTowerList = tbSpanTowerList.replace(/[\u0000-\u0019]+/g,""); // 移除不可见字符
+ tbSpanTowerList = tbSpanTowerList.replace(/[\u0000-\u0019]+/g, ""); // 移除不可见字符
tbSpanTowerList = JSON.parse(tbSpanTowerList);
- } catch(e) {
+ } catch (e) {
tbSpanTowerList = [];
}
-
- layer.confirm("确定删除吗?", {
- move: false
- }, function () {
- let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0});
- let url = dataUrl + "/tbThreeSpan/delTbThreeSpan";
- let params = {
- 'id': id,
- 'tbSpanTowerList': tbSpanTowerList
+
+ layer.confirm(
+ "确定删除吗?",
+ {
+ move: false,
+ },
+ function () {
+ let loadingMsg = layer.msg("数据删除中,请稍候...", {
+ icon: 16,
+ scrollbar: false,
+ time: 0,
+ });
+ let url = dataUrl + "/tbThreeSpan/delTbThreeSpan";
+ let params = {
+ id: id,
+ tbSpanTowerList: tbSpanTowerList,
+ };
+ params = {
+ encryptedData: encryptCBC(JSON.stringify(params)),
+ };
+
+ ajaxRequest(
+ url,
+ "POST",
+ params,
+ true,
+ function () {},
+ function (result) {
+ layer.close(loadingMsg);
+ if (result.code === 200) {
+ layer.msg(result.msg, { icon: 1 });
+ setTimeout(function () {
+ parent.reloadData();
+ query();
+ }, 3000);
+ } else {
+ layer.alert(result.msg, { icon: 2 });
+ }
+ },
+ function (xhr) {
+ layer.close(loadingMsg);
+ error(xhr);
+ }
+ );
}
- params = {
- encryptedData: encryptCBC(JSON.stringify(params))
- }
-
- ajaxRequest(url, "POST", params, true, function () {
- }, function (result) {
- layer.close(loadingMsg);
- if (result.code === 200) {
- layer.msg(result.msg, {icon: 1});
- setTimeout(function () {
- parent.reloadData();
- query();
- }, 3000);
- } else {
- layer.alert(result.msg, {icon: 2});
- }
- }, function (xhr) {
- layer.close(loadingMsg);
- error(xhr);
- });
- });
+ );
}
-function exportThreeSpan(){
+function exportThreeSpan() {
let obj = {
- keyWord: $('#keyWord').val(),
- proId: idParam
- }
+ keyWord: $("#keyWord").val(),
+ proId: idParam,
+ };
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)));
+ 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.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
@@ -256,11 +357,15 @@ function exportThreeSpan(){
a.href = url;
a.download = "三跨管理" + ".xlsx"; // 文件名
} else {
- layer.msg("数据导出发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000});
+ 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/js/synthesisQuery/digitalSignage.js b/src/main/resources/static/js/synthesisQuery/digitalSignage.js
index d4bf407..d2f0ebe 100644
--- a/src/main/resources/static/js/synthesisQuery/digitalSignage.js
+++ b/src/main/resources/static/js/synthesisQuery/digitalSignage.js
@@ -59,7 +59,7 @@ const legendData = [
{
name: "架线施工",
value: 0,
- icon: "../../img/digitalSignage/line_yellow.png",
+ icon: "../../img/digitalSignage/line_y.png",
},
// {
// name: "架线施工完成",
@@ -69,7 +69,7 @@ const legendData = [
{
name: "架线施工完成",
value: 0,
- icon: "../../img/digitalSignage/line_red.png",
+ icon: "../../img/digitalSignage/line_r.png",
},
{
name: "附件安装完成",
@@ -711,13 +711,17 @@ function addAllMapPoints() {
${pointData.time7 || "/"}
- 架线施工完成
+ 架线施工
${pointData.time8 || "/"}
- 附件安装完成
+ 架线施工完成
${pointData.time9 || "/"}
+
+ 附件安装完成
+ ${pointData.time10 || "/"}
+
`;
const infoWindow = new BMapGL.InfoWindow(infoContent, {
@@ -858,19 +862,25 @@ function addAllMapPoints() {
${pointData.towerInfoVo.time7 || "/"}
-
+
- 架线施工完成
+ 架线施工
${pointData.towerInfoVo.time8 || "/"}
- 附件安装完成
+ 架线施工完成
${pointData.towerInfoVo.time9 || "/"}
+
+ 附件安装完成
+
+ ${pointData.towerInfoVo.time10 || "/"}
+
+
diff --git a/src/main/resources/static/pages/basic/lineManagement/child/setSpanTowerLonAndLat.html b/src/main/resources/static/pages/basic/lineManagement/child/setSpanTowerLonAndLat.html
new file mode 100644
index 0000000..6bb513b
--- /dev/null
+++ b/src/main/resources/static/pages/basic/lineManagement/child/setSpanTowerLonAndLat.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 配置公路口、中转口经纬度
+
+
+
+
+
+
+
+
+
+
提示:第一个点表示首个杆塔,至少需要两个杆塔,最后一个点表示最后一个杆塔
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 3dbfc1c..001bb0d 100644
--- a/src/main/resources/static/pages/basic/lineManagement/child/threeSpanFormTemp.html
+++ b/src/main/resources/static/pages/basic/lineManagement/child/threeSpanFormTemp.html
@@ -1,10 +1,11 @@
+
-
+
@@ -19,16 +20,20 @@
.layui-form-item {
margin-bottom: 15px;
}
+
.layui-input-inline {
width: 420px;
}
+
.required-mark {
color: #FF5722;
}
+
.span-type-options {
display: flex;
gap: 15px;
}
+
.span-type-option {
padding: 8px 20px;
border: 1px solid #e6e6e6;
@@ -36,225 +41,224 @@
cursor: pointer;
background: #fff;
}
+
.span-type-option.active {
background: #ecf5ff;
border-color: #409eff;
color: #409eff;
}
- .layui-form-mid{
+
+ .layui-form-mid {
padding: 0px !important;
}
+
-