pro-list.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442
  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="//s.iamberry.com/wechat/aiberle/css/mui.min.css" />
  10. <link rel="stylesheet" type="text/css" href="//s.iamberry.com/wechat/aiberle/css/iconfont.css" />
  11. <link rel="stylesheet" type="text/css" href="//s.iamberry.com/wechat/aiberle/css/main.css" />
  12. <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
  13. <script>
  14. //屏蔽分享
  15. // document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
  16. // WeixinJSBridge.call('hideOptionMenu');
  17. // });
  18. </script>
  19. </head>
  20. <body>
  21. <header class="mui-bar mui-bar-nav">
  22. <div id="pro-menu" class="mui-segmented-control">
  23. <!--<a class="mui-control-item mui-active" href="#item1">净水机</a>
  24. <a class="mui-control-item" href="#item2">冲奶机</a>
  25. <a class="mui-control-item" href="#item3">电动牙刷</a>-->
  26. </div>
  27. </header>
  28. <!--<footer class="mui-bar mui-bar-tab">
  29. <a class="mui-tab-item">
  30. <span class="iconfont icon-shouye"></span>
  31. <span class="mui-tab-label">首页</span>
  32. </a>
  33. <a class="mui-tab-item">
  34. <span class="iconfont icon-gouwuche"></span>
  35. <span class="mui-tab-label">购物车</span>
  36. </a>
  37. <a class="mui-tab-item">
  38. <span class="iconfont icon-dingdan"></span>
  39. <span class="mui-tab-label">订单</span>
  40. </a>
  41. <a class="mui-tab-item">
  42. <span class="iconfont icon-wode"></span>
  43. <span class="mui-tab-label">我的</span>
  44. </a>
  45. </footer>-->
  46. <div class="mui-content">
  47. <!--<div class="index-title">
  48. <strong>选购</strong>
  49. </div>-->
  50. <div id="item1" class="mui-control-content mui-active">
  51. <ul class="pro-table-pull">
  52. <!--产品列表区域-->
  53. </ul>
  54. <!--<div class="index-title">
  55. <strong>配件选购</strong>
  56. </div>-->
  57. <!--<ul class="mui-table-view mui-grid-view my-view-no" style="padding-bottom: 0;">
  58. <li class="mui-table-view-cell mui-media mui-col-xs-5">
  59. <a href="#"><img class="mui-media-object" src="images/chanpin-2.jpg"></a>
  60. </li>
  61. <li class="mui-table-view-cell mui-media mui-col-xs-7">
  62. <a>
  63. <div class="pro-tit">Aiberle智能净水机滤芯配件 t1、t2、t3、t4</div>
  64. <h6 class="mui-text-left">4级ro净化、只喝净水</h6>
  65. <p class="pro-price">¥79.00~320.00</p>
  66. <div class="mui-text-right">
  67. <span class="add-cart"><span class="iconfont icon-gouwuche"></span></span>
  68. <button type="button" class="btn-buy-now">立即购买</button>
  69. </div>
  70. </a>
  71. </li>
  72. <li class="mui-table-view-cell mui-media mui-col-xs-5">
  73. <a href="#"><img class="mui-media-object" src="images/chanpin-3.jpg"></a>
  74. </li>
  75. <li class="mui-table-view-cell mui-media mui-col-xs-7">
  76. <a>
  77. <div class="pro-tit">Aiberle智能净水机水箱配件</div>
  78. <h6 class="mui-text-left">优质安全材质,放心使用</h6>
  79. <p class="pro-price">¥99.00</p>
  80. <div class="mui-text-right">
  81. <span class="add-cart"><span class="iconfont icon-gouwuche"></span></span>
  82. <button type="button" class="btn-buy-now">立即购买</button>
  83. </div>
  84. </a>
  85. </li>
  86. </ul>-->
  87. </div>
  88. <div id="item2" class="mui-control-content">
  89. <ul class="pro-table-pull">
  90. </ul>
  91. </div>
  92. <div id="item3" class="mui-control-content">
  93. <ul class="pro-table-pull">
  94. </ul>
  95. </div>
  96. <div id="item4" class="mui-control-content">
  97. <ul class="pro-table-pull">
  98. </ul>
  99. </div>
  100. <div id="item5" class="mui-control-content">
  101. <ul class="pro-table-pull">
  102. </ul>
  103. </div>
  104. <div id="item6" class="mui-control-content">
  105. <ul class="pro-table-pull">
  106. </ul>
  107. </div>
  108. </div>
  109. <!-- 加载ing -->
  110. <div class="loading covers">
  111. <div class="loading-bj"></div>
  112. <p>加载中...</p>
  113. </div>
  114. <!-- 加载ing END -->
  115. <script src="//s.iamberry.com/wechat/aiberle/js/mui.min.js"></script>
  116. <script src="//s.iamberry.com/wechat/aiberle/js/jquery-2.1.1.min.js"></script>
  117. <script src="//s.iamberry.com/wechat/aiberle/js/main.js"></script>
  118. <script>
  119. window.addEventListener('pageshow', function(e) {
  120. // 通过persisted属性判断是否存在 BF Cache
  121. if(e.persisted) {
  122. location.reload(); //刷新页面
  123. }
  124. });
  125. var search_data = null,
  126. typeId = '';
  127. if(!window.sessionStorage) {
  128. mui.alert("您的浏览器不支持sessionStorage");
  129. } else {
  130. //读取上一个页面带过来的sessionStorage
  131. search_data = JSON.parse(sessionStorage.getItem('search_data'));
  132. if(search_data != null) {
  133. typeId = search_data.text[0].typeId; //如果不为空就赋值給typeId(产品类型id)
  134. //$('#item'+typeId+']').addClass("mui-active").siblings().removeClass("mui-active");
  135. }
  136. }
  137. mui.ready(function() {
  138. //页面首次加载区分
  139. if(search_data != null) {
  140. getProlist(typeId, null);
  141. } else {
  142. getProlist(null, null);
  143. }
  144. $(".loading").hide().css("opacity", "0"); //页面加载完成,隐藏loading
  145. });
  146. //查询产品列表(items代表显示类型)(load值为null代表没有从其他页面带参数,并且是首次加载,其他值代表选中的区域)
  147. function getProlist(items, load) {
  148. console.log(items, load);
  149. var parameter = {};
  150. if(items != null) {
  151. parameter["typeId"] = items;
  152. }
  153. $.ajax(base_path + '/wechat/product/productIndex?dates=' + new Date().getTime(), {
  154. data: parameter,
  155. dataType: 'json',
  156. xhrFields: {
  157. withCredentials: true
  158. },
  159. crossDomain: true,
  160. type: 'post',
  161. timeout: 15000,
  162. success: function(dt) {
  163. if(dt.isRedirect) {
  164. location.href = dt.redirectURL;
  165. } else {
  166. console.log(dt)
  167. if(dt.status) {
  168. var menu_data = dt.data.productTypeList;
  169. if(load == null) {
  170. var table = document.body.querySelector("#pro-menu");
  171. mui(menu_data).each(function(index) {
  172. var li = document.createElement('a');
  173. if(items != null) {
  174. if(items == this.typeId) {
  175. li.className = 'mui-control-item mui-active';
  176. } else {
  177. li.className = 'mui-control-item';
  178. }
  179. } else {
  180. if(index == 0) {
  181. li.className = 'mui-control-item mui-active';
  182. } else {
  183. li.className = 'mui-control-item';
  184. }
  185. }
  186. li.setAttribute("name", this.typeId);
  187. li.setAttribute("href", "#item" + (index + 1));
  188. li.innerHTML = this.typeName;
  189. table.appendChild(li);
  190. });
  191. }
  192. var pro_list = dt.data.productList;
  193. if(items == null) {
  194. items = 1
  195. }
  196. var table1 = document.body.querySelector('#item' + items + ' .pro-table-pull');
  197. if(load != null) {
  198. document.body.querySelector(load + " .pro-table-pull");
  199. table1.innerHTML = '';
  200. }
  201. mui(pro_list).each(function(index) {
  202. var li = document.createElement('li');
  203. li.setAttribute("name", this.productId);
  204. var zen = '';
  205. console.log(this.productColorList)
  206. $.each(this.productColorList[0].salesUserGiftList, function() {
  207. zen += this.giftName + "、"
  208. });
  209. if(zen != '') {
  210. zen = '<div class="index-title"><p><span class="iconfont icon-liwu"></span>' + zen.substring(0, zen.length - 1) + '</p></div>';
  211. }
  212. li.innerHTML = '<ul class="mui-table-view mui-grid-view my-view-no" style="padding-bottom: 0;"><li class="mui-table-view-cell mui-media mui-col-xs-5 mui-text-left"><a><img class="mui-media-object" src="' + this.productParameterImg + '"></a></li><li class="mui-table-view-cell mui-media mui-col-xs-7"><a><div class="pro-tit">' + this.productName + '</div><h6 class="mui-text-left">' + this.productAbbreviation + '</h6><p class="pro-price">¥' + (this.productColorList[0].colorDiscount / 100).toFixed(2) + '</p><div class="mui-text-right"><span class="add-cart" name="' + this.productId + '"><span class="iconfont icon-gouwuche"></span></span><button type="button" class="btn-buy-now" name="' + this.productId + '">立即购买</button></div></a></li></ul>' + zen;
  213. table1.appendChild(li);
  214. });
  215. } else {
  216. mui.alert("获取商品菜单失败!");
  217. }
  218. }
  219. },
  220. error: function(xhr, type, errorThrown) {
  221. console.log(xhr);
  222. mui.alert("获取商品菜单失败!网络错误");
  223. }
  224. });
  225. }
  226. //头部菜单点击事件
  227. $(document).on('tap', '#pro-menu .mui-control-item', function() {
  228. if(!window.sessionStorage) {
  229. mui.alert("您的浏览器不支持sessionStorage");
  230. } else {
  231. //如果点击头部的菜单,则删除其他页面带过来的sessionStorage
  232. sessionStorage.removeItem('search_data');
  233. }
  234. //根据类型获取产品列表
  235. getProlist($(this).attr("name"), $(this).attr("href"));
  236. });
  237. //callback为用户点击蒙版时自动执行的回调;
  238. var mask = mui.createMask(function() {
  239. $(".my-picker").remove();//移除颜色列表
  240. });
  241. var count = 0; //统计所有产品加减,数量默认0,当count<1的时候设置(结算)按钮失效
  242. //购物车数量加
  243. $(document).on('tap', '.mui-btn-numbox-plus', function() {
  244. ++count; //产品总数量
  245. var th = $(this);
  246. var val = mui(th.parent()[0]).numbox().getValue(); //获取当前产品数量
  247. if(count < 1) {
  248. $(".my-btn-buy-know").attr("disabled", "disabled"); //禁用结算按钮
  249. } else {
  250. $(".my-btn-buy-know").removeAttr("disabled"); //激活结算按钮
  251. }
  252. var parameter = {}; //ajax参数json集合
  253. if(typeof(th.attr("productid")) != "undefined") {
  254. parameter["productId"] = th.attr("productid"); //产品id
  255. if(typeof(th.attr("colorid")) != "undefined") {
  256. parameter["productColorId"] = th.attr("colorid"); //颜色id
  257. parameter["cartNum"] = 1; //需要减的产品数量,每次都是1
  258. $.ajax(base_path + '/wechat/cart/addProductToCart?dates=' + new Date().getTime(), {
  259. data: parameter,
  260. dataType: 'json',
  261. xhrFields: {
  262. withCredentials: true
  263. },
  264. crossDomain: true,
  265. type: 'post',
  266. timeout: 15000,
  267. success: function(dt) {
  268. if(dt.isRedirect) {
  269. location.href = dt.redirectURL;
  270. } else {
  271. if(dt.status) {
  272. th.parent().attr("cartid", dt.data);
  273. console.log("增加数量成功!");
  274. } else {
  275. mui.alert("增加数量失败!");
  276. }
  277. }
  278. },
  279. error: function(xhr, type, errorThrown) {
  280. console.log(xhr);
  281. mui.alert("增加数量失败!网络错误");
  282. }
  283. });
  284. } else {
  285. mui.alert("没有获取到产品颜色id");
  286. }
  287. } else {
  288. mui.alert("没有获取到产品id");
  289. }
  290. });
  291. //购物车数量减
  292. $(document).on('tap', '.mui-btn-numbox-minus', function() {
  293. --count; //产品总数量
  294. var th = $(this);
  295. var val = mui(th.parent()[0]).numbox().getValue(); //获取当前产品数量
  296. if(count < 1) {
  297. $(".my-btn-buy-know").attr("disabled", "disabled"); //禁用结算按钮
  298. } else {
  299. $(".my-btn-buy-know").removeAttr("disabled"); //激活结算按钮
  300. }
  301. var parameter = {}; //ajax参数json集合
  302. if(typeof(th.attr("colorid")) != "undefined") {
  303. parameter["productColorId"] = th.attr("colorid"); //产品颜色id
  304. parameter["cartNum"] = 1; //需要减的产品数量,每次都是1
  305. $.ajax(base_path + '/wechat/cart/deleteCart?dates=' + new Date().getTime(), {
  306. data: parameter,
  307. dataType: 'json',
  308. xhrFields: {
  309. withCredentials: true
  310. },
  311. crossDomain: true,
  312. type: 'get', //减少数量后台限制用get
  313. timeout: 15000,
  314. success: function(dt) {
  315. if(dt.isRedirect) {
  316. location.href = dt.redirectURL;
  317. } else {
  318. if(dt.status) {
  319. console.log("减少数量数量成功!");
  320. } else {
  321. mui.alert("减少数量数量失败!");
  322. }
  323. }
  324. },
  325. error: function(xhr, type, errorThrown) {
  326. console.log(xhr);
  327. mui.alert("减少数量失败!网络错误");
  328. }
  329. });
  330. } else {
  331. mui.alert("没有获取到产品颜色id");
  332. }
  333. });
  334. //立即购买-购物车按钮 获取颜色列表
  335. $(document).on('tap', '.add-cart,.btn-buy-now', function() {
  336. var th = $(this);
  337. mask.show(); //显示遮罩层
  338. //在body尾部增加-产品颜色列表父级ul
  339. $("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>');
  340. $.ajax(base_path + '/wechat/product/selectProductColor?dates=' + new Date().getTime(), {
  341. data: {
  342. "productId": th.attr("name") //productId产品id
  343. },
  344. dataType: 'json',
  345. xhrFields: {
  346. withCredentials: true
  347. },
  348. crossDomain: true,
  349. type: 'post',
  350. timeout: 15000,
  351. success: function(dt) {
  352. if(dt.isRedirect) {
  353. location.href = dt.redirectURL;
  354. } else {
  355. if(dt.status) {
  356. console.log(dt)
  357. var data = dt.data.productColorList;
  358. var table = document.body.querySelector('.my-picker>ul'); //产品颜色列表父级ul
  359. table.innerHTML = '';
  360. //循环遍历产品颜色数组
  361. mui(data).each(function(index) {
  362. var li = document.createElement('li'); //创建li标签
  363. li.className = 'my-table-view-cell'; //給li标签设置className
  364. //var val=index==0?1:0;
  365. 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>极简生活、舒适百搭</h6></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>';
  366. table.appendChild(li); //将li标签加入到-产品颜色列表父级ul
  367. console.log(count)
  368. if(typeof(this.cartNum) != "undefined") {
  369. count += parseInt(this.cartNum);
  370. }
  371. });
  372. $(".my-picker").addClass("active"); //显示产品颜色加减数量列表
  373. console.log(count)
  374. if(count > 0) {
  375. $(".my-btn-buy-know").removeAttr("disabled"); //激活结算按钮
  376. }
  377. if(th.hasClass("add-cart")) {
  378. $(".my-btn-buy-know").attr("cart", "cart");
  379. }
  380. mui(".mui-numbox").numbox(); //激活加减按钮组合
  381. } else {
  382. mui.alert("获取数据失败!");
  383. }
  384. }
  385. },
  386. error: function(xhr, type, errorThrown) {
  387. console.log(xhr);
  388. mui.alert("获取数据失败!网络错误");
  389. }
  390. });
  391. });
  392. //确定事件
  393. $(document).on('tap', '.my-btn-buy-know', function() {
  394. //判断是点立即购买还是加入购物车的
  395. if($(this).attr("cart") == "cart") {
  396. $(".mui-backdrop").css("opacity", 0).remove(); //移除遮罩层
  397. $(".my-picker").remove(); //移除选择颜色列表
  398. } else {
  399. var cartidList = ''; //购物项id集合
  400. $.each($(".my-picker .mui-numbox"), function(index) {
  401. var th = $(this);
  402. if(typeof(th.attr("cartid")) != "undefined") {
  403. var a = '';
  404. if(index != 0) {
  405. a = '-' + th.attr("cartid"); //组装购物项id
  406. } else {
  407. a = th.attr("cartid");
  408. }
  409. cartidList += a;
  410. }
  411. });
  412. if(!window.sessionStorage) {
  413. mui.alert("您的浏览器不支持sessionStorage");
  414. } else {
  415. //自定义json数据
  416. var obj = {
  417. text: [cartidList]
  418. };
  419. //json格式化插入 购物项id集合
  420. sessionStorage.setItem('pay_data', JSON.stringify(obj));
  421. location.href = 'clearing.html'; //跳转结算页面
  422. }
  423. }
  424. });
  425. </script>
  426. </body>
  427. </html>