From 3e4b4e749cce446f3d122ab62012d1c659e1788a Mon Sep 17 00:00:00 2001 From: chenzeping <ChenZeping02609@163.com> Date: 星期二, 16 三月 2021 18:07:35 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master --- src/components/table/enterprise.vue | 26 +++ src/components/table/summarySheets.vue | 31 +++- src/conf/TDT.js | 39 +++++ src/components/panel/ToolBoxPanel.vue | 34 +--- src/components/icon-btn/IconBtn.vue | 221 +++++++++++++++++++++++++++++++ src/components/LayerController/LayerController.vue | 64 -------- src/assets/images/map-pages/icon/toolbox/table.png | 0 7 files changed, 315 insertions(+), 100 deletions(-) diff --git a/src/assets/images/map-pages/icon/toolbox/table.png b/src/assets/images/map-pages/icon/toolbox/table.png new file mode 100644 index 0000000..5195131 --- /dev/null +++ b/src/assets/images/map-pages/icon/toolbox/table.png Binary files differ diff --git a/src/components/LayerController/LayerController.vue b/src/components/LayerController/LayerController.vue index 9a60145..0d010eb 100644 --- a/src/components/LayerController/LayerController.vue +++ b/src/components/LayerController/LayerController.vue @@ -1,6 +1,6 @@ <template> <div class="float-panel"> - <div :class='["btn",layerControllerVisible ? "active" : ""]' @click="showPanel"><span><img src="@assets/images/map-pages/icon/layer.png" alt="" width="26px" style="display: block;margin: auto"><span class="icon-name">鍥惧眰</span></span></div> + <div :class='["iconBtn",layerControllerVisible ? "active" : ""]' @click="showPanel"><span><img src="@assets/images/map-pages/icon/layer.png" alt="" width="26px" style="display: block;margin: auto"><span class="icon-name">鍥惧眰</span></span></div> <transition name="fade"> <div :class="'legend-content map-background'" style="position: absolute;left: 50px;top: 0" v-show="layerControllerVisible"> <lc-service-layer></lc-service-layer> @@ -16,7 +16,6 @@ import iconSetting from '@/assets/images/map-pages/icon/setting.png' import LcServiceLayer from './modules/LcServiceLayer' -const cityOptions = ['涓婃捣', '鍖椾含', '骞垮窞', '娣卞湷'] export default { name: 'LayerController', components: { LcServiceLayer }, @@ -44,10 +43,6 @@ icons: { setting: iconSetting }, - checkAll: false, - checkedCities: ['涓婃捣', '鍖椾含'], - cities: cityOptions, - isIndeterminate: true, layerControllerVisible: false, panelSwitch: { main: true // 涓荤獥鍙� @@ -62,15 +57,6 @@ methods: { showPanel () { this.layerControllerVisible = !this.layerControllerVisible - }, - handleCheckAllChange (val) { - this.checkedCities = val ? cityOptions : [] - this.isIndeterminate = false - }, - handleCheckedCitiesChange (value) { - const checkedCount = value.length - this.checkAll = checkedCount === this.cities.length - this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length }, init () { this.initPreset() @@ -112,7 +98,7 @@ div { color: #00fff6; } - .btn { + .iconBtn { width:45px; text-align: center; background: rgba(0, 16, 30, 0.5); @@ -227,20 +213,6 @@ margin-left: 30px; height: auto; } - - .switch-head-up { - width: 22px; - height: 16px; - float: right; - margin-top: 10px; - margin-right: 10px; - cursor: pointer; - background-image: url(../../assets/images/map-pages/icon/xljt1.png); - transform: rotateX(0deg); - transform-origin: 50% 50%; - transition: transform 0.5s linear 0s; - } - .switch-head-down { transform: rotateX(180deg); transform-origin: 50% 50%; @@ -255,38 +227,6 @@ color: #569EB7; padding: 0 16px; } - - .horn { - width: 6px; - height: 6px; - float: left; - position: absolute; - } - - .horn-tl { - background-image: url(../../assets/images/map-pages/cosmetics/horn_tl.png); - left: -1px; - top: -1px; - } - - .horn-tr { - background-image: url(../../assets/images/map-pages/cosmetics/horn_tr.png); - right: -1px; - top: -1px; - } - - .horn-bl { - background-image: url(../../assets/images/map-pages/cosmetics/horn_bl.png); - left: -1px; - bottom: -1px; - } - - .horn-br { - background-image: url(../../assets/images/map-pages/cosmetics/horn_br.png); - right: -1px; - bottom: -1px; - } - ::-webkit-scrollbar { width: 7px; height: 5px !important; diff --git a/src/components/icon-btn/IconBtn.vue b/src/components/icon-btn/IconBtn.vue new file mode 100644 index 0000000..4c618b8 --- /dev/null +++ b/src/components/icon-btn/IconBtn.vue @@ -0,0 +1,221 @@ +<template> + <div class="float-panel"> + <div :class='["btn",active ? "active" : ""]' @click="onClick"> + <span> + <img :src="src" alt="" width="26px" style="display: block;margin: auto"> + <span class="icon-name">{{label}}</span> + </span> + </div> + </div> +</template> + +<script> +import '@assets/css/map/magic.min.css' + +import iconSetting from '@/assets/images/map-pages/icon/setting.png' + +export default { + name: 'LayerController', + props: { + src: String, + label: String, + active: Object, + onClick: Function + }, + computed: { + map () { + return this.$store.state.map.map + }, + L () { + return this.$store.state.map.L + }, + layerHelper () { + return this.$store.state.map.layerHelper + } + }, + data () { + return { + width: '250px', + isShow: true, + icons: { + setting: iconSetting + }, + layerControllerVisible: false, + panelSwitch: { + main: true // 涓荤獥鍙� + } + } + }, + mounted () { + this.$nextTick(function () { + this.init() + }) + }, + methods: { + } +} +</script> + +<style lang="less"> + .float-panel { + position: absolute; + left: 2px; + top: 120px; + height: auto; + font-size: 11px; + z-index: 1000; + + div { + color: #00fff6; + } + .btn { + width:45px; + text-align: center; + background: rgba(0, 16, 30, 0.5); + cursor: pointer; + color: #00fff6; + border: 0.00521rem solid #00fff6; + box-shadow: 0 0 0.03rem #00fff6; + } + .active { + border: 0.00521rem solid #fff700; + box-shadow: 0 0 0.03rem #fff700; + } + .title-border { + width: 100%; + height: 28px; + background: #10488c; + -webkit-clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px); + clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px); + position: relative; + } + + .title-border:before { + content: ""; + display: block; + position: absolute; + width: 6px; + height: 6px; + top: 0; + left: 0; + background-color: #38c8ef; + } + + .title-border:after { + content: ""; + display: block; + position: absolute; + width: 6px; + height: 6px; + top: 9px; + right: 0; + background-color: #38c8ef; + -webkit-clip-path: polygon(0px 0px, 0px 1px, 5px 1px, 5px 6px, 6px 6px, 6px 0px); + clip-path: polygon(0px 0px, 0px 1px, 5px 1px, 5px 6px, 6px 6px, 6px 0px); + } + + .title-text-border { + width: 30px; + height: 120px; + float: left; + background: #091331; + // -webkit-clip-path: polygon(1px 1px, 1px 27px, 229px 27px, 229px 10px, 94px 10px, 85px 1px); + // clip-path: polygon(1px 1px, 1px 27px, 229px 27px, 229px 10px, 94px 10px, 85px 1px); + } + + .title-icon { + float: left; + width: 22px; + height: 22px; + margin-top: 4px; + margin-left: 2px; + background-image: url(../../assets/images/map-pages/icon/setting.png); + } + + .title-text { + width: 25px; + color: #00d0f9; + font-weight: bold; + margin-top: 6px; + text-align: center; + font-size: 14px; + filter: brightness(100%); + text-shadow: 0 0 5px #00d0f9, 0 0 0 #00d0f9, 0 0 0 #00d0f9, 0 0 0 #0258c5, 0 0 0 #0258c5, 0 0 2px #0258c5, 0 0 5px #0258c5, 0 0 15px #0258c5; + } + + .title-line { + display: inline-block; + width: 120px; + height: 1px; + // margin-top: 14px; + margin-left: 4px; + background-color: #04527f; + line-height: 5px; + vertical-align: middle; + } + + .title-point { + display: inline-block; + width: 5px; + height: 5px; + // margin-top: 12px; + background-color: #04527f; + line-height: 5px; + vertical-align: middle; + } + + .title-button { + float: right; + width: 28px; + height: 28px; + cursor: pointer; + + :hover { + font-weight: bold; + color: white; + } + } + + .body-box { + background-color: rgba(44, 62, 80, 0.6); + border: 1px solid #10488c; + margin-top: -1px; + margin-left: 30px; + height: auto; + } + .switch-head-down { + transform: rotateX(180deg); + transform-origin: 50% 50%; + transition: transform 0.5s linear 0s; + } + + select { + background: transparent; + margin: 6px; + border: .5px solid #569EB7; + width: 150px; + color: #569EB7; + padding: 0 16px; + } + ::-webkit-scrollbar { + width: 7px; + height: 5px !important; + } + + ::-webkit-scrollbar-thumb { + /*婊氬姩鏉¢噷闈㈠皬鏂瑰潡*/ + border-radius: 10px; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); + background: #0661AE; + border: 1px solid transparent; + } + + ::-webkit-scrollbar-track { + /*婊氬姩鏉¢噷闈㈣建閬�*/ + // box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2); + border-radius: 0px; + background: #0E3565; + } + } + +</style> diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue index e3d5d7d..b1b862e 100644 --- a/src/components/panel/ToolBoxPanel.vue +++ b/src/components/panel/ToolBoxPanel.vue @@ -233,9 +233,6 @@ methods: { changeChoose (index) { this.active = index - if (this.drawLayer == null) { - this.drawLayer = this.L.layerGroup().addTo(this.map) - } }, changeSelect () { this.selectGroup = !this.selectGroup @@ -250,30 +247,20 @@ iconAnchor: [13, 16], popupAnchor: [26, -32] }) - var drawLayer = this.map.editTools.startMarker() - drawLayer.setIcon(myIcon) - this.drawLayer.addLayer(drawLayer) - this.setLogic(drawLayer) + this.drawLayer = this.map.editTools.startMarker() + this.drawLayer.setIcon(myIcon) break case '绾挎爣缁�': - var drawLayerLine = this.map.editTools.startPolyline() - this.drawLayer.addLayer(drawLayerLine) - this.setLogic(drawLayerLine) + this.drawLayer = this.map.editTools.startPolyline() break case '澶氳竟褰�': - var drawLayerPolygonD = this.map.editTools.startPolygon() - this.drawLayer.addLayer(drawLayerPolygonD) - this.setLogic(drawLayerPolygonD) + this.drawLayer = this.map.editTools.startPolygon() break case '鐭╁舰': - var drawLayerPolygonJ = this.map.editTools.startRectangle() - this.drawLayer.addLayer(drawLayerPolygonJ) - this.setLogic(drawLayerPolygonJ) + this.drawLayer = this.map.editTools.startRectangle() break case '鍦嗗舰': - var drawLayerPolygonY = this.map.editTools.startCircle() - this.drawLayer.addLayer(drawLayerPolygonY) - this.setLogic(drawLayerPolygonY) + this.drawLayer = this.map.editTools.startCircle() break case '璺濈': Measure.startMeasureLen(this.map, this.L) @@ -310,14 +297,11 @@ printerY.printMap('A4Portrait page', 'MyManualPrint') break case '鍒犻櫎': - // this.map.removeLayer(this.drawLayer) - this.drawLayer.clearLayers() + this.map.removeLayer(this.drawLayer) break } - }, - setLogic (layer) { - layer.on('dblclick', this.L.DomEvent.stop).on('dblclick', layer.toggleEdit) - layer.setStyle({ + this.drawLayer.on('dblclick', this.L.DomEvent.stop).on('dblclick', this.drawLayer.toggleEdit) + this.drawLayer.setStyle({ color: 'red', fillColor: '#ffffff', fillOpacity: 0.1, diff --git a/src/components/table/enterprise.vue b/src/components/table/enterprise.vue index f024ad2..4a38d1f 100644 --- a/src/components/table/enterprise.vue +++ b/src/components/table/enterprise.vue @@ -1,10 +1,11 @@ <template> <div class="enterprise-panel"> <div class="enterprise-function" @click="showWarnDialog()"> - <img src="@/assets/images/map-pages/icon/map/warn.png" alt="" width="32px"> + <div :class='["iconBtn",warnVisible ? "active" : ""]'><span><img src="@/assets/images/map-pages/icon/map/warn.png" alt="" width="26px" style="display: block;margin: auto"><span class="icon-name">棰勬姤璀�</span></span></div> + </div> <div class="enterprise-function" @click="showStatisDialog()"> - <img src="@/assets/images/map-pages/icon/map/company.png" alt="" width="32px"> + <div :class='["iconBtn",companyVisible ? "active" : ""]'><span><img src="@/assets/images/map-pages/icon/map/company.png" alt="" width="26px" style="display: block;margin: auto"><span class="icon-name">鎸囨爣</span></span></div> </div> <Dialog ref="warnDialog" title="浼佷笟棰勮鎶ヨ鍒嗙被缁熻"> <warn></warn> @@ -28,7 +29,9 @@ }, data () { return { - comp: Warn + comp: Warn, + warnVisible: false, + companyVisible: false } }, methods: { @@ -38,9 +41,11 @@ }, showWarnDialog () { this.$refs.warnDialog.show() + this.warnVisible = true }, showStatisDialog () { this.$refs.indexStatisticsDialog.show() + this.companyVisible = true } } } @@ -54,9 +59,22 @@ z-index: 9999; .enterprise-function{ - width: 40px; + width: 50px; float: left; cursor: pointer; } + .iconBtn { + width:45px; + text-align: center; + background: rgba(0, 16, 30, 0.5); + cursor: pointer; + color: #00fff6; + border: 0.00521rem solid #00fff6; + box-shadow: 0 0 0.03rem #00fff6; + } + .active { + // border: 0.00521rem solid #fff700; + // box-shadow: 0 0 0.03rem #fff700; + } } </style> diff --git a/src/components/table/summarySheets.vue b/src/components/table/summarySheets.vue index a66a556..8e04c11 100644 --- a/src/components/table/summarySheets.vue +++ b/src/components/table/summarySheets.vue @@ -1,11 +1,9 @@ <template> <div class="summary-sheets"> - <div> - <i class="el-icon-c-scale-to-original" @click="closeBtn"></i> - </div> - <Dialog ref="summarySheets" title="浼佷笟鎸囨爣鍒嗙被缁熻"> - <tab-handover></tab-handover> - </Dialog > + <div :class='["iconBtn",summaryVisible ? "active" : ""]' @click="closeBtn"><span><img src="@assets/images/map-pages/icon/toolbox/table.png" alt="" width="26px" style="display: block;margin: auto"><span class="icon-name">缁熻琛�</span></span></div> + <Dialog ref="summarySheets" title="浼佷笟鎸囨爣鍒嗙被缁熻"> + <tab-handover></tab-handover> + </Dialog > </div> </template> @@ -18,7 +16,11 @@ tabHandover, Dialog }, - + data () { + return { + summaryVisible: false + } + }, methods: { closeBtn () { // const summary = document.getElementById('summary') @@ -36,14 +38,25 @@ left: 1px; /*width: 850px;*/ /*height: 265px;*/ - border: #90c8e0 1px solid; z-index:2000; - background-color: rgba(26, 73, 81, 0.901960784313726); /*color: #fff;*/ .el-icon-c-scale-to-original { width: 30px; height: 30px; font-size: 30px; } + .iconBtn { + width:45px; + text-align: center; + background: rgba(0, 16, 30, 0.5); + cursor: pointer; + color: #00fff6; + border: 0.00521rem solid #00fff6; + box-shadow: 0 0 0.03rem #00fff6; + } + .active { + border: 0.00521rem solid #fff700; + box-shadow: 0 0 0.03rem #fff700; + } } </style> diff --git a/src/conf/TDT.js b/src/conf/TDT.js index 0c5b418..6f0597f 100644 --- a/src/conf/TDT.js +++ b/src/conf/TDT.js @@ -153,6 +153,45 @@ zoomOffset: 1 } } + }, + { + code: 'tianditu_ter', + name: '澶╁湴鍥惧湴褰�', + icon_actived: '/assets/images/map-pages/icon/terrain.png', + icon_deactived: '/assets/images/map-pages/icon/terrain.png', + isAddToMap: false, + annotationCheck: true, + map: { + layerName: '澶╁湴鍥惧湴褰㈠湴鍥�', + type: 'wmts', + visible: false, + layerType: 'ter_c', + isLoadMapByToken: true, + annotationCheck: true, + url: TIANDITU_GIS_HOST + '/ter_c/wmts?layer=ter&style=default&tilematrixset=c' + + '&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}' + + '&tk=' + TIANDITU_GIS_TOKEN, + option: { + maxZoom: 18, + minZoom: 1, + zoomOffset: 1 + } + }, + annotation: { + layerName: '澶╁湴鍥惧湴褰㈡爣璁�', + type: 'wmts', + visible: false, + layerType: 'cta_c', + isLoadMapByToken: true, + url: TIANDITU_GIS_HOST + '/cta_c/wmts?layer=cva&style=default&tilematrixset=c' + + '&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}' + + '&tk=' + TIANDITU_GIS_TOKEN, + option: { + maxZoom: 18, + minZoom: 1, + zoomOffset: 1 + } + } } ] export default -- Gitblit v1.8.0