You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

235 lines
4.6 KiB

3 months ago
  1. <template>
  2. <view class='list acea-row row-between-wrapper' :data-theme="theme">
  3. <view class='item' hover-class='none' @click="goDetail(item)">
  4. <view class='pictrue'>
  5. <easy-loadimage mode="widthFix" :image-src="item.image"></easy-loadimage>
  6. <view v-if="item.activityStyle" :style="{ backgroundImage: `url(${item.activityStyle})` }"
  7. class="border-picture"></view>
  8. </view>
  9. <view class='texts'>
  10. <view class='names line2'>
  11. {{item.storeName}}
  12. </view>
  13. <view class='money mt-20'>
  14. <view class="acea-row row-middle price">
  15. <view>
  16. <span class="num">{{item.price}}</span>
  17. </view>
  18. </view>
  19. <view class="sold mt-18">
  20. <text v-if="Math.floor(item.replyNum)>0" class="regular">{{item.replyNum}}条评论</text>
  21. <text v-if="item.replyNum===0">暂无评论</text>
  22. <text v-if="Number(item.positiveRatio)>0"
  23. class="m-l-8">好评{{$util.$h.Mul(item.positiveRatio, 100)}}%</text>
  24. </view>
  25. <view class="sold">已售 {{ item.sales }} {{item.unitName}}
  26. </view>
  27. </view>
  28. </view>
  29. </view>
  30. </view>
  31. </template>
  32. <script>
  33. // +----------------------------------------------------------------------
  34. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  35. // +----------------------------------------------------------------------
  36. // | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
  37. // +----------------------------------------------------------------------
  38. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  39. // +----------------------------------------------------------------------
  40. // | Author: CRMEB Team <admin@crmeb.com>
  41. // +----------------------------------------------------------------------
  42. import easyLoadimage from '@/components/base/easy-loadimage.vue';
  43. let app = getApp();
  44. export default {
  45. components: {
  46. easyLoadimage,
  47. },
  48. props: {
  49. item: {
  50. type: Object,
  51. require: true
  52. },
  53. type: {
  54. type: Number,
  55. default: 0
  56. },
  57. isStore: {
  58. type: [String, Number],
  59. default: '1'
  60. },
  61. isLogin: {
  62. type: Boolean,
  63. require: false
  64. }
  65. },
  66. data() {
  67. return {
  68. theme: app.globalData.theme,
  69. //普通价格
  70. svipPriceStyle: {
  71. svipBox: {
  72. height: '26rpx',
  73. borderRadius: '60rpx 56rpx 56rpx 20rpx',
  74. },
  75. icon: {
  76. height: '26rpx',
  77. fontSize: '18rpx',
  78. borderRadius: '12rpx 0 12rpx 2rpx'
  79. },
  80. price: {
  81. fontSize: '38rpx'
  82. },
  83. svipPrice: {
  84. fontSize: '22rpx'
  85. }
  86. },
  87. //svip价格
  88. svipIconStyle: {
  89. svipBox: {
  90. height: '26rpx',
  91. borderRadius: '24rpx 40rpx 40rpx 0.4rpx',
  92. },
  93. price: {
  94. fontSize: '38rpx'
  95. },
  96. svipPrice: {
  97. fontSize: '18rpx'
  98. }
  99. }
  100. }
  101. },
  102. methods: {
  103. // 去详情页
  104. goDetail(item) {
  105. uni.navigateTo({
  106. url: `/pages/goods/goods_details/index?id=${item.id}`
  107. })
  108. },
  109. authOpen() {
  110. this.$emit('authOpen');
  111. },
  112. followToggle(item) {
  113. this.$emit('followToggle', item);
  114. }
  115. },
  116. }
  117. </script>
  118. <style lang="scss" scoped>
  119. .tagSolid {
  120. margin-bottom: 4rpx;
  121. }
  122. .merType {
  123. @include main_bg_color(theme);
  124. }
  125. .list {
  126. .item {
  127. width: 100%;
  128. .pictrue {
  129. /deep/image,
  130. /deep/.easy-loadimage,
  131. uni-image {
  132. width: 100%;
  133. height: 100%;
  134. border-radius: 20rpx 20rpx 0 0;
  135. overflow: hidden;
  136. }
  137. }
  138. }
  139. .texts {
  140. padding: 16rpx;
  141. font-size: 30rpx;
  142. color: #222;
  143. .names {
  144. font-size: 28rpx;
  145. font-weight: 400;
  146. color: #333333;
  147. }
  148. .money {
  149. .price {
  150. @include price_color(theme);
  151. }
  152. .num {
  153. font-size: 38rpx;
  154. font-weight: 900;
  155. }
  156. .y-money {
  157. font-size: 26rpx;
  158. color: #888888;
  159. text-decoration: line-through;
  160. margin-left: 14rpx;
  161. }
  162. }
  163. }
  164. }
  165. .company {
  166. display: flex;
  167. align-items: center;
  168. font-size: 26rpx;
  169. .name {
  170. width: 210rpx;
  171. display: inline-block;
  172. color: #666 !important;
  173. height: auto !important;
  174. overflow: hidden;
  175. white-space: nowrap;
  176. text-overflow: ellipsis;
  177. margin-bottom: 0 !important;
  178. margin-right: 10rpx;
  179. }
  180. .flex {
  181. display: flex;
  182. align-items: center;
  183. color: #282828 !important;
  184. .iconfont {
  185. font-size: 16rpx;
  186. margin-top: 4rpx;
  187. }
  188. }
  189. }
  190. .sold {
  191. font-size: 22rpx;
  192. color: #666;
  193. margin-bottom: 4rpx;
  194. }
  195. .m-l-8 {
  196. margin-left: 8rpx;
  197. }
  198. .list .item .pictrue,
  199. .easy-loadimage,
  200. image,
  201. uni-image {
  202. position: relative;
  203. width: 100%;
  204. height: 330rpx;
  205. border-radius: 16rpx 16rpx 0 0;
  206. overflow: hidden;
  207. /deep/.easy-loadimage,
  208. uni-image,
  209. image {
  210. height: 330rpx;
  211. border-radius: 16rpx 16rpx 0 0;
  212. }
  213. margin: 0 !important;
  214. }
  215. </style>