睿乐购电商课程设计——商品模块 ﹏ヽ暗。殇╰゛Y 2023-02-23 03:38 61阅读 0赞 ### 睿乐购电商课程设计——商品模块 ### * * * 商品详情页 * 商品搜索页 * 购物车 ### 商品详情页 ### * `detail.js` function getProduct(){ let id = sessionStorage.getItem("goodsId"); if (isNull(id)){ return ; } $.ajax({ type: "GET", //方法类型 dataType: "json", //预期服务器返回的数据类型 url: "/goods/get/"+id, success: function(result) { if (result.status == 200){ goodShow(result.data); }else if(result.status == 404){ location.href="404.html"; return; }else{ console.log(result.msg); return null; } }, error: function() { location.href="404.html"; return; } }); } function goodShow(data){ let mainImg = data.main_image; $("#item1 a").attr('href',mainImg); $("#item1 img").attr('src',mainImg); $("#item3 img").attr('src',mainImg); let subimg = ('sub_image' in data)?data.sub_image:mainImg; $("#item2 a").attr('href',subimg); $("#item2 img").attr('src',subimg); $("#item4 img").attr('src',subimg); $(".product-title").text(data.name); $(".regular-price").text(data.price); $(".product-description").text(data.detail); $(".product_desc").text(data.detail); $("#stock").text(data.stock); $("#btnAddToCart").attr("onclick",`addCart(${ data.id})`); } $(function (){ checkUsername(); checkCart(); getProduct(); }); * `detail.html`部分 <div class="row"> <div class="col-xl-6 col-lg-7 col-12 mt-50"> <div class="vertical-tab-product vertical-tab-right"> <!-- Product Zoom Image start --> <div class="product-slider-container arrow-center text-center float-left"> <div class="product-item detail1" id= "item1"> <a href="assets/images/product/product-details/product-details-1.jpg"><img src="assets/images/product/product-details/product-details-1.jpg" class="img-fluid" alt="" /></a> </div > <div class="product-item" id="item2"> <a href="assets/images/product/product-details/product-details-2.jpg"><img src="assets/images/product/product-details/product-details-2.jpg" class="img-fluid" alt="" /></a> </div> </div> <!-- Product Zoom Image End --> <!-- Product Thumb Zoom Image Start --> <div class="product-thumbnail-vertical float-right"> <div class="product-item-thumb detail2" id="item3"> <img src="assets/images/product/product-details/product-thumb-1.jpg" class="img-fluid" alt="" /> </div> <div class="product-item-thumb" id="item4"> <img src="assets/images/product/product-details/product-thumb-2.jpg" class="img-fluid" alt="" /> </div> </div> <!-- Product Thumb Zoom Image End --> </div> </div> <div class="col-xl-6 col-lg-5 col-12 mt-45"> <!-- Product Summery Start --> <div class="product-summery position-relative"> <div class="product-head"> <h1 class="product-title">Porro quisquam eget feugiat pretium</h1> <div class="product-arrows text-right"> <a href="#"><i class="fa fa-long-arrow-left"></i></a> <a href="#"><i class="fa fa-long-arrow-right"></i></a> </div> </div> <div class="rating-meta d-flex"> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <ul class="meta d-flex"> <li> <a href="#"><i class="fa fa-commenting-o"></i>Read reviews(3)</a> </li> <li> <a href="#"><i class="fa fa-edit"></i>Write a review</a> </li> </ul> </div> <div class="price-box"> <span class="regular-price">$30.00</span> </div> <div class="product-description"> <p>Porro first 4K UHD Camcorder, the GX10 has a compact and portable design that delivers outstanding video quality with remarkable detail. With a combination of incredible features and functionality, the GX10 is the ideal camcorder for aspiring filmmakers.</p> </div> <div class="product-packeges"> <table> <tbody> <tr> <td class="label"><span>大小</span></td> <td class="value"> <div class="product-sizes"> <a href="#">大</a> <a href="#">中等</a> <a href="#">小</a> </div> </td> </tr> <tr> <td class="label"><span>库存</span></td> <td class="value"> <span id="stock">10</span> </td> </tr> <tr> <td class="label"><span>购买量</span></td> <td class="value"> <div class="product-quantity"> <span class="qty-btn minus"><i class="fa fa-angle-down"></i></span> <input type="text" class="input-qty" value="1"> <span class="qty-btn plus"><i class="fa fa-angle-up"></i></span> </div> </td> </tr> </tbody> </table> </div> <div class="product-buttons grid_list"> <div class="action-link"> <a class="compare-add same-link" href="compare.html" title="Add to compare"><i class="zmdi zmdi-refresh-alt"></i></a> <button class="btn-secondary" id="btnAddToCart">添加购物车</button> <a class="wishlist-add same-link" href="#" title="Add to wishlist"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> </div> <div class="product-meta"> <div class="desc-content"> <div class="social_sharing d-flex"> <h5>分享给朋友:</h5> <ul> <li><a href="#" title="facebook"><i class="fa fa-facebook"></i></a></li> <li><a href="#" title="twitter"><i class="fa fa-twitter"></i></a></li> <li><a href="#" title="pinterest"><i class="fa fa-pinterest"></i></a></li> <li><a href="#" title="google+"><i class="fa fa-google-plus"></i></a></li> <li><a href="#" title="linkedin"><i class="fa fa-linkedin"></i></a></li> </ul> </div> </div> </div> </div> <!-- Product Summery End --> </div> </div> ### 商品搜索页 ### * `shop.html` 部分 <div class="col-lg-9 order-first order-lg-last"> <!-- Shop Banner Start --> <div class="single-banner mt-50 mb-50"> <a href="#"><img src="assets/images/banner/shop-banner-1.jpg" alt="" class="img-fluid"></a> </div> <!-- Shop Banner End --> <!-- Shop Toolbar Start --> <div class="toolbar-shop mb-50"> <div class="shop_toolbar_btn"> <button data-role="grid_3" class="btn-grid-3"></button> <button data-role="grid_list" class="btn-list active"></button> </div> <div class="nice-select select-option"> <select name="select"> <option value="1">按名称排序</option> <option value="2">按编号排序</option> <option value="3">按日期排序</option> <option value="4">按类别排序</option> </select> </div> </div> <!-- Shop Toolbar End --> <!-- Shop Wrapper Start --> <div class="row shop-wrapper grid_list"> <div class="col-12 mb-20"> <div class="item-product pt-0"> <div class="product-thumb"> <a href="#"> <img src="assets/images/product/product-12.jpg" alt="" class="img-fluid"> </a> <div class="box-label"> <div class="label-product-new"> <span>New</span> </div> </div> <div class="action-link"> <a class="quick-view same-link" href="#" title="Quick view" data-toggle="modal" data-target="#modal_box" data-original-title="quick view"><i class="zmdi zmdi-eye zmdi-hc-fw"></i></a> <a class="compare-add same-link" href="compare.html" title="Add to compare"><i class="zmdi zmdi-refresh-alt"></i></a> <a class="wishlist-add same-link" href="#" title="Add to wishlist"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> </div> <div class="product-caption"> <div class="product-name"> <a href="#">Natus erro at congue massa commodo sit dignissim</a> </div> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <div class="price-box"> <span class="regular-price">$320.00</span> <span class="old-price"><del>$350.50</del></span> </div> <div class="cart"> <div class="add-to-cart"> <a href="shopping-cart.html" title="Add to cart"><i class="zmdi zmdi-shopping-cart-plus zmdi-hc-fw"></i></a> </div> </div> </div> <div class="grid-list-caption align-items-center"> <div class="product-name"> <a href="#">Natus erro at congue massa commodo sit dignissim</a> </div> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <div class="price-box"> <span class="regular-price">$30.00</span> </div> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis ad, iure incidunt. Ab consequatur temporibus non eveniet inventore doloremque necessitatibus sed</p> <div class="text-available"> <p><strong>Availabe:</strong><span> 99 In Stock</span></p> </div> <div class="action-link"> <a class="quick-view same-link" href="#" title="Quick view" data-toggle="modal" data-target="#modal_box" data-original-title="quick view"><i class="zmdi zmdi-eye zmdi-hc-fw"></i></a> <a class="compare-add same-link" href="compare.html" title="Add to compare"><i class="zmdi zmdi-refresh-alt"></i></a> <a class="wishlist-add same-link" href="#" title="Add to wishlist"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> <div class="cart-list-button"> <a href="shopping-cart.html" class="cart-btn">Add To Cart</a> </div> </div> </div> </div> <div class="col-12 mb-20"> <!-- Single-Product-Start --> <div class="item-product"> <div class="product-thumb"> <a href="#"> <img src="assets/images/product/product-11.jpg" alt="" class="img-fluid"> </a> <div class="box-label"> <div class="label-product-new"> <span>New</span> </div> </div> <div class="action-link"> <a class="quick-view same-link" href="#" title="Quick view" data-toggle="modal" data-target="#modal_box" data-original-title="quick view"><i class="zmdi zmdi-eye zmdi-hc-fw"></i></a> <a class="compare-add same-link" href="compare.html" title="Add to compare"><i class="zmdi zmdi-refresh-alt"></i></a> <a class="wishlist-add same-link" href="#" title="Add to wishlist"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> </div> <div class="product-caption"> <div class="product-name"> <a href="#">Mirum est notare tellus eu nibh iaculis pretium</a> </div> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <div class="price-box"> <span class="regular-price">$320.00</span> <span class="old-price"><del>$350.50</del></span> </div> <div class="cart"> <div class="add-to-cart"> <a href="shopping-cart.html" title="Add to cart"><i class="zmdi zmdi-shopping-cart-plus zmdi-hc-fw"></i></a> </div> </div> </div> <div class="grid-list-caption align-items-center"> <div class="product-name"> <a href="#">Mirum est notare tellus eu nibh iaculis pretium</a> </div> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <div class="price-box"> <span class="regular-price">$30.00</span> </div> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis ad, iure incidunt. Ab consequatur temporibus non eveniet inventore doloremque necessitatibus sed</p> <div class="text-available"> <p><strong>Availabe:</strong><span> 99 In Stock</span></p> </div> <div class="action-link"> <a class="quick-view same-link" href="#" title="Quick view" data-toggle="modal" data-target="#modal_box" data-original-title="quick view"><i class="zmdi zmdi-eye zmdi-hc-fw"></i></a> <a class="compare-add same-link" href="compare.html" title="Add to compare"><i class="zmdi zmdi-refresh-alt"></i></a> <a class="wishlist-add same-link" href="#" title="Add to wishlist"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> <div class="cart-list-button"> <a href="shopping-cart.html" class="cart-btn">Add To Cart</a> </div> </div> </div> <!-- Single-Product-End --> </div> <div class="col-12 mb-20"> <!-- Single-Product-Start --> <div class="item-product"> <div class="product-thumb"> <a href="#"> <img src="assets/images/product/product-10.jpg" alt="" class="img-fluid"> </a> <div class="action-link"> <a class="quick-view same-link" href="#" title="Quick view" data-toggle="modal" data-target="#modal_box" data-original-title="quick view"><i class="zmdi zmdi-eye zmdi-hc-fw"></i></a> <a class="compare-add same-link" href="compare.html" title="Add to compare"><i class="zmdi zmdi-refresh-alt"></i></a> <a class="wishlist-add same-link" href="#" title="Add to wishlist"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> </div> <div class="product-caption"> <div class="product-name"> <a href="#">Porro quisquam eget feugiat pretium sodales</a> </div> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <div class="price-box"> <span class="regular-price">$320.00</span> <span class="old-price"><del>$350.50</del></span> </div> <div class="cart"> <div class="add-to-cart"> <a href="shopping-cart.html" title="Add to cart"><i class="zmdi zmdi-shopping-cart-plus zmdi-hc-fw"></i></a> </div> </div> </div> <div class="grid-list-caption align-items-center"> <div class="product-name"> <a href="#">Porro quisquam eget feugiat pretium sodales</a> </div> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <div class="price-box"> <span class="regular-price">$30.00</span> </div> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis ad, iure incidunt. Ab consequatur temporibus non eveniet inventore doloremque necessitatibus sed</p> <div class="text-available"> <p><strong>Availabe:</strong><span> 99 In Stock</span></p> </div> <div class="action-link"> <a class="quick-view same-link" href="#" title="Quick view" data-toggle="modal" data-target="#modal_box" data-original-title="quick view"><i class="zmdi zmdi-eye zmdi-hc-fw"></i></a> <a class="compare-add same-link" href="compare.html" title="Add to compare"><i class="zmdi zmdi-refresh-alt"></i></a> <a class="wishlist-add same-link" href="#" title="Add to wishlist"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> <div class="cart-list-button"> <a href="shopping-cart.html" class="cart-btn">Add To Cart</a> </div> </div> </div> <!-- Single-Product-End --> </div> </div> <!-- Shop Wrapper End --> <!-- Shop Toolbar Start --> <div class="toolbar-shop toolbar-bottom"> <div class="page-amount"> <p>10条</p> </div> <div class="pagination"> <ul> <li class="previous"><a href="#"><i class="fa fa-angle-left"></i> Previous</a></li> <li class="current">1</li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li class="next"><a href="#">Next <i class="fa fa-angle-right"></i></a></li> </ul> </div> </div> <!-- Shop Toolbar End --> </div> * `shop,js` function getProduct(page = 1, limit = 9) { let searchName = sessionStorage.getItem("searchName"); let searchId = sessionStorage.getItem("searchId"); console.log(searchId); if (!isNull(searchName)){ $("#searchName").val(searchName); }else{ searchName = ""; } if (!isNull(searchId)){ $("#searchId").val(searchId); $(".list li[data-value=1]").removeClass("selected"); $(".top-cat .current").text($('#searchId').find('option:selected').text()); $(".list li[data-value='"+searchId+"']").addClass("selected focus"); } let data = { "page": page, "limit": limit, "name": searchName, "id": searchId, } $.ajax({ type: "GET", //方法类型 dataType: "json", //预期服务器返回的数据类型 url: "/goods/list", data: data, success: function (result) { if (result.status == 200) { shouProduct(result.data.list, result.data.totalCount, result.data.currPage, result.data.totalPage); } else if (result.status == 404) { console.log("getProduct: 404----"+result.msg); //location.href = "404.html"; return; } else { alert(result.msg); } }, error: function () { //location.href="404.html"; console.log("接口异常"); return; } }); } function getContent(goods) { return str = `<div class="col-12 mb-20"> <div class="item-product pt-0"> <div class="product-thumb"> <a href="#"> <img src="${ goods.main_image}" alt="" class="img-fluid"> </a> <div class="action-link"> <a class="quick-view same-link" href="#" title="查看详情" οnclick="shopDetail(${ goods.id})"><i class="zmdi zmdi-eye zmdi-hc-fw"></i></a> <a class="compare-add same-link" href="#" title="查找类似产品"><i class="zmdi zmdi-refresh-alt"></i></a> <a class="wishlist-add same-link" href="#" title="添加到心愿单"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> </div> <div class="product-caption"> <div class="product-name"> <a href="#" οnclick="shopDetail(${ goods.id})" >${ goods.name}</a> </div> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <div class="price-box"> <span class="regular-price">${ goods.price}</span> </div> <div class="cart"> <div class="add-to-cart"> <a href="#" title="添加到购物车" οnclick="addCart(${ goods.id})"><i class="zmdi zmdi-shopping-cart-plus zmdi-hc-fw"></i></a> </div> </div> </div> <div class="grid-list-caption align-items-center"> <div class="product-name"> <a href="#" οnclick="shopDetail(${ goods.id})">${ goods.name}</a> </div> <div class="rating"> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> <span class="yellow"><i class="fa fa-star"></i></span> </div> <div class="price-box"> <span class="regular-price">${ goods.price}</span> </div> <p>${ goods.detail}</p> <div class="text-available"> <p><strong>库存量:</strong><span>${ goods.stock}</span></p> </div> <div class="action-link"> <a class="quick-view same-link" href="#" title="查看详情" οnclick="shopDetail(${ goods.id})"><i class="zmdi zmdi-eye zmdi-hc-fw"></i></a> <a class="compare-add same-link" href="#" title="查找相似产品"><i class="zmdi zmdi-refresh-alt"></i></a> <a class="wishlist-add same-link" href="#" title="添加到心愿单"><i class="zmdi zmdi-favorite-outline zmdi-hc-fw"></i></a> </div> <div class="cart-list-button"> <a href="#" class="cart-btn" οnclick="addCart(${ goods.id})">添加到购物车</a> </div> </div> </div> </div>` } function shouProduct(data, totalCount, currPage, totalPage) { $list = $(".shop-wrapper"); $list.empty(); for (let i = 0, len = data.length; i < len; ++i) { $list.append(getContent(data[i])); } $(".page-amount p").text("共搜索到数据:" + totalCount + " 条"); $pagination = $(".pagination ul"); $pagination.empty(); if (currPage == 1) { $pagination.append('<li class="previous"><a href="#" οnclick=><i class="fa fa-angle-left"></i>上一页</a></li>'); } else { $pagination.append(`<li class="previous"><a href="#" οnclick="getProduct(${ currPage-1})"><i class="fa fa-angle-left"></i>上一页</a></li>`); } if (totalPage <= 5||(currPage<3)) { for (let i = 1; i <= totalPage &&i<5; ++i) { if (i == currPage) { $pagination.append(`<li class="current">${ i}</li>`); } else { $pagination.append(`<li><a href="#" οnclick="getProduct(${ i})">${ i}</a></li>`); } } } else if(currPage>=3){ $pagination.append(`<li><a href="#" οnclick="getProduct(${ currPage-2})">${ currPage-2}</a></li>`); $pagination.append(`<li><a href="#" οnclick="getProduct(${ currPage-1})">${ currPage-1}</a></li>`); $pagination.append(`<li class="current">${ currPage}</li>`); if(currPage+1<=totalPage){ $pagination.append(`<li><a href="#" οnclick="getProduct(${ currPage+1})">${ currPage+1}</a></li>`); } if(currPage+2<=totalPage){ $pagination.append(`<li><a href="#" οnclick="getProduct(${ currPage+2})">${ currPage+2}</a></li>`); } } if (currPage == totalPage) { $pagination.append('<li class="previous"><a href="#" οnclick=><i class="fa fa-angle-right"></i>下一页</a></li>'); } else { $pagination.append(`<li class="previous"><a href="#" οnclick="getProduct(${ currPage+1})"><i class="fa fa-angle-right"></i>下一页</a></li>`); } } $(function () { checkUsername(); checkCart(); getProduct(); }); ### 购物车 ### * `shopping-cart.html` <div class="cart-area"> <div class="container"> <div class="row"> <div class="col-lg-12"> <form action="#" class="cart-form"> <!-- Cart Title Start --> <div class="cart-title"> <h5 class="last-title mt-50 mb-20">购物车</h5> </div> <!-- Cart Title End --> <!-- Cart Table Area Start --> <div class="table-desc"> <div class="cart-page table-responsive"> <table> <thead> <tr> <th class="product-remove">选中</th> <th class="product-image">图片</th> <th class="product-name">产品名</th> <th class="product-price">产品价格</th> <th class="product-quantity">购买数量</th> <th class="product-remove">删除</th> </tr> </thead> <tbody> <tr> <td class="product-remove"><input type="checkbox" name="" id=""></td> <td class="product-image"><a href="#"><img src="assets/images/feature/feature-4.jpg" alt=""></a></td> <td class="product-name"><a href="#">Natus erro at congue massa commodo sit dignissim</a></td> <td class="product-price">£65.00</td> <td class="product-quantity"><label>Quantity</label> <input min="1" max="100" value="1" type="number" default="1"></td> <td class="product-remove"><a href="#"><i class="fa fa-trash-o"></i></a></td> </tr> </tbody> </table> </div> <div class="cart-submit"> <input type="checkbox" onclick="selectAll(this)" id="selAll"> <label for="selAll">全选</label> <button type="button" class="btn btn-info" onclick="saveAll()">保存信息</button> <button type="button" class="btn btn-success" onclick="buy()">购买</button> </div> </div> <!-- Cart Table Area End --> <!-- Coupon Area Start --> <!-- <div class="coupon-area"> <div class="row"> <div class="col-lg-6 col-md-6"> <div class="coupon-code left"> <h3>Coupon</h3> <div class="coupon-inner"> <p>Enter your coupon code if you have one.</p> <input placeholder="Coupon code" type="text"> <button type="submit">Apply coupon</button> </div> </div> </div> <div class="col-lg-6 col-md-6"> <div class="coupon-code right"> <h3>Cart Totals</h3> <div class="coupon-inner"> <div class="cart-subtotal"> <p>Subtotal</p> <p class="cart-amount">£215.00</p> </div> <div class="cart-subtotal "> <p>Shipping</p> <p class="cart-amount"><span>Flat Rate:</span> £255.00</p> </div> <a href="#">Calculate shipping</a> <div class="cart-subtotal"> <p>Total</p> <p class="cart-amount">£215.00</p> </div> <div class="checkout-btn"> <a href="#">Proceed to Checkout</a> </div> </div> </div> </div> </div> </div> --> <!-- Coupon Area End --> </form> </div> </div> </div> </div> * `cart.js` function getProduct(ids){ console.log(ids); $.ajax({ type: "GET", //方法类型 dataType: "json", //预期服务器返回的数据类型 url: "/goods/gets", traditional: true, // 取消jquery序列化时的深度序列化 data:{ "ids":ids}, success: function(result) { if (result.status == 200){ showData(result.data); }else if(result.status == 404){ location.href="404.html"; //console.log(result.msg+"----getProduct"); return; }else{ console.log(result.msg); return null; } }, error: function() { location.href="404.html"; //console.log("接口异常"); return; } }); } function getCartByUser(token,ids){ $.ajax({ type: "GET", //方法类型 dataType: "json", //预期服务器返回的数据类型 url: "/cart/getlist", data:{ "ids":ids}, traditional: true, // 取消jquery序列化时的深度序列化 beforeSend: function (request) { request.setRequestHeader("token", token); }, success: function (result) { if (result.status ==200){ showData(result.data.CartProductVoList); } else if (result.status == 404) { location.href = "404.html"; //console.log(result.msg+"----getCartByUser") return; }else{ alert(result.msg); } }, error: function () { location.href="404.html"; //console.log("接口异常"); return; } }); } function getContent(good,index){ return `<tr><td class="product-id"><input type="checkbox" value="${ good.id}"></td> <td class="product-image"><a href="#"><img src="${ good.product_main_image}" alt="" style="height:100px;width:100px;"></a></td> <td class="product-name"><a href="#">${ good.product_name}</a></td> <td class="product-price">¥${ good.product_price}</td> <td class="product-quantity"><label>Quantity</label> <input min="1" max="${ good.product_stock}" value="${ good.quantity}" defaultValue="${ good.quantity}" type="number"></td> <td class="product-remove"><a href="#" οnclick="delCart(${ good.id},${ index})"><i class="fa fa-trash-o"></i></a></td></tr>` } function showData(data){ //console.log(data); if(isNull(data)){ return; } $.cookie("goodCartIdLen",data.length); $table=$(".table-desc tbody"); $table.empty(); for(let i=0, len = data.length; i < len; ++i){ $table.append(getContent(data[i],i)); } } function delCart(id,index){ let token = sessionStorage.getItem("token"); let len = $.cookie("goodCartIdLen")-1; $.cookie("goodCartIdLen",len); if (isNull(token)) { let idList = $.cookie("goodCartId").split(","); idList.splice(index,1); $(".table-desc tbody tr:eq("+index+")").remove(); return ; } $.ajax({ type: "DELETE", //方法类型 dataType: "json", //预期服务器返回的数据类型 url: "/cart/del/"+id, beforeSend: function (request) { request.setRequestHeader("token", token); }, success: function (result) { if (result.status ==200){ $(".table-desc tbody tr:eq("+index+")").remove(); return ; } else if (result.status == 404) { location.href = "404.html"; //console.log(result.msg+"---delCart"); return; }else{ alert(result.msg); } }, error: function () { location.href="404.html"; //console.log("接口异常"); return; } }); } function getData(){ let token = sessionStorage.getItem("token"); let ids = $.cookie("goodCartId"); let idList ; if(isNull(ids)){ idList = []; }else{ idList = ids.split(); } if (isNull(token)) { getProduct(idList); } else { getCartByUser(token,idList); $.cookie("goodCartId",null); } } function selectAll(check) { $(".table-desc tbody input[type=checkbox]").prop("checked",check.checked); } $(function(){ checkUsername(); getData(); }); function saveCart(id,num,index){ let token = sessionStorage.getItem("token"); if (isNull(token)) { alert("登录已过期,修改信息请先登录"); window.location.href = "login.html"; return; } $.ajax({ type: "PUT", //方法类型 dataType: "json", //预期服务器返回的数据类型 url: "/cart/update/"+id, contentType: "application/json; charset=utf-8", data: JSON.stringify({ "num":num}), beforeSend: function (request) { //设置header值 request.setRequestHeader("token", token); }, success: function (result) { if (result.status == 404) { //console.log("saveCart----"+result.msg); location.href = "404.html"; return; } else if (result.status == 200) { $(".table-desc tbody tr .product-quantity:eq("+index+") input").attr("defaultValue",num); } }, error: function () { //console.log("接口异常----saveCart"); location.href="404.html"; return; } }); } function saveAll(){ $(".table-desc tbody tr").each(function(index){ let defaultValue = $(".table-desc tbody tr .product-quantity:eq("+index+") input").attr("defaultValue"); let num = $(".table-desc tbody tr .product-quantity:eq("+index+") input").val(); console.log("saveAll---"+defaultValue+"---"+num); if (defaultValue != num){ let id = $(".table-desc tbody tr .product-id:eq("+index+") input").val(); console.log("id----"+id); saveCart(id,num,index); } }); return false; } /** * @description 当用户选择某几个商品时可以进行购买,先检查登录,验证是否选择, * 并对信息进行保存,再发送请求,处理成功后可以跳转到登录页 */ function buy(){ let token = sessionStorage.getItem("token"); if (isNull(token)) { alert("登录已过期,修改信息请先登录"); window.location.href = "login.html"; return; } let a = []; $(".product-id input[type=checkbox]").each(function(index){ if($(this).prop('checked')){ console.log(index+"---"+$('.product-quantity input:eq('+index+')')); a.push({ "id":$(this).val(),"quantity":$('.product-quantity input:eq('+index+')').val()}); } }); if (a.length == 0){ return ; } $.ajax({ type: "POST", //方法类型 dataType: "json", //预期服务器返回的数据类型 url: "/order/add", contentType: "application/json; charset=utf-8", data: JSON.stringify(a), beforeSend: function (request) { request.setRequestHeader("token", token);//设置header值 }, success: function (result) { console.log(result); if (result.status == 200) { sessionStorage.setItem("orderId",result.data); if(confirm("前往订单详情页查看")){ location.href="orderDetail.html"; }else{ getCartByUser(token); } //console.log(result); } else if (result.status == 404) { console.log("buy---"+result.msg); //window.location.href = '404.html'; } }, error: function () { console.log("接口异常----buy"); //location.href="404.html"; return; } }); }
相关 畅购电商项目 1. 电商项目架构图 -------------------- 技术框架/技术选型 1.1 系统架构 ![b7df8ec6234340b2b3624095 妖狐艹你老母/ 2023年10月04日 21:27/ 0 赞/ 98 阅读
相关 睿乐购电商课程设计——商品模块 睿乐购电商课程设计——商品模块 商品详情页 商品搜索页 购物车 商品详情页 `detail.j ﹏ヽ暗。殇╰゛Y/ 2023年02月23日 03:38/ 0 赞/ 62 阅读
相关 睿乐购电商课程设计——用户模块 睿乐购电商课程设计——用户模块 mapper service control mapper 用 谁借莪1个温暖的怀抱¢/ 2023年02月22日 13:33/ 0 赞/ 53 阅读
相关 电商商城-商品模块数据库设计 文章目录 行业概念介绍 数据库设计 调研的高Star开源作品 行业概念介绍 SPU:标准化产品单元( 小灰灰/ 2022年09月02日 11:55/ 0 赞/ 335 阅读
相关 Java电商项目面试--商品模块 > 面试:商品模块技术要点 > 1、POJO、BO、VO抽象模型 > 2、高效分页及动态排序 > 3、FTP服务对接、富文本上传 一、商品模块功能 前台功能: 骑猪看日落/ 2021年09月27日 08:34/ 0 赞/ 714 阅读
相关 移动电商——Flutter-商品推荐模块编写 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ub 小咪咪/ 2021年07月25日 18:56/ 0 赞/ 495 阅读
还没有评论,来说两句吧...