zoukankan      html  css  js  c++  java
  • 商铺项目(首页前端开发)

    <!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="shortcut icon" href="/favicon.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/frontend/index.css">
    </head>
    <body>
        <div class="page-group">
            <div class="page">
                <header class="bar bar-nav">
                    <!-- <a class="button button-link button-nav pull-left" href="/demos/card" data-transition='slide-out'>
                          <span class="icon icon-left"></span>
                          返回
                      </a> -->
                    <h1 class="title">My School O2O</h1>
                </header>
                <nav class="bar bar-tab">
                    <a class="tab-item active" href="#"> <span
                        class="icon icon-home"></span> <span class="tab-label">首页</span>
                    </a> <a class="tab-item" href="#" id='me'> <span
                        class="icon icon-me"></span> <span class="tab-label"></span>
                    </a>
                </nav>
                <div class="content">
                    <!-- 这里是轮播图展示区 -->
                    <div class="swiper-container index-banner" data-space-between='10'>
                        <div class="swiper-wrapper">
                            <!-- <div class="swiper-slide img-wrap">
                                    <img class="banner-img" src="//gqianniu.alicdn.com/bao/uploaded/i4//tfscom/i1/TB1n3rZHFXXXXX9XFXXXXXXXXXX_!!0-item_pic.jpg_320x320q60.jpg" alt="">
                                </div>
                                <div class="swiper-slide img-wrap">
                                    <img class="banner-img" src="//gqianniu.alicdn.com/bao/uploaded/i4//tfscom/i4/TB10rkPGVXXXXXGapXXXXXXXXXX_!!0-item_pic.jpg_320x320q60.jpg" alt="">
                                </div>
                                <div class="swiper-slide img-wrap">
                                    <img class="banner-img" src="//gqianniu.alicdn.com/bao/uploaded/i4//tfscom/i1/TB1kQI3HpXXXXbSXFXXXXXXXXXX_!!0-item_pic.jpg_320x320q60.jpg" alt="">
                                </div> -->
                        </div>
                        <div class="swiper-pagination"></div>
                    </div>
                    <!-- 全类查询区 -->
                    <div class='total-shop-button'>
                        <a href="/o2o/frontend/shoplist" external>全部商店</a>
                    </div>
                    <!-- 一级类别展示区域 -->
                    <div class="row">
                        <!-- <div class="col-50 shop-classify">
                                <div class='word'>
                                    <p class='shop-title'>本期推荐</p>
                                    <p class='shop-desc'>近期相关活动、新款上市、旅游资讯</p>
                                </div>
                                <div class='shop-classify-img-warp'>
                                    <img class='shop-img' src="static/index/display13.png">
                                </div>
                            </div> -->
                    </div>
                </div>
            </div>
            <!--侧边栏  -->
            <div class="panel-overlay"></div>
            <div class="panel panel-right panel-reveal" id="panel-right-demo">
                <div class="content-block">
                    <p>
                        <a href="/o2o/local/accountbind?usertype=1" class="close-panel">绑定帐号</a>
                    </p>
                    <p>
                        <a href="/o2o/local/changepsw?usertype=1" class="close-panel">修改密码</a>
                    </p>
                    <p>
                        <a href="/o2o/frontend/myrecord" class="close-panel">消费记录</a>
                    </p>
                    <p>
                        <a href="/o2o/frontend/mypoint" class="close-panel">我的积分</a>
                    </p>
                    <p>
                        <a href="/o2o/frontend/pointrecord" class="close-panel">兑换记录</a>
                    </p>
                    <p>
                        <a href="#" usertype="1" class="close-panel" id="log-out">登出系统</a>
                    </p>
                    <!-- Click on link with "close-panel" class will close panel -->
                </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/frontend/index.js'
            charset='utf-8'></script>
        <script type='text/javascript' src='../resources/js/local/logout.js'
            charset='utf-8'></script>
    </body>
    </html>

    package com.ouyan.o2o.web.frontend;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    @Controller
    @RequestMapping("/frontend")
    public class FrontendController {
    
        /**
         * 首页路由
         * 
         * @return
         */
        @RequestMapping(value = "/index", method = RequestMethod.GET)
        private String index() {
            return "frontend/index";
        }
    
        /**
         * 商品列表页路由
         * 
         * @return
         */
        @RequestMapping(value = "/shoplist", method = RequestMethod.GET)
        private String showShopList() {
            return "frontend/shoplist";
        }
    
        /**
         * 店铺详情页路由
         * 
         * @return
         */
        @RequestMapping(value = "/shopdetail", method = RequestMethod.GET)
        private String showShopDetail() {
            return "frontend/shopdetail";
        }
    
        /**
         * 商品详情页路由
         * 
         * @return
         */
        @RequestMapping(value = "/productdetail", method = RequestMethod.GET)
        private String showProductDetail() {
            return "frontend/productdetail";
        }
    }

    $(function() {
        //定义访问后台,获取头条列表以及一级类别列表的URL
        var url = '/o2o/frontend/listmainpageinfo';
        //访问后台,获取头条列表以及一级类别列表
        $.getJSON(url, function(data) {
            if (data.success) {
                //获取后台传递过来的头条列表
                var headLineList = data.headLineList;
                var swiperHtml = '';
                //遍历头条列表,并拼接出轮播图组
                headLineList.map(function(item, index) {
                    swiperHtml += '' + '<div class="swiper-slide img-wrap">'
                            + '<a href="' + item.lineLink
                            + '" external><img class="banner-img" src="' + item.lineImg
                            + '" alt="' + item.lineName + '"></a>' + '</div>';
                });
                //将轮播图组赋值给前端HTML控件
                $('.swiper-wrapper').html(swiperHtml);
                //设定轮播图轮换时间为3秒
                $(".swiper-container").swiper({
                    autoplay : 3000,
                    //用户对轮播图进行操作时,是否自动停止autoplay
                    autoplayDisableOnInteraction : false
                });
                //获取后台传递过来的大类列表
                var shopCategoryList = data.shopCategoryList;
                var categoryHtml = '';
                //遍历大类列表,拼接出俩俩(col-50)一行的类别
                shopCategoryList.map(function(item, index) {
                    categoryHtml += ''
                            + '<div class="col-50 shop-classify" data-category='
                            + item.shopCategoryId + '>' + '<div class="word">'
                            + '<p class="shop-title">' + item.shopCategoryName
                            + '</p>' + '<p class="shop-desc">'
                            + item.shopCategoryDesc + '</p>' + '</div>'
                            + '<div class="shop-classify-img-warp">'
                            + '<img class="shop-img" src="' + item.shopCategoryImg
                            + '">' + '</div>' + '</div>';
                });
                //将拼接好的类别赋值给前端HTML控件进行展示
                $('.row').html(categoryHtml);
            }
        });
    
        //若点击"我的",则显示侧栏
        $('#me').click(function() {
            $.openPanel('#panel-right-demo');
        });
    
        $('.row').on('click', '.shop-classify', function(e) {
            var shopCategoryId = e.currentTarget.dataset.category;
            var newUrl = '/o2o/frontend/shoplist?parentId=' + shopCategoryId;
            window.location.href = newUrl;
        });
    
    });

    .index-banner {
        height: 35%;
        padding-bottom: 0.4rem;
    }
    .img-wrap {
        overflow: hidden;
    }
    .banner-img {
        width: 100%;
        height: 100%;
    }
    .total-shop-button {
        height: 1.5rem;
        line-height: 1.5rem;
        padding-left: 0.85rem;
        margin-bottom: 0.4rem;
        position: relative;
        cursor: pointer;
    }
    .total-shop-button:before {
        content: '';
        display: inline-block;
        position: absolute;
        left: 0;
        width: 0.15rem;
        height: 1.5rem;
        background-color: #0894ec;
    }
    .shop-classify {
        height: 3.3rem;
        padding: 0.2rem;
        cursor: pointer;
    }
    .shop-classify > .word {
        width: 65%;
        height: 100%;
        overflow: hidden;
        float: left;
    }
    .shop-classify > .word > p {
        margin: 0;
    }
    .shop-classify > .word > .shop-title {
        margin: 0;
        font-size: 0.8rem;
    }
    .shop-classify > .word > .shop-desc {
        margin: 0;
        font-size: 0.4rem;
    }
    // .shop-classify > .shop-img {
    //     width: 2.4rem;
    //     height: 2.4rem;
    //     margin-left: 0.2rem;
    //     display: inline-block;
    // }
    .shop-classify > .shop-classify-img-warp {
        width: 30%;
        height: 100%;
        margin-left: 0.2rem;
        display: inline-block;
    }
    .shop-classify > .shop-classify-img-warp > .shop-img {
        width: 100%;
        height: 100%;
    }

    这时候图片没有获取到,我们可以通过这样的方式获取绝对路径:

    这时候被坑了一个小时。。发现PathUtil.java要改改:

    package com.ouyan.o2o.util;
    
    public class PathUtil {
        private static String separator = System.getProperty("file.separator");
        public static String getImgBasePath(){
            String os = System.getProperty("os.name");
            String basePath="";
            if(os.toLowerCase().startsWith("win")){
                basePath = "D:/projectdev/image";
            }else{
                basePath = "/home/ouyan/image";
            }
            basePath = basePath.replace("/", separator);
            return basePath;
        }
        
        public static String getShopImagePath(long shopId){
            String imagePath = "/upload/item/shop"+shopId+"/";
            return imagePath.replace("/", separator);
        }
    }

    成功获取图片:

  • 相关阅读:
    4-MSP430定时器_定时器中断
    关于STM32的外部引脚中断的问题
    关于stm32的正交解码
    红外接收控制灯亮灭
    mack pro常用快捷键
    liunx操作系统安装<一>
    支付宝架构师:从工程师到架构师的成长之路
    maven之setting.xml的配置详解
    分布式之《保证分布式系统数据一致性的6种解决方案》
    Eclipse中jsp、js文件编辑时,卡死现象解决汇总
  • 原文地址:https://www.cnblogs.com/XJJD/p/7702919.html
Copyright © 2011-2022 走看看