From 4bd9e1b8ac5fbc790be40bd033dcc0ac95051e15 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 21 八月 2025 17:12:28 +0800
Subject: [PATCH] 经停站点

---
 ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js                                    |   31 +++++++
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java |   39 +++++++++
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html                                     |   63 +++++++++++++++
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_edit.html                                    |   83 ++++++++++++++++++++
 4 files changed, 214 insertions(+), 2 deletions(-)

diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
index 335e4bd..ff1377f 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
@@ -115,6 +115,8 @@
         model.addAttribute("start",start);
         TLineSite end = itLineSiteService.selectOne(new EntityWrapper<TLineSite>().eq("lineId", tLineId).eq("type", 2));
         model.addAttribute("end",end);
+        List<TLineSite> stopoverList = itLineSiteService.selectList(new EntityWrapper<TLineSite>().eq("lineId", tLineId).eq("type", 3));
+        model.addAttribute("stopoverList",stopoverList);
         //站点
         List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1));
         model.addAttribute("siteList",siteList);
@@ -157,7 +159,10 @@
      */
     @RequestMapping(value = "/add")
     @ResponseBody
-    public ResultUtil add(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr,@RequestParam String shuArr) {
+    public ResultUtil add(TLine tLine,Integer startSiteId,Integer endSiteId,
+                          @RequestParam String subArr,
+                          @RequestParam String shuArr,
+                          @RequestParam String stopoverValues) {
         String name = tLine.getName();
         name = name.replaceAll("& lt;", "<");
         name = name.replaceAll("& gt;", ">");
@@ -180,6 +185,18 @@
         end.setSiteId(endSiteId);
         end.setType(2);
         itLineSiteService.insert(end);
+        // 添加经停站
+        List<TLineSite> stopoverList = new ArrayList<>();
+        JSONArray jsonArray = JSON.parseArray(stopoverValues);
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            TLineSite stopover = new TLineSite();
+            stopover.setLineId(tLine.getId());
+            stopover.setSiteId(jsonObject.getInteger("id"));
+            stopover.setType(3);
+            stopoverList.add(stopover);
+        }
+        itLineSiteService.insertBatch(stopoverList);
 
         //添加价格设置
         addPrice(tLine.getId(), subArr);
@@ -326,7 +343,10 @@
      */
     @RequestMapping(value = "/update")
     @ResponseBody
-    public ResultUtil update(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr,@RequestParam String shuArr) {
+    public ResultUtil update(TLine tLine,Integer startSiteId,Integer endSiteId,
+                             @RequestParam String subArr,
+                             @RequestParam String shuArr,
+                             @RequestParam String stopoverValues) {
         String name = tLine.getName();
         name = name.replaceAll("& lt;", "<");
         name = name.replaceAll("& gt;", ">");
@@ -364,6 +384,21 @@
             itLineSiteService.insert(end);
         }
 
+        // 删除经停站
+        itLineSiteService.delete(new EntityWrapper<TLineSite>().eq("lineId",tLine.getId()).eq("type",3));
+        // 添加经停站
+        List<TLineSite> stopoverList = new ArrayList<>();
+        JSONArray jsonArray = JSON.parseArray(stopoverValues);
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            TLineSite stopover = new TLineSite();
+            stopover.setLineId(tLine.getId());
+            stopover.setSiteId(jsonObject.getInteger("id"));
+            stopover.setType(3);
+            stopoverList.add(stopover);
+        }
+        itLineSiteService.insertBatch(stopoverList);
+
         //删除线路价格
         itLinePriceService.delete(new EntityWrapper<TLinePrice>().eq("lineId",tLine.getId()));
         //添加价格设置
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html
index da95513..ff354a5 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html
@@ -16,6 +16,7 @@
                 </div>
             </div>
             <div class="row">
+                <input type="hidden" id="siteList" value="${siteList}">
                 <div class="col-sm-11">
                     <div class="form-group">
                         <label class="col-sm-2 control-label">线路名称:</label>
@@ -33,6 +34,15 @@
                                 @}
                             </select>
                         </div>
+                    </div>
+
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">经停站:</label>
+                        <div class="col-sm-10">
+                            <#button btnCss="info" name="添加" id="stopoverSite" icon="fa-check" clickFun="addBtn()"/>
+                        </div>
+                    </div>
+                    <div class="form-group" id="stopoverSiteDiv">
                     </div>
                     <div class="form-group">
                         <label class="col-sm-2 control-label">终点:</label>
@@ -238,6 +248,59 @@
             layer.msg("【分钟】输入框不能超过3位数");
         }
     }
+    function addBtn(){
+        console.log("addBtn");
+        // 给stopoverSiteDiv的里面添加经停站
+        var stopoverSiteDiv = $("#stopoverSiteDiv");
+        var siteListStr = $("#siteList").val();
+        var siteList = extractSites(siteListStr);
+        // 转成json
+        console.log("1111122222111"+siteList);
+        var options = '<option value="">选择站点</option>';
+        for (var i = 0; i < siteList.length; i++) {
+            console.log(siteList[i]);
+            options += '<option value="' + siteList[i].id + '">' + siteList[i].name + '</option>';
+        }
+        // 添加唯一ID和删除按钮
+        var uniqueId = Date.now(); // 生成唯一ID
+        var stopoverSite = '<div class="form-group" id="stopoverItem_' + uniqueId + '">' +
+            '<label class="col-sm-2 control-label"></label>' +
+            '<div class="col-sm-2">' +
+            '<select class="form-control">' + options + '</select>' +
+            '</div>' +
+            '<div class="col-sm-1">' +
+            '<button type="button" class="btn btn-danger btn-sm" onclick="removeStopover(' + uniqueId + ')">' +
+            '<i class="fa fa-trash"></i> 删除' +
+            '</button>' +
+            '</div>' +
+            '</div>';
+        stopoverSiteDiv.append(stopoverSite);
+    }
 
+    // 删除经停站函数
+    function removeStopover(id) {
+        $("#stopoverItem_" + id).remove();
+    }
+
+    function extractSites(siteListStr) {
+        try {
+            var sites = [];
+            // 匹配每个站点的id和name
+            var regex = /TSite\{id=(\d+), name=([^,}]+)/g;
+            var match;
+
+            while ((match = regex.exec(siteListStr)) !== null) {
+                sites.push({
+                    id: parseInt(match[1]),
+                    name: match[2]
+                });
+            }
+
+            return sites;
+        } catch (e) {
+            console.error("提取站点信息失败:", e);
+            return [];
+        }
+    }
 </script>
 @}
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_edit.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_edit.html
index 3835e4f..a75e21a 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_edit.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_edit.html
@@ -16,6 +16,7 @@
                 </div>
             </div>
             <input type="hidden" id="id" name="id" value="${item.id}">
+            <input type="hidden" id="siteList" value="${siteList}">
             <div class="row">
                 <div class="col-sm-11">
                     <div class="form-group">
@@ -35,6 +36,34 @@
                             </select>
                         </div>
                     </div>
+
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">经停站:</label>
+                        <div class="col-sm-10">
+                            <#button btnCss="info" name="添加" id="stopoverSite" icon="fa-check" clickFun="addBtn()"/>
+                        </div>
+                    </div>
+                    <div class="form-group" id="stopoverSiteDiv">
+                        @for(stopover in stopoverList){
+                        <div class="form-group" id="stopoverItem_${stopover.id}">
+                            <label class="col-sm-2 control-label"></label>
+                            <div class="col-sm-2">
+                                    <select class="form-control" id="endSiteId1" >
+                                        <option value="">选择站点</option>
+                                        @for(obj in siteList){
+                                        <option value="${obj.id}" ${obj.id == stopover.siteId ? 'selected=selected' : ''}>${obj.name}</option>
+                                        @}
+                                    </select>
+                            </div>
+                            <div class="col-sm-1">
+                                <button type="button" class="btn btn-danger btn-sm" onclick="removeStopover(${stopover.id})">
+                                    <i class="fa fa-trash"></i> 删除
+                                </button>
+                            </div>
+                        </div>
+                        @}
+                    </div>
+
                     <div class="form-group">
                         <label class="col-sm-2 control-label">终点:</label>
                         <div class="col-sm-2">
@@ -252,6 +281,60 @@
             layer.msg("【分钟】输入框不能超过3位数");
         }
     }
+    function addBtn(){
+        console.log("addBtn");
+        // 给stopoverSiteDiv的里面添加经停站
+        var stopoverSiteDiv = $("#stopoverSiteDiv");
+        var siteListStr = $("#siteList").val();
+        var siteList = extractSites(siteListStr);
+        // 转成json
+        console.log("1111122222111"+siteList);
+        var options = '<option value="">选择站点</option>';
+        for (var i = 0; i < siteList.length; i++) {
+            console.log(siteList[i]);
+            options += '<option value="' + siteList[i].id + '">' + siteList[i].name + '</option>';
+        }
+        // 添加唯一ID和删除按钮
+        var uniqueId = Date.now(); // 生成唯一ID
+        var stopoverSite = '<div class="form-group" id="stopoverItem_' + uniqueId + '">' +
+            '<label class="col-sm-2 control-label"></label>' +
+            '<div class="col-sm-2">' +
+            '<select class="form-control">' + options + '</select>' +
+            '</div>' +
+            '<div class="col-sm-1">' +
+            '<button type="button" class="btn btn-danger btn-sm" onclick="removeStopover(' + uniqueId + ')">' +
+            '<i class="fa fa-trash"></i> 删除' +
+            '</button>' +
+            '</div>' +
+            '</div>';
+        stopoverSiteDiv.append(stopoverSite);
+    }
 
+    // 删除经停站函数
+    function removeStopover(id) {
+        console.log("removeStopover"+id);
+        $("#stopoverItem_" + id).remove();
+    }
+
+    function extractSites(siteListStr) {
+        try {
+            var sites = [];
+            // 匹配每个站点的id和name
+            var regex = /TSite\{id=(\d+), name=([^,}]+)/g;
+            var match;
+
+            while ((match = regex.exec(siteListStr)) !== null) {
+                sites.push({
+                    id: parseInt(match[1]),
+                    name: match[2]
+                });
+            }
+
+            return sites;
+        } catch (e) {
+            console.error("提取站点信息失败:", e);
+            return [];
+        }
+    }
 </script>
 @}
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js
index 8a9b5ce..d32052d 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js
@@ -120,6 +120,20 @@
     var startSiteId = $("#startSiteId").val();
     var endSiteId = $("#endSiteId").val();
 
+    // 获取经停站所有的值
+    var stopoverValues = [];
+    $("#stopoverSiteDiv .form-group").each(function() {
+        var selectedValue = $(this).find("select").val();
+        var selectedText = $(this).find("select option:selected").text();
+        if (selectedValue) {
+            stopoverValues.push({
+                id: selectedValue,
+                name: selectedText
+            });
+        }
+    });
+
+
     var subArr=[];
     $(".typeValueClass").each(function () {
         subArr.push({
@@ -164,6 +178,8 @@
     ajax.set("endSiteId",endSiteId);
     ajax.set("subArr",JSON.stringify(subArr));
     ajax.set("shuArr",JSON.stringify(shuArr));
+    ajax.set("stopoverValues",JSON.stringify(stopoverValues));
+    console.log("fsahbAJdsaiujhds");
     ajax.start();
 }
 
@@ -180,6 +196,19 @@
 
     var startSiteId = $("#startSiteId").val();
     var endSiteId = $("#endSiteId").val();
+
+    // 获取经停站所有的值
+    var stopoverValues = [];
+    $("#stopoverSiteDiv .form-group").each(function() {
+        var selectedValue = $(this).find("select").val();
+        var selectedText = $(this).find("select option:selected").text();
+        if (selectedValue) {
+            stopoverValues.push({
+                id: selectedValue,
+                name: selectedText
+            });
+        }
+    });
 
     var subArr=[];
     $(".typeValueClass").each(function () {
@@ -224,6 +253,8 @@
     ajax.set("endSiteId",endSiteId);
     ajax.set("subArr",JSON.stringify(subArr));
     ajax.set("shuArr",JSON.stringify(shuArr));
+    ajax.set("stopoverValues",JSON.stringify(stopoverValues));
+    console.log("fsahqeqdsddsdhds");
     ajax.start();
 }
 

--
Gitblit v1.7.1