Home.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <div>
  3. <!-- 搜索 -->
  4. <van-search placeholder="请输入搜索关键词" />
  5. <!-- 轮播 -->
  6. <van-swipe class="my-swipe" indicator-color="white" style="height: 12rem">
  7. <van-swipe-item v-for="img in images" :key="img.imgUrl">
  8. <van-image :src="img.imgUrl" fit="fill" />
  9. </van-swipe-item>
  10. </van-swipe>
  11. <div style="width: 100%; height: .5rem;"></div>
  12. <!-- 导航 -->
  13. <van-grid :border="false">
  14. <van-grid-item icon="new-arrival-o" text="新品推荐" />
  15. <van-grid-item icon="underway-o" text="限时特惠" />
  16. <van-grid-item icon="hot-o" text="每日疯抢" />
  17. <van-grid-item icon="coupon-o" text="领优惠券" />
  18. </van-grid>
  19. <!-- 通知栏 -->
  20. <van-notice-bar left-icon="volume-o" :scrollable="false">
  21. <van-swipe vertical class="notice-swipe" :autoplay="3000" :show-indicators="false">
  22. <van-swipe-item v-for="item in noticeList.records">{{ item.title }}</van-swipe-item>
  23. </van-swipe>
  24. </van-notice-bar>
  25. <!-- 商品列表 -->
  26. <div class="produc-list">
  27. <div style="width: 100%; height: 2rem;"></div>
  28. <div class="list-title">
  29. <span class="title">每日上新</span><span class="more">查看更多</span>
  30. </div>
  31. <van-grid :border="false" :column-num="3">
  32. <van-grid-item>
  33. <van-image src="https://img01.yzcdn.cn/vant/apple-1.jpg" />
  34. <div>我是商品介绍我是商品介绍</div>
  35. <div>$188.88</div>
  36. </van-grid-item>
  37. </van-grid>
  38. </div>
  39. </div>
  40. </template>
  41. <script>
  42. import { indexImgs, noticeList } from '../api/home'
  43. export default {
  44. data() {
  45. return {
  46. images: [],
  47. noticeList: []
  48. }
  49. },
  50. async created() {
  51. this.images = await indexImgs()
  52. this.noticeList = await noticeList()
  53. }
  54. }
  55. </script>
  56. <style lang="less">
  57. .produc-list {
  58. .list-title {
  59. .title {
  60. display: inline-block;
  61. text-align: left;
  62. width: 50%;
  63. padding-left: 1rem;
  64. }
  65. .more {
  66. display: inline-block;
  67. text-align: right;
  68. width: 40%;
  69. padding-right: 1rem;
  70. }
  71. }
  72. }
  73. .my-swipe .van-swipe-item {
  74. .van-image {
  75. height: 100%;
  76. }
  77. }
  78. .notice-swipe {
  79. height: 40px;
  80. line-height: 40px;
  81. }
  82. </style>