• 校园商铺-8商品模块-11商品列表展示之前端开发


    1.前端展示

    1.1 html文件

    WEB-INF/html/shop/productmanagement.html

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE-edge">
    <title>商品管理</title>
    <meta name="viewport" content="initial-scale=1,maximum-scale=1">
    <link rel="shorcut icon" href="/favicorn.ico" >
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black" >
    <link rel="stylesheet" href="//g.alicdn.com/msui/sm/0.6.2/css/sm.min.css">
    <link rel="stylesheet" href="//g.alicdn.com/msui/sm/0.6.2/css/sm-extend.min.css">
    <link rel="stylesheet" href="../resources/css/shop/productmanagement.css">
    </head>
    <body>
    <header class="bar bar-nav">
    	<h1 class="title">商品管理</h1>
    </header>
    <div class="content">
    	<div class="content-block">
    		<div class="row row-product">
    			<div class="col-33">商品名称</div>
    			<div class="col-20">优先级</div>
    			<div class="col-40">操作</div>
    		</div>
    		<div class="product-wrap">
    			<!-- 以下为拼接
    			<div class=row row-product">
    				<div class="col-33">#{商品名称}</div>
    				<div class="col-20">#{优先级}</div>
    				<div class="col-40">
    					<a href="#">编辑</a>
    					<a href="#">删除</a>
    					<a href="#">预览</a>
    				</div>
    			</div> -->
    		</div>
    	</div>
    	<div class="content-block">
    		<div class="row">
    			<div class="col-50">
    				<a href="/o2o/shopadmin/shopmanagement" class="button button-big button-fill button-danger">返回</a>
    			</div>
    			<div class="col-50">
    				<a href="/o2o/shopamdin/productoperation" class="button button-big button-fill button-success">新增</a>
    			</div>
    		</div>
    	</div>
    </div>
    	<script type='text/javascript'
    		src='//g.alicdn.com/sj/lib/zepto/zepto.min.js' charset='utf-8'></script>
    	<script type='text/javascript'
    		src='//g.alicdn.com/msui/sm/0.6.2/js/sm.min.js' charset='utf-8'></script>
    	<script type='text/javascript'
    		src='//g.alicdn.com/msui/sm/0.6.2/js/sm-extend.min.js' charset='utf-8'></script>
    	<script type='text/javascript'
    		src='../resources/js/shop/productmanagement.js' charset="utf-8"></script>
    </body>
    </html>
    

    1.2 依赖的js文件

    webapp/resources/js/shop/productmanagement.js

    $(function(){
    	//获取此店铺下的商品列表
    	var listUrl = '/o2o/shopadmin/getproductlistbyshop?pageIndex=1&pageSize=999';
    	//商品下架URL
    	var statusUrl = '/o2o/shopadmin/modifyproduct';
    	getList();
    	
    	//获取此店铺下的商品列表
    	function getList(){
    		//从后台获取此店铺的商品列表
    		$.getJSON(listUrl, function(data){
    			if(data.success){
    				var productList = data.productList;
    				var tempHtml = '';
    				//遍历每条商品信息,拼接成一行显示,列信息包括商品名称、优先级、上架/下架(含productId)、编辑(含productId)、预览(含productId)
    				productList.map(function(item,index){
    					var textOp = '下架';
    					var contraryStatus = 0;
    					if(item.enableStatus == 0){
    						//若状态值为0,表明是已下架的商品,操作应为上架
    						textOp = '上架';
    						contraryStatus = 1;
    					}else{
    						contraryStatus = 0;
    					}
    					//拼接每件商品的行信息
    					tempHtml += '<div class="row row-product">'
    						+'<div class="col-33">'+item.productName+'</div>'
    						+'<div class="col-20">'+item.priority+'</div>'
    						+'<div class="col-40">'
    						+'<a href="#" class="edit" data-id="'+item.productId+'" data-status="'+item.enableStatus+'">编辑</a>'
    						+'<a href="#" class="status" data-id="'+item.productId+' "data-status="'+contraryStatus+'">'+textOp+'</a>'
    						+'<a href="#" class="preview" data-id="'+item.productId+' "data-status="'+item.enableStatus+'">预览</a>'
    						+'</div></div>';
    				});
    				//将拼接好的信息赋值进html控件中
    				$('.product-wrap').html(tempHtml);
    			}
    		});
    	}
    	
    	//将class为product-wrap里面的a标签全部绑上点击的事件
    	$('.product-wrap').on('click','a',function(e){
    		var target = $(e.currentTarget);
    		if(target.hasClass('edit')){
    			//如果有class edit则点击就进入店铺信息编辑页面,并带有productId参数
    			window.location.href = '/o2o/shopadmin/productoperation?productId=' + e.currentTarget.dataset.id;
    		}else if(target.hasClass('status')){
    			//如果有class status,则调用后台功能上/下架相关产品,并带有productId参数
    			changeItemStatus(e.currentTarget.dataset.id, e.currentTarget.dataset.status);
    		}else if(target.hasClass('preview')){
    			//如果有class preview,则进入该商品详情页,展示该商品
    			window.location.href = '/o2o/frontend/productdetail?productId='+e.currentTarget.dataset.id;
    		}
    	});
    	
    	function changeItemStatus(id, enableStatus){
    		//定义product json对象并添加productid以及状态(上架、下架)
    		var product = {};
    		product.productId = id;
    		product.enableStatus = enableStatus;
    		$.confirm('确定吗?',function(){
    			//上下架相关商品
    			$.ajax({
    				url:statusUrl,
    				type:'POST',
    				data:{
    					productStr:JSON.stringify(product),
    					statusChange:true
    				},
    				dataType:'json',
    				success:function(data){
    					if(data.success){
    						$.toast('操作成功!');
    						getList();
    					}else{
    						$.toast('操作失败');
    					}
    				}
    			});
    		});
    	}
    
    });
    

    1.3 依赖的css文件

    webapp/resources/css/shop/productmanagement.css

    .row-product{
    	border:1px solid #999;
    	padding:.5rem;
    	border-bottom:none;
    }
    .row-product *{
    	white-space:nowrap;
    	over-flow:scroll;
    }
    .row-product:last-child{
    	border-bottom:1px soild #999;
    }
    .product-name{
    	white-space:nowrap;
    	overflow-x:scroll;
    }
    .product-wrap a{
    	marigin-right:1rem;
    }
    

    1.4 建立路由

    package com.csj2018.o2o.web.shopadmin;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    @Controller
    @RequestMapping(value="shopadmin",method=RequestMethod.GET)
    public class ShopAdminCtroller {
    	@RequestMapping(value="/shopoperation")
    	public String shopOperation() {
    		return "shop/shopoperation";
    	}
    	@RequestMapping(value="/shoplist")
    	public String shopList() {
    		return "shop/shoplist";
    	}
    	@RequestMapping(value="/shopmanagement")
    	public String shopManagement() {
    		return "shop/shopmanagement";
    	}
    	@RequestMapping(value="/productcategorymanagement")
    	private String productCategoryManage() {
    		return "shop/productcategorymanagement";
    	}
    	@RequestMapping(value="/productoperation")
    	private String productOperation() {
    		return "shop/productoperation";
    	}
    	//8-11
    	@RequestMapping(value="/productmanagement")
    	public String productManagement() {
    		//转发至商品管理页
    		return "shop/productmanagement";
    	}
    }
    

    2.验证

    先访问http://127.0.0.1:18080/o2o/shopadmin/shopmanagement?shopId=1,获取currentshop
    http://127.0.0.1:18080/o2o/shopadmin/productmanagement

    点击编辑,进入商品编辑页;商品上下架正常。

  • 相关阅读:
    转载 轻松搞定面试中的二叉树题目
    关于AVplayer 缓冲问题的处理
    关于iOS接收到推送消息后跳转问题
    iOS 黑魔法
    UITableView的优化
    OC是动态运行时语言是什么意思?什么是动态识别,动态绑定?
    iOS深复制和浅复制
    iOS内存管理(ARC,MRC)
    iOS数据持久化
    详解KVO,KVC
  • 原文地址:https://www.cnblogs.com/csj2018/p/12549146.html
Copyright © 2020-2023  润新知