mui寫一個購物車

<!doctype html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>購物車</title>
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<link href="css/mui.min.css" rel="stylesheet" />
		<link rel="stylesheet" type="text/css" href="css/style.css"/>
		<style type="text/css">
			.shopCart:after, .shopCart .logo:after{
				display: table;
				content: '';
				clear: both;
			}
			.shopCart{
				position: fixed;
				bottom: 0;
				width: 100%;
				height: 50px;
				background: #000000;
				z-index: 1;
			}
			.shopCart div{
				float: left;
			}
			.shopCart .left{
				width: 70%;
				height: 50px;
				background: #fff;
			}
			.shopCart .right{
				width: 30%;
				height: 50px;
				line-height: 50px;
				text-align: center;
			    background: #1489EB;
    			color: #fff;
			}
			.shopCart .logo{
				position: relative;
				width: 85px;
				height: 64px;
			}
			.shopCart .logo img{
				position: absolute;
				top: -15px;
				left: 15px;
				width: 70%;
			}
			.shopCart .price{
				line-height: 50px;
				color: #000;
			}
			
			body{
				padding-top: 45px;
				padding-bottom: 45px;
			}
			.mui-input-group .mui-input-row{
				height: auto;
			}
			.mui-card{
				margin: 0;
				background-color: #F1F3F5;
			}
			.mui-checkbox input[type=checkbox]{
				top: 50px;
			}
			
			form{
				margin-top: 5px;
			}
			.mui-checkbox a img{
				margin-left: 58px;
				margin-top: 5px;
				margin-right: 5px;
				width: 100px;
				height: 100px;
			}
			.name{
				color: #4A4A4D;
				padding-top: 2px;
			}
			.money{
				color: #FF5403;
				display: inline-block;
				margin-top: 10px;
			}
			.mui-media-body .mui-numbox{
				width: 90px;
				padding: 0 30px;
			}
			.mui-media-body .mui-numbox input{
				color: #000;
				background: #fff;
			}
			.mui-media-body .mui-numbox button{
				width: 30px;
			}
			.mui-media-body{
				padding-bottom: 5px;
			}
			
			.q-span{
				font-family: 'Helvetica Neue', Helvetica, sans-serif;
			    line-height: 1.1;
			    float: left;
			    font-size: 18px;
			    width: 100%;
			    padding: 11px 15px;
			 	padding-left: 20px;
    			border-bottom: 1px solid #bbb;
			}
		
		</style>
	</head>

	<body>
		<header class="mui-bar mui-bar-nav">
			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
			<h1 class="mui-title">購物車</h1>
			<span id="delShoppingcart" class="mui-icon mui-icon-trash mui-pull-right" style="color: #fff;"></span>
		</header>
				<!--<form class="mui-input-group">
					<div class="mui-row">
						<span class="q-span">xxx超市</span>
					</div>
					<div id="commList">
						<div class="mui-input-row mui-checkbox mui-left">
							<a href="javascript:;">
								<img class=" mui-pull-left" src="http://via.placeholder.com/100x100">
								<div class="mui-media-body">
									<span class="mui-ellipsis-2 name">youcci悠瓷創意鼓型陶瓷杯帶蓋帶勺牛奶杯咖啡杯家用馬克杯子水杯子</span>
									<p class="mui-ellipsis">商品簡介</p>
									<span class="money">¥9.9</span>
									<p class="mui-pull-right">
										<div class="mui-numbox" data-numbox-min="1" >
											<button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
											<input id="test" class="mui-input-numbox" type="number" value="1">
											<button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
										</div>
									</p>
								</div>
							</a>
							<input name="checkbox" value="Item 1" type="checkbox">
						</div>
						<div class="mui-input-row mui-checkbox mui-left">
							<a href="javascript:;">
								<img class=" mui-pull-left" src="http://via.placeholder.com/100x100">
								<div class="mui-media-body">
									<span class="mui-ellipsis-2 name">youcci悠瓷創意鼓型陶瓷杯帶蓋帶勺牛奶杯咖啡杯家用馬克杯子水杯子</span>
									<p class="mui-ellipsis">商品簡介</p>
									<span class="money">¥9.9</span>
									<p class="mui-pull-right">
										<div class="mui-numbox" data-numbox-min="1"  >
											<button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
											<input id="test" class="mui-input-numbox" type="number" value="1">
											<button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
										</div>
									</p>
								</div>
							</a>
							<input name="checkbox" value="Item 1" type="checkbox">
						</div>
					</div>
				</form> -->
				
				
			</div>
			
			
			<div class="shopCart">
			<div class="left">
				<div class="price">
					<div class="mui-input-row mui-checkbox mui-left">
						<label>全選</label>
						<input id="checkAll" type="checkbox" style="top: 10px;">
					</div>
					<span>合計:¥</span>
					<span id="total">0</span>
				</div>
			</div>
			<div class="right" id="pay">去結算</div>
		</div>
		</div>
		
		
		
		<script src="js/mui.min.js"></script>
		<script src="js/jquery-2.1.0.js"></script>
		<script type="text/javascript">
			
			mui.init({
				gestureConfig:{
				    longtap: true, //默認爲false
				}
			})
			
			
			var http=localStorage.getItem("http");
			var userbean=localStorage.getItem("userbean"); 
			
			mui.plusReady(function(){
				
				//queryShoppingcartInfo();//查詢所有的購物車裏面的商品信息
				queryShopList();//查詢出購物車裏面商品對應的超市
				
				queryShopCommList();//查詢超市對應的商品
				
				mui(".mui-numbox").numbox();//初始化數字輸入框
				
			});
			
			//先生成出店(超市)
			function queryShopList(){
				if(userbean=="" || userbean==null){
				    mui.toast("請您登錄後重試");
					return;
				}
				var shoppingName=JSON.parse(userbean).uid;
				mui.ajax(http+"appShopShoppingcart/queryShopListCon?shoppingName="+shoppingName, {
					type:'GET',
					async:  false, // 同步
					dataType: 'json', //服務器返回json格式數據
					timeout: 15000, //15秒超時
					success: function(obj) {
						if(obj.state == 0 || obj.state == "0" ){
							var s=obj.shoplist;
							var shopStr="";
							for(var i=0;i<s.length;i++){
							 	shopStr+=   "<form data-shopid=\""+s[i].business_id+"\" class=\"mui-input-group\">"+
											"	<div class=\"mui-row\">"+
											"		<span class=\"q-span\">"+s[i].shop_name+"</span>"+
											"	</div>"+
											"	<div id=\"commList_"+s[i].business_id+"\">"+
											"	</div>"+
											"</form>";	
							}
							$("#shopList").empty();
							$("#shopList").append(shopStr);
						}else{
							mui.toast('查詢數據失敗');
						}
					},
					error: function(xhr, type, errorThrown) {
						mui.toast('系統錯誤');
					}
				});
				
			}
			
			//查詢商品信息
			function queryShopCommList(){
				if(userbean=="" || userbean==null){
				    mui.toast("請您登錄後重試");
					return;
				}
				var shoppingName=JSON.parse(userbean).uid;
				var f=$("form");
				for(var i=0;i<f.length;i++){
					var shopId = f.eq(i).attr("data-shopid");
					mui.ajax(http+"appShopShoppingcart/queryShoppingcartByTwoCon?shopId="+shopId+"&shoppingName="+shoppingName, {
					async:  false, // 同步
					type:'GET',
					dataType: 'json', //服務器返回json格式數據
					timeout: 15000, //15秒超時
					success: function(obj) {
						if(obj.state == 0 || obj.state == "0" ){
							var s=obj.shopcommlist;
							var str="";
							for(var j=0;j<s.length;j++){
							 	str+="<div class=\"mui-input-row mui-checkbox mui-left\">"+
									"	<a href=\"javascript:;\">"+
									"		<img class=\" mui-pull-left\" src=\""+s[j].picPath+"\">"+
									"		<div data-shcid=\""+s[j].id+"\" data-commid=\""+s[j].comm_id+"\"  class=\"mui-media-body\">"+
									"			<span class=\"mui-ellipsis-2 name\">"+s[j].name+"</span>"+
									"			<p class=\"mui-ellipsis\">"+s[j].explain+"</p>"+
									"			<span class=\"money\">¥"+s[j].present_price+"</span>"+
									"			<p class=\"mui-pull-right\">"+
									"				<div class=\"mui-numbox\" data-numbox-min=\"1\" >"+
									"					<button class=\"mui-btn mui-btn-numbox-minus\" type=\"button\">-</button>"+
									"					<input id=\"test\" class=\"mui-input-numbox\" type=\"number\" value=\"1\">"+
									"					<button class=\"mui-btn mui-btn-numbox-plus\" type=\"button\">+</button>"+
									"				</div>"+
									"			</p>"+
									"		</div>"+
									"	</a>"+
									"	<input name=\"checkbox\" data-p=\""+s[j].present_price+"\" value=\"Item1\" type=\"checkbox\">"+
									"</div>";
							}
							$("#commList_"+shopId+"").append(str);
						}else{
							mui.toast('查詢數據失敗');
						}
					},
					error: function(xhr, type, errorThrown) {
						mui.toast('系統錯誤');
					}
				});
				}
			}
			
			//長按清除單個
			mui("body").on('longtap',".mui-media-body",function(){
				console.log('觸發長按');
				if(userbean=="" || userbean==null){
					mui.toast("請您登錄後重試");
					return;
				}
				var id = $(this).attr("data-shcid");
				console.log(id);
				var btnArray = ['我再想想','確定'];
				mui.confirm('您確定要刪除這商品嗎?', '', btnArray, function(e) {
					console.log(e.index);//
					if (e.index == 1) {//確定
						 mui.ajax(http+"appShopShoppingcart/delShoppingcartById?id="+id, {
							type:'GET',
							dataType: 'json', //服務器返回json格式數據
							timeout: 15000, //15秒超時
							success: function(obj) {
								if(obj.state == 0 || obj.state == "0" ){
									mui.toast('刪除成功');
									//去掉該元素 刷新
									location.reload();
								}else{
									mui.toast('刪除失敗');
								}
							},
							error: function(xhr, type, errorThrown) {
								mui.toast('系統錯誤');
							}
						});	
					}
				})
			})
			
			//右上清空購物車
			mui("body").on('tap','#delShoppingcart',function(){//清空購物車
				if(userbean=="" || userbean==null){
				    mui.toast("請您登錄後重試");
					return;
				}
				var shoppingName=JSON.parse(userbean).uid;
				var btnArray = ['我再想想','確定'];
				mui.confirm('您確定要清空購物車裏的商品?', '', btnArray, function(e) {
					console.log(e.index);//
					if (e.index == 1) {//確定
							mui.ajax(http+"appShopShoppingcart/emptyShoppingcartCon?shoppingName="+shoppingName, {
								type:'GET',
								dataType: 'json', //服務器返回json格式數據
								timeout: 15000, //15秒超時
								success: function(obj) {
									if(obj.state == 0 || obj.state == "0" ){
										mui.toast('已清空所有商品');
										// 刷新
										location.reload();
									}else{
										mui.toast('清空購物車失敗');
									}
								},
								error: function(xhr, type, errorThrown) {
									mui.toast('系統錯誤');
								}
							});					
						
					} // else我再想想
				})	
			}) 
			
			
			//全選、全不選
			document.getElementById('checkAll').addEventListener('change',function(e) {
	            var listBox = $("[name='checkbox']");
	            if (e.target.checked) {
	                listBox.each(function() {
	                    var ele = this;
	                    ele.checked=true
	                })
	               jsTotal();//計算總額
	               
	            } else {
	                listBox.each(function() {
	                    var ele = this;
	                    ele.checked=false
	                    //ele.removeAttribute('checked');
	                })
	                $("#total").text("0");
	            }
	        })
			
			//數量的變化
			mui("body").on('change',".mui-input-numbox",function(){
				jsTotal();//算出總額
			})
			
			//多選框的改變事件
			mui('body').on('change', '[name=checkbox]', function() {
				jsTotal();//算出總額
			});
		
			//算出總額
			function jsTotal(){
			    var listBox = $("[name='checkbox']:checked");
			    var total = 0;
			    if(listBox.length == 0){
			    	$("#total").text(total);
			    }
			    for(var i=0;i<listBox.length;i++){
                	var p = listBox.eq(i).attr("data-p");//單價
                	var n = listBox.eq(i).parent().find(".mui-input-numbox").val();//數量
                	var m = Math.formatFloat(p*n,2);
                	total = Math.formatFloat(total+m,2);
			    }
			    console.log(total);
			    $("#total").text(total);
			}
			
			Math.formatFloat = function(f, digit) { 
			    var m = Math.pow(10, digit); 
			    return parseInt(f * m, 10) / m; 
			} 
			
			
		</script>
	</body>

</html>











發佈了69 篇原創文章 · 獲贊 40 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章