82 lines
1.4 KiB
Vue
82 lines
1.4 KiB
Vue
|
<template>
|
|||
|
<view>
|
|||
|
<view v-if="kind && config_data && config_data[field] && config_data[field + '_open'] == 1">
|
|||
|
<!-- banner广告 -->
|
|||
|
<view v-if="kind == 'BANNER'">
|
|||
|
<ad :unit-id="config_data[field]"></ad>
|
|||
|
</view>
|
|||
|
|
|||
|
<!-- 视频广告 -->
|
|||
|
<view v-else-if="kind == 'VIDEO'">
|
|||
|
<ad :unit-id="config_data[field]" ad-type="video" ad-theme="white"></ad>
|
|||
|
</view>
|
|||
|
|
|||
|
<!-- 视频贴片广告 -->
|
|||
|
<view v-else-if="kind == 'VIDEO_PATCH'">
|
|||
|
<video :unit-id="config_data[field]" style="width: 100%"></video>
|
|||
|
</view>
|
|||
|
|
|||
|
<!-- 其他忽略 -->
|
|||
|
<view v-else></view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
export default {
|
|||
|
name: "kz-ad",
|
|||
|
props: {
|
|||
|
/**
|
|||
|
* 广告种类
|
|||
|
* BANNER:banner广告
|
|||
|
* VIDEO:视频广告
|
|||
|
* VIDEO_PATCH:视频贴片广告
|
|||
|
*/
|
|||
|
kind: {
|
|||
|
type: String,
|
|||
|
default: 'BANNER'
|
|||
|
},
|
|||
|
// 广告配置集合
|
|||
|
config: {
|
|||
|
type: Object,
|
|||
|
default: () => {}
|
|||
|
},
|
|||
|
// 配置字段
|
|||
|
field: {
|
|||
|
type: String,
|
|||
|
default: ''
|
|||
|
},
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
config_data: [],
|
|||
|
};
|
|||
|
},
|
|||
|
watch: {
|
|||
|
/**
|
|||
|
* 监听广告配置
|
|||
|
* @param val
|
|||
|
*/
|
|||
|
config(val) {
|
|||
|
console.log('kz-ad watch val', val)
|
|||
|
this.config_data = val
|
|||
|
}
|
|||
|
},
|
|||
|
methods: {
|
|||
|
/**
|
|||
|
* 手动刷新广告配置
|
|||
|
* @param val
|
|||
|
*/
|
|||
|
refresh(val) {
|
|||
|
this.config_data = val
|
|||
|
console.log('kz-ad refresh', val, this.config_data)
|
|||
|
// this.$forceUpdate()
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style>
|
|||
|
|
|||
|
</style>
|