商品增加和查询、排序、批量删除、批量发货

本文介绍了一个使用AngularJS实现的商品管理应用案例,包括商品信息的增删改查、批量操作及排序过滤等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../ionic_jiabao/js/ionic.bundle.js"></script>
    <style>
        *{
            text-align: center;
        }
        table{
            border-collapse: collapse;
            margin: 20px auto;
        }
        th,td{
            padding: 10px;
            border: 1px solid #000000;
        }
        .select {
            margin-top: 8px;
            margin-right: 30px;
            height: 25px;
            border-radius: 10px;
        }
    </style>
    <script>
        var myapp = angular.module("myapp",[]);
        myapp.controller("myCtrl",function ($scope) {
            $scope.title="state";
            $scope.desc=false;

            $scope.goods=[];
            for (var i=1;i<5;i++){
                var g={
                    "checked":false,
                    "id":i,
                    "gname":"云南白药"+i,
                    "address":"云南",
                    "state":"发货",
                    "regDate":new Date(),
                    "price":100+i
                };
                var g2={
                    "checked":false,
                    "id":10+i,
                    "gname":"云南白药"+i,
                    "address":"云南",
                    "state":"已发货",
                    "regDate":new Date("2016-"+i+"-1 13:18:41"),
                    "price":100+i
                };
                $scope.goods.push(g);
                $scope.goods.push(g2);
            }
            //全选
            $scope.ckAll=function () {
                var ck=$scope.isck;// 表头中的复选框
                for(var i=0;i<$scope.goods.length;i++){
                    $scope.goods[i].checked=ck;
                }
            }
            //批量删除
            $scope.delAll=function () {
                var b=false;
                for (var i=0;i<$scope.goods.length;i++){
                    if ($scope.goods[i].checked==true){
                        b=true;
                        break;
                    }
                }
                console.log("是否有选择",b);
                //执行删除操作
                if (b==true){
                    for (var i=0;i<$scope.goods.length;i++){
                        if ($scope.goods[i].checked==true){
                            $scope.goods.splice(i,1);
                            i--;//删除后,下次依然从当前索引开始
                        }
                    }
                } else {
                    alert("请先选择后操作");
                }
            }
            //批量发货
            $scope.fhAll=function () {
                var b=false;//默认没有选中的
                for (var i=0;i<$scope.goods.length;i++){
                    if ($scope.goods[i].checked==true){
                        b=true;
                        break;
                    }
                }
                console.log("是否有选选择",b);
                //执行发货的操作
                if (b==true){
                    for (var i=0;i<$scope.goods.length;i++){
                        if ($scope.goods[i].checked==true){
                            $scope.goods[i].state="已发货";
                        }
                    }
                } else {
                    alert("请先选择后操作");
                }
            }
            //单个删除
            $scope.del=function (g) { //当前删除行的对象
                for (var i=0;i<$scope.goods.length;i++){
                    if ($scope.goods[i].id==g.id){ //查找当前删除的对象在数组的索引
                        $scope.goods.splice(i,1);
                    }
                }
            }
        })
    </script>
</head>
<body ng-app="myapp" ng-controller="myCtrl">
<input type="text" placeholder="输入关键字搜索" ng-model="select" class="select">
<button ng-click="delAll()">批量删除</button>
<button ng-click="fhAll()">批量发货</button>
<table>
    <tr style="background: #999999">
        <td><input type="checkbox" ng-model="isck" ng-change="ckAll()" /></td>
        <th ng-click="title='gname'; desc=!desc">商品名称</th>
        <th ng-click="title='address'; desc=!desc">商品产地</th>
        <th ng-click="title='price'; desc=!desc">商品价格</th>
        <th ng-click="title='regDate'; desc=!desc">生产日期</th>
        <th>状态</th>
        <th>操作</th>
    </tr>
    <tbody>
    <tr ng-repeat="good in goods|orderBy:title:desc">
        <td><input type="checkbox" ng-model="good.checked"></td>
        <td>
            <span ng-hide="good.edit">{{good.gname}}</span>
            <span ng-show="good.edit==true"><input ng-model="good.gname"></span>
        </td>
        <td>{{good.address}}</td>
        <td>{{good.price}}</td>
        <td>{{good.regDate|date:"yyyy年MM月dd日 HH时mm分ss秒"}}</td>
        <td>
            <span ng-show="good.state=='已发货'">
            {{good.state}}</span>
            <span ng-show="good.state=='发货'">
                <a href="#" ng-click="good.state='已发货'">{{good.state}}</a>
            </span>
        </td>

        <td><button ng-click="del(good)">删除</button> |
            <button ng-hide="good.edit" ng-click="good.edit=true">修改</button>
            <button ng-show="good.edit==true" ng-click="good.edit=false">保存</button></td>
    </tr>
    </tbody>
</table>
</body>
</html>


第二个
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>商品管理系统</title>

    <script src="../angular-1.5.5/angular.min.js"></script>
    <style>
        table tr{
            border: 1px solid;
        }
        body{
            width: 800px;
            margin: 0 auto;
        }
        table tr:nth-child(2n){
            background-color: #CCCCCA;
        }
    </style>
    <script>
        angular.module("myapp",[])
            .controller("demoC",function($scope){
                //新增区域默认不显示
                $scope.showadd=false;
                $scope.title="state";
                $scope.desc=false;  //默认false升  true降
                //数组
                $scope.goods=[];
                for(var i=1;i<5;i++){
                    var g={
                        "checked":false,   //复选是否被选中
                        "id":i,
                        "gname":"云南白药"+i,
                        "address":"云南",
                        "state":"发货",
                        "regDate":new Date(),
                        "price":100+i
                    };
                    var g2={
                        "checked":true,
                        "id":10+i,
                        "gname":"云南白药"+i,
                        "address":"云南",
                        "state":"已发货",
                        "regDate":new Date("2016-"+i+"-1 3:01:02"),
                        "price":100+i
                    };
                    $scope.goods.push(g);
                    $scope.goods.push(g2);
                }
                //全选操作
                $scope.ckAll=function(){
                    var ck=$scope.isck;// 表头中的复选框
                    for(var i=0;i<$scope.goods.length;i++){
                        $scope.goods[i].checked=ck;
                    }
                }
                $scope.delAll=function(){
                    var b=false; //默认么有选中的
                    for(var i=0;i<$scope.goods.length;i++){
                        if($scope.goods[i].checked==true){
                            b=true;
                            break;
                        }
                    }
                    console.log("是否有选择",b);
                    //执行删除操作
                    if(b==true){
                        for(var i=0;i<$scope.goods.length;i++){
                            if($scope.goods[i].checked==true){
                                $scope.goods.splice(i,1);
                                i--;  //删除后,下次依然从当前索引开始
                            }
                        }
                    }else{
                        alert("请选择后操作");
                    }
                }
                //批量发货
                $scope.fhAll=function(){
                    var b=false; //默认么有选中的
                    for(var i=0;i<$scope.goods.length;i++){
                        if($scope.goods[i].checked==true){
                            b=true;
                            break;
                        }
                    }
                    console.log("是否有选择",b);
                    //执行删除操作
                    if(b==true){
                        for(var i=0;i<$scope.goods.length;i++){
                            if($scope.goods[i].checked==true){
                                $scope.goods[i].state="已发货";
                            }
                        }
                    }else{
                        alert("请选择后操作");
                    }
                }
                //单个删除
                $scope.del=function(g){  //当前删除行的对象
                    for(var i=0;i<$scope.goods.length;i++){
                        if($scope.goods[i].id==g.id){   //查找当前删除的对象在数组中的索引
                            $scope.goods.splice(i,1);  //
                        }
                    }
                }
                $scope.savegood=function(){
                    $scope.tips=false;  //控制错误信息是否显示
                    $scope.valArr=[];
                    //商品名  地址   价格
                    if($scope.gname==undefined||$scope.gname==""){
                        $scope.valArr.push("用户名不能为空");
                    }else if(!($scope.gname.length>2 && $scope.gname.length<10)){
                        $scope.valArr.push("用户名长度在2到10");
                    }
                    if($scope.address==undefined || $scope.address==""){
                        $scope.valArr.push("地址不能为空");
                    }
                    //数字   /^\d+$/
                    if(! /^\d+$/.test($scope.price)){
                        $scope.valArr.push("价格必须为有效数字");
                    }
                    if($scope.valArr.length>0){
                        $scope.tips=true;
                    }else{
                        var g2={
                            "checked":false,
                            "id":100,
                            "gname":$scope.gname,
                            "address":$scope.address,
                            "price":$scope.price,
                            "state":"发货",
                            "regDate":new Date()
                        };
                        //添加到数组
                        $scope.goods.push(g2);
                        $scope.showadd=false;
                    }
                }
                $scope.orderby=function(){
                    //获取输入框内容
                    var t=$scope.ordertype;
                    if(t=="1"){
                        $scope.title='price';
                        $scope.desc=false;
                    }else if(t=="2"){
                        $scope.title='price';
                        $scope.desc=true;
                    }else if(t=="3"){
                        $scope.title='regDate';
                        $scope.desc=false;
                    }else if(t=="4"){
                        $scope.title='regDate';
                        $scope.desc=true;
                    }
                }
            })
    </script>
</head>
<body ng-app="myapp" ng-controller="demoC">
<button ng-click="showadd=true">新增</button>
<button ng-click="delAll()">批量删除</button>
<button ng-click="fhAll()">批量发货</button>
<input ng-model="selname" placeholder="根据商品名字查询" />
<input ng-model="seladdress" placeholder="根据商品生成地查询" />
<select ng-model="ordertype" ng-change="orderby()">
    <option value="">请选择排序方式</option>
    <option value="1">商品价格升序</option>
    <option value="2">商品价格降序</option>
    <option value="3">生产日期升序</option>
    <option value="4">生产日期降序</option>

</select>

<table border="1px">
    <tr style="background-color: #787876;">
        <td><input type="checkbox" ng-model="isck" ng-change="ckAll()" /></td>
        <td ng-click="title='gname';desc=!desc">商品名称</td>
        <td ng-click="title='address';desc=!desc">商品产地</td>
        <td ng-click="title='price';desc=!desc">商品价格</td>
        <td ng-click="title='regDate';desc=!desc">生产日期</td>
        <td>状态</td>
        <td>操作</td>
    </tr>

    <tr style="border: 1px;" ng-repeat="good in goods|orderBy:title:desc|filter:{'gname':selname,'address':seladdress}"><!--|orderBy 内置排序过滤  title  desc  是两个变量 -->
        <td><input type="checkbox" ng-model="good.checked" /> </td>
        <td>
            <span ng-hide="good.edit">{{good.gname}} </span>
            <span ng-show="good.edit==true"> <input ng-model="good.gname" />  </span>
        </td>
        <td>{{good.address}}</td>
        <td>{{good.price}}</td>
        <td>{{good.regDate|date:"yyyy年MM月dd日 hh时mm分ss秒"}}</td>
        <td>
            <span ng-show="good.state=='已发货'">
                {{good.state}}
            </span>
            <span ng-show="good.state=='发货'">
                <a href="#" ng-click="good.state='已发货'">
                {{good.state}}
                </a>
            </span>
        </td>
        <td>
            <button ng-click="del(good)">删除</button> |
            <!-- good.gai:true 显示保存 ;   -->
            <button ng-hide="good.edit" ng-click="good.edit=true">修改</button>
            <button ng-show="good.edit==true" ng-click="good.edit=false">保存</button>
        </td>
    </tr>
</table>
<div ng-show="showadd">
    <form>
        商品名:<input ng-model="gname" /><br />
        生产地:<input ng-model="address" /><br />
        价格 : <input ng-model="price" /><br />
        <div style="width: 200px; background-color: pink;">
            <ul>
                <!-- 点击保存时,把不合法的信息都放入数组  valArr -->
                <li ng-repeat="c in valArr ">{{c}}</li>
            </ul>
        </div>
        <button ng-click="savegood()" >保存</button>
    </form>
</div>
</body>
</html>

# 生鲜集市小程序商城开发模板 ## 一、项目概述 “生鲜集市”小程序商城旨在为用户提供便捷的生鲜采购平台,涵盖丰富的生鲜品类,确保新鲜、优质的商品供应。通过简洁易用的界面设计高效的购物流程,提升用户购物体验,同时为商家提供全面的订单管理数据分析功能,助力业务增长。 ## 二、功能模块 ### (一)用户端 1. **商品展示**:以图文形式展示各类生鲜商品,包括水果、蔬菜、肉类、海鲜等,按分类浏览,支持搜索功能,方便用户查找所需商品。提供商品详情页,展示商品规格、产地、保质期、营养成分等信息。 2. **购物车**:用户可将心仪商品加入购物车,在购物车中调整商品数量、选择商品进行结算,支持批量删除商品。显示购物车商品总价,结算时自动计算运费(若有)。 3. **订单管理**:用户可查看所有订单,包括待付款、待发货、运输中、已完成、已取消等状态。对未付款订单进行支付操作,对已发货订单查看物流信息,对已完成订单进行评价。 4. **个人中心**:展示用户基本信息,如头像、昵称、手机号,支持修改个人信息。显示用户积分、优惠券、收藏的商品店铺。提供收货地址管理功能,包括添加、修改、删除地址,设置默认收货地址。支持账户安全设置,如修改密码、绑定第三方账号。 ### (二)商家端 1. **商品管理**:添加、编辑、删除商品信息,包括商品名称、价格、库存、图片、详情描述等。设置商品分类、标签,便于用户筛选。实时查看商品销量、库存预警,及时补货或调整商品策略。 2. **订单管理**:查看所有订单详情,包括订单编号、下单时间、用户信息、商品信息、订单状态等。对订单进行发货操作,填写物流单号;处理售后订单,如退款、换货申请。 3. **数据统计**:分析商品销售数据,如销量、销售额、订单量等,按日、周、月查看趋势图表。查看用户行为数据,如访问量、浏览量、购买转化率,优化商品展示营销策略。 ### (三)后台管理 1. **用户管理**:查看所有用户信息,包括基本信息、账户状态、消费记录等。对违规用户进行封禁、限制操作,保障平台秩序。 2. **商品管理**:审核商家提交的商品信息,确保商品合规、质量达标。对商品进行上下架管理,维护平台商品展示。 3. **订单管理**:监控平台所有订单,处理异常订单,如支付异常、物流异常等。统计订单数据,为运营决策提供支持。 4. **数据统计分析**:综合分析平台数据,包括用户增长、商品销售、订单趋势等,生成报表图表。通过数据挖掘,发现潜在业务机会,优化平台运营策略。 ## 三、页面设计 ### (一)首页 1. **顶部导航栏**:展示小程序名称、搜索框、用户头像(点击可进入个人中心)。 2. **轮播图**:展示热门商品、促销活动等,吸引用户注意力。 3. **商品分类导航**:以图标文字形式展示各类生鲜商品分类,方便用户快速进入相应分类页面。 4. **热门商品推荐**:展示热门、畅销的生鲜商品,包括商品图片、名称、价格、销量等信息,吸引用户购买。 5. **底部导航栏**:包含“首页”“购物车”“订单”“我的”四个功能模块入口。 ### (二)商品分类页 1. **分类列表**:以列表形式展示所有商品分类,每个分类展示分类名称、图标分类下商品数量。 2. **商品列表**:进入具体分类后,展示该分类下的商品列表,包括商品图片、名称、价格、销量等信息,支持按销量、价格等排序。 ### (三)商品详情页 1. **商品图片轮播**:展示商品多角度高清图片,让用户全面了解商品外观。 2. **商品基本信息**:显示商品名称、价格、规格、产地、保质期等信息。 3. **商品详情描述**:详细介绍商品的特点、营养价值、食用方法等。 4. **用户评价**:展示其他用户对该商品的评价评分,帮助用户了解商品口碑。 5. **购买按钮**:包括“加入购物车”“立即购买”按钮,方便用户操作。 ### (四)购物车页 1. **购物车列表**:展示购物车中所有商品,包括商品图片、名称、规格、数量、单价、总价等信息。 2. **商品操作按钮**:支持对商品进行数量增减、删除操作。 3. **全选/反选按钮**:方便用户快速选择或取消选择购物车中的所有商品。 4. **结算按钮**:显示购物车商品总价,点击可进入结算页面。 ### (五)订单页 1. **订单列表**:按订单状态展示所有订单,包括订单编号、下单时间、订单金额、订单状态等信息。 2. **订单详情按钮**:点击可查看订单详细信息,包括商品信息、收货地址、支付方式等。 ### (六)个人中心页 1. **个人信息展示区**:展示用户头像、昵称、手机号,提供“编辑资料”按钮。 2. **功能模块入口**:包括“我的订单”“我的
最新发布
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值