detail.html 18 KB

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