手机案例

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
	<script src="js/angularjs1.4.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script>
	<title></title>
	<script type="text/javascript">
		document.addEventListener('plusready', function() {
			//console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"

		});
	</script>

	<style type="text/css">
		* {
			margin: 0px;
			padding: 0px;
		}
		
		.title {
			display: flex;
			height: 40px;
			background: blue;
			color: white;
			justify-content: center;
			align-items: center;
			font-size: 25px;
		}
		
		.by {
			margin: 5px;
			height: 30px;
			width: 95%;
		}
		
		img {
			height: 60px;
			width: 60px;
		}
		
		table {
			width: 100%;
		}
		
		td {
			border-bottom: 1px solid black;
		}
		/*
		 各行变色
		 tr
		 * */
		
		tr:nth-child(even) {
			background: gainsboro;
		}
		.bottom{
			width: 100%;
		}
		.nav {
			width: 100%;
			height: 40px;
			background: red;
			font-size: 35px;
			display: flex;
			justify-content: center;
			align-items: center;
			font-family: "楷体";
			color: white;
		}
	</style>
     
</head>

<body ng-app="myApp" ng-controller="myCtrl">
	<!--
		标题
	-->
	<div class="main">
			<div class="nav">
				购物车
			</div>
		</div>
	<input type="text" placeholder="名称价格查询" class="by" ng-model="by" />
	<div class="content">
		<input type="checkbox" ng-click="xuan()" style="height: 20px;width: 20px;" />全选/反选
		<input type="button" value="添加商品" ng-click="add()" />
		<input type="button" value="批量删除" ng-click="deleAll()" />
	</div>

	<!--
		清空提示
		ng-show
		true == 0 
	-->
	<div ng-hide="fruits.length">
		购物车为空
	</div>
	<table border="0px" cellspacing="0" cellpadding="0">
		<tr ng-repeat="f in fruits|filter:by">
			<td><input type="checkbox" class="cb" ng-model="f.ck" style="height: 20px;width: 20px;" /></td>
			<td><img src="{{f.picurl}}" /></td>
			<td>
				<div>
					{{f.fname}}
				</div>
				<div style="color: red;">
					价格:{{f.fprice|currency:"¥:"}}
				</div>
				<div>
					<input type="button" value="-" style="height: 30px;width: 30px;" ng-click="jian(f.fname,f.fsum)" />
					<input type="text" value="{{f.fsum}}" />
					<input type="button" value="+" style="height: 30px;width: 30px;" ng-click="jia(f.fname,f.fsum)" />
				</div>
				<div>
					小计:{{f.fsum*f.fprice|currency:"¥:"}}
					<input type="button" value="删除" ng-click="dele(f.fname)" />
				</div>
			</td>
		</tr>
	</table>
	<!--
		下面
	-->
	<div class="bottom">
		<span id="" style="color: red;">
			总计:{{sum()|currency:"¥:"}}
		</span>
		<input type="button" name="" id="" value="清空购物车" ng-click="clear()" />
		<input type="button" name="" id="" value="去结算{{count()}}" style="background: green;" />
	</div>
	<!--
		添加页面
	-->
	<div  ng-show="b_show">
		<center>
			商品名称:<input type="text" placeholder="商品名" ng-model="name12" /><br>
			<span style="color: red;" ng-show="name_show">
				*名字不能为空
			</span>
			<br> 商品数量:
			<input type="text" placeholder="商品数量" ng-model="sum12" /><br>
			<span style="color: red;" ng-show="sum_show">
				*数量大于0
			</span>
			<br> 商品价格:
			<input type="text" placeholder="商品价格" ng-model="price12" /><br>
			<span style="color: red;" ng-show="price_show">
				*价格不能为空
			</span>
			<br>
			<input type="button" id="" value="保存" ng-click="save()" />
		</center>
	</div>
	<script type="text/javascript">
		var mo = angular.module("myApp", []);
		mo.controller("myCtrl", function($scope, $http) {
			//请求网络数据
			$http.get("fruits.json").then(function(res) {
				$scope.fruits = res.data;
			});
			//选择
			$scope.xuan = function() {
				for(var i = 0; i < $scope.fruits.length; i++) {
					var f = $scope.fruits[i];
					f.ck = !f.ck;
				}
			}
			//刪除
			$scope.dele = function(name) {

				var b = confirm("是否要删除?");
				if(b) {
					for(var i = 0; i < $scope.fruits.length; i++) {
						var f = $scope.fruits[i];
						//判斷名字
						if(f.fname == name) {

							$scope.fruits.splice(i, 1);
						}
					}
				}
			}
			//批量刪除
			$scope.deleAll = function() {
				
				//定义一个开关
				var flag = false;

				var b = confirm("是否要删除?");
				if(b) {
					for(var i = $scope.fruits.length - 1; i >= 0; i--) {
						var f = $scope.fruits[i];
						if(f.ck) {
							$scope.fruits.splice(i, 1);
							//只要if能进来,就标明至少有一个复选框被选中了
							flag=true;
						}
					}
					//判断
					if (flag==false) {
						alert("至少选一个!")
					} 
				}
				
				
			}
			//减
			$scope.jian = function(fname, fsum) {

				//减之前,需要判断一下,是否已经是0了
				if(fsum == 0) {
					alert("不能再减了")
					return;
				}

				fsum--;
				for(var i = 0; i < $scope.fruits.length; i++) {
					var f = $scope.fruits[i];
					if(f.fname == fname) {
						f.fsum = fsum;
					}
				}
			}
			//加
			$scope.jia = function(fname, fsum) {
				fsum++;
				for(var i = 0; i < $scope.fruits.length; i++) {
					var f = $scope.fruits[i];
					if(f.fname == fname) {
						f.fsum = fsum;
					}
				}
			}
			//计算总价的方法
			$scope.sum = function() {
				var ss = 0;
				for(var i = 0; i < $scope.fruits.length; i++) {
					var f = $scope.fruits[i];
					var s = f.fprice * f.fsum;
					ss += s;
				}
				return ss;
			}
			//清空购物车
			$scope.clear = function() {
				$scope.fruits = [];
			}
			//計算数量
			$scope.count = function() {
				var ss = 0;
				for(var i = 0; i < $scope.fruits.length; i++) {
					var f = $scope.fruits[i];
					var s = f.fsum*1;
					ss += s;
				}
				return ss;
			}
			//顯示添加頁面
			$scope.add = function() {
				$scope.b_show = true;
			}
			//保存
			$scope.save = function() {
				//驗證名字
				var fname = $scope.name12;
				if(fname == "" || fname == null || fname == undefined) {
					$scope.name_show = true;
					return;
				} else {
					$scope.name_show = false;
				}
				//驗證数量
				var fsum = $scope.sum12;
				if(fsum == "" || fsum == null || fsum == undefined) {
					$scope.sum_show = true;
					return;
				} else {
					$scope.sum_show = false;
				}

				if(fsum <= 0) {
					$scope.sum_show = true;
					return;
				} else {
					$scope.sum_show = false;
				}
				//-------------验证价格-------------
				var fprice = $scope.price12;
				if(fprice == "" || fprice == null || fprice == undefined) {
					$scope.price_show = true;
					return;
				} else {
					$scope.price_show = false;
				}

				if(fprice <= 0) {
					$scope.price_show = true;
					return;
				} else {
					$scope.price_show = false;
				}
				//-------------验证完毕,添加到数组里面
				var obj = {
					"fname": fname,
					"picurl": "https://img.alicdn.com/bao/uploaded/i2/2540254462/TB2ryuaviOYBuNjSsD4XXbSkFXa_!!2540254462.jpg",
					"fprice": fprice,
					"fsum": fsum
				};
				$scope.fruits.push(obj);
				//页面隐藏
				$scope.b_show = false;
			}
		});
	</script>
</body>

猜你喜欢

转载自blog.csdn.net/qq_42609613/article/details/82834152
今日推荐