From 93cbeb9dec38530d552de90f7b6e2949ed76ce8b Mon Sep 17 00:00:00 2001 From: zhangshuaibao <15731629597@163.com> Date: 星期二, 16 三月 2021 18:29:41 +0800 Subject: [PATCH] Merge branch 'master' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork --- src/assets/images/map-pages/icon/layer.png | 0 src/assets/images/map-pages/icon/toolbox/Selecd/biaohui.png | 0 src/components/table/enterprise.vue | 26 + src/assets/images/map-pages/icon/toolbox/Selecd/tool.png | 0 src/assets/images/map-pages/icon/toolbox/Selecd/ditu.png | 0 src/assets/images/map-pages/icon/toolbox/Selecd/xiazai.png | 0 src/components/panel/ToolBoxPanel.vue | 268 +++++++++++--- src/components/LayerController/LayerController.vue | 87 +--- src/components/LayerController/LayerController2.vue | 288 ++++++++++++++++ src/components/LayerController/modules/LcServiceLayer.vue | 18 src/assets/images/map-pages/icon/toolbox/table.png | 0 src/components/table/summarySheets.vue | 31 + src/conf/TDT.js | 39 ++ src/conf/MapConfig.js | 3 src/assets/images/map-pages/icon/toolbox/Selecd/celiang1.png | 0 src/components/icon-btn/IconBtn.vue | 221 ++++++++++++ src/conf/LayerWasteWater.js | 43 ++ src/App.vue | 2 18 files changed, 872 insertions(+), 154 deletions(-) diff --git a/src/App.vue b/src/App.vue index 89338ed..6b056a7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -23,7 +23,7 @@ overflow: hidden; } body .el-scrollbar__wrap { - overflow-x: hidden; + // overflow-x: hidden; } body{ -ms-overflow-style: none; diff --git a/src/assets/images/map-pages/icon/layer.png b/src/assets/images/map-pages/icon/layer.png new file mode 100644 index 0000000..4c4587c --- /dev/null +++ b/src/assets/images/map-pages/icon/layer.png Binary files differ diff --git a/src/assets/images/map-pages/icon/toolbox/Selecd/biaohui.png b/src/assets/images/map-pages/icon/toolbox/Selecd/biaohui.png new file mode 100644 index 0000000..7768aa6 --- /dev/null +++ b/src/assets/images/map-pages/icon/toolbox/Selecd/biaohui.png Binary files differ diff --git a/src/assets/images/map-pages/icon/toolbox/Selecd/celiang1.png b/src/assets/images/map-pages/icon/toolbox/Selecd/celiang1.png new file mode 100644 index 0000000..572dbe2 --- /dev/null +++ b/src/assets/images/map-pages/icon/toolbox/Selecd/celiang1.png Binary files differ diff --git a/src/assets/images/map-pages/icon/toolbox/Selecd/ditu.png b/src/assets/images/map-pages/icon/toolbox/Selecd/ditu.png new file mode 100644 index 0000000..d70ff4d --- /dev/null +++ b/src/assets/images/map-pages/icon/toolbox/Selecd/ditu.png Binary files differ diff --git a/src/assets/images/map-pages/icon/toolbox/Selecd/tool.png b/src/assets/images/map-pages/icon/toolbox/Selecd/tool.png new file mode 100644 index 0000000..2beeb93 --- /dev/null +++ b/src/assets/images/map-pages/icon/toolbox/Selecd/tool.png Binary files differ diff --git a/src/assets/images/map-pages/icon/toolbox/Selecd/xiazai.png b/src/assets/images/map-pages/icon/toolbox/Selecd/xiazai.png new file mode 100644 index 0000000..6b2eaac --- /dev/null +++ b/src/assets/images/map-pages/icon/toolbox/Selecd/xiazai.png Binary files differ 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 8f24ad7..0d010eb 100644 --- a/src/components/LayerController/LayerController.vue +++ b/src/components/LayerController/LayerController.vue @@ -1,14 +1,9 @@ <template> <div class="float-panel"> - <div class="title-text-border" @click="switchPanel"> - <div class="title-icon"></div> - <div class="title-text">鍥惧眰鎺у埗</div> - </div> - <transition name="el-fade-in-linear"> - <div class="body-box" id="panelContent" :style="{ width:width }"> - <div v-show="isShow"> - <slot></slot> - </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> </div> </transition> </div> @@ -19,10 +14,11 @@ import presets from './layerControllerPresets' import iconSetting from '@/assets/images/map-pages/icon/setting.png' +import LcServiceLayer from './modules/LcServiceLayer' export default { name: 'LayerController', - components: {}, + components: { LcServiceLayer }, props: { preset: { type: String, @@ -38,9 +34,6 @@ }, layerHelper () { return this.$store.state.map.layerHelper - }, - layerControllerVisible () { - return this.$store.state.map.layerControllerVisible } }, data () { @@ -50,6 +43,7 @@ icons: { setting: iconSetting }, + layerControllerVisible: false, panelSwitch: { main: true // 涓荤獥鍙� } @@ -61,6 +55,9 @@ }) }, methods: { + showPanel () { + this.layerControllerVisible = !this.layerControllerVisible + }, init () { this.initPreset() }, @@ -90,18 +87,30 @@ </script> <style lang="less"> - .float-panel { position: absolute; + left: 2px; top: 120px; height: auto; font-size: 11px; z-index: 1000; div { - color: #90c8e0; + color: #00fff6; } - + .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; + } .title-border { width: 100%; height: 28px; @@ -204,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%; @@ -232,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/LayerController/LayerController2.vue b/src/components/LayerController/LayerController2.vue new file mode 100644 index 0000000..8f24ad7 --- /dev/null +++ b/src/components/LayerController/LayerController2.vue @@ -0,0 +1,288 @@ +<template> + <div class="float-panel"> + <div class="title-text-border" @click="switchPanel"> + <div class="title-icon"></div> + <div class="title-text">鍥惧眰鎺у埗</div> + </div> + <transition name="el-fade-in-linear"> + <div class="body-box" id="panelContent" :style="{ width:width }"> + <div v-show="isShow"> + <slot></slot> + </div> + </div> + </transition> + </div> +</template> + +<script> +import '@assets/css/map/magic.min.css' +import presets from './layerControllerPresets' + +import iconSetting from '@/assets/images/map-pages/icon/setting.png' + +export default { + name: 'LayerController', + components: {}, + props: { + preset: { + type: String, + default: 'default' + } + }, + computed: { + map () { + return this.$store.state.map.map + }, + L () { + return this.$store.state.map.L + }, + layerHelper () { + return this.$store.state.map.layerHelper + }, + layerControllerVisible () { + return this.$store.state.map.layerControllerVisible + } + }, + data () { + return { + width: '250px', + isShow: true, + icons: { + setting: iconSetting + }, + panelSwitch: { + main: true // 涓荤獥鍙� + } + } + }, + mounted () { + this.$nextTick(function () { + this.init() + }) + }, + methods: { + init () { + this.initPreset() + }, + initPreset () { + if (this.preset !== 'default') { + const prmPreset = presets[this.preset] + Object.assign(this.layerControllerVisible, prmPreset) // 闃叉棰勮鍙傛暟涓庨粯璁ゅ弬鏁颁笉涓�鑷村鑷存姤閿欙紝濡傛灉娌℃湁鎸夌収鎮ㄧ殑閰嶇疆鍙戠敓鏀瑰彉锛岃妫�鏌ユ嫾鍐欐槸鍚︽纭� + if (prmPreset === 'undefined') { + console.log('璇ュ浘灞傛帶鍒堕潰鏉跨殑棰勮娌℃湁鎵惧埌锛岃妫�鏌ラ璁惧悕绉版槸鍚︽纭紒') + } else { + this.$store.commit('updateLayerControllerVisible', this.layerControllerVisible) + } + } + }, + switchPanel () { + this.panelSwitch.main = !this.panelSwitch.main + if (this.panelSwitch.main) { + this.width = '250px' + this.isShow = true + } else { + this.width = '0px' + this.isShow = false + } + } + } +} +</script> + +<style lang="less"> + +.float-panel { + position: absolute; + top: 120px; + height: auto; + font-size: 11px; + z-index: 1000; + + div { + color: #90c8e0; + } + + .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-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%; + transition: transform 0.5s linear 0s; + } + + select { + background: transparent; + margin: 6px; + border: .5px solid #569EB7; + width: 150px; + 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; + } + + ::-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/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue index b86a7e6..fddacf6 100644 --- a/src/components/LayerController/modules/LcServiceLayer.vue +++ b/src/components/LayerController/modules/LcServiceLayer.vue @@ -1,5 +1,8 @@ <template> <div class="inner-panel"> + <div class="title"> + 鍥惧眰鎺у埗 + </div> <div class="wms-panel"> <div v-for="item in serviceLayers" :key="item.code" class="layerbox"> <div><input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @@ -96,10 +99,13 @@ <style scoped lang="less"> .inner-panel { - display: flex; - justify-content: center; - align-items: center; - + .title{ + color: #ffffff; + font-size: 16px; + font-weight: 600; + margin: 10px; + text-align: center; + } .btn-filter { cursor: pointer; color: #ffffff; @@ -107,13 +113,9 @@ .wms-panel { width: 250px; - display: flex; - flex-flow: column; .layerbox { width: 100%; - display: flex; - flex-flow: column; .layerbox-item { display: flex; 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 7d206e9..27be230 100644 --- a/src/components/panel/ToolBoxPanel.vue +++ b/src/components/panel/ToolBoxPanel.vue @@ -5,43 +5,47 @@ <img src="@assets/images/map-pages/icon/toolbox/tool.png" alt=""> <span>宸ュ叿</span> </el-button> - <transition name="animationChange"> - <el-row v-show="selectGroup" class="specific-tools-group"> - <el-popover - placement="bottom" - width="" - trigger="click" - :popper-class="'tools-panel-content'" - v-for="(item,index) in menuList" :key="index" - > - <el-button slot="reference" class="el-button" :class="active === index ? 'tools-panel-choose':''" - @click="changeChoose(index)"> - <img :src="item.icon" alt=""/> - <span>{{ item.label }}</span> - </el-button> - <el-button v-for="(itemT,indexT) in item.items" :key="indexT" @click="choiceItem(itemT,indexT)"> - <img :src="itemT.icon" :title="itemT.title"/> - </el-button> - </el-popover> - <el-button @click="changeSelect" class="special-button"> - <i :class="selectGroup === false ? 'el-icon-d-arrow-left':'el-icon-d-arrow-left'"></i> + <el-row v-show="selectGroup" class="specific-tools-group"> + <el-popover + placement="bottom" + width="100%" + trigger="click" + :popper-class="'tools-panel-content'" + v-for="(item,index) in menuList" :key="index" + > + <el-button slot="reference" class="el-button" :class="active === index ? 'tools-panel-choose':''" + @click="changeChoose(index)"> + <img :src="item.icon" alt=""/> + <span>{{ item.label }}</span> </el-button> - </el-row> - </transition> + <el-button v-for="(itemT,indexT) in item.items" :key="indexT" @click="choiceItem(itemT)" v-show="item.index!=='2'"> + <img :src="itemT.icon" :title="itemT.title" v-show="item.index!=='2'"/> + </el-button> + <div class="base-map-inner-panel" v-show="!isShow&&item.index==='2'"> + <div v-for="item in basemapList" :key="item.code" class="basemap-layer-item"> + <img class="base-map-img" width="50" height="50" :src="item.conf.icon_actived" :title="item.name" + @click="changeBasemap(item)"/> + <el-checkbox class="base-map-anno" name="basemap" v-model="item.conf.annotationCheck" + label="鏍囨敞" @change="changeBasemap(item)"> + </el-checkbox> + </div> + </div> + </el-popover> + <el-button @click="changeSelect" class="special-button"> + <i :class="selectGroup === false ? 'el-icon-d-arrow-right':'el-icon-d-arrow-left'"></i> + </el-button> + </el-row> </div> </div> </template> <script> -// 鍔熻兘瀵艰埅 import plot from '@assets/images/map-pages/icon/toolbox/biaohui.png' import polygon from '@assets/images/map-pages/icon/toolbox/celiang1.png' import location from '@assets/images/map-pages/icon/toolbox/ditu.png' import fullscreen from '@assets/images/map-pages/icon/toolbox/xiazai.png' // 鏍囩粯鐨勫彲閫夋嫨鏁版嵁 -import iconRefinery from '@assets/images/map-pages/local.png' - import marker from '@assets/images/map-pages/icon/toolbox/map.png' import line from '@assets/images/map-pages/icon/toolbox/line.png' import polygonJ from '@assets/images/map-pages/icon/toolbox/polygon.png' @@ -50,8 +54,6 @@ import del from '@assets/images/map-pages/icon/toolbox/del.png' // 閫変腑鐨勫唴瀹瑰浘鐗� -import markerChoose from '@assets/images/map-pages/icon/toolbox/biaohuimark/dingweimark.png' -import lineChoose from '@assets/images/map-pages/icon/toolbox/biaohuimark/linemark.png' import distanceChoose from '@assets/images/map-pages/icon/toolbox/biaohuimark/juliceliangmark.png' import mmChoose from '@assets/images/map-pages/icon/toolbox/biaohuimark/mianjiceliangmark.png' import delChoose from '@assets/images/map-pages/icon/toolbox/biaohuimark/shanchu.png' @@ -68,6 +70,9 @@ // components: { BaseNavMenuItem }, data () { return { + isShow: true, + currentBaseMapCode: 'tianditu_img', + basemapList: [], menuList: [ { icon: plot, @@ -78,15 +83,13 @@ index: '1-1', label: '鐐规爣缁�', icon: marker, - title: '鐐规爣缁�', - iconChoose: markerChoose + title: '鐐规爣缁�' }, { index: '1-2', label: '绾挎爣缁�', icon: line, - title: '绾挎爣缁�', - iconChoose: lineChoose + title: '绾挎爣缁�' }, { index: '1-4', @@ -105,12 +108,6 @@ label: '鍦嗗舰', icon: polygonY, title: '鍦嗗舰' - }, - { - index: '1-4', - label: '鍒犻櫎', - icon: del, - title: '鍒犻櫎鏍囩粯' } ] }, @@ -206,43 +203,73 @@ } ], selectGroup: false, - active: -1, drawLayer: null, Draw: null, map: null, - L: window.L + L: window.L, + active: 0 + } + }, + computed: { + basemapHelper () { + return this.$store.state.map.basemapHelper + } + }, + watch: { + basemapHelper (newVal) { + if (newVal != null) { + this.updateBasemapList() + } } }, methods: { + updateBasemapList () { + this.basemapList = this.basemapHelper.getBasemapList() + }, + changeBasemap (itm) { + const code = itm.code + this.basemapList.forEach((item) => { + if (item.code === code) { + console.log(this.currentBaseMapCode) + if (this.currentBaseMapCode == null || this.currentBaseMapCode !== code) { + this.currentBaseMapCode = code + this.basemapHelper.showBasemap(item.code, item.conf.annotationCheck, true) + } else { + this.basemapHelper.showBasemap(item.code, item.conf.annotationCheck, false) + } + + this.basemapHelper.getBasemapList().forEach((item) => { + item.layer.bringToBack() + }) + } + }) + }, changeChoose (index) { this.active = index }, - changeSelect () { - this.selectGroup = !this.selectGroup - }, choiceItem (itemT) { + console.log(itemT.label) switch (itemT.label) { case '鐐规爣缁�': - var myIcon = this.L.icon({ - iconUrl: iconRefinery, - iconSize: [26, 32], - iconAnchor: [13, 16], - popupAnchor: [26, -32] - }) + // MakeTation.StartPointAnnotation(this.map, this.L) this.drawLayer = this.map.editTools.startMarker() - this.drawLayer.setIcon(myIcon) + this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) break case '绾挎爣缁�': this.drawLayer = this.map.editTools.startPolyline() + this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) break case '澶氳竟褰�': this.drawLayer = this.map.editTools.startPolygon() + this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) break case '鐭╁舰': this.drawLayer = this.map.editTools.startRectangle() + this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) break case '鍦嗗舰': this.drawLayer = this.map.editTools.startCircle() + this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) break case '璺濈': Measure.startMeasureLen(this.map, this.L) @@ -281,32 +308,83 @@ }).addTo(this.map) printerY.printMap('A4Portrait page', 'MyManualPrint') break - case '鍒犻櫎': - this.map.removeLayer(this.drawLayer) - break } - this.drawLayer.on('dblclick', this.L.DomEvent.stop).on('dblclick', this.drawLayer.toggleEdit) - this.drawLayer.setStyle({ - color: 'red', - fillColor: '#ffffff', - fillOpacity: 0.1, - fill: true - }) + }, + // handleSelect (index) { + // console.log(index) + // switch (index) { + // case '4-1': + // // this.map.toggleFullscreen() + // var printer = this.L.easyPrint({ + // sizeModes: ['Current', 'A4Landscape', 'A4Portrait'], + // filename: 'map_image', + // exportOnly: true, + // hideControlContainer: true + // }).addTo(this.map) + // printer.printMap('CurrentSize', 'MyManualPrint') + // break + // case '4-2': + // var printerX = this.L.easyPrint({ + // sizeModes: ['Current', 'A4Landscape', 'A4Portrait'], + // filename: 'map_image', + // exportOnly: true, + // hideControlContainer: true + // }).addTo(this.map) + // printerX.printMap('A4Landscape page', 'MyManualPrint') + // break + // case '4-3': + // var printerY = this.L.easyPrint({ + // sizeModes: ['Current', 'A4Landscape', 'A4Portrait'], + // filename: 'map_image', + // exportOnly: true, + // hideControlContainer: true + // }).addTo(this.map) + // printerY.printMap('A4Portrait page', 'MyManualPrint') + // break + // case '1-2': + // this.drawLayer = this.map.editTools.startPolyline() + // this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) + // Measure.startMeasureLen(this.map, this.L) + // break + // case '1-3-1': + // // alert('鍦嗗舰') + // this.drawLayer = this.map.editTools.circleMarker() + // this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) + // break + // case '1-3-2': + // this.drawLayer = this.map.editTools.startPolygon() + // this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) + // break + // case '1-1': + // MakeTation.StartPointAnnotation(this.map, this.L) + // break + // case '鍥炬爣鏍囨敞': + // this.drawLayer = this.map.editTools.startIcon() + // this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit) + // break + // case '鏂囧瓧鏍囨敞': + // this.bouncedText = true + // MakeTation.startMakeText(this.map, this.L) + // break + // case '璺濈娴嬮噺': + // Measure.startMeasureLen(this.map, this.L) + // break + // case '闈㈢Н娴嬮噺': + // Measure.startMeasureArea(this.map, this.L) + // break + // } + // }, + // 鏂囧瓧鏍囨敞鎺у埗 + // 宸︿笂鍔熻兘鎺у埗 + changeSelect () { + this.selectGroup = !this.selectGroup + this.isShow = !this.isShow } } } </script> <style lang="less" scoped> -.animationChange-enter-active, .animationChange-leave-active { - transition: all 0.5s; -} - -.animationChange-enter, .animationChange-leave-to { - opacity: 0; - transform: translateX(-100px); -} - .left-top-toolbox-panel { position: absolute; left: 0; @@ -315,7 +393,6 @@ .specific-tools { display: flex; - .el-button { z-index: 999; padding: 0; @@ -324,6 +401,12 @@ height: 45px; background: @background-color-tools; border: none; + .base-map-img{ + position: absolute; + } + .base-map-img:hover{ + cursor:pointer; + } img { width: 22px; @@ -332,11 +415,51 @@ span { display: block; + font-size: 0.012rem; color: @color-tool; } } .specific-tools-group { + z-index: 1; + //.tools-panel-content { + // width:220px!important; + //} + .base-map-inner-panel { + display: flex; + justify-content: center; + align-items: center; + + .base-map-img{ + position: absolute; + } + .base-map-img-Tool:hover{ + cursor:pointer; + } + .base-map-anno-Tool{ + position: absolute;margin-left: 2px;background-color: rgba(0,0,0,.5);color: white; + .el-checkbox__label{ + padding-left: 5px !important; + } + } + .basemap-layer-item { + display: flex; + width: 50px; + height: 50px; + margin: 10px; + border: 2px solid white; + input { + position: relative; + left: 0; + top: -53px; + } + .basemap-layer-item-name { + position: relative; + left: 0; + top: -53px; + } + } + } .tools-panel-choose { border: none; box-shadow: 0 0 0.03rem @color-shadow; @@ -359,4 +482,11 @@ } } } +.isD-enter-active, .isD-leave-active{ + transition: all 0.5s; +} +.isD-enter, .isD-leave-to{ + opacity: 0; + transform: translateX(-100px); +} </style> 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/LayerWasteWater.js b/src/conf/LayerWasteWater.js new file mode 100644 index 0000000..982bd28 --- /dev/null +++ b/src/conf/LayerWasteWater.js @@ -0,0 +1,43 @@ +/** + * 搴熸按鍥惧眰 + * @type {string} + */ +const APP_GIS_HOST_2 = 'http://xearth.cn:6289' +export const LayerWasteWater = { + code: 'pipeline', + name: '搴熸按', + type: 'geojson', + // url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLineTest/wms?version=1.1.1', + // url: APP_GIS_HOST_2 + '/layer/findLayer?layerName={sname}', + url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs?version=1.0.0&TYPENAME={sname}&REQUEST=getfeature&OUTPUTFORMAT=json&maxFeatures=20000', + checked: true, + layers: [ + { + code: 'rainline', + name: '浼佷笟', + sname: '浼佷笟', // 琛ㄥ悕 + checked: true, // 榛樿閫変腑鐘舵�� + filter: {}, + minZoom: 10, // 鍦ㄦ寚瀹氱骇鍒樉绀� + childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + }, + { + code: 'oilline', + name: '鐩戞祴鐐�', + sname: '鐩戞祴鐐�', + checked: true, // 榛樿閫変腑鐘舵�� + filter: {}, + minZoom: 10, + childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + }, + { + code: 'saltline', + name: '鎺掓斁鍙�', + sname: '鎺掓斁鍙�', + checked: true, // 榛樿閫変腑鐘舵�� + filter: {}, + minZoom: 10, + childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + } + ] +} diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js index 8e502d3..2fb7b12 100644 --- a/src/conf/MapConfig.js +++ b/src/conf/MapConfig.js @@ -1,6 +1,7 @@ 锘縤mport * as L from 'leaflet' import TDT from './TDT' import { LayerSewersLine, LayerSewersPoint } from './LayerSewers' +import { LayerWasteWater } from './LayerWasteWater' const curWwwPath = window.document.location.href const pathname = window.document.location.pathname const pos = curWwwPath.indexOf(pathname) @@ -37,7 +38,7 @@ // defaultBasemapCode: 'tianditu_img', // 榛樿鏄剧ず 鍦板浘绫诲瀷 IntranetBaseMaps: TDT.intranet, InternetBaseMaps: TDT.internet, - Layers: { LayerSewersLine: [LayerSewersLine], layerSewersPoint: LayerSewersPoint } // 姹¢洦姘村浘灞傞厤缃� + Layers: { LayerSewersLine: [LayerSewersLine, LayerWasteWater], layerSewersPoint: LayerSewersPoint } // 姹¢洦姘村浘灞傞厤缃� } /** 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