goods.wxml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  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. <!-- 循环商品图开始 -->
  47. <view wx:for="{{gallery}}" wx:key="index" data-index="{{index}}" class="item" bindtouchstart='touchStart' bindtouchend='touchEnd'>
  48. <view class='rank-num' style="background-color: #c8c8c8">{{index+1}}/{{gallery.length}}</view>
  49. <view class='img-wrapper'>
  50. <!-- 视频播放开始 -->
  51. <view class="video2" data-id="{{item.id}}" bindtap="videoPlay" wx:if="{{item.file_type == 1}}">
  52. <view hidden="{{videoHiddenName}}">
  53. <video id="myVideo" style="width: 750rpx;height: calc(9 * 750rpx / 16);" src="{{item.img_url}}" objectFit="cover" show-center-play-btn enable-progress-gesture controls></video>
  54. </view>
  55. <view style="width: 750rpx;height: calc(9 * 750rpx / 16);" hidden="{{imgHiddenName}}">
  56. <image class="model-img" style="width: 750rpx;height: calc(9 * 750rpx / 16);background-size:650rpx 321rpx;" mode="aspectFill" src="{{gallery[1].img_url}}" background-size="cover"></image>
  57. <view class="model-btn">
  58. <view class="play-icon"></view>
  59. </view>
  60. </view>
  61. </view>
  62. <!-- 视频播放结束 -->
  63. <view wx:else >
  64. <image src="{{item.img_url}}" class="imageClass" mode='aspectFill' catchtap='preview' data-url="{{item.img_url}}"/>
  65. </view>
  66. </view>
  67. </view>
  68. <!-- 循环商品图结束 -->
  69. </view>
  70. </scroll-view>
  71. </view>
  72. </view>
  73. </view>
  74. <!-- <swiper indicator-dots indicator-color="{{indicator}}" current="{{current}}" indicator-active-color="{{activeIndicator}}" class="goodsimgs" duration="300">
  75. <block wx:for="{{gallery}}" wx:key="item.id">
  76. <swiper-item>
  77. <block wx:if="{{item.file_type == 1}}">
  78. <block wx:if="{{isPlay}}" class='video-wrapper'>
  79. <video src="{{item.img_url}}" class='video' id='myVideo' binderror="videoErrorCallback" initial-time='2' show-center-play-btn enable-progress-gesture controls></video>
  80. </block>
  81. <block wx:else class='video-host-wrapper' catchtap='play'>
  82. <image src="{{gallery[1].img_url}}" mode='aspectFill' />
  83. </block>
  84. </block>
  85. <block wx:else>
  86. <image src="{{item.img_url}}" mode='aspectFill' catchtap='preview' data-url="{{item.img_url}}" />
  87. </block>
  88. </swiper-item>
  89. </block>
  90. </swiper> -->
  91. <!-- <swiper class="goodsimgs" indicator-dots="true" autoplay="{{autoplay}}" bindtap="hideSwitchAttrPop">
  92. <swiper-item wx:for="{{gallery}}" wx:key="{{item.id}}">
  93. <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>
  94. <image class="imageClass" wx:if="{{item.file_type==0}}" src="{{item.img_url}}"></image>
  95. </swiper-item>
  96. </swiper> -->
  97. <!-- <view class="service-policy">
  98. <view class="item">30分钟速达</view>
  99. <view class="item">每日优选生鲜</view>
  100. <view class="item">满88元免运费</view>
  101. </view> -->
  102. <view class="goods-info" bindtouchstart='touchStart2' bindtouchend='touchEnd2'>
  103. <view class="c" bindtap="hideSwitchAttrPop">
  104. <view class="goods-do">
  105. <text class="price">{{goods.retail_price?"¥"+goods.retail_price:"¥0"}}</text>
  106. <text class="org-price line-through">{{goods.market_price?"¥"+goods.market_price:""}}</text>
  107. </view>
  108. <text class="name">{{goods.name?goods.name:""}}</text>
  109. <!-- <text class="desc">{{goods.goods_brief?goods.goods_brief:""}}</text> -->
  110. <!-- <view class="brand" wx:if="{{brand.name}}">
  111. <navigator url="../brandDetail/brandDetail?id={{brand.id}}">
  112. <text>{{brand.name}}</text>
  113. </navigator>
  114. </view> -->
  115. <view style='margin-top:20px;'>
  116. <text class="desc">快递:{{defaultFreight==0?"免邮":"元"}}</text>
  117. <text class="desc2">销量:{{goods.sell_volume==null?0:goods.sell_volume}}</text>
  118. </view>
  119. </view>
  120. </view>
  121. <view class="section-nav section-attr" bindtap="switchAttrPop" wx:if="{{stockNum >0}}" bindtouchstart='touchStart2' bindtouchend='touchEnd2'>
  122. <view class="t">{{checkedSpecText=="请选择规格数量"?"请选择规格数量":"已选:【"+checkedSpecText+"】"}}</view>
  123. <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
  124. </view>
  125. <view class="crash-goods" wx:if="{{crashList.length > 0}}" bindtap="hideSwitchAttrPop">
  126. <view class="h">
  127. <view class="line"></view>
  128. <text class="title">搭配减价</text>
  129. </view>
  130. <view class="b">
  131. <view class="item" wx:for="{{crashList}}" wx:key="{{item.id}}">
  132. <navigator url="/pages/goods/goods?id={{item.goods_crash_id}}">
  133. <image class="img" src="{{item.list_pic_url}}" background-size="cover"></image>
  134. <text class="name">{{item.name}}</text>
  135. </navigator>
  136. <view class="goods-do">
  137. <text class="price">¥{{item.market_price}}</text>
  138. <text class="org-price line-through">¥{{item.retail_price}}</text>
  139. <view class="add" data-goods-id="{{item.goods_crash_id}}" data-product-id="{{item.product_crash_id}}" bindtap="addCrashNumber">+</view>
  140. </view>
  141. </view>
  142. </view>
  143. </view>
  144. <!--<view class="section-nav section-act">
  145. <view class="t">
  146. <view class="label">1个促销:</view>
  147. <view class="tag">万圣趴</view>
  148. <view class="text">全场满499,额外送糖果</view>
  149. </view>
  150. <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
  151. </view>-->
  152. <view class="comments" bindtap="hideSwitchAttrPop" bindtouchstart='touchStart2' bindtouchend='touchEnd2'>
  153. <view class="h">
  154. <navigator url='../comment/comment?valueId={{goods.id}}&typeId=0'>
  155. <text class="t">评价({{comment.count > 999 ? '999+' : comment.count}})</text>
  156. <text class="i">查看全部</text>
  157. </navigator>
  158. </view>
  159. <view class="b">
  160. <view class="item" wx:if="{{comment.count == 0}}">
  161. <view class="info">
  162. 暂无评论
  163. </view>
  164. </view>
  165. <view class="item" wx:if="{{comment.count > 0}}">
  166. <view class="info">
  167. <view class="user">
  168. <image src="{{comment.data.avatar}}"></image>
  169. <text>{{comment.data.nickname}}</text>
  170. </view>
  171. <view class="time">{{comment.data.add_time}}</view>
  172. </view>
  173. <view class="content">
  174. {{comment.data.content}}
  175. </view>
  176. <view class="imgs" wx:if="{{comment.data.pic_list.length > 0}}">
  177. <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>
  178. </view>
  179. <!-- <view class="spec">白色 2件</view> -->
  180. </view>
  181. </view>
  182. </view>
  183. <!-- <view class="comments" bindtap="hideSwitchAttrPop">
  184. <view class="h">
  185. <text class="t">{{goods.storeName}}</text>
  186. <text class="i">全部商品</text>
  187. </view>
  188. </view> -->
  189. <view class="goods-attr" wx:if="{{attribute.length>0}}" bindtap="hideSwitchAttrPop">
  190. <view class="t">商品参数</view>
  191. <view class="l">
  192. <view class="item" wx:for="{{attribute}}" wx:key="{{item.name}}">
  193. <text class="left">{{item.name}}</text>
  194. <text class="right">{{item.value}}</text>
  195. </view>
  196. </view>
  197. </view>
  198. <view class="detail" bindtap="hideSwitchAttrPop">
  199. <view class="t">商品详情</view>
  200. <import src="../../lib/wxParse/wxParse.wxml" />
  201. <template is="wxParse" data="{{wxParseData:goodsDetail.nodes}}" />
  202. </view>
  203. <view class="common-problem" bindtap="hideSwitchAttrPop">
  204. <view class="h">
  205. <view class="line"></view>
  206. <text class="title">常见问题</text>
  207. </view>
  208. <view class="b">
  209. <view class="item" wx:for="{{issueList}}" wx:key="{{item.id}}">
  210. <view class="question-box">
  211. <text class="spot"></text>
  212. <text class="question">{{item.question}}</text>
  213. </view>
  214. <view class="answer">
  215. {{item.answer}}
  216. </view>
  217. </view>
  218. </view>
  219. </view>
  220. <view class="related-goods" wx:if="{{relatedGoods.length > 0}}">
  221. <view class="h">
  222. <view class="line"></view>
  223. <text class="title">大家都在看</text>
  224. </view>
  225. <view class="b">
  226. <view class="item" wx:for="{{relatedGoods}}" wx:key="{{item.id}}">
  227. <navigator url="/pages/goods/goods?id={{item.id}}">
  228. <image class="img" src="{{item.list_pic_url}}"></image>
  229. <text class="name">{{item.name}}</text>
  230. <view class="price">¥{{item.retail_price}}
  231. <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>
  232. </view>
  233. </navigator>
  234. </view>
  235. </view>
  236. </view>
  237. </view>
  238. <view wx:if="{{openAttr}}" class="attr-pop">
  239. <view class="attr-close" bindtap="switchAttrPop">X</view>
  240. <view class="img-info">
  241. <image class="img" src="{{goods.list_pic_url}}"></image>
  242. <view class="info">
  243. <view class="c">
  244. <view class="p">价格:¥{{goods.retail_price}}</view>
  245. <view class="a" wx:if="{{productList.length>0}}">已选择:{{checkedSpecText}}</view>
  246. <view class="a">库存{{stockNum}}件</view>
  247. </view>
  248. </view>
  249. </view>
  250. <view class="spec-con">
  251. <view class="spec-item" wx:for="{{specificationList}}" wx:key="{{item.specification_id}}">
  252. <view class="name">{{item.name}}</view>
  253. <view class="values">
  254. <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>
  255. </view>
  256. </view>
  257. <view class="number-item">
  258. <view class="name">数量</view>
  259. <view class="selnum">
  260. <view class="cut" bindtap="cutNumber">-</view>
  261. <input value="{{number}}" class="number" disabled="true" type="number" />
  262. <view class="{{number+cartNumber>= stockNum? 'addEnabel':'add'}}" bindtap="{{number+cartNumber>= stockNum ? '':'addNumber'}}">+</view>
  263. </view>
  264. </view>
  265. </view>
  266. </view>
  267. </scroll-view>
  268. <view class='shelves-view' wx:if="{{stockNum ==0}}">
  269. <view class="shelves">
  270. <text class='shelves-text'>已下架</text>
  271. </view>
  272. </view>
  273. <view class="bottom-btn">
  274. <view class="l l-home" bindtap="switchNav">
  275. <image class="icon" src="/static/images/nav-1.png"></image>
  276. </view>
  277. <view class="l l-collect {{ openAttr ? 'back' : ''}}" bindtap="closeAttrOrCollect">
  278. <image class="icon" src="{{ collectBackImage }}"></image>
  279. </view>
  280. <view class="l l-cart">
  281. <view class="box">
  282. <text class="cart-count">{{cartGoodsCount}}</text>
  283. <image bindtap="openCartPage" class="icon" src="/static/images/ic_menu_shoping_nor.png"></image>
  284. </view>
  285. </view>
  286. <!-- <view class="c">立即购买</view> -->
  287. <view class='{{stockNum ==0?"r-disable":"r"}}' bindtap='{{stockNum ==0?"":"addToCart"}}'>加入购物车</view>
  288. </view>