detail.html 18 KB

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