detail.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>详情</title>
  6. <link rel="stylesheet" href="/api/static//css/index.css">
  7. <link rel="stylesheet" href="/api/static/css/detail.css">
  8. <script src="/api/static/js/handler.js"></script>
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  10. <meta name="description" content="{{.goods.goodsName}} / {{.sku.skuName}}" />
  11. </head>
  12. <body>
  13. {{template "NavigationBar.tmpl" .}}
  14. <div class="detail">
  15. <!-- 路由地址栏-->
  16. <RouterJumpBar v-model:nowRouterName="detailInfo.sku.skuName"/>
  17. <div class="goods-show">
  18. <div class="goods-show-info">
  19. <div class="goods-show-body">
  20. <div class="goods-show-img">
  21. <!-- <img src="/api/static/goods-img.jpg" alt="" width="180" height="240"/>-->
  22. <img src="{{.sku.skuImage}}" alt="" width="180" height="240"/>
  23. </div>
  24. <div class="goods-show-text">
  25. <div class="goods-show-title">
  26. {{ .goods.goodsName }}
  27. </div>
  28. <div class="goods-show-advantages">
  29. {{range $tag := .tags}}
  30. {{if $tag}}
  31. <div class="goods-show-advantage goods-show-advantage-icon">
  32. <img src="{{$tag.iconUrl}}">
  33. {{else if eq $tag ""}}
  34. <div class="goods-show-advantage goods-show-advantage-icon">
  35. <img src="{{$tag.iconUrl}}">
  36. {{else}}
  37. <div class="goods-show-advantage goods-show-advantage-not-icon">
  38. {{end}}
  39. <div class="goods-show-tag">
  40. <div class="goods-show-name">
  41. {{ $tag.name }}
  42. </div>
  43. <div class="goods-show-desc">
  44. {{ $tag.tag }}
  45. </div>
  46. </div>
  47. </div>
  48. <!-- </template>-->
  49. {{end}}
  50. </div>
  51. <div class="goods-show-des">
  52. </div>
  53. </div>
  54. </div>
  55. <div class="goods-show-count">
  56. <div class="goods-show-price-text">
  57. <span>近30天销量:</span>
  58. <span>{{ .goods.salesVolume }}</span>
  59. </div>
  60. </div>
  61. </div>
  62. </div>
  63. <div class="goods-info">
  64. <div class="info-left">
  65. {{if .areas}}
  66. <div class="info-left-select-btns">
  67. {{$skuAreaId := .sku.commodityAreaId}}
  68. {{range $area := .areas}}
  69. {{if eq $skuAreaId $area.id}}
  70. <div class="info-left-select-btn"
  71. areaId="{{$area.id}}"
  72. onclick="GetAreaById({{$area.id}})"
  73. style="background-color: rgb(199, 199, 199);">
  74. <span>{{ $area.commodityAreaName }}</span>
  75. </div>
  76. {{else}}
  77. <div class="info-left-select-btn"
  78. areaId="{{$area.id}}"
  79. onclick="GetAreaById({{$area.id}})">
  80. <span>{{ $area.commodityAreaName }}</span>
  81. </div>
  82. {{end}}
  83. {{end}}
  84. </div>
  85. {{end}}
  86. <div class="info-left-select-param">
  87. {{$goodsSku := .sku}}
  88. {{range $sku := .skus}}
  89. {{if eq $sku.commodityAreaId $goodsSku.commodityAreaId}}
  90. <div class="info-left-select-param-btn"
  91. onclick="RouterJumpId({{$sku.id}})" areaId="{{$sku.commodityAreaId}}">
  92. <div class="ilspb-selector">
  93. <svg data-v-1f073385="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"
  94. {{if ne $sku.id $goodsSku.id}}
  95. style="display: none"
  96. {{end}}>
  97. <path fill="currentColor"
  98. d="M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z"></path>
  99. </svg>
  100. </div>
  101. <span>{{ $sku.skuName }}</span>
  102. <div class="ilspb-tag">
  103. ¥{{ $sku.price }}
  104. </div>
  105. </div>
  106. {{else}}
  107. <div class="info-left-select-param-btn"
  108. onclick="RouterJumpId({{$sku.id}})"
  109. areaId="{{$sku.commodityAreaId}}" style="display: none">
  110. <div class="ilspb-selector">
  111. <svg data-v-1f073385="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"
  112. {{if ne $sku.id $goodsSku.id}}
  113. style="display: none"
  114. {{end}}
  115. >
  116. <path fill="currentColor"
  117. d="M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z"></path>
  118. </svg>
  119. </div>
  120. <span>{{ $sku.skuName }}</span>
  121. <div class="ilspb-tag">
  122. ¥{{ $sku.price }}
  123. </div>
  124. </div>
  125. {{end}}
  126. {{end}}
  127. </div>
  128. <div class="info-left-des">
  129. <div class="des-tags">
  130. <div class="des-tag" :class="selectArticleType==0?'des-select-tag':''"
  131. @click="selectArticleType=0">
  132. 商品介绍
  133. </div>
  134. <!-- <div class="des-tag" :class="selectArticleType==1?'des-select-tag':''" @click="selectArticleType=1">-->
  135. <!-- 常见问题-->
  136. <!-- </div>-->
  137. </div>
  138. <div class="info-introduction">
  139. {{range $index, $introduction := .introductions}}
  140. {{if eq $index 0}}
  141. {{ $introduction.goodsArticle | safeHTML}}
  142. {{end}}
  143. {{end}}
  144. </div>
  145. <div class="info-question" v-show="selectArticleType==1"></div>
  146. </div>
  147. </div>
  148. <div class="info-right">
  149. <div class="info-right-price-calc">
  150. <div class="info-right-purchase-count">
  151. <!-- 购买数量 -->
  152. <div class="irpc-font">购买数量</div>
  153. <!-- 数量按钮-->
  154. <div class="irpc-count-button">
  155. <div class="irpc-count-button-minus" onclick="purchaseQuantityMinus()">-</div>
  156. <div class="irpc-count-button-input">
  157. <input id="irpc-input" value="1"/>
  158. </div>
  159. <div class="irpc-count-button-add" onclick="purchaseQuantityAdd()">+</div>
  160. </div>
  161. </div>
  162. <div class="info-right-total-purchase-price">
  163. <div class="price">
  164. <div class="price-name" style="font-size: 20px;color: #333333">单价</div>
  165. <div class="price-number">
  166. {{ if lt .sku.historicalPrices .sku.price}}
  167. <div class="price-original">
  168. {{ .sku.historicalPrices }}
  169. </div>
  170. {{end}}
  171. <div class="price-value" style="font-size: 20px">{{ .sku.price }}</div>
  172. </div>
  173. </div>
  174. <div class="price">
  175. <div class="price-name">总价</div>
  176. <div class="price-number">
  177. {{if lt .sku.historicalPrices .sku.price}}
  178. <div class="price-original" id="price-calc-historical-price">
  179. 0
  180. </div>
  181. {{end}}
  182. <div class="price-value" id="price-calc-price">
  183. 0
  184. </div>
  185. </div>
  186. </div>
  187. <div class="purchase-button">
  188. <div class="purchase-button-btn" onclick="orderSubmit()">
  189. 立即购买
  190. </div>
  191. </div>
  192. </div>
  193. <!-- TODO 1-->
  194. <div class="order-buy-curtain" id="order-buy-curtain" style="display: none">
  195. <div class="order-buy-body">
  196. <div class="order-buy-title">订单详情</div>
  197. <div class="order-buy-close" onclick="closeView()">
  198. <span style="font-size: 20px; cursor: pointer;">&times;</span>
  199. </div>
  200. <div class="order-body">
  201. <div class="order-buy-pay">
  202. <div class="order-buy-pay-list">
  203. <div class="order-buy-pay-item" onclick="selectPayMethod(0)" id="pay-wx">
  204. <div class="order-buy-pay-wx">
  205. <div class="order-buy-pay-name">微信</div>
  206. <div class="order-buy-pay-tip">+20%手续费</div>
  207. </div>
  208. </div>
  209. <div class="order-buy-pay-item" onclick="selectPayMethod(1)" id="pay-zfb">
  210. <div class="order-buy-pay-zfb">
  211. <div class="order-buy-pay-name">支付宝</div>
  212. <div class="order-buy-pay-tip">随机立减最高16.8元</div>
  213. </div>
  214. </div>
  215. <div class="order-buy-pay-item" onclick="selectPayMethod(2)" id="pay-test">
  216. <div class="order-buy-pay-py">
  217. <div class="order-buy-pay-name">Test 支付</div>
  218. <div class="order-buy-pay-tip">免费,测试专用</div>
  219. </div>
  220. </div>
  221. </div>
  222. <div class="order-buy-pay-select" id="pay-select"></div>
  223. <div class="order-buy-pay-body">
  224. <div class="pay-body-qrcode">
  225. <div id="test-purchase" style="display: none;" onclick="orderTest()">
  226. 假装购买
  227. </div>
  228. </div>
  229. <div class="pay-body-info">
  230. <div class="pay-body-info-title">应付金额</div>
  231. <div class="pay-body-info-amount" id="order-amount">{{.NowSku.Price}} * {{.Count}}</div>
  232. </div>
  233. <div class="pay-body-tip">
  234. <span>购买即同意</span>
  235. <span class="pay-body-tip-line">《购买协议》</span>
  236. </div>
  237. </div>
  238. </div>
  239. <div class="order-buy-info">
  240. <div class="order-buy-info-body">
  241. <div class="order-buy-info-title">订单信息</div>
  242. <div class="order-buy-info-data">
  243. <div class="order-image">
  244. <img src="{{.sku.skuImage}}" alt="图片"/>
  245. </div>
  246. <div class="order-name">{{.goods.goodsName}}</div>
  247. </div>
  248. <div class="order-data">
  249. <div class="order-data-item">
  250. <div class="order-data-item-name">类型</div>
  251. <div class="order-data-item-value">{{.sku.skuName}}</div>
  252. </div>
  253. <div class="order-data-item">
  254. <div class="order-data-item-name" id="order-count">数量</div>
  255. <div class="order-data-item-value">{{.Count}}!!</div>
  256. </div>
  257. <div class="order-data-item">
  258. <div class="order-data-item-name">单价</div>
  259. <div class="order-data-item-value">
  260. <div class="value-delete-line">{{.sku.historicalPrices}}</div>
  261. <div class="value-now">{{.sku.price}}</div>
  262. </div>
  263. </div>
  264. <div class="order-data-item">
  265. <div class="order-data-item-name">总计</div>
  266. <div class="order-data-item-value">
  267. <div class="value-delete-line" id="order-historical-price">{{.sku.historicalPrices}}</div>
  268. <div class="value-now" id="order-price">{{.sku.price}}</div>
  269. </div>
  270. </div>
  271. </div>
  272. </div>
  273. </div>
  274. </div>
  275. </div>
  276. </div>
  277. </div>
  278. <div class="info-recommend">
  279. <div class="info-recommend-title">
  280. 相关推荐
  281. </div>
  282. <div class="info-recommend-items">
  283. {{range .recommendedGoods}}
  284. <div class="info-recommend-item" onclick="RouterJumpId({{.id}})">
  285. <div class="recommend-item-img">
  286. <img src="{{.skuImage}}" alt="图片"/>
  287. </div>
  288. <div class="recommend-item-name">
  289. {{ .skuName }} {{.id }}
  290. </div>
  291. </div>
  292. {{end}}
  293. </div>
  294. </div>
  295. </div>
  296. </div>
  297. </div>
  298. </div>
  299. </div>
  300. {{template "BottomBar.tmpl" .}}
  301. </body>
  302. <script src="/api/static/js/Detail.js"></script>
  303. <script>
  304. let skuData = JSON.parse("{{toJson .sku}}")
  305. let skuHistoricalPrice = Number("{{.sku.price}}")
  306. let skuPrice = Number("{{.sku.price}}")
  307. init(skuHistoricalPrice, skuPrice)
  308. </script>
  309. </html>