108 lines
2.1 KiB
Vue
108 lines
2.1 KiB
Vue
<template>
|
|
<!-- #ifdef APP-NVUE -->
|
|
<cell>
|
|
<!-- #endif -->
|
|
<view class="uni-list-ad">
|
|
<view v-if="borderShow" :class="{'uni-list--border':border,'uni-list-item--first':isFirstChild}"></view>
|
|
<ad style="width: 200px;height: 300px;border-width: 1px;border-color: red;border-style: solid;" adpid="1111111111"
|
|
unit-id="" appid="" apid="" type="feed" @error="aderror" @close="closeAd"></ad>
|
|
</view>
|
|
<!-- #ifdef APP-NVUE -->
|
|
</cell>
|
|
<!-- #endif -->
|
|
|
|
</template>
|
|
|
|
<script>
|
|
// #ifdef APP-NVUE
|
|
const dom = uni.requireNativePlugin('dom');
|
|
// #endif
|
|
export default {
|
|
name: 'UniListAd',
|
|
props: {
|
|
title: {
|
|
type: String,
|
|
default: '',
|
|
|
|
}
|
|
},
|
|
// inject: ['list'],
|
|
data() {
|
|
return {
|
|
isFirstChild: false,
|
|
border: false,
|
|
borderShow: true,
|
|
}
|
|
},
|
|
|
|
mounted() {
|
|
this.list = this.getForm()
|
|
if (this.list) {
|
|
if (!this.list.firstChildAppend) {
|
|
this.list.firstChildAppend = true
|
|
this.isFirstChild = true
|
|
}
|
|
this.border = this.list.border
|
|
}
|
|
},
|
|
methods: {
|
|
/**
|
|
* 获取父元素实例
|
|
*/
|
|
getForm(name = 'uniList') {
|
|
let parent = this.$parent;
|
|
let parentName = parent.$options.name;
|
|
while (parentName !== name) {
|
|
parent = parent.$parent;
|
|
if (!parent) return false
|
|
parentName = parent.$options.name;
|
|
}
|
|
return parent;
|
|
},
|
|
aderror(e) {
|
|
console.log("aderror: " + JSON.stringify(e.detail));
|
|
},
|
|
closeAd(e) {
|
|
this.borderShow = false
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" >
|
|
.uni-list-ad {
|
|
position: relative;
|
|
border: 1px red solid;
|
|
}
|
|
|
|
.uni-list--border {
|
|
position: relative;
|
|
padding-bottom: 1px;
|
|
/* #ifdef APP-PLUS */
|
|
border-top-color: $uni-border-color;
|
|
border-top-style: solid;
|
|
border-top-width: 0.5px;
|
|
/* #endif */
|
|
margin-left: $uni-spacing-row-lg;
|
|
}
|
|
|
|
/* #ifndef APP-NVUE */
|
|
.uni-list--border:after {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
left: 0;
|
|
height: 1px;
|
|
content: '';
|
|
-webkit-transform: scaleY(.5);
|
|
transform: scaleY(.5);
|
|
background-color: $uni-border-color;
|
|
}
|
|
|
|
.uni-list-item--first:after {
|
|
height: 0px;
|
|
}
|
|
|
|
/* #endif */
|
|
</style>
|