From 79b5a1c92e219128d50b58714eb2f6ec0f695d83 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期三, 04 三月 2026 16:58:51 +0800
Subject: [PATCH] 添加第一版gis监管页面,建模版本

---
 fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java |  109 ++++++
 fzzy-igdss-web/src/main/resources/templates/group/video.html          |    2 
 fzzy-igdss-web/src/main/resources/templates/group/index.html          |    2 
 fzzy-igdss-web/src/main/resources/static/group/gis_modeling.js        |  607 +++++++++++++++++++++++++++++++++
 fzzy-igdss-web/src/main/java/com/fzzy/group/GroupController.java      |   43 ++
 fzzy-igdss-web/src/main/resources/templates/group/gis_modeling.html   |  313 +++++++++++++++++
 fzzy-igdss-web/src/main/resources/static/common/igds-common.js        |    3 
 7 files changed, 1,076 insertions(+), 3 deletions(-)

diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/group/GroupController.java b/fzzy-igdss-web/src/main/java/com/fzzy/group/GroupController.java
index 7c11cd8..52c466c 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/group/GroupController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/group/GroupController.java
@@ -1,12 +1,12 @@
 package com.fzzy.group;
 
+import com.fzzy.common.manager.CommonManager;
 import com.fzzy.group.manager.GroupManager;
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.data.*;
 import com.fzzy.igds.domain.*;
 import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.igds.websocket.WebSocketPacket;
-import com.fzzy.common.manager.CommonManager;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -130,6 +130,47 @@
 
 
     /**
+     * 鎬昏澶у睆椤甸潰
+     * @return
+     */
+    @RequestMapping("/gis_modeling")
+    public String gisModeling(ModelMap view) {
+        SysUser user = ContextUtil.getLoginUser();
+        view.put(Constant.MODEL_KEY_LOGIN_USER, user);
+
+        view.put("deptId", user.getDeptId());
+
+        view.put("sysName", "鏅烘収绮簱璐ㄦ娂鐩戠澶у睆");
+        // 鏍囪
+        Slogan dicSlogan = commonManager.getDicSlogan();
+        view.put("dicSlogan", dicSlogan);
+
+        view.put("bizType", "screen");
+        view.put("bizTag", WebSocketPacket.BIZ_TAG_COMMON);
+
+        view.put("defaultAreaCode", "650000");
+
+        //鑾峰彇鏂扮枂鍖哄垝淇℃伅
+        List<DicArea> areaList = groupManager.getBankAndChildDept("650000");
+        view.put("areaList", areaList);
+
+        //鑾峰彇鏂扮枂鍙婁笅灞炲競宸�
+        List<DicArea> allArea = groupManager.getArea("650000");
+        view.put("allArea", allArea);
+
+        //鑾峰彇鎵�鏈夊簱鍖�
+        List<GroupDeptData> deptList = groupManager.getDeptData(user.getCompanyId());
+        view.put("deptList", deptList);
+
+        //缁熻淇℃伅
+        GroupGisData groupGisData = groupManager.getGisData();
+        view.put("gisData", groupGisData);
+
+        return prefix + "/gis_modeling";
+    }
+
+
+    /**
      * 棣栭〉--鑾峰彇鏁伴噺淇℃伅(鍌ㄩ噺缁熻銆佸垎鍝佺搴撳瓨銆佺洃绠℃暟閲忕瓑)
      *
      * @param param
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
index 6bb065f..b974889 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
@@ -49,6 +49,11 @@
     private SnapRecordService snapRecordService;
     @Resource
     private SecCameraService cameraService;
+    @Resource
+    private BankService bankService;
+
+    @Resource
+    private PledgeContractService pledgeContractService;
 
     /**
      * 鑾峰彇鐪佸強涓嬪睘甯傚窞闆嗗悎
@@ -120,6 +125,110 @@
         return list;
     }
 
+
+    public List<DicArea> getBankAndChildDept(String areaCode) {
+
+        DicArea area = dicAreaService.listDicAreaByCode(areaCode);
+        if (null == area) {
+            return null;
+        }
+        List<DicArea> areaChildren =  new ArrayList<>();
+
+        List<DicArea> list = new ArrayList<>();
+        if (Constant.AREA_TYPE_1.equals(area.getType())) {
+           //鏌ヨ鎵�鏈夌殑璐ㄦ娂鍚堝悓
+            List<PledgeContract> pledgeContractList = pledgeContractService.listAll(null);
+            //鏌ヨ鎵�鏈夌殑搴撳尯
+            List<Dept> depotList = deptService.listDept(null, ContextUtil.getCompanyId(), null);
+            //鏌ヨ鎵�鏈夌殑閾惰
+            List<Bank> bankList = bankService.listAll(null);
+            DicArea defaultBank = new DicArea();
+            defaultBank.setCode("-1");
+            defaultBank.setName("鏃犺川鎶奸摱琛�");
+            defaultBank.setChildren(new ArrayList<>());
+
+            for (Dept dept : depotList) {
+                Boolean isPledge = false;
+                for (PledgeContract pledgeContract : pledgeContractList) {
+                    if( dept.getId().equals(pledgeContract.getPledgeDept())){
+                        //浠巐ist涓壘鍒板綋鍓嶈川鎶奸摱琛岀殑鏁版嵁
+                        DicArea pledgeBank = null;
+                        int indexBank = -1;
+                        for (DicArea item : areaChildren) {
+                            if (pledgeContract.getPledgeBank().equals(item.getCode())) {
+                                pledgeBank = item;
+                                indexBank = areaChildren.indexOf(pledgeBank);
+                                break;
+                            }
+                        }
+                        if( null == pledgeBank){
+                            //鏈壘鍒拌川鎶奸摱琛屾暟鎹垯鏂板缓
+                            pledgeBank = new DicArea();
+                            pledgeBank.setCode(pledgeContract.getPledgeBank());
+                            pledgeBank.setName("璐ㄦ娂閾惰_"+pledgeContract.getPledgeBank());
+                            //浠庨摱琛屾暟鎹腑鎵惧埌璐ㄦ娂閾惰鐨勪俊鎭�
+                            for (Bank bank : bankList) {
+                                if (pledgeContract.getPledgeBank().equals(bank.getId())) {
+                                    pledgeBank.setName(bank.getName());
+                                }
+                            }
+                            //娣诲姞璐ㄦ娂閾惰涓嬬殑搴撳尯鏁版嵁
+                            DicArea deptDic = new DicArea();
+                            deptDic.setCode(dept.getId());
+                            deptDic.setName(dept.getKqmc());
+
+                            List<DicArea> children = pledgeBank.getChildren();
+                            if (null == children) {
+                                pledgeBank.setChildren(new ArrayList<>());
+                            }
+                            pledgeBank.getChildren().add(deptDic);
+                            //鏂板璐ㄦ娂閾惰鏁版嵁鍒發ist涓�
+                            areaChildren.add(pledgeBank);
+                            isPledge=true;
+                            break;
+                        }else{
+                            //娣诲姞璐ㄦ娂閾惰涓嬬殑搴撳尯鏁版嵁
+                            DicArea deptDic = new DicArea();
+                            deptDic.setCode(dept.getId());
+                            deptDic.setName(dept.getKqmc());
+
+                            List<DicArea> children = pledgeBank.getChildren();
+                            if (null == children) {
+                                pledgeBank.setChildren(new ArrayList<>());
+                            }
+                            pledgeBank.getChildren().add(deptDic);
+                            //鏇存柊list涓殑璐ㄦ娂閾惰鏁版嵁
+                            areaChildren.set(indexBank,pledgeBank);
+                            isPledge=true;
+                            break;
+
+                        }
+
+
+                    }
+                }
+                if(!isPledge){
+                    DicArea deptDic = new DicArea();
+                    deptDic.setCode(dept.getId());
+                    deptDic.setName(dept.getKqmc());
+
+                    List<DicArea> children = defaultBank.getChildren();
+                    if (null == children) {
+                        defaultBank.setChildren(new ArrayList<>());
+                    }
+                    defaultBank.getChildren().add(deptDic);
+                }
+            }
+            List<DicArea> defaultBankChildren = defaultBank.getChildren();
+            if (defaultBankChildren.size()>0) {
+                areaChildren.add(defaultBank);
+            }
+            area.setChildren(areaChildren);
+        }
+        list.add(area);
+        return list;
+    }
+
     /**
      * 鑾峰彇鐢ㄦ埛涓嬫墍鏈夊簱鍖轰俊鎭�
      *
diff --git a/fzzy-igdss-web/src/main/resources/static/common/igds-common.js b/fzzy-igdss-web/src/main/resources/static/common/igds-common.js
index f899319..e347793 100644
--- a/fzzy-igdss-web/src/main/resources/static/common/igds-common.js
+++ b/fzzy-igdss-web/src/main/resources/static/common/igds-common.js
@@ -230,6 +230,9 @@
     if ("gis" == pageTag) {
         url = "/group/gis";
     }
+    if ("gis_modeling" == pageTag) {
+        url = "/group/gis_modeling";
+    }
     if ("video" == pageTag) {
         url = "/group/video";
     }
diff --git a/fzzy-igdss-web/src/main/resources/static/group/gis_modeling.js b/fzzy-igdss-web/src/main/resources/static/group/gis_modeling.js
new file mode 100644
index 0000000..d7fec1d
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/group/gis_modeling.js
@@ -0,0 +1,607 @@
+var colors = {};
+var map;
+var disProvince;//琛屾斂鍖洪鑹叉覆鏌�
+var deptListMap = {};
+var allAreaMap = {};
+var markers = [];//鐐规爣璁�
+var type = "0";
+var county = "all";
+var breedChart = null;
+var foodNumPerColors = ["0, 228, 250", "22, 226, 173", "255, 181, 23", "238, 60, 72", "135, 103, 255", "41, 122, 255", "238, 60, 144", "255, 99, 132", "75, 192, 192", "153, 102, 255", "255, 159, 64", "199, 199, 199", "83, 102, 255", "255, 193, 7"];
+//var switch2AreaNode2;
+
+
+let iframe = document.getElementById("gisFrame");
+
+// ============ 鎺ユ敹iframe娑堟伅 ============
+window.addEventListener("message", function (event) {
+    // 鐢熶骇鐜寤鸿鏍¢獙 event.origin
+    const data = event.data;
+
+    if (data && data.type === "CLICK_BUILDING") {
+        alert(`鐐瑰嚮浜嗕粨搴� ${data.data.uid}`);
+    }
+});
+
+$(function () {
+    //鎵�鏈夊簱鍖�
+    if (deptList) {
+        for (var i = 0; i < deptList.length; i++) {
+            deptListMap[deptList[i].deptId] = deptList[i];
+        }
+    }
+    //鎵�鏈夌渷甯�
+    if (allArea) {
+        for (var i = 0; i < allArea.length; i++) {
+            allAreaMap[allArea[i].code] = allArea[i];
+        }
+    }
+
+    //鍒濆鍖栨椂闂�
+    initTime();
+    initDicSlogan();
+
+    //鍒濆鍖栧乏渚у浘琛�
+    pieChartLoad(
+        [
+            {value: "0", name: '浼婂畞甯�'},
+            {value: "0", name: '濂庡悲甯�'},
+            {value: "0", name: '闇嶅皵鏋滄柉甯�'},
+            {value: "0", name: '浼婂畞鍘�'},
+            {value: "0", name: '瀵熷竷鏌ュ皵閿′集鑷不鍘�'},
+            {value: "0", name: '闇嶅煄鍘�'},
+            {value: "0", name: '宸╃暀鍘�'},
+            {value: "0", name: '鏂版簮鍘�'},
+            {value: "0", name: '鏄嫃鍘�'},
+            {value: "0", name: '鐗瑰厠鏂幙'},
+            {value: "0", name: '灏煎嫆鍏嬪幙'}
+        ],
+        'breedChart'
+    );
+    window.onresize = function (e) {
+        if (breedChart) {
+            breedChart.resize();
+        }
+    }
+
+    //娓叉煋閮ㄩ棬
+    renderList();
+
+    renderNum();
+    //瀹氫綅鍒版柊鐤嗙渷
+    setTimeout(function () {
+        positioning("650000");
+    }, 2000);
+
+    $('.sup-menu-title').click(function () {
+        var kai = $(this).parent(".sup-menu-group")
+        if (kai.hasClass('menu-group')) {
+            kai.removeClass('menu-group')
+        } else {
+            kai.addClass('menu-group')
+        }
+    });
+    $('.sup-menu-h').click(function () {
+        var kai2 = $(this).parents(".sup-menu-ul")
+        if (kai2.hasClass('menu-h')) {
+            kai2.removeClass('menu-h')
+        } else {
+            kai2.addClass('menu-h')
+        }
+    });
+
+    // 鍒濆鍖朩ebSocket
+    initWS(companyId, bizType, bizTag, userId);
+});
+
+// socket淇℃伅杩斿洖铏曠悊
+function socketOnMessage(pocket) {
+    //console.log(pocket);
+    if (pocket.bizId == "slogan") {
+        var data = pocket.data;
+        dicSlogan = data;
+        initDicSlogan();
+    }
+}
+
+// 鍒锋柊鏃堕棿
+function positioning(code) {
+
+    var kai = $("#prov");
+    if (kai.hasClass('menu-group')) {
+        kai.removeClass('menu-group')
+    } else {
+        kai.addClass('menu-group')
+    }
+
+    // renderAreas(code);
+}
+
+// 鍒锋柊鏃堕棿
+function initTime() {
+    setInterval(function () {
+        $("#navBarDate").html(formatDate('mm鏈坉d鏃�', new Date()));
+        $("#navBarTime").html(formatDate('HH:MM:SS', new Date()));
+        $("#navBarWeek").html(getWeekDate());
+    }, 1000);
+}
+
+
+//搴撳尯鐐瑰嚮浜嬩欢
+function clickDept(deptid) {
+    // 鏂规涓�锛氶�氱煡iframe鍒囨崲搴撳尯
+    if (iframe.contentWindow) {
+        iframe.contentWindow.postMessage(
+            {
+                type: "CHANGE_AREA",
+                data: {uid: deptid},
+            },
+            "*", // 鐢熶骇鐜寤鸿鏇挎崲涓哄叿浣撳煙鍚�
+        );
+    }
+    // 鏂规浜岋細鐩存帴淇敼src锛堜細閲嶆柊鍔犺浇椤甸潰锛�
+    // iframe.src = `http://172.67.157.132:5000?uid=${uid}`;
+}
+
+/**
+ * 鑾峰彇甯傚窞涓嬪簱鍖轰俊鎭�
+ */
+function getDeptArea(province, city, county) {
+    var list = [];
+    if (deptList) {
+        //鐪�
+        if (province && province.length > 0) {
+            var str1 = province.substring(0, 2);
+            for (var i = 0; i < deptList.length; i++) {
+                if (deptList[i].code.startsWith(str1)) {
+                    list.push(deptList[i]);
+                }
+            }
+        }
+        //甯傚窞
+        if (city && city.length > 0) {
+            var str2 = city.substring(0, 4);
+            for (var i = 0; i < deptList.length; i++) {
+                if (deptList[i].code.startsWith(str2)) {
+                    list.push(deptList[i]);
+                }
+            }
+        }
+        //鍖哄幙
+        if (county && county.length > 0) {
+            for (var i = 0; i < deptList.length; i++) {
+                if (deptList[i].code === county) {
+                    list.push(deptList[i]);
+                }
+            }
+        }
+    }
+
+    return list;
+}
+
+/**
+ * 鐢ㄦ埛鐐瑰嚮鍩庡競鎴栬�呭幙绾у尯绾ф覆鏌撳簱鍖虹偣浣�
+ */
+function renderAreas(code) {
+    var d = allAreaMap[code];
+    if (d) {
+        closeInfoWindow();
+        removeColor();
+        delMarker();
+        renderColor(code);
+        var a = [];
+        //鐪�
+        if ("1" == d.type) {
+            a = getDeptArea(code, "", "");
+        }
+        //甯傚窞
+        if ("2" == d.type) {
+            a = getDeptArea("", code, "")
+        }
+        //鍖哄幙
+        if ("3" == d.type) {
+            a = getDeptArea("", "", code)
+        }
+        if (a && a.length > 0) {
+            for (var i = 0; i < a.length; i++) {
+                addMarker(a[i], false);
+            }
+        }
+        //鍒锋柊鏁版嵁
+        county = code;
+        // ajaxFoodNum();
+    } else {
+        console.log("娌℃湁鑾峰彇鍒拌琛屾斂鍖哄垝:" + code);
+    }
+}
+
+/**
+ * 娓叉煋搴撳尯淇℃伅寮圭獥
+ * @param deptAreaId
+ */
+function showAreaInfo(deptAreaId) {
+    var d = deptListMap[deptAreaId];
+    if (d) {
+        closeInfoWindow();
+        removeColor();
+        delMarker();
+        //map.setCity(d.deptCounty);
+        // map.setZoom(10);
+        renderColor(d.deptCounty);
+        addMarker(d, true);
+    } else {
+        console.log("娌℃湁鑾峰彇鍒拌搴撳尯:" + deptAreaId);
+    }
+}
+
+/**
+ * 娓叉煋搴撳尯鍒楄〃
+ */
+function renderList() {
+    if (areaList) {
+        var html = "";
+        var childs = [];
+        var childsItem = [];
+        var areas = [];
+        for (var i = 0; i < areaList.length; i++) {
+            html += "<div style=\"width: 305px; overflow: hidden\">" +
+                "<div id='prov' class=\"sup-menu-group menu-group\">" +
+                "<div class=\"sup-menu-title\">" +
+                "<i class=\"i-icon fl\"><img src=\"/img/web/group/icon-sj.png\"/></i>" +
+                "<a href=\"###\" onclick=\"clickDept('" + areaList[i].code + "')\">" +
+                "<span class=\"i-icon32 fl\"><img src=\"/img/web/group/c-i2.png\"/></span>" +
+                (areaList[i].name ? areaList[i].name : "") +
+                "</a>" +
+                "</div>";
+            if (areaList[i].children && areaList[i].children.length > 0) {   //璐ㄦ娂閾惰
+                childs = areaList[i].children;
+                for (var j = 0; j < childs.length; j++) {
+                    html += "<ul class=\"sup-menu-ul  menu-h\">" +
+                        "<li>" +
+                        "<div class=\"sup-menu-h\">" +
+                        "<i class=\"i-icon fl\"><img src=\"/img/web/group/icon-sj.png\"/></i>" +
+                        "<a href=\"###\" onclick=\"clickDept('" + childs[j].code + "')\">" +
+                        "<span class=\"i-icon32 fl\"><img src=\"/img/web/group/c-i2.png\"/></span>" +
+                        (childs[j].name ? childs[j].name : "") +
+                        "</a>" +
+                        "</div>";
+                    if (childs[j].children && childs[j].children.length > 0) {   //甯傚窞
+                        childsItem = childs[j].children;
+                        for (var j = 0; j < childsItem.length; j++) {
+                            html += "<ul class=\"sup-menu-ul  menu-h\">" +
+                                "<li>" +
+                                "<div class=\"sup-menu-h\">" +
+                                "<i class=\"i-icon fl\"><img src=\"/img/web/group/icon-sj.png\"/></i>" +
+                                "<a href=\"###\" onclick=\"clickDept('" + childsItem[j].code + "')\">" +
+                                "<span class=\"i-icon32 fl\"><img src=\"/img/web/group/c-i2.png\"/></span>" +
+                                (childsItem[j].name ? childsItem[j].name : "") +
+                                "</a>" +
+                                "</div>";
+                            html += "</li></ul>";
+                        }
+                    }
+                }
+            }
+
+            html += "</div>" +
+                "</div>";
+        }
+
+        $("#menuDiv").html(html);
+    }
+}
+
+function renderNum() {
+    $("#foodSum").html(gisData.deptNum);
+
+    let deptNum = 0;
+    var foodNumPerHtml = '';
+    for (var i = 0; i < gisData.deptList.length; i++) {
+        if ('0.0' != gisData.deptList[i].percent) {
+            foodNumPerHtml += '<li><div class="con" style="background-color: rgba(' + foodNumPerColors[i] + ',.05);">';
+            foodNumPerHtml += '<div class="dot" style="background-color: rgb(' + foodNumPerColors[i] + ');"></div>';
+            foodNumPerHtml += '<div class="num" style="color: rgb(' + foodNumPerColors[i] + ');">' + gisData.deptList[i].percent + '%</div>';
+            foodNumPerHtml += '<div class="type">' + gisData.deptList[i].name + '</div>';
+            foodNumPerHtml += '</div></li>';
+            deptNum += 1;
+        }
+
+    }
+    $("#foodSum").html(deptNum);
+    $("#foodNumPer").html(foodNumPerHtml);
+    if (gisData.deptList.length > 0) {
+        var varietyChart = breedChart;
+        varietyChart.option.series[0].data = gisData.deptList;
+        varietyChart.option.color = getHexColorsFromRGB(foodNumPerColors, gisData.deptList.length);
+        varietyChart.chart.setOption(varietyChart.option, true);
+        breedChart = varietyChart;
+    }
+    barChartLoad("ss");
+}
+
+
+/**
+ * 灏� RGB 鏍煎紡棰滆壊杞崲涓哄崄鍏繘鍒舵牸寮�
+ * @param rgbColors RGB 棰滆壊鏁扮粍
+ * @param count 闇�瑕佺殑棰滆壊鏁伴噺
+ * @returns {Array} 鍗佸叚杩涘埗棰滆壊鏁扮粍
+ */
+function getHexColorsFromRGB(rgbColors, count) {
+    var hexColors = [];
+    for (var i = 0; i < count && i < rgbColors.length; i++) {
+        var rgb = rgbColors[i].split(',');
+        var r = parseInt(rgb[0]);
+        var g = parseInt(rgb[1]);
+        var b = parseInt(rgb[2]);
+        var hex = '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
+        hexColors.push(hex);
+    }
+    return hexColors;
+}
+
+
+
+/**
+ *
+ *澧炲姞搴撳尯鐐逛綅
+ * tag 鏄惁鐩存帴鏄剧ず淇℃伅寮圭獥
+ */
+function addMarker(deptArea, tag) {
+    if (deptArea) {
+        var markerContent = " <div class=\"right-map-item right-map-item2\"style=' left: 0px !important; top: 0px !important;'>" +
+            // "                        <p>澶╁簻鏂板尯</p>" +
+            "                        <span class=\"map-round\"></span>" +
+            "                    </div>";
+        var position = [deptArea.jd, deptArea.wd];
+        var marker = new AMap.Marker({
+            position: position,
+            // 灏� html 浼犵粰 content
+            content: markerContent,
+            // 浠� icon 鐨� [center bottom] 涓哄師鐐�
+            // achor:'center',
+            offset: new AMap.Pixel(-25, -25)
+
+        });
+        markers.push(marker);
+        // 灏� markers 娣诲姞鍒板湴鍥�
+        map.add(marker);
+
+        var infoWinodw = new AMap.InfoWindow({
+            isCustom: true,  //浣跨敤鑷畾涔夌獥浣�
+            content: createInfoWindow(deptArea),
+            achor: 'bottom-center',
+            offset: new AMap.Pixel(0, 0)
+        });
+        //榧犳爣鐐瑰嚮marker寮瑰嚭鑷畾涔夌殑淇℃伅绐椾綋
+        marker.on('click', function () {
+            infoWinodw.open(map, marker.getPosition());
+        });
+        if (tag) {
+            infoWinodw.open(map, marker.getPosition());
+        }
+    } else {
+        console.log("搴撳尯涓虹┖");
+    }
+}
+
+/**
+ *
+ *鍒犻櫎搴撳尯鐐逛綅
+ */
+function delMarker() {
+    if (map) {
+        map.remove(markers);
+    }
+}
+
+//鍏抽棴淇℃伅绐椾綋
+function closeInfoWindow() {
+    if (map) {
+        map.clearInfoWindow();
+    }
+}
+
+/**
+ * 鍒涘缓淇℃伅绐楀彛
+ */
+function createInfoWindow(deptArea) {
+    var deptAreaId = deptArea.deptId;
+    var content = "<div class=\"BMap_bubble_pop\" style=\"padding: 0px 8px; position: relative; top:0px !important;left:0px !important;cursor: default; border: 1px solid rgb(221, 221, 221); background-color: rgb(255, 255, 255); border-radius: 10px; left: 837px; top: -46px; width: 376px;\">" +
+        "<div class=\"BMap_bubble_top\" style=\"height:31px\">" +
+        "<div class=\"BMap_bubble_title\" style=\"line-height: 30px; overflow: hidden; height: 30px; white-space: nowrap; color: rgb(51, 51, 51); width: 376px;\">" +
+        "</div>" +
+        "<div class=\"BMap_bubble_buttons\" style=\"float:right;position:absolute;top:-2px;right:0px;height:30px;\">" +
+        "<div style=\"cursor: pointer; display: none;\">" +
+        "<div style=\"position:absolute;top:9px;width:10px;height:10px;-moz-user-select:none;cursor:pointer;z-index:10000;display:none\">脳</div>" +
+        "</div>" +
+        "<div style=\"cursor:pointer;width:32px;height:30px;color:#ccc\">" +
+        "<div style=\"position:absolute;top:2px;right:12px;text-align:center;line-height:30px;-moz-user-select:none;cursor:pointer;z-index:10000;font-size:20px\">脳</div>" +
+        "</div>" +
+        "</div>" +
+        "</div>" +
+        "<div class=\"BMap_bubble_center\" style=\"z-index: 3; position: relative; height: 324px; width: 376px;\">" +
+        "<div class=\"BMap_bubble_content\" style=\"font-size: 14px; line-height: 24px; position: absolute; top: 2px; color: rgb(85, 85, 85); width: 364px; height: 324px; overflow: auto;\">" +
+        '<div style=\"height:100%;box-sizing:border-box;\">' +
+        '<div style="height: 34px;">' +
+        '<div style="width: 320px;float: left;">';
+    if (deptArea.deptName.length > 17) {
+        content += '<h3 style="margin:0 0 10px 0;line-height:24px;font-size:14px;color:#fff;">' + (deptArea.deptName ? deptArea.deptName : "娌℃湁鑾峰彇鍒板簱鍖轰俊鎭�") + '</h3>';
+    } else {
+        content += '<h3 style="margin:0 0 10px 0;line-height:24px;font-size:18px;color:#fff;">' + (deptArea.deptName ? deptArea.deptName : "娌℃湁鑾峰彇鍒板簱鍖轰俊鎭�") + '</h3>';
+    }
+    content += '</div>' +
+        '<div style="width: 40px;float: left;">' +
+        '<img style="height: 20px;" src="/img/web/group/icon_close.png" onclick="closeInfoWindow()"></img>' +
+        '</div>' +
+        '</div>' +
+
+        '<p style="line-height:24px;font-size:12px;color:#fff;margin-right: 15px;"><img src="/img/web/group/icon-address.png" alt="" style="float:left;width: 16px;height: 16px;margin-right:3px;margin-top: 5px;"/>' + (deptArea.county ? deptArea.county : "娌℃湁鑾峰彇鍒板簱鍖轰俊鎭�") + '</P>' +
+        '<div class="right-topInfo-kd " style="height: 80px;width: 270px;margin: 5px auto 10px auto;">' +
+        '<div class="right-topInfo-kd-item">' +
+        '<h3>褰撴棩鍏ュ簱鍗曟暟(涓�)</h3>' +
+        '<p>' + (deptArea.inNum) + '</p>' +
+        '</div>' +
+        '<div class="right-topInfo-kd-item">' +
+        '<h3>褰撴棩鍑哄簱鍗曟暟(涓�)</h3>' +
+        '<p>' + (deptArea.outNum) + '</p>' +
+        '</div>' +
+        '</div>' +
+        '<ul class="right-topInfo-kd-list right-topInfo-jg sup-topInfo-list">' +
+        '<li>';
+    if (deptArea.depotNumber && (deptArea.depotNumber + "").length > 4) {
+        content += '<p style="font-size: 22px">' + (deptArea.depotNumber) + '</p>';
+    } else {
+        content += '<p style="font-size: 22px">' + (deptArea.depotNumber) + '</p>';
+
+    }
+    content += '<h3>浠撳簱鏁�(涓�)</h3>' +
+        '</li>' +
+        '<li>';
+    if (deptArea.depotBankNumber && (deptArea.depotBankNumber + "").length > 4) {
+        content += '<p style="font-size: 22px">' + (deptArea.depotBankNumber) + '</p>';
+    } else {
+        content += '<p style="font-size: 22px">' + (deptArea.depotBankNumber) + '</p>';
+    }
+    content += '<h3>璐ㄦ娂浠撴暟(涓�)</h3>' +
+        '</li>' +
+        '<li>' +
+        '<p style="font-size: 22px" >' + (deptArea.storageNum) + '</p>' +
+        '<h3>搴撳瓨鏁帮紙鍚級</h3>' +
+        '</li>' +
+        '</ul>' +
+        '<a href="javaScript:;" onclick="toHomeDetail(\'' + deptAreaId + '\')"  class="sup-deatil-link"><img src="/img/web/group/spu-detail-btn.png" alt="" style="width:100%;height:100%;"/></a>' +
+        '</div>' +
+        "</div></div><div class=\"BMap_bubble_bottom\" style=\"display: block; z-index: 2; position: absolute; width: 376px;\">" +
+        "</div><img style=\"z-index: 1; position: absolute; width: 58px; height: 31px; left: 159px; bottom: -30px; top: 356px;\" src=\"http://webmap0.bdimg.com/image/api/iw_tail.png\"></div>";
+
+    return content;
+}
+
+/**
+ * 璋冪敤鐖惰妭鐐规柟娉曟墽琛岋紝榛樿閫�鍑哄叏灞忓苟杩涘叆鍚庡彴
+ * @param id
+ */
+function toHomeDetail(id) {
+    var url = "/index?deptId=" + id;
+    window.parent.open(url, "_self");
+};
+
+/**
+ * 鏍规嵁琛屾斂缂栫爜娓叉煋棰滆壊锛屽競绾т細灏嗕笅闈㈡墍鏈夊尯娓叉煋锛屽尯绾у彧娓叉煋褰撳墠鍖�
+ * @param adcode
+ */
+function renderColor(adcode) {
+    switch2AreaNode(adcode);
+}
+
+function removeColor() {
+    // if (disProvince) {
+    //     disProvince.setMap(null);
+    // }
+}
+
+/**
+ * 鏍煎紡鍖栨棩鏈�
+ * @param fmt
+ * @param date
+ * @return {*}
+ */
+function formatDate(fmt, date) {
+    var ret;
+    const opt = {
+        "Y+": date.getFullYear().toString(),        // 骞�
+        "m+": (date.getMonth() + 1).toString(),     // 鏈�
+        "d+": date.getDate().toString(),            // 鏃�
+        "H+": date.getHours().toString(),           // 鏃�
+        "M+": date.getMinutes().toString(),         // 鍒�
+        "S+": date.getSeconds().toString()          // 绉�
+        // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆
+    };
+    for (var k in opt) {
+        ret = new RegExp("(" + k + ")").exec(fmt);
+        if (ret) {
+            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
+        }
+    }
+    return fmt;
+}
+
+/**
+ *鑾峰彇褰撳墠鏄熸湡鍑�
+ */
+function getWeekDate() {
+    var now = new Date();
+    var day = now.getDay();
+    var weeks = new Array("鏄熸湡鏃�", "鏄熸湡涓�", "鏄熸湡浜�", "鏄熸湡涓�", "鏄熸湡鍥�", "鏄熸湡浜�", "鏄熸湡鍏�");
+    var week = weeks[day];
+    return week;
+}
+
+/**
+ * 鏍煎紡鍖栨棩鏈�
+ * @param fmt
+ * @param date
+ * @return {*}
+ */
+function formatDate(fmt, date) {
+    var ret;
+    const opt = {
+        "Y+": date.getFullYear().toString(), // 骞�
+        "m+": (date.getMonth() + 1).toString(), // 鏈�
+        "d+": date.getDate().toString(), // 鏃�
+        "H+": date.getHours().toString(), // 鏃�
+        "M+": date.getMinutes().toString(), // 鍒�
+        "S+": date.getSeconds().toString() // 绉�
+        // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆
+    };
+    for (let k in opt) {
+        ret = new RegExp("(" + k + ")").exec(fmt);
+        if (ret) {
+            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
+        }
+    }
+    return fmt;
+}
+
+/**
+ *鑾峰彇褰撳墠鏄熸湡鍑�
+ */
+function getWeekDate() {
+    var now = new Date();
+    var day = now.getDay();
+    var weeks = new Array("鏄熸湡鏃�", "鏄熸湡涓�", "鏄熸湡浜�", "鏄熸湡涓�", "鏄熸湡鍥�", "鏄熸湡浜�", "鏄熸湡鍏�");
+    var week = weeks[day];
+    return week;
+}
+
+var navBarDateDom = document.getElementById('navBarDate');
+var navBarTimeDom = document.getElementById('navBarTime');
+var navBarWeekDom = document.getElementById('navBarWeek');
+
+/*鍒锋柊鏃堕棿*/
+setInterval(function () {
+    navBarDateDom.innerHTML = formatDate('mm鏈坉d鏃�', new Date());
+    navBarTimeDom.innerHTML = formatDate('HH:MM:SS', new Date());
+    navBarWeekDom.innerHTML = getWeekDate();
+}, 1000)
+
+$(function () {
+    $('.m-nav .tit').click(function () {
+        $(this).siblings('.sub').stop().slideToggle();
+
+    });
+    $('.c-left .close').on('click', function () {
+        $('.c-left').addClass('hidden')
+    });
+    $('.c-left .o-btn').on('click', function () {
+        $('.c-left').removeClass('hidden')
+    });
+    $('.c-right .close').on('click', function () {
+        $('.c-right').addClass('hidden')
+    });
+    $('.c-right .o-btn').on('click', function () {
+        $('.c-right').removeClass('hidden')
+    });
+
+});
diff --git a/fzzy-igdss-web/src/main/resources/templates/group/gis_modeling.html b/fzzy-igdss-web/src/main/resources/templates/group/gis_modeling.html
new file mode 100644
index 0000000..78953b3
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/group/gis_modeling.html
@@ -0,0 +1,313 @@
+<!DOCTYPE html>
+<html lang="zh-cn" xmlns:th=http://www.thymeleaf.org>
+
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
+
+    <meta name="renderer" content="webkit">
+    <title>搴撳尯鍙鍖栫洃绠�</title>
+
+    <link th:href="@{/group/pc-reset.css}" rel="stylesheet" type="text/css">
+    <link th:href="@{/group/master.css}" rel="stylesheet" type="text/css">
+    <link th:href="@{/group/gis.css}" rel="stylesheet" type="text/css">
+    <style>
+        .anchorBL,
+        .BMap_cpyCtrl.anchorBL {
+            display: none !important;;
+        }
+
+        .BMap_bubble_pop {
+            background: url(/img/web/group/sup-popBg2.png) no-repeat;
+            background-size: 100% 100%;
+            padding: 3px 20px 30px 20px !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            box-sizing: border-box;
+            overflow: hidden;
+        }
+
+        /*鍦板浘鏍囬*/
+        .BMap_bubble_top {
+            display: none !important;;
+        }
+
+        /* 娑堟伅鍐呭 */
+        .BMap_bubble_center {
+            background: transparent !important;
+            box-sizing: border-box;
+            overflow: hidden;
+
+        }
+
+        /* 宸︿笂瑙掑垹闄ゆ寜閿� */
+        .BMap_bubble_pop > img {
+            display: none !important;
+            top: -99999px !important;;
+        }
+
+        .c-cen {
+            position: absolute;
+            top: 10px;
+            width: 100%;
+            height: 100vh;
+            display: flex;
+            align-items: center;
+            bottom: 10px;
+        }
+
+    </style>
+</head>
+
+<body>
+
+<div class="container">
+    <div class="i-top">
+        <h1 ondblclick="changeScreen()" class="i-top-tit"><span th:text="${sysName}">鏅烘収绮簱璐ㄦ娂鐩戠澶у睆</span></h1>
+        <p ondblclick="changeScreen()" class="i-top-p" id="sloganText">
+            鏂扮枂浼婂畞鍐滄潙鍟嗕笟閾惰鑲′唤鏈夐檺鍏徃鈥斺�旀櫤鎱х洃绠″钩鍙�</p>
+        <div class="i-navBar">
+            <a href="javaScript:;" onclick="changePage('index')" class="i-nav3">棣栭〉</a>
+            <a href="javaScript:;" onclick="changePage('gis_modeling')" class="i-nav4 active">GIS鐩戠</a>
+            <a href="javaScript:;" onclick="changePage('video')" class="i-nav5">瑙嗛鐩戠</a>
+            <a href="javaScript:;" onclick="changePage('sys')" class="i-nav6">鍚庡彴绠$悊</a>
+            <a href="javaScript:;" onclick="changePage('logout')" class="i-nav7">閫�鍑虹郴缁�</a>
+        </div>
+        <div class="date-time-module">
+            <span id="navBarTime"></span>
+            <div class="i-top-date">
+                <span id="navBarDate"></span>
+                <span id="navBarWeek"></span>
+            </div>
+        </div>
+        <!-- <div id="data"></div> -->
+
+    </div><!--i-top end-->
+
+    <div class="c-main cl">
+
+        <div class="c-cen">
+            <iframe
+                    id="gisFrame"
+                    src="http://172.67.157.132:5000?uid=5372001001"
+                    frameborder="0"
+                    style=" width: 100%;height: 100vh;border: none;"
+            ></iframe>
+        </div>
+
+        <div class="c-left">
+            <div class="o-btn">
+                <!--					<img src="../images/visual/c-btn1.png" alt="">-->
+                <img th:src="@{/img/web/group/c-btn1.png}"/>
+            </div>
+            <div class="inner">
+                <div class="close"></div>
+                <div class="m-box1">
+                    <div class="l">
+                        <div class="chartbox">
+                            <div class="chart" id="breedChart"></div>
+                            <div class="txt">
+                                <div class="n" id="foodSum">10</div>
+                                <div class="p">涓�</div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="r">
+                        <ul class="ul-listb1" id="foodNumPer">
+                            <li>
+                                <div class="con" style="background-color: rgba(0, 228, 250,.05);">
+                                    <div class="dot" style="background-color: rgb(0, 228, 250);"></div>
+                                    <div class="num" style="color: rgb(0, 228, 250);">0%</div>
+                                    <div class="type">浼婂畞甯�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(22, 226, 173,.05);">
+                                    <div class="dot" style="background-color: rgb(22, 226, 173);"></div>
+                                    <div class="num" style="color: rgb(22, 226, 173);">0%</div>
+                                    <div class="type">濂庡悲甯�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(255, 181, 23,.05);">
+                                    <div class="dot" style="background-color: rgb(255, 181, 23);"></div>
+                                    <div class="num" style="color: rgb(255, 181, 23);">0%</div>
+                                    <div class="type">闇嶅皵鏋滄柉甯�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(238, 60, 72,.05);">
+                                    <div class="dot" style="background-color: rgb(238, 60, 72);"></div>
+                                    <div class="num" style="color: rgb(238, 60, 72);">90%</div>
+                                    <div class="type">浼婂畞鍘�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(135, 103, 255,.05);">
+                                    <div class="dot" style="background-color: rgb(135, 103, 255);"></div>
+                                    <div class="num" style="color: rgb(135, 103, 255);">0%</div>
+                                    <div class="type">瀵熷竷鏌ュ皵閿′集鑷不鍘�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(41, 122, 255,.05);">
+                                    <div class="dot" style="background-color: rgb(41, 122, 255);"></div>
+                                    <div class="num" style="color: rgb(41, 122, 255);">0%</div>
+                                    <div class="type">闇嶅煄鍘�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(238, 60, 144,.05);">
+                                    <div class="dot" style="background-color: rgb(238, 60, 144);"></div>
+                                    <div class="num" style="color: rgb(238, 60, 144);">0%</div>
+                                    <div class="type">宸╃暀鍘�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(0, 228, 250,.05);">
+                                    <div class="dot" style="background-color: rgb(0, 228, 250);"></div>
+                                    <div class="num" style="color: rgb(0, 228, 250);">0%</div>
+                                    <div class="type">鏂版簮鍘�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(22, 226, 173,.05);">
+                                    <div class="dot" style="background-color: rgb(22, 226, 173);"></div>
+                                    <div class="num" style="color: rgb(22, 226, 173);">0%</div>
+                                    <div class="type">鏄嫃鍘�</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(255, 181, 23,.05);">
+                                    <div class="dot" style="background-color: rgb(255, 181, 23);"></div>
+                                    <div class="num" style="color: rgb(255, 181, 23);">0%</div>
+                                    <div class="type">鐗瑰厠鏂幙</div>
+                                </div>
+                            </li>
+                            <li>
+                                <div class="con" style="background-color: rgba(238, 60, 72,.05);">
+                                    <div class="dot" style="background-color: rgb(32,134,32);"></div>
+                                    <div class="num" style="color: rgb(32,134,32);">10%</div>
+                                    <div class="type">灏煎嫆鍏嬪幙</div>
+                                </div>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+                <div class="m-box2">
+                    <div class="item">
+                        <div class="bot">
+                            <div class="chart" id="ss"></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="c-right">
+            <div class="o-btn">
+                <img th:src="@{/img/web/group/c-btn2.png}"/>
+            </div>
+            <div class="inner">
+                <div class="close"></div>
+                <div class="m-nav" id="menuDiv">
+                    <div class="con">
+                        <div class="tit">
+                            <div class="arr"></div>
+                            <a href="javascript:;" class="v1"><i class="icon"></i><b class="t">鏂扮枂缁村惥灏旇嚜娌诲尯</b></a>
+                        </div>
+                        <div class="sub two">
+                            <div class="con">
+                                <div class="tit">
+                                    <div class="arr"></div>
+                                    <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                            class="t">涔岄瞾鏈ㄩ綈甯�</span></a>
+                                </div>
+                                <div class="sub three">
+                                    <div class="tit">
+                                        <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                                class="t">搴撳尯鍚嶇О1</span></a>
+                                    </div>
+                                    <div class="tit">
+                                        <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                                class="t">搴撳尯鍚嶇О2</span></a>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="con">
+                                <div class="tit">
+                                    <div class="arr"></div>
+                                    <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                            class="t">鍏嬫媺鐜涗緷甯�</span></a>
+                                </div>
+                                <div class="sub three">
+                                    <div class="tit">
+                                        <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                                class="t">搴撳尯鍚嶇О1</span></a>
+                                    </div>
+                                    <div class="tit">
+                                        <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                                class="t">搴撳尯鍚嶇О2</span></a>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="con">
+                                <div class="tit">
+                                    <div class="arr"></div>
+                                    <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                            class="t">鍚愰瞾鐣競</span></a>
+                                </div>
+                                <div class="sub three">
+                                    <div class="tit">
+                                        <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                                class="t">搴撳尯鍚嶇О1</span></a>
+                                    </div>
+                                    <div class="tit">
+                                        <a href="javascript:;" class="v1"><i class="icon"></i><span
+                                                class="t">搴撳尯鍚嶇О2</span></a>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+    </div><!--i-main end-->
+
+</div>
+
+<script th:inline="javascript">
+    window._AMapSecurityConfig = {
+        securityJsCode: '39051edca2c561cb80d8f49b4624ab17',
+    }
+    var userId = [[${loginUser.loginName}]];
+    var companyId = [[${loginUser.companyId}]];
+    var deptId = [[${deptId}]];
+    var areaList = [[${areaList}]];
+    var allArea = [[${allArea}]];
+    var deptList = [[${deptList}]];
+    var bizType = [[${bizType}]];
+    var bizTag = [[${bizTag}]];
+    var dicSlogan = [[${dicSlogan}]];
+    var gisData = [[${gisData}]];
+    var defaultAreaCode = [[${defaultAreaCode}]];
+</script>
+<script th:src="@{https://webapi.amap.com/maps?v=2.0&key=5249315a4ba00ea7212898d4449b8c0e&plugin=AMap.DistrictSearch}"
+        src="https://webapi.amap.com/maps?v=2.0&key=5249315a4ba00ea7212898d4449b8c0e"></script>
+<!-- UI缁勪欢搴� 1.0 -->
+<script th:src="@{https://webapi.amap.com/ui/1.1/main.js?v=1.1.1}"
+        src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script>
+<script th:src="@{/js/jquery.min.js}"></script>
+<script th:src="@{/js/plugins/echarts/echarts.js}"></script>
+<script th:src="@{/common/constant.js}"></script>
+<script th:src="@{/common/igds-common.js}"></script>
+
+<script th:src="@{/group/gis_modeling.js}"></script>
+<script th:src="@{/group/gis-map.js}"></script>
+<script th:src="@{/group/gis-chart.js}"></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/templates/group/index.html b/fzzy-igdss-web/src/main/resources/templates/group/index.html
index fcc789d..668638a 100644
--- a/fzzy-igdss-web/src/main/resources/templates/group/index.html
+++ b/fzzy-igdss-web/src/main/resources/templates/group/index.html
@@ -109,7 +109,7 @@
             鏂扮枂浼婂畞鍐滄潙鍟嗕笟閾惰鑲′唤鏈夐檺鍏徃鈥斺�旀櫤鎱х洃绠″钩鍙�</p>
         <div class="i-navBar">
             <a href="javaScript:;" onclick="changePage('index')" class="i-nav3 active">棣栭〉</a>
-            <a href="javaScript:;" onclick="changePage('gis')" class="i-nav4">GIS鐩戠</a>
+            <a href="javaScript:;" onclick="changePage('gis_modeling')" class="i-nav4">GIS鐩戠</a>
             <a href="javaScript:;" onclick="changePage('video')" class="i-nav5">瑙嗛鐩戠</a>
             <a href="javaScript:;" onclick="changePage('sys')" class="i-nav6">鍚庡彴绠$悊</a>
             <a href="javaScript:;" onclick="changePage('logout')" class="i-nav7">閫�鍑虹郴缁�</a>
diff --git a/fzzy-igdss-web/src/main/resources/templates/group/video.html b/fzzy-igdss-web/src/main/resources/templates/group/video.html
index c664113..6faf4e1 100644
--- a/fzzy-igdss-web/src/main/resources/templates/group/video.html
+++ b/fzzy-igdss-web/src/main/resources/templates/group/video.html
@@ -139,7 +139,7 @@
         <p ondblclick="changeScreen()" class="i-top-p" id="sloganText">鏂扮枂浼婂畞鍐滄潙鍟嗕笟閾惰鑲′唤鏈夐檺鍏徃鈥斺�旀櫤鎱х洃绠″钩鍙�</p>
         <div class="i-navBar">
             <a href="javaScript:;" onclick="changePage('index')" class="i-nav3">棣栭〉</a>
-            <a href="javaScript:;" onclick="changePage('gis')" class="i-nav4">GIS鐩戠</a>
+            <a href="javaScript:;" onclick="changePage('gis_modeling')" class="i-nav4">GIS鐩戠</a>
             <a href="javaScript:;" onclick="changePage('video')" class="i-nav5 active">瑙嗛鐩戠</a>
             <a href="javaScript:;" onclick="changePage('sys')" class="i-nav6">鍚庡彴绠$悊</a>
             <a href="javaScript:;" onclick="changePage('logout')" class="i-nav7">閫�鍑虹郴缁�</a>

--
Gitblit v1.9.3