From 0ace25701a381cffeda6973a9459a5195058b23b Mon Sep 17 00:00:00 2001
From: YANGDL <114714267@qq.com>
Date: 星期一, 01 三月 2021 20:20:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/conf/Constants.js | 26 ++++++++
src/views/MapTemplate.vue | 3
src/components/helpers/ServiceLayerHelper.js | 14 ++++
src/views/popup/Popup.vue | 95 ++++++++++++++++++++++++-------
4 files changed, 112 insertions(+), 26 deletions(-)
diff --git a/src/components/helpers/ServiceLayerHelper.js b/src/components/helpers/ServiceLayerHelper.js
index 96ad647..60325fb 100644
--- a/src/components/helpers/ServiceLayerHelper.js
+++ b/src/components/helpers/ServiceLayerHelper.js
@@ -17,6 +17,7 @@
this.geojsonArray = {} // 鍒濆鐨刧eojson闆�
this.layerConfig = {}
this.regex = /\{(.+?)\}/g // 鍖归厤{}
+ this.popupComp = null
}
getTileLayer (code) {
@@ -26,10 +27,11 @@
/**
* 鏍规嵁閰嶇疆鏂囦欢鍒濆鍖栦笟鍔″簳鍥�
*/
- initServiceLayers (layerConfig) {
+ initServiceLayers (layerConfig, popupComp) {
this.layerConfig = layerConfig
+ this.popupComp = popupComp
this.loadLayers(layerConfig.mapConfig.Layers.LayerSewersLine)
- // this.loadLayers(layerConfig.mapConfig.Layers.layerSewersPoint)
+ this.loadLayers(layerConfig.mapConfig.Layers.layerSewersPoint)
}
/**
@@ -116,6 +118,14 @@
})
}
}).bindPopup(function (layer) {
+ that.popupComp.setDatas(layer.feature)
+ that.popupComp.setShow()
+ return that.popupComp.$el
+ }, {
+ className: 's-map-popup',
+ minWidth: 300,
+ closeButton: false,
+ autoClose: false
}).addTo(featureGroup).bringToFront()
return featureGroup
}
diff --git a/src/conf/Constants.js b/src/conf/Constants.js
index 0c173b0..9e89a92 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -3,3 +3,29 @@
LINE: 'line',
POLYGON: 'polygon'
}
+
+export const props = {
+ pipename: '绠$嚎鍚嶇О',
+ pipecode: '绠$嚎缂栫爜',
+ subchaname: '鏀嚎鍚嶇О',
+ subchacode: '鏀嚎缂栫爜',
+ mediumtype: '杈撻�佷粙璐�',
+ length: '闀垮害(m)',
+ startposname: '璧风偣浣嶇疆鍚嶇О',
+ endposname: '缁堢偣浣嶇疆鍚嶇О',
+ pressureating: '璁捐鍘嬪姏锛圡Pa锛�',
+ designtranyear: '璁捐杈撻噺锛堜竾绔�/骞达級',
+ earningcapacity: '瀹為檯杈撻噺锛堜竾绔�/骞达級',
+ buriedtime: '鍩嬭鏃堕棿',
+ coatingmaterial: '闃茶厫鐘跺喌',
+ inservicetime: '鎶曚骇鏃堕棿',
+ reportname: '濉姤浜哄鍚�',
+ reportphone: '濉姤浜鸿仈绯绘柟寮�',
+ diameter: '绠″緞(mm)',
+ meterial: '鏉愯川',
+ pressuerating: '绠¢亾鍘嬪姏(Mpa)',
+ embeddingmode: '鍩嬭鏂瑰紡',
+ pipetrenchtype: '绠℃矡绫诲瀷',
+ datecollected: '鎺㈡祴鏃堕棿',
+ operationalstatus: '杩愯鐘舵��'
+}
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index 34f010c..ab4cb1e 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -77,7 +77,8 @@
this.basemapHelper.initBasemap(this.config, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘
this.serviceLayerHelper = Sgis.initTileLayersHelper(this.map) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵�
- this.serviceLayerHelper.initServiceLayers(this.config)
+ console.log(this.$refs.popup.$el)
+ this.serviceLayerHelper.initServiceLayers(this.config, this.$refs.popup)
this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
this.vectorLayerHelper.initVectorLayers(this.config)
diff --git a/src/views/popup/Popup.vue b/src/views/popup/Popup.vue
index 83e359b..ac5d088 100644
--- a/src/views/popup/Popup.vue
+++ b/src/views/popup/Popup.vue
@@ -1,40 +1,83 @@
<template>
- <div v-if="isShow" class="s-map-popup-panel" >
-
- <div>
- {{ data }}
- </div>
- <div>
- {{ data }}
- </div>
- <br>
- <br>
- <div>
- {{ data }}
- </div>
- <br>
- <br>
-
- <div>
- {{ data }}
- </div>
- <el-button type="primary" @click="onClick">涓昏鎸夐挳</el-button>
+ <div id="popup" v-if="isShow" class="s-map-popup-panel">
+ <el-tabs v-model="tabsValue" type="card" @edit="handleTabsEdit">
+ <el-tab-pane
+ :key="item.name"
+ v-for="(item) in tabs"
+ :label="item.title"
+ :name="item.name"
+ >
+ <el-row v-for="(v,k) in filter" :key="k">
+ <el-col :span="12">{{k}}</el-col>
+ <el-col :span="12">{{v}}</el-col>
+ </el-row>
+ </el-tab-pane>
+ </el-tabs>
</div>
</template>
<script>
// import '@/assets/css/map/map-popup.scss'
+import { props } from '../../conf/Constants'
+
export default {
name: 'Popup',
data () {
return {
-
+ tabsValue: '1',
+ tabs: [{
+ title: '姹¢洦姘�',
+ name: '1'
+ }],
+ tabIndex: 2,
isShow: false,
- data: ''
+ properties: {},
+ props: props
}
},
-
+ computed: {
+ filter () {
+ var obj = {}
+ for (const key in this.properties) {
+ if (this.props[key]) {
+ obj[this.props[key]] = this.properties[key]
+ }
+ }
+ return obj
+ }
+ },
methods: {
+ handleTabsEdit (targetName, action) {
+ if (action === 'add') {
+ const newTabName = ++this.tabIndex + ''
+ this.editableTabs.push({
+ title: 'New Tab',
+ name: newTabName,
+ content: 'New Tab content'
+ })
+ this.editableTabsValue = newTabName
+ }
+ if (action === 'remove') {
+ const tabs = this.editableTabs
+ let activeName = this.editableTabsValue
+ if (activeName === targetName) {
+ tabs.forEach((tab, index) => {
+ if (tab.name === targetName) {
+ const nextTab = tabs[index + 1] || tabs[index - 1]
+ if (nextTab) {
+ activeName = nextTab.name
+ }
+ }
+ })
+ }
+
+ this.editableTabsValue = activeName
+ this.editableTabs = tabs.filter(tab => tab.name !== targetName)
+ }
+ },
+ setDatas (feature) {
+ this.properties = feature.properties
+ },
setShow () {
// this.style.display='auto'
this.data = 'adsfadfsadfsdafsdfsdfdsafsdafsdafa'
@@ -50,4 +93,10 @@
<style lang="less" >
@import '../../assets/css/map/map-popup.less';
+#popup{
+ .el-tabs__content{
+ max-height: 300px;
+ overflow: auto;
+ }
+}
</style>
--
Gitblit v1.8.0