ServiceListThird.vue 4.97 KB
/*
    柯桥:一行一个,图片在上
 */
<template>
  <div class="tab_content abroad" :class="notab?'notab':''" @scroll="orderScroll" ref="viewBox">
    <div class="padding_box">
      <template v-for="(item,index) in list">
        <div class="cardBox" :key="index" @click="handleUniDetail(item)">
          <div class="cardBox_pic"><img style="width:100%;height:67.5vw" :src="item.coverUrl?item.coverUrl:defaultImg" alt=""></div>
          <div class="cardBox_title">
            <div>{{item.course_name}}</div>
            <!-- <div class="cardBox_title_red">
              <span v-if="item.showPrice > 0">¥{{item.showPrice}}</span>
              <span v-else>免费</span>
            </div> -->
          </div>
          <div class="cardBox_main">
            {{item.course_info}}
          </div>
          <div class="cardBox_bottom">
            <div>
              <div class="tag_box">
                <template v-for="(tag,index2) in item.course_labels">
                  <span class="tag" v-if="tag" :key="index2">{{tag}}</span>
                </template>
              </div>
            </div>
            <div>
              <div class="count">
                <van-icon name="eye-o" /> {{item.read_count}}
              </div>
            </div>
          </div>
        </div>
      </template>
      <van-empty v-if="list.length==0" description="暂无活动" />
      <about-des></about-des>
    </div>
  </div>
</template>
<script>
import AboutDes from './aboutDes.vue'
export default {
  props: {
    list: {
      type: Array,
      default: []
    },
    notab: {
      type: Boolean,
      default: false
    }
  },
  mounted () {
    // window.onscroll = function() {
    //   //为了保证兼容性,这里取两个值,哪个有值取哪一个
    //   //scrollTop就是触发滚轮事件时滚轮的高度
    //   var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
    //   console.log("滚动距离" + scrollTop);
    // }

    // this.$refs.viewBox.addEventListener('scroll', (event) => {
    //   console.log('滚动',event)
    //     console.log(this.$refs.viewBox.scrollTop)
    //       event.returnValue = false;
    // },false)
  },
  data () {
    return {
      active: 0,
      defaultImg: require('@/assets/service/defCoure.jpg'),
    }
  },
  methods: {
    handleUniDetail (item) {
      this.$router.push({ name: 'ServiceAbroadDetail', query: { courseId: item.id } })
    },
    orderScroll () {
      //  console.log(this.$refs.viewBox.scrollTop)
    }
  },
  components:{
    AboutDes
  }
}
</script>
<style lang="scss" scoped>
.tab_content {
  // height: calc(100vh - 140px - 196px);
  box-sizing: border-box;
  overflow: auto;
  &.notab {
    // height: calc(100vh - 196px);
    background-color: #f5f7fa !important;
  }
}
.tab_btn_box {
  .tab_btn {
    width: 178px;
    height: 52px;
    border-radius: 16px;
    border: none;
    background: rgba(255, 255, 255, 0.36);
    color: #666666;
    padding: 0;
    margin-right: 16px;
    &.active {
      background: #ffffff;
      color: #4092ff;
    }
  }
}
.abroad {
  padding: 18px 0;
  padding-bottom: 146px;
  .padding_box {
    padding: 0 5vw;
    // padding-bottom: 126px;
  }
  .cardBox {
    // width: calc(100vw - 56px);
    width: 90vw;
    margin-bottom: 20px;
    background-color: #fff;

    .cardBox_pic {
      // height: 67.5vw;
      height: 45vw;
      width: 90vw;
      flex-shrink: 0;
      border-radius: 20px;
      overflow: hidden;

      img {
        transform: translateY(-20vw);
      }
    }
    .cardBox_title {
      min-height: 10vw;
      width: 100%;
      padding: 0 3vw;
      box-sizing: border-box;
      font-size: 30px;
      font-weight: bold;
      // background-color: cadetblue;
      display: flex;
      justify-content: space-between;
      align-items: center;

      .cardBox_title_red {
        width: 20vw;
        color: red;
        text-align: right;
      }
    }
    .cardBox_main {
      width: 100%;
      padding: 0 3vw;
      box-sizing: border-box;
      font-size: 24px;
      color: #999;
    }
    .cardBox_bottom {
      width: 100%;
      padding: 0 3vw;
      box-sizing: border-box;
      // font-size: 30px;
      display: flex;
      justify-content: space-between;
      align-items: center;

      .tag_box {
        padding-top: 6px;
        .tag {
          display: inline-block;
          margin-bottom: 10px;
          margin-right: 10px;
          color: #ee5959;
          font-size: 20px;
          border-radius: 4px;
          border: 2px solid #ee5959;
          padding: 0px 6px;
        }
      }
      .count {
        font-size: 24px;
        color: #999;
      }
    }
  }
}
</style>
<style lang="scss">
// 长辈版
.elder {
  .abroad {
    .cardBox {
      .cardBox_title {
        font-size: 44px;
      }
      .cardBox_main {
        font-size: 44px;
      }
      .cardBox_bottom {
        .tag_box {
          .tag {
            font-size: 40px;
          }
        }
        .count {
          font-size: 44px;
        }
      }
    }
  }
}
</style>