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>
 |