skyouc
2024-12-21 c9c263dc43ad90f95f24a036cee9e6b47afb596c
uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue
@@ -1,107 +1,107 @@
<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" scoped>
   .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>
<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" scoped>
   .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>