shopPageNew.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <template>
  2. <view class="storeNew">
  3. <view class="storeNew-item" v-for="(value, key, index) in upGoodsMap" :key="key">
  4. <view class="storeNew-item-title">{{ key }}</view>
  5. <view class="index-items">
  6. <view class="index-item" v-for="(item, _index) in value" :key="_index" @click="gotoGoodsDetail(item.goods_id)">
  7. <view class="index-item-img">
  8. <u-image height="160px" width="173px" class="index-item-store-img" :src="item.thumbnail">
  9. <u-loading slot="loading"></u-loading>
  10. </u-image>
  11. <view class="index-item-title">
  12. {{ item.name }}
  13. <view class="index-item-title-desc">{{ item.storeName }}</view>
  14. </view>
  15. <!-- <view class="index-item-price">{{ '¥' + item.price }}{{ item.point ? '+'+item.point + '积分' : '' }}</view> -->
  16. <view class="index-item-price">{{ '¥' + item.price }}</view>
  17. <!-- <view class="index-item-tags">
  18. <view class="index-item-tag"><uni-tag text="限购" type="error" :inverted="true" size="small"></uni-tag></view>
  19. <view class="index-item-tag"><uni-tag text="秒杀" type="error" :inverted="true" size="small"></uni-tag></view>
  20. </view> -->
  21. </view>
  22. </view>
  23. </view>
  24. </view>
  25. </view>
  26. </template>
  27. <script>
  28. import uniTag from '@/components/uni-tag/uni-tag.vue';
  29. import { getGoodsListUplog } from '@/api/goods.js';
  30. export default {
  31. props: {
  32. storeId: {
  33. value: Number
  34. }
  35. },
  36. components: {
  37. uniTag
  38. },
  39. data() {
  40. return {
  41. params: {
  42. pageNumber: 1,
  43. pageSize: 10,
  44. storeId: this.storeId
  45. },
  46. upGoodsMap: {}
  47. };
  48. },
  49. mounted(options) {
  50. this.initUpGoodsInfo();
  51. },
  52. methods: {
  53. gotoGoodsDetail(id) {
  54. uni.navigateTo({
  55. url: `/pages/product/goods?id=${id}`
  56. });
  57. },
  58. initUpGoodsInfo() {
  59. getGoodsListUplog(this.params).then(res => {
  60. this.upGoodsMap = res.data;
  61. })
  62. }
  63. }
  64. };
  65. </script>
  66. <style lang="less" scoped>
  67. .storeNew {
  68. width: 100%;
  69. }
  70. .storeNew-item {
  71. background-color: #fff;
  72. }
  73. .storeNew-item-title {
  74. height: 132rpx;
  75. line-height: 132rpx;
  76. font-size: 32rpx;
  77. text-align: center;
  78. position: relative;
  79. &:before,
  80. &:after {
  81. content: '';
  82. width: 44rpx;
  83. height: 6rpx;
  84. position: absolute;
  85. background: #f0f1fc;
  86. }
  87. &:before {
  88. top: 63rpx;
  89. left: 216rpx;
  90. }
  91. &:after {
  92. border-radius: 22rpx 22rpx 0 0;
  93. top: 63rpx;
  94. right: 216rpx;
  95. }
  96. }
  97. .index-items {
  98. padding-left: 20 rpx;
  99. background-color: #f7f7f7;
  100. display: -webkit-box;
  101. display: -webkit-flex;
  102. display: flex;
  103. align-items: center;
  104. flex-wrap: wrap;
  105. }
  106. .index-item {
  107. width: 346 rpx;
  108. min-height: 2610 rpx;
  109. background-color: #fff;
  110. margin: 0 18 rpx 20 rpx 0;
  111. border-radius: 16 rpx;
  112. box-sizing: border-box;
  113. overflow: hidden;
  114. }
  115. .index-item-store-img{
  116. width: 346 rpx !important;
  117. height: 320 rpx !important;
  118. }
  119. .index-item-img {
  120. image {
  121. width: 346 rpx;
  122. height: 320 rpx;
  123. }
  124. }
  125. .index-item-title {
  126. font-size: 26 rpx;
  127. color: #333333;
  128. padding: 10 rpx 0 0 20 rpx;
  129. box-sizing: border-box;
  130. overflow: hidden;
  131. text-overflow: ellipsis;
  132. white-space: nowrap;
  133. }
  134. .index-item-title-desc {
  135. font-size: 25 rpx;
  136. color: #999999;
  137. margin-top: 10 rpx;
  138. }
  139. .index-item-price {
  140. font-size: 110 rpx;
  141. color: #ff5a10;
  142. padding: 10 rpx 0 0 20 rpx;
  143. }
  144. .index-item-tags {
  145. padding-left: 20 rpx;
  146. padding-top: 10 rpx;
  147. display: -webkit-box;
  148. display: -webkit-flex;
  149. display: flex;
  150. align-items: center;
  151. flex-wrap: wrap;
  152. }
  153. .index-item-tag {
  154. width: 100 rpx;
  155. margin-right: 10 rpx;
  156. }
  157. </style>