detail.html 19 KB

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