brand_list.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <view class="brand-list">
  3. <view v-if="hasData">
  4. <view class="p-t-30" v-for="(item, index) in brandList" :key="index">
  5. <view class="title muted m-b-10 m-l-30">{{item.letter}}</view>
  6. <view class="list flex flex-wrap bg-white col-top">
  7. <router-link class="item" v-for="(titem, tindex) in item.list" :key="tindex" :to="{path: '/pages/goods_search/goods_search', query: {
  8. id: titem.id,
  9. name: titem.name,
  10. type: 0
  11. }}">
  12. <view class="flex-col col-center m-b-30">
  13. <u-image mode="aspectFit" width="150rpx" height="150rpx" :src="titem.image">
  14. </u-image>
  15. <view class="text-center m-t-10 xs">{{ titem.name }}</view>
  16. </view>
  17. </router-link>
  18. </view>
  19. </view>
  20. </view>
  21. <view class="details-null flex-col col-center" style="padding-top: 200rpx" v-else>
  22. <image class="img-null" src="/static/images/goods_null.png"></image>
  23. <view class="xs muted">暂无品牌~</view>
  24. </view>
  25. </view>
  26. </template>
  27. <script>
  28. import {
  29. getBrandList
  30. } from '@/api/store'
  31. export default {
  32. data() {
  33. return {
  34. brandList: [],
  35. hasData: true
  36. }
  37. },
  38. onLoad() {
  39. this.getBrandListFun()
  40. },
  41. methods: {
  42. async getBrandListFun() {
  43. const {
  44. data,
  45. code
  46. } = await getBrandList()
  47. if (code == 1) {
  48. if(!data.length) this.hasData = false
  49. this.brandList = data
  50. }
  51. }
  52. }
  53. }
  54. </script>
  55. <style lang="scss">
  56. .brand-list {
  57. .list {
  58. margin: 0 20rpx;
  59. padding: 30rpx 20rpx 0;
  60. border-radius: 10rpx;
  61. .item {
  62. width: 25%;
  63. }
  64. }
  65. }
  66. </style>