utils = {
setParam : function (name,value){
var uid = $('#uid').val();
name = name + '_' + uid;
//console.log("set_" + name);
localStorage.setItem(name,value);
},
getParam : function(name){
var uid = $('#uid').val();
name = name + '_' + uid;
//console.log("get_" + name);
return localStorage.getItem(name);
}
};
product={
id:0,
name:"",
num:0,
vipprice:0.00,
saleprice:0.00,
imgurl:""
};
orderdetail={
username:"",
phone:"",
address:"",
zipcode:"",
totalNumber:0,
totalAmount:0.00
};
cart = {
//向購物車中添加商品
addproduct: function (product) {
var ShoppingCart = utils.getParam("ShoppingCart");
if (ShoppingCart == null || ShoppingCart == "") {
//第一次加入商品
var jsonstr = { "productlist": [{ "id": product.id, "name": product.name, "imgurl":product.imgurl, "num": product.num, "vipprice": product.vipprice, "saleprice": product.saleprice}], "totalNumber": product.num, "totalAmount": (product.vipprice * product.num) };
utils.setParam("ShoppingCart", "'" + JSON.stringify(jsonstr));
} else {
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
var result = false;
//查找購物車中是否有該商品
for (var i in productlist) {
if (productlist[i] != null){
if (productlist[i].id == product.id) {
productlist[i].num = parseInt(productlist[i].num) + parseInt(product.num);
result = true;
}
}
}
//沒有該商品就直接加進去
if (!result) {
productlist.push({ "id": product.id, "name": product.name,"imgurl": product.imgurl, "num": product.num, "vipprice": product.vipprice, "saleprice": product.saleprice });
}
//重新計算總價
jsonstr.totalNumber = parseInt(jsonstr.totalNumber) + parseInt(product.num);
jsonstr.totalAmount = parseFloat(jsonstr.totalAmount) + (parseInt(product.num) * parseFloat(product.vipprice));
orderdetail.totalNumber = jsonstr.totalNumber;
orderdetail.totalAmount = jsonstr.totalAmount;
//保存購物車
utils.setParam("ShoppingCart", "'" + JSON.stringify(jsonstr));
}
},
//修改購買商品數量
updateproductnum: function (id, num) {
var ShoppingCart = utils.getParam("ShoppingCart");
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
for (var i in productlist) {
if (productlist[i].id == id) {
jsonstr.totalNumber = parseInt(jsonstr.totalNumber) + (parseInt(num) - parseInt(productlist[i].num));
jsonstr.totalAmount = parseFloat(jsonstr.totalAmount) + ((parseInt(num) * parseFloat(productlist[i].vipprice)) - parseInt(productlist[i].num) * parseFloat(productlist[i].vipprice));
productlist[i].num = parseInt(num);
orderdetail.totalNumber = jsonstr.totalNumber;
orderdetail.totalAmount = jsonstr.totalAmount;
utils.setParam("ShoppingCart", "'" + JSON.stringify(jsonstr));
return;
}
}
},
//獲取購物車中的所有商品
getproductlist: function () {
var ShoppingCart = utils.getParam("ShoppingCart");
console.log(ShoppingCart);
if(ShoppingCart){
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));//如果購物車沒有商品會報錯;??????但照樣可以用;
var productlist = jsonstr.productlist;
orderdetail.totalNumber = jsonstr.totalNumber;
orderdetail.totalAmount = jsonstr.totalAmount;
return productlist;
}else{
return;
}
},
//判斷購物車中是否存在商品
existproduct: function (id) {
var result = false;
var ShoppingCart = utils.getParam("ShoppingCart");
if (ShoppingCart != null) {
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
for (var i in productlist) {
if (productlist[i].id == id) {
result = true;
}
}
}
return result;
},
//刪除購物車中商品
deleteproduct: function (id) {
var ShoppingCart = utils.getParam("ShoppingCart");
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
var list = [];
for (var i in productlist) {
if (productlist[i]){
if (productlist[i].id == id) {
jsonstr.totalNumber = parseInt(jsonstr.totalNumber) - parseInt(productlist[i].num);
jsonstr.totalAmount = parseFloat(jsonstr.totalAmount) - parseInt(productlist[i].num) * parseFloat(productlist[i].vipprice);
} else {
if(productlist[i].id){
list.push(productlist[i]);
}
}
}
}
jsonstr.productlist = list;
orderdetail.totalNumber = jsonstr.totalNumber;
orderdetail.totalAmount = jsonstr.totalAmount;
utils.setParam("ShoppingCart", "'" + JSON.stringify(jsonstr));
},
//獲取購物車中商品數量
getproducttotalnum: function () {
var ShoppingCart = utils.getParam("ShoppingCart");
if (ShoppingCart){
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
return jsonstr.totalNumber;
}else{
return 0;
}
},
//獲取購物車中商品總價
getproducttotalAmount: function () {
var ShoppingCart = utils.getParam("ShoppingCart");
if (ShoppingCart){
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
// var productlist = jsonstr.productlist;
return jsonstr.totalAmount;
}else{
return 0;
}
},
//清除購物車某商品
clearshoppingcar: function (){
localStorage.clear();
}
};
調用方法:cart.clearshoppingcar(); //備注:在ajax中也可以執行該方法; 但在shoppingcar.js 中卻不好封裝ajax方法;