kz-ad.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <view>
  3. <view v-if="kind && config_data && config_data[field] && config_data[field + '_open'] == 1">
  4. <!-- banner广告 -->
  5. <view v-if="kind == 'BANNER'">
  6. <ad :unit-id="config_data[field]"></ad>
  7. </view>
  8. <!-- 视频广告 -->
  9. <view v-else-if="kind == 'VIDEO'">
  10. <ad :unit-id="config_data[field]" ad-type="video" ad-theme="white"></ad>
  11. </view>
  12. <!-- 视频贴片广告 -->
  13. <view v-else-if="kind == 'VIDEO_PATCH'">
  14. <video :unit-id="config_data[field]" style="width: 100%"></video>
  15. </view>
  16. <!-- 其他忽略 -->
  17. <view v-else></view>
  18. </view>
  19. </view>
  20. </template>
  21. <script>
  22. export default {
  23. name: "kz-ad",
  24. props: {
  25. /**
  26. * 广告种类
  27. * BANNER:banner广告
  28. * VIDEO:视频广告
  29. * VIDEO_PATCH:视频贴片广告
  30. */
  31. kind: {
  32. type: String,
  33. default: 'BANNER'
  34. },
  35. // 广告配置集合
  36. config: {
  37. type: Object,
  38. default: () => {}
  39. },
  40. // 配置字段
  41. field: {
  42. type: String,
  43. default: ''
  44. },
  45. },
  46. data() {
  47. return {
  48. config_data: [],
  49. };
  50. },
  51. watch: {
  52. /**
  53. * 监听广告配置
  54. * @param val
  55. */
  56. config(val) {
  57. console.log('kz-ad watch val', val)
  58. this.config_data = val
  59. }
  60. },
  61. methods: {
  62. /**
  63. * 手动刷新广告配置
  64. * @param val
  65. */
  66. refresh(val) {
  67. this.config_data = val
  68. console.log('kz-ad refresh', val, this.config_data)
  69. // this.$forceUpdate()
  70. }
  71. }
  72. }
  73. </script>
  74. <style>
  75. </style>