| | |
| | | <template> |
| | | <div id="popup" v-if="isShow" class="s-map-popup-panel"> |
| | | <el-tabs v-model="tabsValue" type="card"> |
| | | <div id="popup" class="s-map-popup-panel" style="min-width: 280px;max-width: 280px;padding: 0 10px"> |
| | | <el-tabs value="0" type="card"> |
| | | <el-tab-pane |
| | | :key="item.name" |
| | | v-for="(item) in tabs" |
| | | v-for="(item,index) in datas" |
| | | :label="item.title" |
| | | :name="item.name" |
| | | :name="index" |
| | | > |
| | | <el-row v-for="(v,k) in filter" :key="k"> |
| | | <el-col :span="10"><B>{{k}}:</B></el-col> |
| | | <el-col :span="14">{{v}}</el-col> |
| | | <el-row v-for="(v,k) in filter(item.content)" :key="k"> |
| | | <el-col :span="12"><B>{{k}}:</B></el-col> |
| | | <el-col :span="12">{{v}}</el-col> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | |
| | | |
| | | export default { |
| | | name: 'Popup', |
| | | props: ['datas'], |
| | | data () { |
| | | return { |
| | | tabsValue: '1', |
| | | tabs: [], |
| | | tabsValue: '', |
| | | tabIndex: 2, |
| | | isShow: false, |
| | | properties: {}, |
| | |
| | | } |
| | | }, |
| | | 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 |
| | | } |
| | | } |
| | | }) |
| | | filter (content) { |
| | | var obj = {} |
| | | for (const key in content) { |
| | | if (this.props[key]) { |
| | | obj[this.props[key]] = content[key] |
| | | } |
| | | |
| | | this.editableTabsValue = activeName |
| | | this.editableTabs = tabs.filter(tab => tab.name !== targetName) |
| | | } |
| | | console.log(obj) |
| | | return obj |
| | | }, |
| | | setDatas (layer) { |
| | | this.tabs = [{ |
| | | title: layer.feature.id, |
| | | name: '1' |
| | | }] |
| | | this.properties = layer.feature.properties |
| | | console.log(layer) |
| | | this.datas = layer |
| | | this.tabsValue = layer[0].name |
| | | }, |
| | | setShow () { |
| | | // this.style.display='auto' |
| | | this.data = 'adsfadfsadfsdafsdfsdfdsafsdafsdafa' |
| | | this.isShow = true |
| | | }, |
| | | onClick () { |
| | | const param = 1111 |
| | | this.$emit('callPopup', param) |
| | | } |
| | | }, |
| | | watch: { |
| | | datas (newVal) { |
| | | console.log(newVal) |
| | | if (newVal != null) { |
| | | this.tabsValue = newVal[0].name |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <style lang="less" > |
| | | @import '../../assets/css/map/map-popup.less'; |
| | | #popup{ |
| | | .el-tabs__content{ |
| | | max-height: 300px; |
| | | overflow: auto; |
| | | .el-tabs__content{ |
| | | max-height: 240px; |
| | | overflow-y: scroll; |
| | | } |
| | | } |
| | | </style> |