1
0

goods.wxml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. <scroll-view class="container" style="height: {{winHeight}}rpx" scroll-y="true">
  2. <view wx:if="{{showNavList}}" class="modal-wrap"></view>
  3. <view class="fast-nav">
  4. <contact-button wx:if="{{!showNavList}}" class="contact" size="25" type="primary" session-from="weapp">
  5. <text>找客服</text>
  6. </contact-button>
  7. <view wx:if="{{!showNavList}}" class="nav" bindtap="toggleNav">
  8. <text>快捷</text>
  9. <text>导航</text>
  10. </view>
  11. <view class="nav-list" wx:if="{{showNavList}}">
  12. <view class="nav-item">
  13. <text class="nav-text">首页</text>
  14. <view class="nav-cell" bindtap="switchNav" data-name="index">
  15. <image src="../../static/images/nav-1.png"></image>
  16. </view>
  17. </view>
  18. <view class="nav-item">
  19. <text class="nav-text">足迹</text>
  20. <navigator class="nav-cell" url="../ucenter/footprint/footprint">
  21. <image src="../../static/images/nav-2.png"></image>
  22. </navigator>
  23. </view>
  24. <view class="nav-item">
  25. <text class="nav-text">搜索</text>
  26. <navigator class="nav-cell" url="../search/search">
  27. <image src="../../static/images/nav-3.png"></image>
  28. </navigator>
  29. </view>
  30. <view class="nav-item">
  31. <text class="nav-text">购物车</text>
  32. <view class="nav-cell" bindtap="switchNav" data-name="cart">
  33. <image src="../../static/images/nav-4.png"></image>
  34. </view>
  35. </view>
  36. </view>
  37. <view wx:if="{{showNavList}}" class="close" bindtap="toggleNav">X</view>
  38. </view>
  39. <view>
  40. <!-- 滚动的卡片布局 -->
  41. <view class='goodsimgs'>
  42. <view class='content-wrapper'>
  43. <view class='scroll-wrapper'>
  44. <scroll-view class='scroll-view'>
  45. <view class="items-wrapper" style="transform:translate3d({{leftWidth}}px, 0, 0)">
  46. <view wx:for="{{gallery}}" wx:key="index" data-index="{{index}}" class="item" bindtouchstart='touchStart' bindtouchend='touchEnd' >
  47. <view class='rank-num' style="background-color: #c8c8c8">{{index+1}}/{{gallery.length}}</view>
  48. <view class='img-wrapper'>
  49. <video wx:if="{{item.file_type==1}}" id="myVideo" class='myVideo' indicator-color="{{indicator}}" indicator-active-color="{{activeIndicator}}" src="{{item.img_url}}" style="transform:translate3d({{leftWidth}}px, 0, 0)" binderror="videoErrorCallback" objectFit="cover" initial-time='1' show-center-play-btn enable-progress-gesture controls></video>
  50. <image src="{{item.img_url}}" class="imageClass" mode='aspectFill' catchtap='preview' data-url="{{item.img_url}}" wx:else/>
  51. </view>
  52. </view>
  53. </view>
  54. </scroll-view>
  55. </view>
  56. </view>
  57. </view>
  58. <!-- <swiper indicator-dots indicator-color="{{indicator}}" current="{{current}}" indicator-active-color="{{activeIndicator}}" class="goodsimgs" duration="300">
  59. <block wx:for="{{gallery}}" wx:key="item.id">
  60. <swiper-item>
  61. <block wx:if="{{item.file_type == 1}}">
  62. <block wx:if="{{isPlay}}" class='video-wrapper'>
  63. <video src="{{item.img_url}}" class='video' id='myVideo' binderror="videoErrorCallback" initial-time='2' show-center-play-btn enable-progress-gesture controls></video>
  64. </block>
  65. <block wx:else class='video-host-wrapper' catchtap='play'>
  66. <image src="{{gallery[1].img_url}}" mode='aspectFill' />
  67. </block>
  68. </block>
  69. <block wx:else>
  70. <image src="{{item.img_url}}" mode='aspectFill' catchtap='preview' data-url="{{item.img_url}}" />
  71. </block>
  72. </swiper-item>
  73. </block>
  74. </swiper> -->
  75. <!-- <swiper class="goodsimgs" indicator-dots="true" autoplay="{{autoplay}}" bindtap="hideSwitchAttrPop">
  76. <swiper-item wx:for="{{gallery}}" wx:key="{{item.id}}">
  77. <video wx:if="{{item.file_type==1}}" id="myVideo" style='height:400rpx;width:100%;margin-top:140rpx;' src="{{item.img_url}}" binderror="videoErrorCallback" objectFit="cover" initial-time='2' show-center-play-btn enable-progress-gesture controls></video>
  78. <image class="imageClass" wx:if="{{item.file_type==0}}" src="{{item.img_url}}"></image>
  79. </swiper-item>
  80. </swiper> -->
  81. <!-- <view class="service-policy">
  82. <view class="item">30分钟速达</view>
  83. <view class="item">每日优选生鲜</view>
  84. <view class="item">满88元免运费</view>
  85. </view> -->
  86. <view class="goods-info">
  87. <view class="c" bindtap="hideSwitchAttrPop">
  88. <view class="goods-do">
  89. <text class="price">{{goods.retail_price?"¥"+goods.retail_price:"¥0"}}</text>
  90. <text class="org-price line-through">{{goods.market_price?"¥"+goods.market_price:""}}</text>
  91. </view>
  92. <text class="name">{{goods.name?goods.name:""}}</text>
  93. <!-- <text class="desc">{{goods.goods_brief?goods.goods_brief:""}}</text> -->
  94. <!-- <view class="brand" wx:if="{{brand.name}}">
  95. <navigator url="../brandDetail/brandDetail?id={{brand.id}}">
  96. <text>{{brand.name}}</text>
  97. </navigator>
  98. </view> -->
  99. <view style='margin-top:20px;'>
  100. <text class="desc">快递:{{defaultFreight==0?"免邮":"元"}}</text>
  101. <text class="desc2">销量:{{goods.sell_volume==null?0:goods.sell_volume}}</text>
  102. </view>
  103. </view>
  104. </view>
  105. <view class="section-nav section-attr" bindtap="switchAttrPop" wx:if="{{stockNum >0}}">
  106. <view class="t">{{checkedSpecText=="请选择规格数量"?"请选择规格数量":"已选:【"+checkedSpecText+"】"}}</view>
  107. <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
  108. </view>
  109. <view class="crash-goods" wx:if="{{crashList.length > 0}}" bindtap="hideSwitchAttrPop">
  110. <view class="h">
  111. <view class="line"></view>
  112. <text class="title">搭配减价</text>
  113. </view>
  114. <view class="b">
  115. <view class="item" wx:for="{{crashList}}" wx:key="{{item.id}}">
  116. <navigator url="/pages/goods/goods?id={{item.goods_crash_id}}">
  117. <image class="img" src="{{item.list_pic_url}}" background-size="cover"></image>
  118. <text class="name">{{item.name}}</text>
  119. </navigator>
  120. <view class="goods-do">
  121. <text class="price">¥{{item.market_price}}</text>
  122. <text class="org-price line-through">¥{{item.retail_price}}</text>
  123. <view class="add" data-goods-id="{{item.goods_crash_id}}" data-product-id="{{item.product_crash_id}}" bindtap="addCrashNumber">+</view>
  124. </view>
  125. </view>
  126. </view>
  127. </view>
  128. <!--<view class="section-nav section-act">
  129. <view class="t">
  130. <view class="label">1个促销:</view>
  131. <view class="tag">万圣趴</view>
  132. <view class="text">全场满499,额外送糖果</view>
  133. </view>
  134. <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
  135. </view>-->
  136. <view class="comments" bindtap="hideSwitchAttrPop">
  137. <view class="h">
  138. <navigator url='../comment/comment?valueId={{goods.id}}&typeId=0'>
  139. <text class="t">评价({{comment.count > 999 ? '999+' : comment.count}})</text>
  140. <text class="i">查看全部</text>
  141. </navigator>
  142. </view>
  143. <view class="b">
  144. <view class="item" wx:if="{{comment.count == 0}}">
  145. <view class="info">
  146. 暂无评论
  147. </view>
  148. </view>
  149. <view class="item" wx:if="{{comment.count > 0}}">
  150. <view class="info">
  151. <view class="user">
  152. <image src="{{comment.data.avatar}}"></image>
  153. <text>{{comment.data.nickname}}</text>
  154. </view>
  155. <view class="time">{{comment.data.add_time}}</view>
  156. </view>
  157. <view class="content">
  158. {{comment.data.content}}
  159. </view>
  160. <view class="imgs" wx:if="{{comment.data.pic_list.length > 0}}">
  161. <image class="img" data-url="{{item.pic_url}}" wx:for="{{comment.data.pic_list}}" wx:key="{{item.id}}" bindtap="previewPic" src="{{item.pic_url}}"></image>
  162. </view>
  163. <!-- <view class="spec">白色 2件</view> -->
  164. </view>
  165. </view>
  166. </view>
  167. <view class="goods-attr" bindtap="hideSwitchAttrPop">
  168. <view class="t">商品参数</view>
  169. <view class="l">
  170. <view class="item" wx:for="{{attribute}}" wx:key="{{item.name}}">
  171. <text class="left">{{item.name}}</text>
  172. <text class="right">{{item.value}}</text>
  173. </view>
  174. </view>
  175. </view>
  176. <view class="detail" bindtap="hideSwitchAttrPop">
  177. <import src="../../lib/wxParse/wxParse.wxml" />
  178. <template is="wxParse" data="{{wxParseData:goodsDetail.nodes}}" />
  179. </view>
  180. <view class="common-problem" bindtap="hideSwitchAttrPop">
  181. <view class="h">
  182. <view class="line"></view>
  183. <text class="title">常见问题</text>
  184. </view>
  185. <view class="b">
  186. <view class="item" wx:for="{{issueList}}" wx:key="{{item.id}}">
  187. <view class="question-box">
  188. <text class="spot"></text>
  189. <text class="question">{{item.question}}</text>
  190. </view>
  191. <view class="answer">
  192. {{item.answer}}
  193. </view>
  194. </view>
  195. </view>
  196. </view>
  197. <view class="related-goods" wx:if="{{relatedGoods.length > 0}}">
  198. <view class="h">
  199. <view class="line"></view>
  200. <text class="title">大家都在看</text>
  201. </view>
  202. <view class="b">
  203. <view class="item" wx:for="{{relatedGoods}}" wx:key="{{item.id}}">
  204. <navigator url="/pages/goods/goods?id={{item.id}}">
  205. <image class="img" src="{{item.list_pic_url}}"></image>
  206. <text class="name">{{item.name}}</text>
  207. <view class="price">¥{{item.retail_price}}
  208. <image class="cart" data-goods-id="{{item.id}}" data-product-id="{{item.product_id}}" catchtap='addNumber2' src="/static/images/cart.png" background-size="cover"></image>
  209. </view>
  210. </navigator>
  211. </view>
  212. </view>
  213. </view>
  214. </view>
  215. <view wx:if="{{openAttr}}" class="attr-pop">
  216. <view class="attr-close" bindtap="switchAttrPop">X</view>
  217. <view class="img-info">
  218. <image class="img" src="{{goods.list_pic_url}}"></image>
  219. <view class="info">
  220. <view class="c">
  221. <view class="p">价格:¥{{goods.retail_price}}</view>
  222. <view class="a" wx:if="{{productList.length>0}}">已选择:{{checkedSpecText}}</view>
  223. <view class="a">库存{{stockNum}}件</view>
  224. </view>
  225. </view>
  226. </view>
  227. <view class="spec-con">
  228. <view class="spec-item" wx:for="{{specificationList}}" wx:key="{{item.specification_id}}">
  229. <view class="name">{{item.name}}</view>
  230. <view class="values">
  231. <view class="value {{vitem.checked ? 'selected' : ''}}" bindtap="clickSkuValue" wx:for="{{item.valueList}}" wx:for-item="vitem" wx:key="{{vitem.id}}" data-value-id="{{vitem.id}}" data-name-id="{{vitem.specification_id}}">{{vitem.value}}</view>
  232. </view>
  233. </view>
  234. <view class="number-item">
  235. <view class="name">数量</view>
  236. <view class="selnum">
  237. <view class="cut" bindtap="cutNumber">-</view>
  238. <input value="{{number}}" class="number" disabled="true" type="number" />
  239. <view class="{{number+cartNumber>= stockNum? 'addEnabel':'add'}}" bindtap="{{number+cartNumber>= stockNum ? '':'addNumber'}}">+</view>
  240. </view>
  241. </view>
  242. </view>
  243. </view>
  244. </scroll-view>
  245. <view class='shelves-view' wx:if="{{stockNum ==0}}">
  246. <view class="shelves">
  247. <text class='shelves-text'>已下架</text>
  248. </view>
  249. </view>
  250. <view class="bottom-btn">
  251. <view class="l l-home" bindtap="switchNav">
  252. <image class="icon" src="/static/images/nav-1.png"></image>
  253. </view>
  254. <view class="l l-collect {{ openAttr ? 'back' : ''}}" bindtap="closeAttrOrCollect">
  255. <image class="icon" src="{{ collectBackImage }}"></image>
  256. </view>
  257. <view class="l l-cart">
  258. <view class="box">
  259. <text class="cart-count">{{cartGoodsCount}}</text>
  260. <image bindtap="openCartPage" class="icon" src="/static/images/ic_menu_shoping_nor.png"></image>
  261. </view>
  262. </view>
  263. <!-- <view class="c">立即购买</view> -->
  264. <view class='{{stockNum ==0?"r-disable":"r"}}' bindtap='{{stockNum ==0?"":"addToCart"}}'>加入购物车</view>
  265. </view>