From 82c39071f5a6c9009e55a962d7dcccee7f64dff4 Mon Sep 17 00:00:00 2001 From: lSun <15893999301@qq.com> Date: Mon, 28 Apr 2025 17:33:02 +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 --- .../lineManagement/child/threeSpanFormTemp.js | 43 +++++++++++++++++-- .../child/threeSpanFormTemp.html | 18 +++++--- 2 files changed, 50 insertions(+), 11 deletions(-) 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 71ee7d7..feb3c73 100644 --- a/src/main/resources/static/js/basic/lineManagement/child/threeSpanFormTemp.js +++ b/src/main/resources/static/js/basic/lineManagement/child/threeSpanFormTemp.js @@ -188,6 +188,9 @@ function setParams(params) { delete formData.towerSpacing3; delete formData.intersectionAngle3; + formData.towerSpacing = formData.towerSpacing2; + formData.verticalClearDistance = formData.verticalClearDistance2; + formData.spanType ="2"; }else if(currentSystem === 'cross-railway'){ delete formData.upperLine; @@ -211,6 +214,7 @@ function setParams(params) { formData.verticalClearDistance = formData.verticalClearDistance3; formData.towerSpacing = formData.towerSpacing3; + formData.intersectionAngle = formData.intersectionAngle3; formData.spanType ="3"; } @@ -275,29 +279,56 @@ function setFormData(data) { 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'); + data.verticalClearDistance2 = data.verticalClearDistance; + data.towerSpacing2 = data.towerSpacing; break; case "3": // 跨铁路 $('.span-type-option[data-type="cross-railway"]').trigger('click'); // 处理跨铁路特殊字段 data.verticalClearDistance3 = data.verticalClearDistance; data.towerSpacing3 = data.towerSpacing; + data.intersectionAngle3 = data.intersectionAngle; break; } // 处理经纬度数据 if(data.tbSpanTowerList && data.tbSpanTowerList.length > 0) { - data.tbSpanTowerList.forEach((tower, index) => { - let num = index + 1; + 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 }); } // 使用layui表单赋值 form.val("threeSpanForm", data); + + // 处理下一个杆塔的赋值 + if(data.nextTowerId) { + $('#nextTowerId').val(data.nextTowerId); + // 清空并设置下一个杆塔的选择框 + let $nextTowerSelect = $('#nextTowerName'); + $nextTowerSelect.empty(); + // 从towerList中找到对应的杆塔信息 + 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('根据杆塔行序号自动填写下方杆塔序号', ''); + $nextTowerSelect.append(newOption); + } + + // 重新渲染select + form.render('select'); + } } } @@ -312,19 +343,23 @@ function saveData(data) { 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: i, // 使用当前循环的索引作为sort值 + threeSpanId: data.id // 如果需要,添加三跨id }); } - // 删除原始的经纬度字段 + // 删除原始的字段 delete data[`crossTowerLongitude${i}`]; delete data[`crossTowerLatitude${i}`]; + delete data[`id${i}`]; } // 将经纬度列表添加到提交数据中 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 7b5ffa9..bb76040 100644 --- a/src/main/resources/static/pages/basic/lineManagement/child/threeSpanFormTemp.html +++ b/src/main/resources/static/pages/basic/lineManagement/child/threeSpanFormTemp.html @@ -129,10 +129,11 @@