From d7dd4a54b16e97e8e60bf0ea28762c3952093a8b Mon Sep 17 00:00:00 2001
From: YANGDL <114714267@qq.com>
Date: 星期二, 09 三月 2021 14:52:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/panel/RightSearchPanel.vue         |  158 +++++++++-----
 src/components/panel/ToolBoxPanel.vue             |  195 ++++++++++++++---
 package.json                                      |    4 
 src/assets/css/map/map-elem-ui.less               |    6 
 src/views/MapTemplate.vue                         |   64 ++--
 src/components/panel/LegendPanel.vue              |    6 
 src/components/panel/topicSearch/SewersSearch.vue |    4 
 src/components/plugin/FullScreen.js               |  174 +++++++++++++++
 src/Sgis.js                                       |    4 
 9 files changed, 480 insertions(+), 135 deletions(-)

diff --git a/package.json b/package.json
index 5360251..b2c6155 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
     "dayjs": "^1.9.6",
     "echarts": "^4.2.1",
     "element-ui": "^2.14.1",
+    "fullscreen": "^1.1.1",
     "jquery": "^3.5.1",
     "js-cookie": "^2.2.0",
     "leaflet": "^1.7.1",
@@ -26,10 +27,11 @@
     "lodash": "^4.17.10",
     "nprogress": "^0.2.0",
     "rbush": "^3.0.1",
-    "screenfull": "^3.3.2",
+    "screenfull": "^3.3.3",
     "vue": "^2.6.11",
     "vue-count-to": "^1.0.13",
     "vue-focus": "^2.1.0",
+    "vue-fullscreen": "^2.2.0",
     "vue-router": "^3.0.1",
     "vuex": "^3.0.1"
   },
diff --git a/src/Sgis.js b/src/Sgis.js
index 22380e4..af7ecb2 100644
--- a/src/Sgis.js
+++ b/src/Sgis.js
@@ -10,6 +10,8 @@
 import MapConfig from '@/conf/MapConfig'
 import DashFlow from '@components/plugin/PathDashFlow'
 import CanvasMarkers from '@components/plugin/CanvasMarkers'
+import FullScreen from '@components/plugin/FullScreen'
+
 let map = null
 const L = window.L
 const initMap = (div) => {
@@ -26,6 +28,8 @@
   DashFlow.DashFlow(L) // 娴佸姩绾垮浘
   CanvasMarkers.init(L)// 鐢诲竷鍥惧眰
   // Leaflet鎵╁睍浠g爜
+  // 鍏ㄥ睆
+  FullScreen.init(L)
 
   map = L.map(div, MapConfig.mapOptions)
 
diff --git a/src/assets/css/map/map-elem-ui.less b/src/assets/css/map/map-elem-ui.less
index 5b99031..1f6fd20 100644
--- a/src/assets/css/map/map-elem-ui.less
+++ b/src/assets/css/map/map-elem-ui.less
@@ -51,9 +51,9 @@
 
 
   }
-  location-btn{
-
-  }
+  //location-btn{
+  //
+  //}
 
   .location-btn:hover,.el-input__icon:hover{
     color: @color;
diff --git a/src/components/panel/LegendPanel.vue b/src/components/panel/LegendPanel.vue
index 59cce89..70529c2 100644
--- a/src/components/panel/LegendPanel.vue
+++ b/src/components/panel/LegendPanel.vue
@@ -4,7 +4,7 @@
       <i class="el-icon-more-outline"></i>
       <span>鍥句緥</span>
     </div>
-    <transition name="fade">
+    <`transition` name="fade">
       <div class="legend-content" v-show="legendControl">
         <div class="legend-content-box" v-for="(item,index) in legendContents" :key="index">
           <p>{{ item.title }}</p>
@@ -258,8 +258,8 @@
   }
 
   .fade-leave-active {
-    transform-origin: right;
-    animation: bounce-in 1s reverse;
+    //transform-origin: right;
+    //animation: bounce-in 1s reverse;
     transform-origin: right bottom;
     animation: bounce-in .5s reverse;
   }
diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue
index 4976bac..587073a 100644
--- a/src/components/panel/RightSearchPanel.vue
+++ b/src/components/panel/RightSearchPanel.vue
@@ -1,31 +1,46 @@
 <template>
   <div id="right-panel">
     <div class="panel-tab">
-      <div v-for="item in topicMenu" :key="item.id" :title="item.name" class="tab-item" @click="handleClick(item)">
+      <div v-for="item in topicMenu" :key="item.id" :title="item.name" class="tab-item" @click="handleGd" :class="{'B-TMT-tab-waybill-isActive': isWaybillHover}">
         <img :src="item.icon" style="width: 24px;height: 24px;"></div>
-
 <!--      <div class="tab-item" @click="handleHb" :class="{'B-TMT-tab-route-isActive': isRouteHover}"></div>-->
 <!--      <div class="tab-item" @click="handlePk" :class="{'B-TMT-tab-route-isActive': isRouteHover}"></div>-->
     </div>
-    <div class="panel-fold-btn">
-      <div class="btn-stretch" @click="toggleMonitorPanel"></div>
-    </div>
+<!--    <div class="panel-fold-btn" >-->
+<!--      <div class="btn-stretch" @click="toggleMonitorPanel"></div>-->
+<!--    </div>-->
 
-    <div class="right-control">
-
+<!--      <div class="panel-fold-btn" @click="toggleMonitorPanel" >-->
+<!--            <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div>-->
+<!--&lt;!&ndash;                <div class="btn-stretch" v-if="isCollapse"  </div>&ndash;&gt;-->
+<!--&lt;!&ndash;            <div class="btn-shrink" v-else-if="!isCollapse" ></div>&ndash;&gt;-->
+<!--&lt;!&ndash;        :style = "{width:isCollapse ? '290px' : '0px'}"&ndash;&gt;-->
+<!--      </div>-->
+<!--    <div class="right-control" v-if="!isCollapse"  >-->
+    <div class="right-control" :class="[{ 'unfold': !isCollapse },{ 'shrink': isCollapse }] " >
+      <div class="panel-fold-btn" @click="toggleMonitorPanel">
+<!--        <div class="btn-stretch" v-if="isCollapse"></div>-->
+<!--        <div class="btn-shrink" v-else-if="!isCollapse"></div>-->
+        <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div>
+      </div>
       <component :title="title" :is="gcComp"></component>
     </div>
   </div>
 </template>
 
 <script>
-import $ from 'jquery'
-import { TopicComp, TopicList } from '../../conf/Topic'
+// import $ from 'jquery'
+import EnvProtectSearch from './topicSearch/EnvProtectSearch'
+import DischargeSearch from './topicSearch/DischargeSearch'
+import { TopicList } from '../../conf/Topic'
+
+import SewersSearch from '@components/panel/topicSearch/SewersSearch'
 export default {
   name: 'MonitorPanel',
-  components: TopicComp,
+  components: { EnvProtectSearch, DischargeSearch },
   data () {
     return {
+      topicMenu: [],
       topicList: TopicList,
       topicCheckedList: [],
       isPanelVisible: false,
@@ -36,8 +51,9 @@
       pkVisible: false,
       toggleMonitorStyle: 'right:0px',
 
-      title: '姹¢洦姘寸缃�'
+      title: '姹¢洦姘寸缃�',
 
+      isCollapse: false
     }
   },
   computed: {
@@ -53,43 +69,48 @@
 
     handlePage (page) {
     },
-    handleClick (item) {
-      this.title = item.name
-      this.gcComp = item.comp
+    handleGd () {
+      this.title = '绠¢亾淇℃伅鏌ヨ'
     },
     toggleMonitorPanel () {
-      const el = $('.btn-stretch')
-      const el2 = $('.panel-fold-btn')
-      // let cs = 'btn-stretch-active'
-      var rightControl = $('#right-panel')
-      const right = rightControl.css('right')
-      if (right === '10px') {
-        rightControl.animate({
-          right: '-322px'
-        })
-        el.css({
-          transform: 'rotateY(180deg)',
-          'transform-origin': '50% 50%',
-          transition: 'transform 1s linear'
-        })
-        el2.animate({
-          right: '320px',
-          speed: 1000
-        })
-      } else {
-        rightControl.animate({
-          right: '10px'
-        })
-        el.css({
-          transform: 'rotateY(0deg)',
-          'transform-origin': '50% 50%',
-          transition: 'transform 1s linear'
-        })
-        el2.animate({
-          right: '290px',
-          speed: 1000
-        })
-      }
+      this.isCollapse = !this.isCollapse
+      // const el = $('.btn-stretch')
+      // const el2 = $('.panel-fold-btn')
+      // const el = document.getElementsByClassName('.btn-stretch')
+      // const el2 = document.getElementsByClassName('.panel-fold-btn')
+      // let  = 'btn-stretch-active'
+      // var rightControl = $('#right-panel')
+      // var rightControl = document.getElementById('#right-panel')
+      // const right = rightControl.css('right')
+      // const rightit = rightControl.ownerDocument.defaultView
+      // const right = rightit.getComputedStyle(rightit, null).right
+    //   if (right === '10px') {
+    //     rightControl.animate({
+    //       right: '-322px'
+    //     })
+    //     el.css({
+    //       transform: 'rotateY(180deg)',
+    //       'transform-origin': '50% 50%',
+    //       transition: 'transform 1s linear'
+    //     })
+    //     el2.animate({
+    //       right: '320px',
+    //       speed: 1000
+    //     })
+    //   } else {
+    //     rightControl.animate({
+    //       right: '10px'
+    //     })
+    //     el.css({
+    //       transform: 'rotateY(0deg)',
+    //       'transform-origin': '50% 50%',
+    //       transition: 'transform 1s linear'
+    //     })
+    //     el2.animate({
+    //       right: '290px',
+    //       speed: 1000
+    //     })
+    //   }
     }
   },
   mounted () {
@@ -127,6 +148,7 @@
 
   .el-form-item__label {
     color: rgb(52, 224, 255);
+    /*<!--color: @color;-->*/
   }
 
   .el-input__inner::placeholder {
@@ -218,14 +240,29 @@
     white-space: nowrap;
   }
   .panel-fold-btn{
+    overflow: hidden;
     position: absolute;
     top:45%;
+    left: -18px;
+    /*left: 0px;*/
     //right: 320px;
-    right: 290px;
+    /*right: 290px;*/
     z-index: 1000;
+    /*right: 0px;*/
     background-color: rgba(5,24,66,.8);
     border-radius: 10px 0 0 10px;
     .btn-stretch {
+      width: 20px;
+      height: 40px;
+      background: url('../../assets/images/map-pages/icon/icon.png') no-repeat -408px 5px;
+      cursor: pointer;
+      /*margin-left: -20px;*/
+      transform: rotateY(0deg);
+      transform-origin: 50% 50%;
+      transition: transform 1s linear;
+        /*transition: 3s linear;*/
+    }
+    .btn-shrink {
       width: 20px;
       height: 40px;
       background: url('../../assets/images/map-pages/icon/icon.png') no-repeat -408px 5px;
@@ -258,17 +295,20 @@
   }
 
   .right-control {
-    width: 290px;
+    /*width: 290px;*/
     //height: 573px;
     height: 100%;
-    position: absolute;
+    position: relative;
     top: 0;
     right: 0;
     z-index: 999;
     background: url('../../assets/images/map-pages/icon/bgc.png') no-repeat;
     background-size: 100% 98%;
   }
-
+  .a{
+    transform: translateX(328px);
+    transition: transform 3s linear;
+    }
   .panel_searchTotal {
     font-size: 12px;
     float: right;
@@ -276,13 +316,13 @@
 
   .panel_header {
     // background-color: #030D2E;
-    padding: 7px 15px 3px 20px;
+    padding: 8px 15px 3px 20px;
   }
 
   .panel_title {
     font-size: 12px;
-    margin: 0px;
-    padding: 0px;
+    /*margin: 0px;*/
+    /*padding: 0px;*/
     color: #78c4ff;
     font-weight: bold;
   }
@@ -292,7 +332,7 @@
   }
 
   .search-form .el-form-item {
-    margin: 0px;
+    /*margin: 0px;*/
     margin-bottom: 8px;
   }
 
@@ -438,7 +478,7 @@
 
   ::-webkit-scrollbar-track {
     /*婊氬姩鏉¢噷闈㈣建閬�*/
-    // box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+    box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
     border-radius: 0px;
     background: #0E3565;
   }
@@ -467,5 +507,13 @@
       background-color: #061e51 !important;
     }
   }
+  .unfold {
+    transform: translateX(332px);
+    transition: transform 0.5s linear;
+  }
+  .shrink {
+    transform: translateX(0px);
+    transition: transform 0.5s linear;
+  }
 }
 </style>
diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue
index 8f90ff8..5747cc7 100644
--- a/src/components/panel/ToolBoxPanel.vue
+++ b/src/components/panel/ToolBoxPanel.vue
@@ -1,11 +1,25 @@
 <template>
   <div class="lefttop-toolbox-panel">
-    <ul>
-      <li v-for="(item,i) in imgList" :key="i" @click="toggleActive(i)" :value="total"
-          :class="{'active':activeTools[i]}">
-        <img :src="item"/>
-      </li>
-    </ul>
+    <div class="init-choose" @click="changeSelect()">
+      <img src="@/assets/images/map-pages/icon/toolbox/circle.png" alt="">
+    </div>
+    <!--    <transition name="fade">-->
+    <!--      <ul v-show='selectGroup'>-->
+    <!--        <li v-for="(item,i) in imgList" :key="i" @click="toggleActive(i)" :value="total"><img :src="item"/></li>-->
+    <!--      </ul>-->
+    <!--    </transition>-->
+    <div class="el-select-dropdown" v-show='selectGroup'>
+      <el-dropdown @command="handleCommand" trigger="click" v-for="(item,i) in imgLists" :key="i" :value="total">
+        <transition name="fade">
+          <img :src="item.title" :title="item.alt"/>
+        </transition>
+        <el-dropdown-menu>
+          <el-dropdown-item v-for="(ite,index) in item.items" :key="index" :command='ite.headings'>
+            <span @click='toggleActive(ite)'>{{ ite.headings }}</span>
+          </el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
+    </div>
   </div>
 </template>
 
@@ -20,35 +34,98 @@
 export default {
   name: 'ToolBoxPanel',
   components: {},
+  props: ['map'],
   data () {
     return {
       isPanelVisible: false,
       total: 0,
       activeTools: {},
-      imgList: {
-        circle: circle,
-        square: square,
-        polygon: polygon,
-        legend: legend,
-        location: location,
-        fullscreen: fullscreen
-      },
+      imgLists: [
+        {
+          title: circle,
+          alt: '鏍囩粯',
+          items: [
+            { headings: '绾挎爣缁�' },
+            { headings: '闈㈡爣缁�' },
+            { headings: '绠ご鏍囩粯' }
+          ]
+        },
+        {
+          title: square,
+          alt: '鏍囨敞',
+          items: [
+            { headings: '鐐规爣娉�' },
+            { headings: '绾挎爣娉�' },
+            { headings: '闈㈡爣娉�' },
+            { headings: '鏂囧瓧鏍囨敞' },
+            { headings: '鍥炬爣鏍囨敞' }
+          ]
+        },
+        {
+          title: legend,
+          alt: '娴嬮噺',
+          items: [
+            { headings: '璺濈娴嬮噺' },
+            { headings: '闈㈢Н娴嬮噺' }
+          ]
+        },
+        {
+          title: location,
+          alt: '鍒囨崲搴曞浘',
+          items: [
+            { headings: '褰卞儚鍥�' },
+            { headings: '鐭㈤噺鍥�' },
+            { headings: '鍦板舰鍥�' }
+          ]
+        },
+        {
+          title: polygon,
+          alt: '绠$綉',
+          items: [
+            { headings: '杩為�氭�у垎鏋�' },
+            { headings: '鐖嗙鍒嗘瀽' },
+            { headings: '娴佸悜鍒嗘瀽' },
+            { headings: '妯柇闈㈠垎鏋�' }
+          ]
+        },
+        {
+          title: fullscreen,
+          alt: '涓嬭浇',
+          items: [
+            { headings: '鍏ㄥ睆' },
+            { headings: 'A4妯悜' },
+            { headings: 'A4绾靛悜' }
+          ]
+        }
+      ],
       form: {
         regionType: '',
         enterprise: ''
-      }
+      },
+      selectGroup: false,
+      selectGroupOne: false
     }
   },
   methods: {
+    changeSelect () {
+      this.selectGroup = !this.selectGroup
+    },
     handleClose (done) {
       console.log(done)
     },
     handleClick (tab, event) {
       console.log(tab, event)
     },
+    handleCommand (command) {
+      console.log(command)
+      if (command === '鍏ㄥ睆') {
+        this.map.toggleFullscreen()
+      }
+    },
     toggleActive (k) {
-      this.total++
-      this.activeTools[k] = !this.activeTools[k]
+      if (k === 'fullscreen') {
+        this.map.toggleFullscreen()
+      }
     },
     loadData () {
 
@@ -58,6 +135,7 @@
     this.loadData()
   },
   created () {
+
   }
 }
 </script>
@@ -67,31 +145,74 @@
   position: absolute;
   left: 5px;
   top: 5px;
-  z-index: 1000;
-  width: 175px;
-  height: 35px;
-  line-height: 30px;
-  background: #07325b;
-  border: 1px solid #5EF2FF;
-  border-radius: 3px;
-  text-align: center;
+  z-index: 999;
+  display: flex;
 
-  ul {
-    list-style: none;
-    margin: 0;
-    padding: 5px;
+  .init-choose {
+    //margin: 15px 5px;
+    background: #305B62;
+    //margin-top: 15px;
+    width: 35px;
+    height: 35px;
+    border-radius: 50%;
+    border: 2px skyblue solid;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    z-index: 999;
+  }
 
-    li {
-      float: left;
-      width: 23px;
-      height: 23px;
-      margin: 0 1px;
-      border: 1px solid #073C4F;
+  .el-select-dropdown {
+    position: absolute;
+    z-index: 1;
+    width: 250px;
+    height: 35px;
+    display: flex;
+    align-items: center;
+    justify-content: space-evenly;
+    background: #305B62;
+    border-radius: 15px;
+    padding-inline: 10px;
+    padding-inline-start: 30px;
+
+    .el-dropdow {
+      width: 20%;
+    }
+
+    @keyframes bounce-in {
+      0% {
+        transform: scale(0);
+        opacity: 0.3;
+      }
+      100% {
+        transform: scale(1);
+        opacity: 1;
+      }
+    }
+
+    .fade-enter-active {
+      transform-origin: left center;
+      animation: bounce-in .2s;
+    }
+
+    .fade-leave-active {
+      transform-origin: left;
+      animation: bounce-in .2s reverse;
     }
   }
 
-  .active {
-    border: 1px solid #5EF2FF;
+  .el-select-dropdown:last-child {
+    margin-left: 10px;
   }
+
+  .el-dropdown-link {
+    cursor: pointer;
+    color: #409EFF;
+  }
+
+  .el-icon-arrow-down {
+    font-size: 12px;
+  }
+
 }
 </style>
diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue
index a3987bf..6fe9340 100644
--- a/src/components/panel/topicSearch/SewersSearch.vue
+++ b/src/components/panel/topicSearch/SewersSearch.vue
@@ -1,9 +1,5 @@
 <template>
   <div class="sewers-search">
-    <div class="el-message-box__header panel_header">
-      <div class="el-message-box__title panel_title"><!----><span>{{ title }}</span>
-      </div>
-    </div>
     <div class="el-message-box__content" style="padding:6px;font-size: 13px;">
       <div class="box__content" v-if="gdVisible">
         <div>
diff --git a/src/components/plugin/FullScreen.js b/src/components/plugin/FullScreen.js
new file mode 100644
index 0000000..888371d
--- /dev/null
+++ b/src/components/plugin/FullScreen.js
@@ -0,0 +1,174 @@
+/* eslint-disable */
+const init = (L) => {
+  (function (factory) {
+    if (typeof define === 'function' && define.amd) {
+      // AMD
+      define(['leaflet'], factory)
+    } else if (typeof module !== 'undefined') {
+      // Node/CommonJS
+      // module.exports = factory(require('leaflet'))
+      factory(L)
+    } else {
+      // Browser globals
+      if (typeof window.L === 'undefined') {
+        throw new Error('Leaflet must be loaded first')
+      }
+      factory(window.L)
+    }
+  }(function (L) {
+    L.Control.Fullscreen = L.Control.extend({
+      options: {
+        position: 'topleft',
+        title: {
+          false: 'View Fullscreen',
+          true: 'Exit Fullscreen'
+        }
+      },
+
+      onAdd: function (map) {
+        var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control')
+
+        this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container)
+        this.link.href = '#'
+
+        this._map = map
+        this._map.on('fullscreenchange', this._toggleTitle, this)
+        this._toggleTitle()
+
+        L.DomEvent.on(this.link, 'click', this._click, this)
+
+        return container
+      },
+
+      _click: function (e) {
+        L.DomEvent.stopPropagation(e)
+        L.DomEvent.preventDefault(e)
+        this._map.toggleFullscreen(this.options)
+      },
+
+      _toggleTitle: function () {
+        this.link.title = this.options.title[this._map.isFullscreen()]
+      }
+    })
+
+    L.Map.include({
+      isFullscreen: function () {
+        return this._isFullscreen || false
+      },
+
+      toggleFullscreen: function (options) {
+        var container = this.getContainer()
+        if (this.isFullscreen()) {
+          if (options && options.pseudoFullscreen) {
+            this._disablePseudoFullscreen(container)
+          } else if (document.exitFullscreen) {
+            document.exitFullscreen()
+          } else if (document.mozCancelFullScreen) {
+            document.mozCancelFullScreen()
+          } else if (document.webkitCancelFullScreen) {
+            document.webkitCancelFullScreen()
+          } else if (document.msExitFullscreen) {
+            document.msExitFullscreen()
+          } else {
+            this._disablePseudoFullscreen(container)
+          }
+        } else {
+          if (options && options.pseudoFullscreen) {
+            this._enablePseudoFullscreen(container)
+          } else if (container.requestFullscreen) {
+            container.requestFullscreen()
+          } else if (container.mozRequestFullScreen) {
+            container.mozRequestFullScreen()
+          } else if (container.webkitRequestFullscreen) {
+            container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)
+          } else if (container.msRequestFullscreen) {
+            container.msRequestFullscreen()
+          } else {
+            this._enablePseudoFullscreen(container)
+          }
+        }
+      },
+
+      _enablePseudoFullscreen: function (container) {
+        L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen')
+        this._setFullscreen(true)
+        this.fire('fullscreenchange')
+      },
+
+      _disablePseudoFullscreen: function (container) {
+        L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen')
+        this._setFullscreen(false)
+        this.fire('fullscreenchange')
+      },
+
+      _setFullscreen: function (fullscreen) {
+        this._isFullscreen = fullscreen
+        var container = this.getContainer()
+        if (fullscreen) {
+          L.DomUtil.addClass(container, 'leaflet-fullscreen-on')
+        } else {
+          L.DomUtil.removeClass(container, 'leaflet-fullscreen-on')
+        }
+        this.invalidateSize()
+      },
+
+      _onFullscreenChange: function (e) {
+        var fullscreenElement =
+          document.fullscreenElement ||
+          document.mozFullScreenElement ||
+          document.webkitFullscreenElement ||
+          document.msFullscreenElement
+
+        if (fullscreenElement === this.getContainer() && !this._isFullscreen) {
+          this._setFullscreen(true)
+          this.fire('fullscreenchange')
+        } else if (fullscreenElement !== this.getContainer() && this._isFullscreen) {
+          this._setFullscreen(false)
+          this.fire('fullscreenchange')
+        }
+      }
+    })
+
+    L.Map.mergeOptions({
+      fullscreenControl: false
+    })
+
+    L.Map.addInitHook(function () {
+      if (this.options.fullscreenControl) {
+        this.fullscreenControl = new L.Control.Fullscreen(this.options.fullscreenControl)
+        this.addControl(this.fullscreenControl)
+      }
+
+      var fullscreenchange
+
+      if ('onfullscreenchange' in document) {
+        fullscreenchange = 'fullscreenchange'
+      } else if ('onmozfullscreenchange' in document) {
+        fullscreenchange = 'mozfullscreenchange'
+      } else if ('onwebkitfullscreenchange' in document) {
+        fullscreenchange = 'webkitfullscreenchange'
+      } else if ('onmsfullscreenchange' in document) {
+        fullscreenchange = 'MSFullscreenChange'
+      }
+
+      if (fullscreenchange) {
+        var onFullscreenChange = L.bind(this._onFullscreenChange, this)
+
+        this.whenReady(function () {
+          L.DomEvent.on(document, fullscreenchange, onFullscreenChange)
+        })
+
+        this.on('unload', function () {
+          L.DomEvent.off(document, fullscreenchange, onFullscreenChange)
+        })
+      }
+    })
+
+    L.control.fullscreen = function (options) {
+      return new L.Control.Fullscreen(options)
+    }
+  }))
+}
+export default {
+  init
+}
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index a1c32db..a98e84c 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -1,19 +1,19 @@
 <template>
-    <div class="full-screen">
-        <popup ref="popup" @callPopup="callPopup"></popup>
-        <div id="map" ref="rootmap">
-        </div>
-        <sgis-layer-controller :preset="'warningPreset'">
-            <lc-basemap></lc-basemap>
-            <!--            <div class="barline"></div>-->
-            <lc-service-layer class="barline" v-if="lcServiceLayerVisible"></lc-service-layer>
-        </sgis-layer-controller>
-        <monitor-panel></monitor-panel>
-<!--        <top-enterprise-panel></top-enterprise-panel>-->
-        <tool-box-panel></tool-box-panel>
-      <menu-special></menu-special>
-      <legend-panel></legend-panel>
+  <div class="full-screen">
+    <popup ref="popup" @callPopup="callPopup"></popup>
+    <div id="map" ref="rootmap">
     </div>
+    <sgis-layer-controller :preset="'warningPreset'">
+      <lc-basemap></lc-basemap>
+      <!--            <div class="barline"></div>-->
+      <lc-service-layer class="barline" v-if="lcServiceLayerVisible"></lc-service-layer>
+    </sgis-layer-controller>
+    <monitor-panel></monitor-panel>
+    <!--        <top-enterprise-panel></top-enterprise-panel>-->
+    <tool-box-panel :map="this.map"></tool-box-panel>
+    <menu-special></menu-special>
+    <legend-panel></legend-panel>
+  </div>
 </template>
 
 <script>
@@ -134,23 +134,23 @@
 
 <style lang="less">
 
-    .full-screen {
-        width: 100%;
-        height: 100%;
-        margin: 0;
-        padding: 0;
-        position: absolute;
+.full-screen {
+  width: 100%;
+  height: 100%;
+  margin: 0;
+  padding: 0;
+  position: absolute;
 
-        #map {
-            height: 100%;
-            width: 100%;
-        }
+  #map {
+    height: 100%;
+    width: 100%;
+  }
 
-        .barline {
-            //width: 100%;
-            //height: 1px;
-            //background-color: #0661AE;
-            border-top: 1px solid #0661AE;
-        }
-    }
-</style>>
+  .barline {
+    //width: 100%;
+    //height: 1px;
+    //background-color: #0661AE;
+    border-top: 1px solid #0661AE;
+  }
+}
+</style>

--
Gitblit v1.8.0