pro-details.html 17 KB

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