AngularJS排序+模糊查询+批量删除+添加列表

来源:互联网 发布:c语言死循环 编辑:程序博客网 时间:2024/05/16 00:38
<!DOCTYPE html>
<html>
            <!--/*
             * 需求分析
             * 先定义数组 将数组信息利用ng-repeat遍历存进表格中
             * 实现过滤功能  利用filter过滤器进行信息的过滤 包括姓名和手机号以及发货状态进行过滤
             * 排序  利用orderBy 点击按钮时排序的方式改变
             * 发货与已发货状态变化 利用隐藏和显示
             * 添加信息时 使用验证 如果成功 则存进表格  不正确则存不进去
             *
             * */-->
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .bt1{
                background-color: deepskyblue;
            }
            td{
                border: 1px solid black;
            }
            .true{
                background: greenyellow;
                border: 0px;
                border-radius: 3px;
            }
            .false{
                background: yellow;
                border: 0px;
                border-radius: 3px;
            }
            thead tr{
                background-color: #999;
            }
            tbody tr:nth-child(2n){
                background-color: #eee;
            }
            tbody tr:hover{
                background-color: deepskyblue;
            }
            tfoot tr td{
                border: none;
            }
        </style>
        <script type="text/javascript" src="js/jquery-1.11.1.min.js" ></script>
        <script type="text/javascript" src="js/angular.min.js" ></script>
        <script type="text/javascript">
            var app=angular.module("myapp",[]);
            app.controller("mycont",["$scope","$filter",function($scope,$filter){
                $scope.good=[{
                        xuan: false,
                        id: 1,
                        sname: '小米3',
                        yname: '张三',
                        num: '13211111111',
                        price: 8999,
                        city: '北京',
                        ss: '11230852',
                        zt: false
                    },
                    {
                        xuan: false,
                        id: 2,
                        sname: '小米4',
                        yname: '李四',
                        num: '13222222222',
                        price: 4999,
                        city: '上海',
                        ss: '11210852',
                        zt: false
                    },
                    {
                        xuan: false,
                        id: 3,
                        sname: '小米5',
                        yname: '王五',
                        num: '13233333333',
                        price: 6999,
                        city: '北京',
                        ss: '11230452',
                        zt: false
                    },
                    {
                        xuan: false,
                        id: 4,
                        sname: '红米Note2',
                        yname: '赵六',
                        num: '13244444444',
                        price: 2999,
                        city: '上海',
                        ss: '11210552',
                        zt: false
                    },
                    {
                        xuan: false,
                        id: 5,
                        sname: '红米Note4',
                        yname: '刘七',
                        num: '13255555555',
                        price: 1999,
                        city: '北京',
                        ss: '11230752',
                        zt: false}];
                $scope.goods=$scope.good;
                //使用AngularJS过滤器实现搜索功能。
                //在订单搜索框中,输入商品名称可以动态按商品名称进行查询列表信息;
//                在输入框中输入用户手机号即可根据用户手机
//                动态查询出符合要求的信息。
                $scope.chazt=function(cha3){
                    $scope.goods=$scope.good;
                    var xun=[];
                    if ($scope.cha3=="已发货") {
                        for (var i=0;i<$scope.goods.length;i++) {
                            if($scope.goods[i].zt){
                                xun.push($scope.goods[i]);
                            }
                        }
                    } else{
                        for (var i=0;i<$scope.goods.length;i++) {
                            if($scope.goods[i].zt==false){
                                xun.push($scope.goods[i]);
                            }
                        }
                    }
                    $scope.goods=xun;
                }
                
                //用户点击下拉菜单选择”已发货”则查询出已发货的所有订单
                $scope.fahuo=function($index){
                    $scope.goods[$index].zt=true;
                }
//                实现订单批量删除功能。用户只能删除已发货订单,不能删除未发货订单,用户点击多个已发货订单时可以批量删除选中订单
                $scope.piliang=function(){
                    
                    for (var i=0;i<$scope.goods.length;i++) {
                        
                            if($scope.goods[i].zt==true&&$scope.goods[i].xuan==true){
//                                alert("asdfvbn");
                                $scope.goods.splice(i,1);
                                i--;
                            }
                        }
                }
//                订单列表展示用户可以根据订单ID或商品价格或订单时间进行排序。当用户第一次点击排序时按正序排列,再点击排序时则按倒序排列。
                //根据ID排序
               var idp=true;
                $scope.pai1=function(){
                    if (idp) {
                        $scope.goods.sort(function(a,b){
                            return a.id-b.id;
                        })
                    } else{
                        $scope.goods.sort(function(a,b){
                            return b.id-a.id;
                        })
                    }
                    idp=!idp;
                }
                //根据价格排序
                var price_p=true;
                $scope.pai2=function(){
                    if (price_p) {
                        $scope.goods.sort(function(a,b){
                            return a.price-b.price;
                        })
                    } else{
                        $scope.goods.sort(function(a,b){
                            return b.price-a.price;
                        })
                    }
                    price_p=!price_p;
                }
                //根据时间排序
                var ss_p=true;
                $scope.pai3=function(){
                    if (ss_p) {
                        $scope.goods.sort(function(a,b){
                            return a.ss-b.ss;
                        })
                    } else{
                        $scope.goods.sort(function(a,b){
                            return b.ss-a.ss;
                        })
                    }
                    ss_p=!ss_p;
                }
                
                //添加
                $scope.add=function(){
                    $scope.bb=true;
                    $(".t1").hide();
                    $(".tt1").blur(function(){
                        if ($scope.ssn==null||$scope.ssn=="") {
                            $(".t1").show();
                            $(".tt1").css("border","1px solid red");
                            
                        } else{
                            $(".t1").hide();
                            $(".tt1").css("border","1px solid #000");
                            
                        }
                        
                    })
                    $scope.tijia=function(){
                        $scope.bb=false;
                    }
                }
            }])
            
            
//            用户可以根据订单状态过滤订单信息,订单状态有二种,分别是已发货,未发货
                app.filter("myfahuo",function(){
                    return function(button){
                        if (button) {
                            return "已发货"
                        } else{
                            return "未发货"
                        }
                        return button;
                    }
                })
        </script>
    </head>
    <body ng-app="myapp" ng-controller="mycont">
        <button class="bt1" ng-click="add()">新增订单</button>
        <button class="bt1" ng-click="piliang()">批量删除</button>
        <input type="text" ng-model="cha1" placeholder="按商品名查询" style="margin-left: 100px;"/>
        <input type="text" ng-model="cha2" placeholder="按手机号查询" />
        <select style="margin-left: 100px;" ng-change="chazt(cha3)"  ng-model="cha3" ng-init="cha3='-按状态查询-'">
            <option>-按状态查询-</option>
            <option>已发货</option>
            <option>未发货</option>
        </select><br />
        <table width="800px" cellpadding="0px" cellspacing="0px" border="1px">
            <thead>
                <tr>
                    <td><input type="checkbox"/></td>
                    <td>id<button class="bt1" ng-click="pai1()">排序</button></td>
                    <td>商品名</td>
                    <td>用户名</td>
                    <td>手机号</td>
                    <td>价格<button class="bt1"  ng-click="pai2()">排序</button></td>
                    <td>城市</td>
                    <td>下单时间<button class="bt1"  ng-click="pai3()">排序</button></td>
                    <td>状态</td>
                </tr>
            </thead>
            <tbody>
                <tr ng-repeat="g in goods | filter:{sname:cha1,num:cha2}">
                    <td><input type="checkbox" ng-model="g.xuan" /></td>
                    <td>{{g.id}}</td>
                    <td>{{g.sname}}</td>
                    <td>{{g.yname}}</td>
                    <td>{{g.num}}</td>
                    <td>{{g.price|currency:'¥'}}</td>
                    <td>{{g.city}}</td>
                    <td>{{g.ss| date:'MM-dd hh:mm:ss'}}</td>
                    <td><button class="{{g.zt}}" ng-click="fahuo($index)">{{g.zt|myfahuo}}</button></td>
                </tr>
            </tbody>
            
        </table>
        <table ng-show="bb">
            <tfoot>
                <tr>
                <td>商品名</td>
                <td><input type="text" ng-model="ssn" class="tt1"/></td>
                <td class="t1" style="color: red;">输入框不得为空</td>
            </tr>
            <tr>
                <td>用户名</td>
                <td><input type="text" ng-model="yyn" /></td>
                <td ng-show="t2" style="color: red;">输入框不得为空</td>
            </tr>
            <tr>
                <td>手机号</td>
                <td><input type="text" ng-model="sss" /></td>
                <td ng-show="t3" style="color: red;">输入框不得为空</td>
            </tr>
            <tr>
                <td>价格</td>
                <td><input type="text" ng-model="pp" /></td>
                <td ng-show="t4" style="color: red;">输入框不得为空</td>
            </tr>
            <tr>
                <td>城市</td>
                <td><select ng-model="cc" />
                    <option>北京</option>
                    <option>上海</option>
                </select></td>
                <td ng-show="t5" style="color: red;">输入框不得为空</td>
            </tr>
            
            
            <tr>

                <td colspan=""><input type="button" value="提交" ng-click="tijia(bb)" /></td>
            </tr>
            </tfoot>
        </table>
    </body>
</html>
原创粉丝点击