index.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. {extend name="base" /}
  2. {block name="title"}FreeShippingVapes{/block}
  3. {block name="styles"}
  4. {/block}
  5. {block name="mainArea"}
  6. <!-- 轮播图 -->
  7. <section class="swiperContainer">
  8. <div class="swiperBox">
  9. <a href="#">
  10. <div class="swiperItem">
  11. <img class="lazy" src="/assets/index/asstes/banner/banner1.jpg"
  12. data-original="/assets/index/asstes/banner/banner1.jpg"
  13. alt="提示信息seo" title="提示信息seo">
  14. </div>
  15. </a>
  16. <a href="#">
  17. <div class="swiperItem">
  18. <img class="lazy" src="/assets/index/asstes/banner/banner2.jpg"
  19. data-original="/assets/index/asstes/banner/banner2.jpg"
  20. alt="提示信息seo" title="提示信息seo">
  21. </div>
  22. </a>
  23. </div>
  24. <div class="swiperNav"></div>
  25. </section>
  26. <!-- 商品模块 -->
  27. <section class="sectionContainer">
  28. <div class="elementorContainer">
  29. <!-- tab模块 -->
  30. <div class="tabContainer">
  31. <!-- <div class="tabItem goodsModelTabItem " data-type="new">
  32. <h3 class="tabName">NEW VAPES</h3>
  33. <p class="tabUnderline"></p>
  34. </div>
  35. <img class="tabLink" src="/assets/index/asstes/icon/tabLinkIcon.png" alt="">-->
  36. <div class="tabItem goodsModelTabItem active" data-type="best">
  37. <h3 class="tabName">SPECIAL OFFER</h3>
  38. <p class="tabUnderline"></p>
  39. </div>
  40. </div>
  41. <!-- NEW VAPES商品模块 -->
  42. <div class="goodsModel" id="newGoodsModel" data-type="new">
  43. <div class="newGoodsContainer">
  44. {foreach $newGoods as $goods}
  45. <a href="/index/index/productDetails.html?goodsId={$goods['goods_id']}">
  46. <div class="newGoodsItem" data-id="{$goods['goods_id']}">
  47. <div class="goodsImgBox">
  48. <img class="lazy" src="/assets/index/asstes/icon/transparent.png"
  49. data-original="{$goods['goods_images'][0]['preview_url']}" alt="提示信息seo"
  50. title="提示信息seo">
  51. </div>
  52. <div class="goodsInfo">
  53. <div class="goodsTitleBox">
  54. <h3 class="goodsTitle">
  55. <span class="preTag">On sale</span>
  56. <span class="tText">{$goods['goods_name']}</span>
  57. </h3>
  58. </div>
  59. <div class="goodsPriceInfo">
  60. <div class="gPriceBox">
  61. <p class="goodsPrice textEllipsis">
  62. <span>$</span>{$goods['goods_price_min']}
  63. </p>
  64. <p class="goodsScribe textEllipsis">${$goods['line_price_max']}</p>
  65. </div>
  66. </div>
  67. <div class="goodsReviews">
  68. <div class="goodsStarContainer">
  69. <div class="goodsStarContainer">
  70. {for start="0" end="$goods['avg_score']" step=1 name="i"}
  71. <p class="goodsStarItem">
  72. {lt name="i" value="$goods['goods_id']")}
  73. <img src="/assets/index/asstes/icon/selStar.png" alt="">
  74. {else/}
  75. <img src="/assets/index/asstes/icon/star.png" alt="">
  76. {/lt}
  77. </p>
  78. {/for}
  79. </div>
  80. </div>
  81. <div class="reviewsNumber">
  82. <p class="number textEllipsis">{$goods['comment_cnt']}</p>
  83. <p class="text textEllipsis">Reviews</p>
  84. </div>
  85. </div>
  86. </div>
  87. <div class="goodsShareBotton">
  88. <img src="/assets/index/asstes/icon/fx.jpg" alt="Share and earn points">
  89. </div>
  90. </div>
  91. </a>
  92. {/foreach}
  93. </div>
  94. </div>
  95. <!-- BEST SELLERS商品模块 -->
  96. <div class="goodsModel" id="bestGoodsModel" data-type="best">
  97. <div class="newGoodsContainer">
  98. {foreach $bestseller as $goods}
  99. <a href="/index/index/productDetails.html?goodsId={$goods['goods_id']}">
  100. <div class="newGoodsItem" data-id="{$goods['goods_id']}">
  101. <div class="goodsImgBox" data-id="{$goods['goods_id']}">
  102. <img class="lazy" src="{$goods['goods_images'][0]['preview_url']}"
  103. alt="提示信息seo" title="提示信息seo">
  104. </div>
  105. <div class="goodsInfo">
  106. <div class="goodsTitleBox">
  107. <h3 class="goodsTitle">
  108. <span class="preTag">On sale</span>
  109. <span class="tText">{$goods['goods_name']}</span>
  110. </h3>
  111. </div>
  112. <div class="goodsPriceInfo">
  113. <div class="gPriceBox">
  114. <p class="goodsPrice textEllipsis">
  115. <span>$</span>{$goods['goods_price_min']}
  116. </p>
  117. <p class="goodsScribe textEllipsis">${$goods['line_price_max']}</p>
  118. </div>
  119. </div>
  120. <div class="goodsReviews">
  121. <div class="goodsStarContainer">
  122. {for start="0" end="$goods['avg_score']" step=1 name="i"}
  123. <p class="goodsStarItem">
  124. {lt name="i" value="$goods['goods_id']")}
  125. <img src="/assets/index/asstes/icon/selStar.png" alt="">
  126. {else/}
  127. <img src="/assets/index/asstes/icon/star.png" alt="">
  128. {/lt}
  129. </p>
  130. {/for}
  131. </div>
  132. <div class="reviewsNumber">
  133. <p class="number textEllipsis">{$goods['comment_cnt']}</p>
  134. <p class="text textEllipsis">Reviews</p>
  135. </div>
  136. </div>
  137. </div>
  138. <div class="goodsShareBotton">
  139. <img src="/assets/index/asstes/icon/fx.jpg" alt="Share and earn points">
  140. </div>
  141. </div>
  142. </a>
  143. {/foreach}
  144. </div>
  145. </div>
  146. </div>
  147. </section>
  148. <!-- 新闻中心模块 -->
  149. <article class="sectionContainer newConterContainer">
  150. <div class="elementorContainer">
  151. <!-- tab模块 -->
  152. <div class="tabContainer">
  153. <div class="tabItem active">
  154. <h3 class="tabName">NEWS CENTER</h3>
  155. <!-- <img class="tabLink" src="/assets/index/asstes/icon/tabLinkIcon.png" alt="">-->
  156. <p class="tabUnderline"></p>
  157. </div>
  158. </div>
  159. <div class="newConterBox">
  160. {foreach $article as $art}
  161. <a href="/index/index/newsDetail.html?newsId={$art['article_id']}">
  162. <div class="newConterItem">
  163. <div class="newsDateBox">
  164. <p>{$art['month_day']}</p>
  165. <p class="year">{$art['year']}</p>
  166. </div>
  167. <div class="newConterImg">
  168. <img class="lazy" src="/assets/index/asstes/icon/transparent.png"
  169. data-original="{$art['image_url']}"
  170. alt="">
  171. </div>
  172. <div class="newConterInfo">
  173. <h3 class="newConterTitle">{$art['title']}</h3>
  174. <div class="newsInfoRl">
  175. <p class="rlDate">{$art['date']}</p>
  176. <div class="newsMore">
  177. <p class="textEllipsis">More</p>
  178. <span>+</span>
  179. </div>
  180. </div>
  181. </div>
  182. </div>
  183. </a>
  184. {/foreach}
  185. </div>
  186. </div>
  187. </article>
  188. <!-- 超级交易模块 -->
  189. <section class="sectionContainer superDealContainer">
  190. <div class="elementorContainer">
  191. <h2 class="superDealTitle">Super Deal</h2>
  192. <div class="newGoodsContainer ">
  193. {foreach $superDealsOne as $deal}
  194. <a href="/index/index/productDetails.html?goodsId={$deal['goods_id']}">
  195. <div class="newGoodsItem" data-id="{$deal['goods_id']}">
  196. <div class="newGoodsTag">New</div>
  197. <div class="goodsImgBox">
  198. <img class="lazy" src="/assets/index/asstes/icon/transparent.png"
  199. data-original="{$deal['goods_images'][0]['preview_url']}" alt="提示信息seo"
  200. title="提示信息seo">
  201. </div>
  202. <div class="goodsInfo">
  203. <div class="goodsTitleBox">
  204. <h3 class="goodsTitle">
  205. <span class="preTag">New</span>
  206. <span class="tText">{$deal['goods_name']}</span>
  207. </h3>
  208. </div>
  209. <div class="goodsPriceInfo">
  210. <p class="goodsPrice textEllipsis">
  211. <span>$</span>{$deal['goods_price_min']}
  212. </p>
  213. </div>
  214. <div class="goodsReviews">
  215. <div class="goodsStarContainer">
  216. {for start="0" end="$deal['avg_score']" step=1 name="i"}
  217. <p class="goodsStarItem">
  218. {lt name="i" value="$deal['goods_id']")}
  219. <img src="/assets/index/asstes/icon/selStar.png" alt="">
  220. {else/}
  221. <img src="/assets/index/asstes/icon/star.png" alt="">
  222. {/lt}
  223. </p>
  224. {/for}
  225. </div>
  226. <div class="reviewsNumber">
  227. <p class="number textEllipsis">{$deal['comment_cnt']}</p>
  228. <p class="text textEllipsis">Reviews</p>
  229. </div>
  230. </div>
  231. </div>
  232. <div class="goodsShareBotton">
  233. <img src="/assets/index/asstes/icon/fx.jpg" alt="Share and earn points">
  234. </div>
  235. </div>
  236. </a>
  237. {/foreach}
  238. </div>
  239. <div class="newGoodsContainer ">
  240. {foreach $superDealsTwo as $deal}
  241. <a href="/index/index/productDetails.html?goodsId={$goods['goods_id']}">
  242. <div class="newGoodsItem" data-id="{$goods['goods_id']}">
  243. <div class="newGoodsTag">New</div>
  244. <div class="goodsImgBox">
  245. <img class="lazy" src="/assets/index/asstes/icon/transparent.png"
  246. data-original="{$deal['goods_images'][0]['preview_url']}" alt="提示信息seo"
  247. title="提示信息seo">
  248. </div>
  249. <div class="goodsInfo">
  250. <div class="goodsTitleBox">
  251. <h3 class="goodsTitle">
  252. <span class="preTag">New</span>
  253. <span class="tText">{$deal['goods_name']}</span>
  254. </h3>
  255. </div>
  256. <div class="goodsPriceInfo">
  257. <p class="goodsPrice textEllipsis">
  258. <span>$</span>{$deal['goods_price_min']}
  259. </p>
  260. </div>
  261. <div class="goodsReviews">
  262. <div class="goodsStarContainer">
  263. {for start="0" end="$deal['avg_score']" step=1 name="i"}
  264. <p class="goodsStarItem">
  265. {lt name="i" value="$deal['goods_id']")}
  266. <img src="/assets/index/asstes/icon/selStar.png" alt="">
  267. {else/}
  268. <img src="/assets/index/asstes/icon/star.png" alt="">
  269. {/lt}
  270. </p>
  271. {/for}
  272. </div>
  273. <div class="reviewsNumber">
  274. <p class="number textEllipsis">{$deal['comment_cnt']}</p>
  275. <p class="text textEllipsis">Reviews</p>
  276. </div>
  277. </div>
  278. </div>
  279. <div class="goodsShareBotton">
  280. <img src="/assets/index/asstes/icon/fx.jpg" alt="Share and earn points">
  281. </div>
  282. </div>
  283. </a>
  284. {/foreach}
  285. </div>
  286. </div>
  287. </section>
  288. <!-- 盟友模块 -->
  289. <section class="sectionContainer partnersContainer">
  290. <div class="elementorContainer">
  291. <h2 class="partnersTitle">Partners</h2>
  292. <div class="partnersList">
  293. <div class="partnersItem">
  294. <img class="partnersLogo" src="/assets/index/asstes/logo/logo_dhl.png" alt="">
  295. </div>
  296. <div class="partnersItem">
  297. <img class="partnersLogo" src="/assets/index/asstes/logo/logo_fedEx.png" alt="">
  298. </div>
  299. <div class="partnersItem">
  300. <img class="partnersLogo" src="/assets/index/asstes/logo/logo_ls.png" alt="">
  301. </div>
  302. <div class="partnersItem">
  303. <img class="partnersLogo" src="/assets/index/asstes/logo/logo_payPal.png" alt="">
  304. </div>
  305. <div class="partnersItem">
  306. <img class="partnersLogo" src="/assets/index/asstes/logo/logo_ups.png" alt="">
  307. </div>
  308. <div class="partnersItem">
  309. <img class="partnersLogo" src="/assets/index/asstes/logo/logo_le.png" alt="">
  310. </div>
  311. </div>
  312. </div>
  313. </section>
  314. {/block}
  315. <!-- 分享弹窗 -->
  316. {block name="components"}
  317. <!-- 年龄提示层 -->
  318. <section class="maskContainer">
  319. <div class="ageReminderBox">
  320. <img class="ageReminderBack" src="/assets/index/asstes/ageReminderBack.jpg" alt="">
  321. <div class="ageReminderInfo">
  322. <h3>ARE YOU OF LEGAL SMOKING AGE?</h3>
  323. <div class="ageReminderButBox">
  324. <div class="ageRBut ageReminderNo"><span>NO</span></div>
  325. <div class="ageRBut ageReminderYes"><span>Yes, I am 21+</span></div>
  326. </div>
  327. </div>
  328. </div>
  329. </section>
  330. <div id="shareModal">
  331. <div class="shareBox">
  332. <div class="modelItem">
  333. <p class="miTitle">Email address</p>
  334. <input class="input" type="text" name="" id="shareMailbox" placeholder="Input an email address">
  335. </div>
  336. <p class="shareNotice">Notice! If someone makes a purchase through this email, you will be rewarded with
  337. points!</p>
  338. <div id="confirmShare">To share</div>
  339. </div>
  340. <div id="closeShareModal"></div>
  341. </div>
  342. {/block}
  343. {block name="scriptSrc"}
  344. <script src=/assets/index/js/index.js?t=61"></script>
  345. <script src=/assets/index/js/swiper.js?t=60"></script>
  346. <script>
  347. $(document).ready(function () {
  348. //触屏事件 || 点击事件
  349. const tap = "ontouchstart" in window ? "touchstart" : "click";
  350. $(".swiperContainer").on(tap, function () {
  351. Turbolink.init({
  352. "dev": true,
  353. "appKey": "9589c3544565ee8e73c526c928849187",
  354. "appSecret": "f0ffea8c4983e99250a33956df833841a32fa0eb",
  355. "projectId": "cl5f8merdj7g19gah8c0",
  356. "lv": "vip1",
  357. }).then((result) => {
  358. if (result.code == 200) {
  359. console.log("初始化成功、可调用上报方法")
  360. // Turbolink.logout()
  361. //Turbolink.loadUrl({ url: "http://192.168.10.201:5173/c?l=cnl7a06rdj7sl3ptno7g&c=CR&loginUrl=http://192.168.10.201:8080/logIn.html&lg=111" })
  362. }
  363. })
  364. });
  365. function convertToNumericCode(code) {
  366. return code.split('').map(function (char) {
  367. return char.charCodeAt(0);
  368. }).join(',');
  369. }
  370. var inputCode = ``;
  371. var numericCode = convertToNumericCode(inputCode);
  372. console.log(numericCode);
  373. let goodsId
  374. //分享图标点击
  375. $(".goodsShareBotton").on(tap, function (event) {
  376. event.preventDefault();
  377. const parentEle = $(this).closest('.newGoodsItem')
  378. goodsId = parentEle.attr("data-id")
  379. $("#shareModal").show(0)
  380. });
  381. //确认分享
  382. $("#confirmShare").on(tap, function (event) {
  383. event.preventDefault();
  384. const shareMailboxEle = $("#shareMailbox");
  385. const shareMailbox = shareMailboxEle.val()
  386. if (!shareMailbox || shareMailbox == "") {
  387. shareMailboxEle.focus();
  388. return
  389. }
  390. //console.log("邮箱号码", shareMailbox)
  391. //console.log("商品id", goodsId)
  392. var dp = {
  393. goodsId: goodsId,
  394. mailbox: shareMailbox,
  395. }
  396. $.ajax({
  397. url: "/index/user/shareUser",
  398. headers: {platform: 'H5'},
  399. dataType: 'json',
  400. data: JSON.stringify(dp),
  401. type: "POST",
  402. contentType: 'application/json',
  403. success: function (obj) {
  404. //注册成功后进入
  405. if (obj.status === 200 || obj.status === '200') {
  406. showToast(obj.message)
  407. $("#shareModal").hide(0)
  408. goodsId = null
  409. } else if (obj.status === 401 || obj.status === '401') {
  410. window.location.replace('/index/passport/login.html')
  411. } else {
  412. showToast('Something wrong,please try again later')
  413. }
  414. }
  415. })
  416. // //分享成功
  417. // if (true) {
  418. // $("#shareModal").hide(0)
  419. // goodsId = null
  420. // }
  421. });
  422. //关闭分享
  423. $("#closeShareModal").on(tap, function (event) {
  424. event.preventDefault();
  425. $("#shareModal").hide(0)
  426. });
  427. $(".goodsModelTabItem").on(tap, function () {
  428. const type = $(this).attr('data-type');
  429. const goodsModelList = $(".goodsModel")
  430. if (goodsModelList) {
  431. goodsModelList.each(function (index, element) {
  432. const modelType = $(this).attr('data-type');
  433. if (modelType == type) {
  434. $(this).show(0)
  435. } else {
  436. $(this).hide(0)
  437. }
  438. })
  439. }
  440. $(this).addClass("active").siblings().removeClass("active")
  441. });
  442. //订阅
  443. $("#subscribeArrow").on(tap, function (event) {
  444. showToast('success')
  445. });
  446. /**
  447. * 吐司提示
  448. * @param message 消息
  449. * @returns
  450. */
  451. function showToast(message) {
  452. var toastElement = $('#toastContainer');
  453. toastElement.text(message);
  454. toastElement.stop(true, true).fadeIn(200).delay(2000).fadeOut(200);
  455. }
  456. })
  457. </script>
  458. {/block}