前台配置、前端主页

一、luffy前台配置

1、axios前后台交互

安装:前端项目目录下的终端
>: cnpm install axios
配置:main.js
import axios from 'axios'
Vue.prototype.$axios = axios;

2、cookies操作

安装:前端项目目录下的终端
>: cnpm install vue-cookies
配置:main.js
import cookies from 'vue-cookies'
Vue.prototype.$cookies = cookies;

 

3、element-ui页面组件框架

安装:前端项目目录下的终端
>: cnpm install element-ui
配置:main.js
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

 

4、jquery页面组件框架

安装:前端项目目录下的终端
>: cnpm install jquery
配置  根目录下创建 vue.config.js
const webpack = require("webpack");

module.exports = {
   configureWebpack: {
       plugins: [
           new webpack.ProvidePlugin({
               $: "jquery",
               jQuery: "jquery",
               "window.jQuery": "jquery",
               "window.$": "jquery",
               Popper: ["popper.js", "default"]
          })
      ]
  }
};

5、bootstrap页面组件框架

安装:前端项目目录下的终端
>: cnpm install bootstrap@3
配置  main.js
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'

 

二、前端主页

1、图片准备

将提供的资料中的图片移植到项目的img文件夹下

2、页头组件:components/Header.vue

<template>
    <div class="header-box">
        <div class="header">
            <div class="content">
                <div class="logo full-left">
                    <router-link to="/"><img @click="jump('/')" src="@/assets/img/logo.svg" alt=""></router-link>
                </div>
                <ul class="nav full-left">
                    <li><span @click="jump('/course')" :class="this_nav=='/course'?'this':''">免费课</span></li>
                    <li><span @click="jump('/light-course')" :class="this_nav=='/light-course'?'this':''">轻课</span></li>
                    <li><span>学位课</span></li>
                    <li><span>题库</span></li>
                    <li><span>老男孩教育</span></li>
                </ul>
                <div class="login-bar full-right">
                    <div class="shop-cart full-left">
                        <img src="@/assets/img/cart.svg" alt="">
                        <span><router-link to="/cart">购物车</router-link></span>
                    </div>
                    <div class="login-box full-left">
                        <span>登录</span>
                        &nbsp;|&nbsp;
                        <span>注册</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template><script>
    export default {
        name: "Header",
        data() {
            return {
                this_nav: "",
            }
        },
        created() {
            this.this_nav = localStorage.this_nav;
        },
        methods: {
            jump(location) {
                localStorage.this_nav = location;
                // vue-router除了提供router-link标签跳转页面以外,还提供了js跳转的方式
                this.$router.push(location);
            }
        }
    }
</script><style scoped>
    .header-box {
        height: 80px;
    }
​
    .header {
        width: 100%;
        height: 80px;
        box-shadow: 0 0.5px 0.5px 0 #c9c9c9;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        margin: auto;
        z-index: 99;
        background: #fff;
    }
​
    .header .content {
        max-width: 1200px;
        width: 100%;
        margin: 0 auto;
    }
​
    .header .content .logo {
        height: 80px;
        line-height: 80px;
        margin-right: 50px;
        cursor: pointer;
    }
​
    .header .content .logo img {
        vertical-align: middle;
    }
​
    .header .nav li {
        float: left;
        height: 80px;
        line-height: 80px;
        margin-right: 30px;
        font-size: 16px;
        color: #4a4a4a;
        cursor: pointer;
    }
​
    .header .nav li span {
        padding-bottom: 16px;
        padding-left: 5px;
        padding-right: 5px;
    }
​
    .header .nav li span a {
        display: inline-block;
    }
​
    .header .nav li .this {
        color: #4a4a4a;
        border-bottom: 4px solid #ffc210;
    }
​
    .header .nav li:hover span {
        color: #000;
    }
​
    .header .login-bar {
        height: 80px;
    }
​
    .header .login-bar .shop-cart {
        margin-right: 20px;
        border-radius: 17px;
        background: #f7f7f7;
        cursor: pointer;
        font-size: 14px;
        height: 28px;
        width: 88px;
        margin-top: 30px;
        line-height: 32px;
        text-align: center;
    }
​
    .header .login-bar .shop-cart:hover {
        background: #f0f0f0;
    }
​
    .header .login-bar .shop-cart img {
        width: 15px;
        margin-right: 4px;
        margin-left: 6px;
    }
​
    .header .login-bar .shop-cart span {
        margin-right: 6px;
    }
​
    .header .login-bar .login-box {
        margin-top: 33px;
    }
​
    .header .login-bar .login-box span {
        color: #4a4a4a;
        cursor: pointer;
    }
​
    .header .login-bar .login-box span:hover {
        color: #000000;
    }
​
    .full-left {
        float: left !important;
    }
​
    .full-right {
        float: right !important;
    }
​
    .el-carousel__arrow {
        width: 120px;
        height: 120px;
    }
​
    .el-checkbox__input.is-checked .el-checkbox__inner,
    .el-checkbox__input.is-indeterminate .el-checkbox__inner {
        background: #ffc210;
        border-color: #ffc210;
        border: none;
    }
​
    .el-checkbox__inner:hover {
        border-color: #9b9b9b;
    }
​
    .el-checkbox__inner {
        width: 16px;
        height: 16px;
        border: 1px solid #9b9b9b;
        border-radius: 0;
    }
​
    .el-checkbox__inner::after {
        height: 9px;
        width: 5px;
    }
</style>
原版本
<template>
    <div class="header">
        <div class="slogan">
            <p>老男孩IT教育 | 帮助有志向的年轻人通过努力学习获得体面的工作和生活</p>
        </div>
        <div class="nav">
            <ul class="left-part">
                <li class="logo">
                    <router-link to="/">
                        <img src="../assets/img/head-logo.svg" alt="">
                    </router-link>
                </li>
                <li class="ele">
                    <span @click="goPage('/free-course')" :class="{active: url_path === '/free-course'}">免费课</span>
                </li>
                <li class="ele">
                    <span @click="goPage('/actual-course')" :class="{active: url_path === '/actual-course'}">实战课</span>
                </li>
                <li class="ele">
                    <span @click="goPage('/light-course')" :class="{active: url_path === '/light-course'}">轻课</span>
                </li>
            </ul>

            <div class="right-part">
                <div>
                    <span>登录</span>
                    <span class="line">|</span>
                    <span>注册</span>
                </div>
            </div>
        </div>
    </div>

</template>

<script>

    export default {
        name: "Header",
        data() {
            return {
                url_path: sessionStorage.url_path || '/',
            }
        },
        methods: {
            goPage(url_path) {
                // 已经是当前路由就没有必要重新跳转
                if (this.url_path !== url_path) {
                    this.$router.push(url_path);
                }
                sessionStorage.url_path = url_path;
            },
        },
        created() {
            sessionStorage.url_path = this.$route.path;
            this.url_path = this.$route.path;
        }
    }
</script>

<style scoped>
    .header {
        background-color: white;
        box-shadow: 0 0 5px 0 #aaa;
    }

    .header:after {
        content: "";
        display: block;
        clear: both;
    }

    .slogan {
        background-color: #eee;
        height: 40px;
    }

    .slogan p {
        width: 1200px;
        margin: 0 auto;
        color: #aaa;
        font-size: 13px;
        line-height: 40px;
    }

    .nav {
        background-color: white;
        user-select: none;
        width: 1200px;
        margin: 0 auto;

    }

    .nav ul {
        padding: 15px 0;
        float: left;
    }

    .nav ul:after {
        clear: both;
        content: '';
        display: block;
    }

    .nav ul li {
        float: left;
    }

    .logo {
        margin-right: 20px;
    }

    .ele {
        margin: 0 20px;
    }

    .ele span {
        display: block;
        font: 15px/36px '微软雅黑';
        border-bottom: 2px solid transparent;
        cursor: pointer;
    }

    .ele span:hover {
        border-bottom-color: orange;
    }

    .ele span.active {
        color: orange;
        border-bottom-color: orange;
    }

    .right-part {
        float: right;
    }

    .right-part .line {
        margin: 0 10px;
    }

    .right-part span {
        line-height: 68px;
        cursor: pointer;
    }
</style>

3、轮播图组件:components/Banner.vue

<template>
    <el-carousel height="520px" :interval="3000" arrow="always">
        <el-carousel-item>
            <img src="@/assets/img/banner1.png" alt="">
        </el-carousel-item>
        <el-carousel-item>
            <img src="@/assets/img/banner2.png" alt="">
        </el-carousel-item>
        <el-carousel-item>
            <img src="@/assets/img/banner3.png" alt="">
        </el-carousel-item>
    </el-carousel>
</template>
<script>
    export default {
        name: "Banner",
    }
</script><style scoped>
    .el-carousel__item h3 {
        color: #475669;
        font-size: 18px;
        opacity: 0.75;
        line-height: 300px;
        margin: 0;
    }
​
    .el-carousel__item:nth-child(2n) {
        background-color: #99a9bf;
    }
​
    .el-carousel__item:nth-child(2n+1) {
        background-color: #d3dce6;
    }
    .el-carousel__item img {
        text-align: center;
        height: 520px;
        margin: 0 auto;
        display: block;
    }
</style>
原版本
 
<template>
    <div class="banner">
        <el-carousel height="400px">
            <el-carousel-item v-for="item in 4" :key="item">
                <img src="../assets/img/banner1.png" alt="">
            </el-carousel-item>
        </el-carousel>
    </div>
</template>

<script>
    export default {
        name: "Banner"
    }
</script>

<style scoped>
    .el-carousel__item {
        height: 400px;
        min-width: 1200px;
    }
    .el-carousel__item img {
        height: 400px;
        margin-left: calc(50% - 1920px / 2);
    }
</style>

 

 

 

4、页脚组件:components/Footer.vue

<template>
   <div class="footer">
       <ul>
           <li>关于我们</li>
           <li>联系我们</li>
           <li>商务合作</li>
           <li>帮助中心</li>
           <li>意见反馈</li>
           <li>新手指南</li>
       </ul>
       <p>Copyright © luffycity.com版权所有 | 京ICP备17072161号-1</p>
   </div>
</template>

<script>
   export default {
       name: "Footer"
  }
</script>

<style scoped>
   .footer {
       width: 100%;
       height: 128px;
       background: #25292e;
       color: #fff;
  }

   .footer ul {
       margin: 0 auto 16px;
       padding-top: 38px;
       width: 810px;
  }

   .footer ul li {
       float: left;
       width: 112px;
       margin: 0 10px;
       text-align: center;
       font-size: 14px;
  }

   .footer ul::after {
       content: "";
       display: block;
       clear: both;
  }

   .footer p {
       text-align: center;
       font-size: 12px;
  }
</style>

 

5、主页组件:views/Home.vue

<template>
   <div class="home">
       <Header />
       <Banner />
       <Footer />
   </div>
</template>

<script>
   import Header from '@/components/Header'
   import Banner from '@/components/Banner'
   import Footer from '@/components/Footer'

   export default {
       name: 'home',
       components: {
           Header,
           Banner,
           Footer
      },
  }
</script>

 

<template>    <div class="header">        <div class="slogan">            <p>老男孩IT教育 | 帮助有志向的年轻人通过努力学习获得体面的工作和生活</p>        </div>        <div class="nav">            <ul class="left-part">                <li class="logo">                    <router-link to="/">                        <img src="../assets/img/head-logo.svg" alt="">                    </router-link>                </li>                <li class="ele">                    <span @click="goPage('/free-course')" :class="{active: url_path === '/free-course'}">免费课</span>                </li>                <li class="ele">                    <span @click="goPage('/actual-course')" :class="{active: url_path === '/actual-course'}">实战课</span>                </li>                <li class="ele">                    <span @click="goPage('/light-course')" :class="{active: url_path === '/light-course'}">轻课</span>                </li>            </ul>
            <div class="right-part">                <div>                    <span>登录</span>                    <span class="line">|</span>                    <span>注册</span>                </div>    </div>        </div>    </div>
</template>
<script>
    export default {        name: "Header",        data() {            return {                url_path: sessionStorage.url_path || '/',            }        },        methods: {            goPage(url_path) {                // 已经是当前路由就没有必要重新跳转                if (this.url_path !== url_path) {                    this.$router.push(url_path);                }                sessionStorage.url_path = url_path;            },        },        created() {            sessionStorage.url_path = this.$route.path;            this.url_path = this.$route.path;        }    }</script>
<style scoped>    .header {        background-color: white;        box-shadow: 0 0 5px 0 #aaa;    }
    .header:after {        content: "";        display: block;        clear: both;    }
    .slogan {        background-color: #eee;        height: 40px;    }
    .slogan p {        width: 1200px;        margin: 0 auto;        color: #aaa;        font-size: 13px;        line-height: 40px;    }
    .nav {        background-color: white;        user-select: none;        width: 1200px;        margin: 0 auto;
    }
    .nav ul {        padding: 15px 0;        float: left;    }
    .nav ul:after {        clear: both;        content: '';        display: block;    }
    .nav ul li {        float: left;    }
    .logo {        margin-right: 20px;    }
    .ele {        margin: 0 20px;    }
    .ele span {        display: block;        font: 15px/36px '微软雅黑';        border-bottom: 2px solid transparent;        cursor: pointer;    }
    .ele span:hover {        border-bottom-color: orange;    }
    .ele span.active {        color: orange;        border-bottom-color: orange;    }
    .right-part {        float: right;    }
    .right-part .line {        margin: 0 10px;    }
    .right-part span {        line-height: 68px;        cursor: pointer;    }</style>

posted @ 2020-02-26 17:09  薛定谔的猫66  阅读(322)  评论(0)    收藏  举报