topic.vue 1.65 KB
Newer Older
wanli's avatar
wanli committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
<template>
  <div class="app-container">
    <h3>热门专题</h3>
    <ul>
      <li v-for="(item, index) in topicList" :key="index">
        <img :src="item.icon" />
        <p>{{ item.intro }}</p>
      </li>
    </ul>
  </div>
</template>
<script>
import { getTopicList } from "@/api/app-store";
export default {
  name: "AppTopic",
  data() {
    return {
      topicList: [],
      query: {
        method: "internal.getTabDetail",
        serviceType: 20,
        reqPageNum: 1,
        uri: "automore|pcpostercardwithtitle|903805|PC1000",
        maxResults: 25,
        zone: "",
        locale: "zh",
      },
    };
  },
  methods: {
    getTopicList() {
      getTopicList(this.query)
        .then((res) => {
          if (res.layoutData) {
            this.topicList = res.layoutData[0].dataList;
          }
        })
        .catch((err) => {
          if (err.layoutData && err.layoutData.length) {
            this.topicList = err.layoutData[0].dataList;
          }
        });
    },
  },
  mounted() {},
  created() {
    this.getTopicList();
  },
};
</script>
<style lang="scss" scoped>
div.app-container {
    margin-bottom: 40px;
  & > h3 {
    height: 33px;
    font-size: 24px;
    color: #000;
    line-height: 33px;
    margin: 40px 0px;
  }
  & > ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-row-gap: 40px;
    grid-column-gap: 20px;
    & > li {
      & > img {
        width: 100%;
        height: auto;
        display: block;
        border-radius: 25px;
      }
      & > p {
        line-height: 22px;
        font-size: 16px;
        color: #191919;
        padding: 0;
        margin: 8px 0 0;
      }
    }
  }
}
</style>