<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../../js/angular.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/jquery-1.8.2.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
angular.module("myapp", []).controller("myctrl", function($scope,$http) {//获取网络请求的数据
//1.从网络获取数据
$http.get("goods.json").then(function(success) {
$scope.goods = success.data;
})
//2.创建下拉选项的数组
$scope.order = ["请选择排序方式", "按商品价格升序", "按商品价格降序", "按生产日期升序", "按生产日期降序"];
$scope.optionName = $scope.order[0];
//3.新增
$scope.flag = false;
$scope.save = function() {
//3.0清空输入框的内容
$(".inp").val("");
//3.1获取到输入的内容
var gname = $scope.gname;
var price = $scope.price;
var address = $scope.address;
//3.2进行验证
if(gname == undefined || gname == "") {
alert("输入的商品名称不能为空");
return;
}
if(price == undefined || price == "") {
alert("输入的商品价格不能为空");
return;
}
if(address == undefined || address == "") {
alert("输入的商品产地不能为空");
return;
}
//3.2合格的添加数据
$scope.goods.push({
checked: false,
gname: gname,
address: address,
id: 1,
regDate: new Date(),
price: price,
state: "发货"
})
//3.3隐藏表单
$scope.flag = false;
}
//4.全选和全不选
$scope.selectAll = function() {
//4.1获取到全选的状态
var ic = $scope.ischeck;
for(var i = 0; i < $scope.goods.length; i++) {
$scope.goods[i].checked = ic;
}
}
//5.单个删除
$scope.del = function(index) {
$scope.goods.splice(index, 1);
}
//6.修改
$scope.update = function(index) {
var value = prompt("请输入修改的内容", $scope.goods[index].price);
$scope.goods[index].price = value;
}
//7.批量删除
$scope.delAll = function() {
for(var i = 0; i < $scope.goods.length; i++) {
if($scope.goods[i].checked == true) {
$scope.goods.splice(i, 1);
i--;
}
}
}
//8.批量发货
$scope.faAll = function() {
for(var i = 0; i < $scope.goods.length; i++) {
if($scope.goods[i].checked == true) {
$scope.goods[i].state = "已发货";
$scope.goods[i].checked = false;
$scope.ischeck = false;
}
}
}
//9排序
$scope.change = function() {
var value = $scope.optionName;
switch(value) {
case "按商品价格升序":
$scope.goods.sort(function(a, b) {
return a.price - b.price;
})
break;
case "按商品价格降序":
$scope.goods.sort(function(a, b) {
return b.price - a.price;
})
break;
case "按生产日期升序":
$scope.goods.sort(function(a, b) {
return a.regDate - b.regDate;
})
break;
case "按生产日期降序":
$scope.goods.sort(function(a, b) {
return b.regDate - a.regDate;
})
break;
default:
break;
}
}
})
</script>
</head>
<body ng-app="myapp" ng-controller="myctrl">
<button ng-click="flag=true">新增</button>
<button ng-click="delAll()">批量删除</button>
<button ng-click="faAll()">批量发货</button>
<input type="text" ng-model="selectName" placeholder="请输入商品名称" />
<input type="text" ng-model="selectProduce" placeholder="请输入商品产地" />
<select ng-model="optionName" ng-options="s for s in order" ng-change="change()">{{s}}</select><br />
<table border="1px" cellspacing="0" cellpadding="0" width="800px">
<tr>
<td><input type="checkbox" ng-model="ischeck" ng-change="selectAll()" /></td>
<td>商品名称</td>
<td>商品产地</td>
<td>商品价格</td>
<td>生产日期</td>
<td>状态</td>
<td>操作</td>
</tr>
<tr ng-repeat="a in goods|filter:{gname:selectName,address:selectProduce}">
<td><input type="checkbox" ng-model="a.checked" /></td>
<td>{{a.gname}}</td>
<td>{{a.address}}</td>
<td>{{a.price|currency:"¥"}}</td>
<td>{{a.regDate|date:"yy年MM月dd日 hh时mm分ss秒"}}</td>
<td>
<span ng-show="a.state=='已发货'">
{{a.state}}
</span>
<span ng-show="a.state=='发货'" ng-click="a.state='已发货'">
<a href="#">{{a.state}}</a>
</span>
</td>
<td><button ng-click="del($index)">删除</button>|<button ng-click="update($index)">修改</button></td>
</tr>
</table>
<form ng-show="flag">
商品名称:<input type="text" ng-model="gname" class="inp" /><br /> 商品价格:
<input type="text" ng-model="price" class="inp" /><br /> 商品产地:
<input type="text" ng-model="address" class="inp" /><br />
<button ng-click="save()">保存</button>
</form>
</body>
</html>