| | |
| | | <template lang="html"> |
| | | <component :options="this.$data" :is="getActiveName"></component> |
| | | <template> |
| | | <div class="public-bounced map-background" v-drag :style="style"> |
| | | <div class="public-bounced-title panel-title" ref="publicBounced"> |
| | | <span>{{ title }}</span> |
| | | <i class="el-icon-close" style="font-size: 16px;" @click="close"></i> |
| | | </div> |
| | | <div class="public-bounced-content" :id="id"></div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import pzpage from './page.vue' |
| | | import pziframe from './iframe.vue' |
| | | import helper from './helper/helper.js' |
| | | import '../../../utils/dragBoxes' |
| | | |
| | | export default { |
| | | data () { |
| | | return { |
| | | id: '', |
| | | type: 0, // 0(alert默认)1(页面层)2(iframe层)3(loading)4(tips层),5(msg),6(prompt) |
| | | title: '信息', |
| | | content: '', |
| | | area: 'auto', |
| | | offset: 'auto', |
| | | icon: -1, |
| | | btn: '确定', |
| | | time: 0, |
| | | shade: true, |
| | | yes: '', |
| | | cancel: '' |
| | | style: {}, |
| | | id: 'sewer_layeropen_' + new Date().getTime() |
| | | } |
| | | }, |
| | | computed: { |
| | | getActiveName () { |
| | | const comps = [ |
| | | 'pzpage', |
| | | 'pziframe' |
| | | ] |
| | | return comps[this.$data.type] |
| | | props: { |
| | | options: { |
| | | type: Object, |
| | | default: function () { |
| | | return {} |
| | | } |
| | | } |
| | | }, |
| | | mounted () {}, |
| | | methods: {}, |
| | | watch: {}, |
| | | components: { |
| | | pzpage, |
| | | pziframe |
| | | computed: {}, |
| | | mounted () { |
| | | let left = this.left |
| | | let top = this.top |
| | | if (left > 0) { |
| | | left = left + 'px' |
| | | } |
| | | if (top > 0) { |
| | | top = top + 'px' |
| | | } |
| | | this.style = { |
| | | left: left || '25%', |
| | | top: top || '35%' |
| | | } |
| | | }, |
| | | methods: { |
| | | close () { |
| | | this.layer.close(this.id) |
| | | }, |
| | | init () { |
| | | const propsData = helper.deepClone(this.content.data) || {} |
| | | // console.log(propsData) |
| | | const instance = new this.content.comp({ |
| | | // parent: this.content.parent, |
| | | propsData: propsData |
| | | }) |
| | | instance.vm = instance.$mount() |
| | | document.getElementById(this.id).appendChild(instance.vm.$el) |
| | | }, |
| | | max () { |
| | | // 最大化窗口 |
| | | let height = document.documentElement.clientHeight |
| | | if (height % 2 === 1) { |
| | | height += 1 |
| | | } |
| | | this.style = { |
| | | overflow: 'hidden', |
| | | left: '50%', |
| | | width: '100%', |
| | | height: height + 'px', |
| | | minHeight: '42px' |
| | | } |
| | | this.maxMiniState = 2 |
| | | }, |
| | | maxmini () { // 还原 |
| | | document.getElementById(this.options.id).removeAttribute('style') |
| | | this.maxMiniState = 0 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | <style lang="less" scoped> |
| | | .public-bounced { |
| | | z-index: 2000; |
| | | position: absolute; |
| | | |
| | | .public-bounced-title { |
| | | cursor: move; |
| | | //height: 0.1rem; |
| | | //padding: 10px 0; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | span { |
| | | color: #f4f7ff; |
| | | margin: 0 15px; |
| | | font-size: 16px; |
| | | } |
| | | |
| | | i { |
| | | color: #C0C4CC; |
| | | margin: 0 15px; |
| | | font-size: 22px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | i:hover { |
| | | color: #00fff6; |
| | | } |
| | | } |
| | | |
| | | .public-bounced-content { |
| | | //padding: 0.1rem; |
| | | display: flex; |
| | | //align-items: center; |
| | | //justify-content: space-around; |
| | | |
| | | .public-bounced-content-left { |
| | | //width: 4.8rem; |
| | | } |
| | | |
| | | .public-bounced-content-right { |
| | | //width: 3rem; |
| | | margin-left: 0.1rem; |
| | | } |
| | | } |
| | | } |
| | | </style> |