1
0

goods.wxml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  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="openCartPage" 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' bindtap="hideSwitchAttrPop">
  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 lazy-load="true" 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 lazy-load="true" src="{{item.img_url}}?x-oss-process=image/resize,h_500" 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 class="brand">
  116. <text>发货地:深圳前海保税仓</text>
  117. </view> -->
  118. <view style='margin-top:20px;'>
  119. <text class="desc">快递:{{defaultFreight==0?"免邮":defaultFreight+"元"}}</text>
  120. <text class="desc2">销量:{{goods.sell_volume==null?0:goods.sell_volume}}</text>
  121. </view>
  122. </view>
  123. </view>
  124. <view class="section-nav section-attr" bindtap="switchAttrPop" wx:if="{{stockNum >0}}" bindtouchstart='touchStart2' bindtouchend='touchEnd2'>
  125. <view class="t">{{checkedSpecText=="请选择规格数量"?"请选择规格数量":"已选:【"+checkedSpecText+"】"}}</view>
  126. <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
  127. </view>
  128. <!-- <view class="crash-goods" wx:if="{{crashList.length > 0}}" bindtap="hideSwitchAttrPop">
  129. <view class="h">
  130. <view class="line"></view>
  131. <text class="title">搭配减价</text>
  132. </view>
  133. <view class="b">
  134. <view class="item" wx:for="{{crashList}}" wx:key="{{item.id}}">
  135. <navigator url="/pages/goods/goods?id={{item.goods_crash_id}}&&storeId={{item.storeId}}">
  136. <image class="img" src="{{item.list_pic_url}}" background-size="cover"></image>
  137. <text class="name">{{item.name}}</text>
  138. </navigator>
  139. <view class="goods-do">
  140. <text class="price">¥{{item.market_price}}</text>
  141. <text class="org-price line-through">¥{{item.retail_price}}</text>
  142. <view class="add" data-goods-id="{{item.goods_crash_id}}" data-product-id="{{item.product_crash_id}}" bindtap="addCrashNumber">+</view>
  143. </view>
  144. </view>
  145. </view>
  146. </view> -->
  147. <!--<view class="section-nav section-act">
  148. <view class="t">
  149. <view class="label">1个促销:</view>
  150. <view class="tag">万圣趴</view>
  151. <view class="text">全场满499,额外送糖果</view>
  152. </view>
  153. <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
  154. </view>-->
  155. <view class="comments" bindtap="hideSwitchAttrPop" bindtouchstart='touchStart2' bindtouchend='touchEnd2'>
  156. <view class="h">
  157. <navigator url='../comment/comment?valueId={{goods.id}}&typeId=0'>
  158. <text class="t">评价({{comment.count > 999 ? '999+' : comment.count}})</text>
  159. <text class="i">查看全部</text>
  160. </navigator>
  161. </view>
  162. <view class="b">
  163. <view class="item" wx:if="{{comment.count == 0}}">
  164. <view class="info">
  165. 暂无评论
  166. </view>
  167. </view>
  168. <view class="item" wx:if="{{comment.count > 0}}">
  169. <view class="info">
  170. <view class="user">
  171. <image src="{{comment.data.avatar}}"></image>
  172. <text>{{comment.data.nickname}}</text>
  173. </view>
  174. <view class="time">{{comment.data.add_time}}</view>
  175. </view>
  176. <view class="content">
  177. {{comment.data.content}}
  178. </view>
  179. <view class="imgs" wx:if="{{comment.data.pic_list.length > 0}}">
  180. <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>
  181. </view>
  182. <!-- <view class="spec">白色 2件</view> -->
  183. </view>
  184. </view>
  185. </view>
  186. <!-- <view class="comments" bindtap="hideSwitchAttrPop">
  187. <view class="h">
  188. <text class="t">{{goods.storeName}}</text>
  189. <text class="i">全部商品</text>
  190. </view>
  191. </view> -->
  192. <view class="goods-attr" wx:if="{{attribute.length>0}}" bindtap="hideSwitchAttrPop">
  193. <view class="t">商品参数</view>
  194. <view class="l">
  195. <view class="item" wx:for="{{attribute}}" wx:key="{{item.name}}">
  196. <text class="left">{{item.name}}</text>
  197. <text class="right">{{item.value}}</text>
  198. </view>
  199. </view>
  200. </view>
  201. <view class="detail" bindtap="hideSwitchAttrPop">
  202. <view class="t">商品详情</view>
  203. <view style="margin-left: 20rpx;" x:if="{{detailContent != ''}}">
  204. <rich-text nodes="{{detailContent}}"></rich-text>
  205. </view>
  206. <!-- <import src="../../lib/wxParse/wxParse.wxml"/>
  207. <template is="wxParse" data="{{wxParseData:goodsDetail.nodes}}" /></view> -->
  208. </view>
  209. <view class="common-problem" bindtap="hideSwitchAttrPop">
  210. <view class="h">
  211. <view class="line"></view>
  212. <text class="title">常见问题</text>
  213. </view>
  214. <view class="b">
  215. <view class="item" wx:for="{{issueList}}" wx:key="{{item.id}}">
  216. <view class="question-box">
  217. <text class="spot"></text>
  218. <text class="question">{{item.question}}</text>
  219. </view>
  220. <view class="answer">
  221. {{item.answer}}
  222. </view>
  223. </view>
  224. </view>
  225. </view>
  226. <view class="related-goods" wx:if="{{relatedGoods.length > 0}}">
  227. <view class="h">
  228. <view class="line"></view>
  229. <text class="title">大家都在看</text>
  230. </view>
  231. <view class="b">
  232. <view class="item" wx:for="{{relatedGoods}}" wx:key="{{item.id}}">
  233. <navigator url="/pages/goods/goods?id={{item.id}}&&storeId={{item.storeId}}">
  234. <image class="img" src="{{item.list_pic_url}}"></image>
  235. <text class="name">{{item.name}}</text>
  236. <view class="price">¥{{item.retail_price}}
  237. <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>
  238. </view>
  239. </navigator>
  240. </view>
  241. </view>
  242. </view>
  243. </view>
  244. <view wx:if="{{openAttr}}" class="attr-pop">
  245. <view class="attr-close" bindtap="switchAttrPop">X</view>
  246. <view class="img-info">
  247. <view><image class="img" src="{{goods.list_pic_url}}"></image></view>
  248. <view class="info">
  249. <view class="c">
  250. <view class="p">价格:¥{{goods.retail_price}}</view>
  251. <view class="a" wx:if="{{productList.length>0}}">已选择:{{checkedSpecText}}</view>
  252. <view class="a">库存{{stockNum}}件</view>
  253. </view>
  254. </view>
  255. </view>
  256. <view class="spec-con">
  257. <view class="spec-item" wx:for="{{specificationList}}" wx:key="{{item.specification_id}}">
  258. <view class="name">{{item.name}}</view>
  259. <view class="values">
  260. <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>
  261. </view>
  262. </view>
  263. <view class="number-item">
  264. <view class="name">数量</view>
  265. <view class="selnum">
  266. <view class="cut" bindtap="cutNumber">-</view>
  267. <input value="{{number}}" class="number" disabled="true" type="number" />
  268. <view class="{{number+cartNumber>= stockNum? 'addEnabel':'add'}}" bindtap="{{number+cartNumber>= stockNum ? '':'addNumber'}}">+</view>
  269. </view>
  270. </view>
  271. </view>
  272. </view>
  273. </scroll-view>
  274. <view class='shelves-view' wx:if="{{stockNum ==0 || goods.is_on_sale == 0}}">
  275. <view class="shelves">
  276. <text class='shelves-text'>已下架</text>
  277. </view>
  278. </view>
  279. <view class="bottom-btn">
  280. <view class="l l-home" bindtap="switchNav">
  281. <image class="icon" src="/static/images/nav-1.png"></image>
  282. </view>
  283. <view class="l l-collect {{ openAttr ? 'back' : ''}}" bindtap="closeAttrOrCollect">
  284. <image class="icon" src="{{ collectBackImage }}"></image>
  285. </view>
  286. <view class="l l-cart">
  287. <view class="box">
  288. <text class="cart-count">{{cartGoodsCount}}</text>
  289. <image bindtap="openCartPage" class="icon" src="/static/images/ic_menu_shoping_nor.png"></image>
  290. </view>
  291. </view>
  292. <!-- <view class="c">立即购买</view> -->
  293. <view class='{{stockNum ==0 || goods.is_on_sale == 0?"r-disable":"r"}}' bindtap='{{stockNum ==0 || goods.is_on_sale == 0?"":"addToCart"}}'>加入购物车</view>
  294. </view>