pro-details.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
  6. <meta name="apple-mobile-web-app-capable" content="yes">
  7. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  8. <title>产品详情</title>
  9. <link rel="stylesheet" type="text/css" href="css/mui.min.css" />
  10. <link rel="stylesheet" type="text/css" href="css/icons-extra.css" />
  11. <link rel="stylesheet" type="text/css" href="css/iconfont.css" />
  12. <link rel="stylesheet" type="text/css" href="css/main.css" />
  13. <style>
  14. .return {
  15. position: fixed;
  16. right: 10px;
  17. bottom: 140px;
  18. background: rgba(0, 0, 0, .1);
  19. padding: 12px;
  20. border-radius: 50%;
  21. height: 50px;
  22. width: 50px;
  23. text-align: center;
  24. opacity: .9;
  25. color: #333;
  26. display: none;
  27. }
  28. .my-picker {
  29. max-height: none;
  30. background-color: rgba(0, 0, 0, .5);
  31. }
  32. .my-btn-buy-know {
  33. width: 50%;
  34. border-radius: 0;
  35. bottom: 0;
  36. height: 50px;
  37. border: 1px solid #727171;
  38. }
  39. .my-btn-buy-cancel {
  40. width: 50%;
  41. border-radius: 0;
  42. bottom: 0;
  43. height: 50px;
  44. border: 0;
  45. border-top: 1px solid #ccc;
  46. }
  47. </style>
  48. </head>
  49. <body>
  50. <footer class="mui-bar mui-bar-tab">
  51. <ul class="mui-table-view mui-table-view-striped mui-table-view-condensed my-grid-view-no">
  52. <li class="mui-table-view-cell">
  53. <div class="mui-table">
  54. <div class="mui-table-cell mui-col-xs-4 table-middle go-index"><img style="width: 60%;vertical-align: middle;" src="images/logo.png" /></div>
  55. <div class="mui-table-cell mui-col-xs-4 table-middle add-gouwuche" style="background-color: #ccc;color: #fff;font-size: 18px;">加入购物车</div>
  56. <div class="mui-table-cell mui-col-xs-4 table-middle div-btn-buy-know">立即购买</div>
  57. </div>
  58. </li>
  59. </ul>
  60. </footer>
  61. <div class="mui-content">
  62. <div class="banner-box-pro" style="display: none;">
  63. <!--<div id="slider" class="mui-slider">
  64. <div class="mui-slider-group mui-slider-loop">-->
  65. <!-- 额外增加的一个节点(循环轮播:第一个节点是最后一张轮播) -->
  66. <!--<div class="mui-slider-item mui-slider-item-duplicate">
  67. <a href="#">
  68. <img src="images/banner-3.jpg">
  69. </a>
  70. </div>-->
  71. <!-- 第一张 -->
  72. <!--<div class="mui-slider-item">
  73. <a href="#">
  74. <img src="images/banner-1.jpg">
  75. </a>
  76. </div>-->
  77. <!-- 第二张 -->
  78. <!--<div class="mui-slider-item">
  79. <a href="#">
  80. <img src="images/banner-2.jpg">
  81. </a>
  82. </div>-->
  83. <!-- 第三张 -->
  84. <!--<div class="mui-slider-item">
  85. <a href="#">
  86. <img src="images/banner-3.jpg">
  87. </a>
  88. </div>-->
  89. <!-- 额外增加的一个节点(循环轮播:最后一个节点是第一张轮播) -->
  90. <!--<div class="mui-slider-item mui-slider-item-duplicate">
  91. <a href="#">
  92. <img src="images/banner-1.jpg">
  93. </a>
  94. </div>
  95. </div>
  96. <div class="mui-slider-indicator">
  97. <div class="mui-indicator mui-active"></div>
  98. <div class="mui-indicator"></div>
  99. <div class="mui-indicator"></div>
  100. </div>
  101. </div>-->
  102. </div>
  103. <ul class="mui-table-view mui-grid-view my-view-no" style="padding-bottom: 0;">
  104. <!--<li class="mui-table-view-cell mui-media mui-col-xs-12" style="padding-right: 2px;">
  105. <a href="#">
  106. <div class="index-pro-tit">[精选] Aiberle美国智能净饮水一体机</div>
  107. <p class="mui-text-left">4级ro净化、10s加热、3s出水<span style="float: right;color: #ff3b3b;">¥2999.00</span></p>
  108. </a>
  109. </li>
  110. <li>
  111. <div class="index-title">
  112. <p><span class="iconfont icon-liwu"></span>美国aiberle咖啡杯、美国aiberle加湿器</p>
  113. </div>
  114. </li>
  115. <li class="mui-table-view-cell mui-media mui-col-xs-12">
  116. <a href="#"><img class="mui-media-object" src="images/details-1.jpg">
  117. </a>
  118. </li>-->
  119. </ul>
  120. </div>
  121. <div class="fixed-cart">
  122. <span class="iconfont icon-gouwuche"></span>
  123. <span class="mui-badge my-badge-danger">0</span>
  124. </div>
  125. <div class="return">
  126. <span onClick="gotoTop(0.1,10);return false;" class="mui-icon-extra mui-icon-extra-top"></span>
  127. </div>
  128. <!-- 加载ing -->
  129. <div class="loading covers">
  130. <div class="loading-bj"></div>
  131. <p>加载中...</p>
  132. </div>
  133. <!-- 加载ing END -->
  134. <script src="js/mui.min.js"></script>
  135. <script src="js/jquery-2.1.1.min.js"></script>
  136. <script src="js/main.js"></script>
  137. <script src="js/wechat-utils-1.0.js"></script>
  138. <script>
  139. var productId = getParam("productId"),
  140. productName = '',
  141. productRemark = '',
  142. productIntroduceImg = '';
  143. console.log(productId);
  144. mui.ready(function() {
  145. var slider = mui("#slider");
  146. $.ajax(base_path + '/wechat/product/getProductByProductId?dates=' + new Date().getTime(), {
  147. data: {
  148. "productId": productId
  149. },
  150. dataType: 'json',
  151. xhrFields: {
  152. withCredentials: true
  153. },
  154. crossDomain: true,
  155. type: 'post',
  156. timeout: 15000,
  157. success: function(dt) {
  158. //判断一下
  159. if(dt.isRedirect) {
  160. location.href = dt.redirectURL;
  161. } else {
  162. console.log(dt.data)
  163. if(dt.status) {
  164. var bannerstr = "",
  165. dian = "";
  166. console.log(dt.data.product)
  167. var banner_data = dt.data.product.pictureList;
  168. mui(banner_data).each(function(index) {
  169. if(index == 0) {
  170. bannerstr += '<div class="mui-slider-item mui-slider-item-duplicate"><a href="' + banner_data[banner_data.length - 1].pictureUrl + '"><img src="' + (banner_data[banner_data.length - 1].pictureUrl) + '"></a></div><div class="mui-slider-item mui-active"><a href="#"><img src="' + (this.pictureUrl) + '"></a></div>';
  171. dian += '<div class="mui-indicator mui-active"></div>'
  172. } else {
  173. bannerstr += '<div class="mui-slider-item"><a href="#"><img src="' + (this.pictureUrl) + '"></a></div>';
  174. dian += '<div class="mui-indicator"></div>'
  175. }
  176. if(index == (banner_data.length - 1) || (banner_data.length - 1) == 0) {
  177. bannerstr += '<div class="mui-slider-item mui-slider-item-duplicate"><a href="#"><img src="' + (banner_data[0].pictureUrl) + '"></a></div>'
  178. }
  179. });
  180. dc('mui-slider-loop').innerHTML = bannerstr;
  181. dc('my-slider-indicator').innerHTML = dian;
  182. $("<div id='slider' class='mui-slider'><div class='mui-slider-group mui-slider-loop' id='mui-slider-loop'>" + bannerstr + "</div><div id='my-slider-indicator' class='mui-slider-indicator my-slider-indicator'>" + dian + "</div></div>").insertBefore(".banner-box-pro");
  183. //初始化banner自动轮播(interval:0为不自动轮播)单位ms
  184. var banner = mui('#slider');
  185. banner.slider({
  186. interval: 5000
  187. });
  188. var productInfo = dt.data.product;
  189. var table = document.body.querySelector(".my-view-no");
  190. var li = document.createElement('li');
  191. li.className = 'mui-table-view-cell mui-media mui-col-xs-12';
  192. var zen = '';
  193. if(productInfo.productColorList.length > 0) {
  194. $.each(productInfo.productColorList[0].salesUserGiftList, function() {
  195. zen += this.giftName + "、"
  196. });
  197. }
  198. if(zen != '') {
  199. zen = '<div class="details-title"><p><span class="iconfont icon-liwu"></span>' + zen.substring(0, zen.length - 1) + '</p></div>';
  200. }
  201. productName = productInfo.productName;
  202. productRemark = productInfo.productColorDes;
  203. productIntroduceImg = productInfo.productParameterImg;
  204. li.innerHTML = '<a><div class="index-pro-tit">' + productInfo.productName + '</div>' +
  205. '<p class="mui-text-left">' + productInfo.productColorDes + '<span style="float: right;color: #ff3b3b;">¥' + (productInfo.productDiscount / 100).toFixed(2) + '</span></p></a>' +
  206. zen + '</br>' +
  207. productInfo.imagetextContext +
  208. '';
  209. table.appendChild(li);
  210. getCartNumber(); //获取购物车数量
  211. fenxiang();
  212. $(".loading").hide().css("opacity", "0");
  213. } else {
  214. mui.alert("获取数据失败!");
  215. }
  216. }
  217. },
  218. error: function(xhr, type, errorThrown) {
  219. console.log(xhr);
  220. mui.alert("获取数据失败!网络错误");
  221. }
  222. });
  223. });
  224. $(document).on('tap', '.my-btn-buy-cancel', function() {
  225. $(".my-picker").removeClass("active");
  226. setTimeout(function() {
  227. $(".my-picker").remove(); //移除选择颜色列表
  228. }, 500);
  229. });
  230. //callback为用户点击蒙版时自动执行的回调;
  231. // var mask = mui.createMask(function() {
  232. // $(".my-picker").remove();//移除颜色列表
  233. // });
  234. var count = 0; //统计所有产品加减,数量默认0,当count<1的时候设置(结算)按钮失效
  235. //购物车数量加
  236. $(document).on('tap', '.mui-btn-numbox-plus', function() {
  237. ++count; //产品总数量
  238. var th = $(this);
  239. var parameter = {}; //ajax参数json集合
  240. if(typeof(th.attr("productid")) != "undefined") {
  241. parameter["productId"] = th.attr("productid"); //产品id
  242. if(typeof(th.attr("colorid")) != "undefined") {
  243. parameter["productColorId"] = th.attr("colorid"); //颜色id
  244. parameter["cartNum"] = 1; //需要加的产品数量,每次都是1
  245. $.ajax(base_path + '/wechat/cart/addProductToCart?dates=' + new Date().getTime(), {
  246. data: parameter,
  247. dataType: 'json',
  248. xhrFields: {
  249. withCredentials: true
  250. },
  251. crossDomain: true,
  252. type: 'post',
  253. timeout: 15000,
  254. success: function(dt) {
  255. if(dt.isRedirect) {
  256. location.href = dt.redirectURL;
  257. } else {
  258. if(dt.status) {
  259. th.parent().attr("cartid", dt.data);
  260. getCartNumber()
  261. console.log("增加数量成功!");
  262. } else {
  263. mui.alert("增加数量失败!");
  264. }
  265. }
  266. },
  267. error: function(xhr, type, errorThrown) {
  268. console.log(xhr);
  269. mui.alert("增加数量失败!网络错误");
  270. }
  271. });
  272. } else {
  273. mui.alert("没有获取到产品颜色id");
  274. }
  275. } else {
  276. mui.alert("没有获取到产品id");
  277. }
  278. });
  279. //购物车数量减
  280. $(document).on('tap', '.mui-btn-numbox-minus', function() {
  281. --count; //产品总数量
  282. var th = $(this);
  283. var val = mui(th.parent()[0]).numbox().getValue(); //获取当前产品数量
  284. if(val == 0) {
  285. th.parent().removeAttr("cartid");
  286. }
  287. var parameter = {}; //ajax参数json集合
  288. if(typeof(th.attr("colorid")) != "undefined") {
  289. parameter["productColorId"] = th.attr("colorid"); //产品颜色id
  290. parameter["cartNum"] = 1; //需要减的产品数量,每次都是1
  291. $.ajax(base_path + '/wechat/cart/deleteCart?dates=' + new Date().getTime(), {
  292. data: parameter,
  293. dataType: 'json',
  294. xhrFields: {
  295. withCredentials: true
  296. },
  297. crossDomain: true,
  298. type: 'get', //减少数量后台限制用get
  299. timeout: 15000,
  300. success: function(dt) {
  301. if(dt.isRedirect) {
  302. location.href = dt.redirectURL;
  303. } else {
  304. if(dt.status) {
  305. console.log("减少数量数量成功!");
  306. getCartNumber()
  307. } else {
  308. mui.alert("减少数量数量失败!");
  309. }
  310. }
  311. },
  312. error: function(xhr, type, errorThrown) {
  313. console.log(xhr);
  314. mui.alert("减少数量失败!网络错误");
  315. }
  316. });
  317. } else {
  318. mui.alert("没有获取到产品颜色id");
  319. }
  320. });
  321. //立即购买
  322. $(document).on('tap', '.add-gouwuche,.div-btn-buy-know', function() {
  323. var th = $(this);
  324. count = 0;
  325. //mask.show(); //显示遮罩层
  326. //在body尾部增加-产品颜色列表父级ul
  327. $("body").append('<div id="scroll" class="mui-scroll-wrapper my-picker"><div class="mui-scroll" style="max-height:100%;bottom: 0;background-color: #fff;"><ul class="mui-table-view mui-table-view-striped mui-table-view-condensed my-grid-view-no"></ul><button class="mui-btn my-btn-buy-cancel">取消</button><button class="mui-btn my-btn-buy-know" disabled="disabled">确定</button></div></div>');
  328. $.ajax(base_path + '/wechat/product/selectProductColor?dates=' + new Date().getTime(), {
  329. data: {
  330. "productId": productId //productId产品id
  331. },
  332. dataType: 'json',
  333. xhrFields: {
  334. withCredentials: true
  335. },
  336. crossDomain: true,
  337. type: 'post',
  338. timeout: 15000,
  339. success: function(dt) {
  340. if(dt.isRedirect) {
  341. location.href = dt.redirectURL;
  342. } else {
  343. if(dt.status) {
  344. console.log(dt)
  345. var data = dt.data.productColorList;
  346. var table = document.body.querySelector('.my-picker .mui-table-view'); //产品颜色列表父级ul
  347. table.innerHTML = '';
  348. //循环遍历产品颜色数组
  349. mui(data).each(function(index) {
  350. var li = document.createElement('li'); //创建li标签
  351. li.className = 'my-table-view-cell'; //給li标签设置className
  352. if(typeof(this.cartNum) != "undefined") {
  353. count += parseInt(this.cartNum);
  354. } else {
  355. this.cartNum = 0;
  356. }
  357. li.innerHTML = '<div class="mui-table" ><div class="mui-table-cell mui-col-xs-3"><img class="my-media-object" src="' + this.colorProductPic + '" /></div><div class="mui-table-cell table-middle mui-col-xs-5">' + this.colorName + '<h6>' + this.colorDesc + '</h6><div style="color: #ff3b3b;">¥' + accDiv(this.colorDiscount, 100) + '</div></div><div class="mui-table-cell table-middle mui-col-xs-4"><div class="mui-numbox" data-numbox-min="0" data-numbox-max="99" cartid="' + this.cartId + '"><button class="mui-btn mui-btn-numbox-minus" type="button" productid="' + this.colorProductId + '" colorid="' + this.colorId + '">-</button><input class="mui-input-numbox" type="number" value="' + this.cartNum + '" readonly="readonly"/><button class="mui-btn mui-btn-numbox-plus" type="button" productid="' + this.colorProductId + '" colorid="' + this.colorId + '">+</button></div></div></div>';
  358. table.appendChild(li); //将li标签加入到-产品颜色列表父级ul
  359. });
  360. $(".my-picker").addClass("active"); //显示产品颜色加减数量列表
  361. console.log(count)
  362. // if(count > 0) {
  363. $(".my-btn-buy-know").removeAttr("disabled"); //激活结算按钮
  364. // }
  365. if(th.hasClass("add-gouwuche")) {
  366. $(".my-btn-buy-know").attr("cart", "cart");
  367. }
  368. mui(".mui-numbox").numbox(); //激活加减按钮组合
  369. } else {
  370. mui.alert("获取数据失败!");
  371. }
  372. }
  373. },
  374. error: function(xhr, type, errorThrown) {
  375. console.log(xhr);
  376. mui.alert("获取数据失败!网络错误");
  377. }
  378. });
  379. mui('#scroll').scroll({
  380. indicators: true //是否显示滚动条
  381. });
  382. });
  383. //确定事件
  384. $(document).on('tap', '.my-btn-buy-know', function() {
  385. //判断是点立即购买还是加入购物车的
  386. var cartidList = ''; //购物项id集合
  387. if($(this).attr("cart") == "cart") {
  388. if(count > 0) {
  389. //$(".mui-backdrop").css("opacity", 0).remove(); //移除遮罩层
  390. $(".my-picker").removeClass("active");
  391. setTimeout(function() {
  392. $(".my-picker").remove(); //移除选择颜色列表
  393. }, 500);
  394. mui.toast("加入购物车成功!");
  395. } else {
  396. mui.toast("请选择数量")
  397. }
  398. } else {
  399. $.each($(".my-picker .mui-numbox"), function(index) {
  400. var th = $(this);
  401. if(th.attr("cartid") != "undefined") {
  402. if(cartidList == '') {
  403. cartidList += th.attr("cartid");
  404. } else {
  405. cartidList += '-' + th.attr("cartid");
  406. }
  407. }
  408. });
  409. if(cartidList != "undefined" && count > 0) {
  410. $(".my-btn-buy-know").removeAttr("disabled"); //激活结算按钮
  411. if(!window.sessionStorage) {
  412. mui.alert("您的浏览器不支持sessionStorage");
  413. } else {
  414. //自定义json数据
  415. var obj = {
  416. text: [cartidList]
  417. };
  418. //json格式化插入 购物项id集合
  419. sessionStorage.setItem('pay_data', JSON.stringify(obj));
  420. location.href = 'clearing.html'; //跳转结算页面
  421. }
  422. } else {
  423. mui.toast("请选择数量")
  424. }
  425. }
  426. });
  427. //跳转首页
  428. $(document).on('tap', '.go-index', function() {
  429. location.href = 'index.html';
  430. });
  431. //跳转购物车
  432. $(document).on('tap', '.fixed-cart', function() {
  433. location.href = 'shopping-cart.html';
  434. });
  435. //获取购物车数量
  436. function getCartNumber() {
  437. $.ajax(base_path + '/wechat/cart/getCartNumByCartOpenId?dates=' + new Date().getTime(), {
  438. data: {},
  439. dataType: 'json',
  440. xhrFields: {
  441. withCredentials: true
  442. },
  443. crossDomain: true,
  444. type: 'get',
  445. timeout: 15000,
  446. success: function(dt) {
  447. if(dt.isRedirect) {
  448. location.href = dt.redirectURL;
  449. } else {
  450. if(dt.status) {
  451. if(dt.data > 0) {
  452. $(".fixed-cart .my-badge-danger").text(dt.data).show();
  453. } else {
  454. $(".fixed-cart .my-badge-danger").text(dt.data).hide();
  455. }
  456. } else {
  457. mui.alert("获取购物车数量失败!");
  458. }
  459. }
  460. },
  461. error: function(xhr, type, errorThrown) {
  462. console.log(xhr);
  463. mui.alert("获取购物车数量失败!网络错误");
  464. }
  465. });
  466. }
  467. //分享
  468. function fenxiang() {
  469. var src = location.href;
  470. src = "//s.iamberry.com/aiberle/wechat/pro-details.html?productId=" + productId;
  471. window.wxFriend = {
  472. "appId": "",
  473. "imgUrl": productIntroduceImg,
  474. "link": src,
  475. "desc": productRemark,
  476. "title": 'Aiberle | ' + productName,
  477. "netError": "您的网络异常,请刷新重试!如多次刷新无效,请向我们反应 ~",
  478. "shareTimeSuccess": "分享成功",
  479. "shareTimeCancel": "已取消分享",
  480. "shareAppSuccess": "分享成功!",
  481. "shareAppCancel": "已取消分享"
  482. };
  483. getConfig();
  484. }
  485. //返回顶部方法
  486. function gotoTop(acceleration, stime) {
  487. acceleration = acceleration || 0.1;
  488. stime = stime || 10;
  489. var x1 = 0,
  490. y1 = 0,
  491. x2 = 0,
  492. y2 = 0,
  493. x3 = 0,
  494. y3 = 0;
  495. if(document.documentElement) {
  496. x1 = document.documentElement.scrollLeft || 0;
  497. y1 = document.documentElement.scrollTop || 0
  498. }
  499. if(document.body) {
  500. x2 = document.body.scrollLeft || 0;
  501. y2 = document.body.scrollTop || 0
  502. }
  503. var x3 = window.scrollX || 0;
  504. var y3 = window.scrollY || 0;
  505. var x = Math.max(x1, Math.max(x2, x3));
  506. var y = Math.max(y1, Math.max(y2, y3));
  507. var speeding = 1 + acceleration;
  508. window.scrollTo(Math.floor(x / speeding), Math.floor(y / speeding));
  509. if(x > 0 || y > 0) {
  510. var run = "gotoTop(" + acceleration + ", " + stime + ")";
  511. window.setTimeout(run, stime)
  512. }
  513. };
  514. //绑定滚动条事件
  515. $(window).on("scroll", function() {
  516. //向下滚动距离大于180像素显示返回顶部,否则隐藏
  517. if($(window).scrollTop() > 180) {
  518. $(".return").show();
  519. } else {
  520. $(".return").hide();
  521. }
  522. });
  523. </script>
  524. </body>
  525. </html>