【别贪心】el-responsive-layout

首先放下作者大大的github地址:https://github.com/shikkk/el-responsive-layout
然后让我们一起去欣赏作者大大的项目哇
我们可以看看效果

接下来我们一起看看项目哇

在index.html中,我们会看到引用了baidu的hm.js,简单的来说,就是:使用百度统计跟踪网站的流量。

//index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <link rel="icon" href="./title_icon2.ico" type="image/x-icon">
    <title>DataX首页</title>
    <script>
      var _hmt = _hmt || [];
      (function() {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?f41de1b2df0b4e3b42f05303bf7f9272";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(hm, s);
      })();
    </script>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

接下来看main.js

//main.js
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import 'element-ui/lib/theme-chalk/display.css';
import App from './App'
import router from './router'
import 'c-swipe/dist/swipe.css';
import { Swipe, SwipeItem } from 'c-swipe';

Vue.config.productionTip = false
Vue.component('swipe', Swipe);
Vue.component('swipe-item', SwipeItem);
Vue.use(ElementUI);
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})
router.beforeEach((to, from, next) => {
  // 统计代码
  if(to.path == '/product' || to.path == '/solution'){
    _hmt.push(['_trackPageview', to.fullPath]);
  }
  next();
});

不过这个项目里面的App.vue是直接就上了哦,不过里面还是有通用的router-view的,用来装一些公共的东西的,面包屑那个还专门判断了是移动端才显示的呢

//App.vue
<template>
  <div id="app">
    <div class="header">
      <div class="container clearfix">
        <el-row class="PC">
          <el-col :span="3">
            <div class="index-logo">
              <router-link to="/">
                <img src="../static/image/pc-logo.png"/>
              </router-link>
            </div>
          </el-col>
          <el-col :span="11">
            <el-menu
              :default-active="activeIndex"
              :active-text-color="activeColor"
              :router="true"
              class="el-menu-demo"
              mode="horizontal"
              @select="handleSelect">
              <el-menu-item index="/">首页</el-menu-item>
              <el-menu-item index="/solution">解决方案</el-menu-item>
              <el-menu-item index="/product">产品中心</el-menu-item>
              <el-menu-item index="/contactUs">联系我们</el-menu-item>
            </el-menu>
          </el-col>
          <el-col :span="10">
            <div style="line-height: 80px;" class="text-right">
              <el-button round
                         @click="goLogin()"
                         class="btn-box">CMBI 登录</el-button>
              <el-button round
                         @click="goLogin()"
                         class="btn-box">CPBI 登录</el-button>
              <el-button round
                         type="primary"
                         @click="goLogin()">DataX 登录</el-button>
          </div>
          </el-col>
        </el-row>
        <el-row type="flex" class="row-bg Mobile" justify="space-between">
          <el-col :span="8" class="m-box">
            <div class="menu-btn" @click="mobileNav"><span></span><span></span><span></span></div>
          </el-col>
          <el-col :span="8" class="m-box m-index-logo" style="padding: 0">
            <router-link to="/">
              <img src="../static/image/logo.png">
            </router-link>
          </el-col>
          <el-col :span="8" class="m-box text-right">
            <el-dropdown trigger="click">
              <span class="el-dropdown-link">
                登录<i class="el-icon-arrow-down el-icon--right"></i>
              </span>
              <el-dropdown-menu slot="dropdown">
                <el-dropdown-item><a @click="goLogin()">CMBI 登录</a></el-dropdown-item>
                <el-dropdown-item><a @click="goLogin()">CPBI 登录</a></el-dropdown-item>
                <el-dropdown-item><a @click="goLogin()">DataX 登录</a></el-dropdown-item>
              </el-dropdown-menu>
            </el-dropdown>
          </el-col>
        </el-row>
      </div>
    </div>
    <div :class="['mobile-nav',[mobile_nav?'m-nav-show':'m-nav-hide']]">
      <el-row>
        <el-col :span="12" style="padding-left: 20px">
          <img src="../static/image/logo2.png">
        </el-col>
        <el-col :span="12" class="text-right" style="padding-right: 20px">
          <i class="el-icon-close" @click="mobileNav" style="color: #FFFFFF;font-size: 30px"></i>
        </el-col>
      </el-row>
      <el-menu
        :default-active="activeIndex"
        :active-text-color="activeColor"
        :router="true"
        class="el-menu-vertical-demo"
        background-color="transparent"
        text-color="#fff"
        style="margin: 20px 0"
       >
        <el-menu-item index="/" class="m-menu-icon icon1" @click="mobileNav">
          <span slot="title">首页</span>
        </el-menu-item>
        <el-menu-item index="/solution" class="m-menu-icon icon2" @click="mobileNav">
          <span slot="title">解决方案</span>
        </el-menu-item>
        <el-menu-item index="/product" class="m-menu-icon icon3" @click="mobileNav">
          <span slot="title">产品中心</span>
        </el-menu-item>
        <el-menu-item index="/contactUs" class="m-menu-icon icon4" @click="mobileNav">
          <span slot="title">联系我们</span>
        </el-menu-item>
      </el-menu>
    </div>
    <div :class="['main-content',{'pdb0':activeIndex == '/contactUs'}]">
      <router-view :class="[activeIndex == '/contactUs'?'':'content']"></router-view>
    </div>
    <Footer v-if="activeIndex != '/contactUs'"></Footer>
  </div>
</template>

<script>
  import Footer from './components/footer/Footer'
  import ElCol from "element-ui/packages/col/src/col";
export default {
  name: 'App',
  data() {
    return {
      activeIndex: '',
      activeColor:'#409EFF',
      mobile_nav:false
    };
  },
  components: {
    ElCol, Footer
  },
  methods: {
    handleSelect(val){
    },
    mobileNav(){
      this.mobile_nav = !this.mobile_nav
    },
    getPath(){
      this.activeIndex =this.$route.path
    },
    goLogin(url,opt_label){
        window.open(url)
      _hmt.push(['_trackEvent', 'login', 'click', opt_label])
    }
  },
  created(){
    this.activeIndex =this.$route.path
  },
  watch: {
    '$route':'getPath'
  },
}
</script>

<style lang="less">
  @import "style/common.less";
</style>

接下来我们来看router.js

//index.js
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/content/homepage/homepage'
import Solution from '@/components/content/solution/solution'
import Product from '@/components/content/product/product'
import Contact from '@/components/content/contactUs/contactUs'

Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/',
      component: Home
    },
    {
      path: '/home',
      name: 'home',
      component: Home
    },
    {
      path: '/Solution',
      name: 'Solution',
      component: Solution
    },
    {
      path: '/product',
      name: 'product',
      component: Product
    },
    {
      path: '/contactUs',
      name: 'contactUs',
      component: Contact
    }
  ]
})

接下来我们来看homepage.vue

上面是一个轮播图,以及下面的我们的产品,数据都是写在json中的,点击详情或者解决方案,跳转到新的页面部分,处理的非常的精巧

//homepage.vue
<template>
  <div class="index-con">
    <div class="banner hidden-sm-and-down" >
      <el-carousel :interval="3000" type="card" height="400px">
        <el-carousel-item v-for="(item,index) in banner" :key="index">
          <a :href="item.login_href" target="_blank" @click="listen(item.web)">
            <img :src="item.m_img">
          </a>
        </el-carousel-item>
      </el-carousel>
    </div>
    <div class="m-banner hidden-md-and-up" >
      <swipe loop style="width: 100%" :autoplayTime="3000">
        <swipe-item v-for="(n,index) in banner" :key="index">
          <a  @click="listen(n.web)">
            <img :src="n.m_img" style="width: 100%">
          </a>
        </swipe-item>
      </swipe>
    </div>
    <div class="container solution">
      <h2 class="title text-center">产品解决方案</h2>
      <h3 class="text-center">将我们的数据及开发能力,赋能到公司更多产品及业务线,提供整套数据解决方案</h3>
      <el-row type="flex" class="row-bg" justify="space-around" style="margin-top: 55px">
        <el-col :span="11" class="sports solution-box" >
          <el-card class="box-card" shadow="always" :body-style="{ padding: '0px'}">
            <dl @click="goSolutionPage('game')">
              <dt>游戏解决方案</dt>
              <dd>为游戏开发者提供数据、账号、支付等一站式解决方案,使游戏开发者专注于游戏开发</dd>
            </dl>
          </el-card>
        </el-col>
        <el-col :span="11" class="sports solution-box" >
          <el-card class="box-card" shadow="always" :body-style="{ padding: '0px'}">
          <dl @click="goSolutionPage('finance')" >
            <dt>金融解决方案</dt>
            <dd>为金融业务量身定制的风控系统,具备安全稳定、敏捷高效、高弹性、高可用的特性</dd>
          </dl>
          </el-card>
        </el-col>
      </el-row>
    </div>
    <div class="container product">
      <h2 class="title text-center">我们的产品</h2>
      <el-row :gutter="20">
        <el-col :span="6" v-for="(item,index) in product" class="product-box" :key="index">
          <el-card :body-style="{ padding: '0px' }" shadow="hover">
            <div class="text-center card">
              <img :src="item.img">
              <h3>{{item.tit}}</h3>
              <p>{{item.con}}</p>
              <a  @click="goProductPage(item.href)" :class="[item.href == 'accountNum'?'bg-gray':'']">{{item.btn}}</a>
            </div>
          </el-card>
        </el-col>
      </el-row>
    </div>
  </div>
</template>

<script>
export default {
  name: 'homepage',
  data () {
    return {
      value2: 0,
      banner:[{
          web:'CMBI',
          img:'/static/image/banner01.jpg',
          m_img:'/static/image/banner1.jpg',
      },
        {
          web:'CPBI',
          img:'/static/image/banner02.jpg',
          m_img:'/static/image/banner2.jpg',
        },
        {
          web:'DATAX',
          img:'/static/image/banner03.jpg',
          m_img:'/static/image/banner3.jpg',
        }
      ],
      product: [
        {
          img: 'static/image/index01.png',
          tit: '支付系统',
          con: '高度集成多家主流支付渠道,一键接入,简单快捷',
          btn: '查看详情',
          href: 'payment',
        },
        {
          img: 'static/image/index02.png',
          tit: '数据系统',
          con: '可视化自定义数据平台,数据运营尽在掌握',
          btn: '查看详情',
          href: 'dataSystem'
        },
        {
          img: 'static/image/index03.png',
          tit: '大数据SDK',
          con: '收集全面的用户数据,深度把握用户行为,为分析用户提供有效数据',
          btn: '查看详情',
          href: 'dataSDK'
        },
        {
          img: 'static/image/index04.png',
          tit: '帐号系统',
          con: '敬请期待……',
          btn: '查看详情',
          href: 'accountNum'
        }
      ]
    }
  },
  methods: {
    goProductPage(id){
        if(id!=='accountNum'){
          this.$router.push({
            path:'/product',
            query: {
              id: id
            }
          });
        }
    },
    goSolutionPage(page){
      this.$router.push({
        path:'/solution',
        query: {
          page: page
        }
      })
    },
    listen(web){
        _hmt.push(['_trackEvent', 'banner-login', 'click', web])
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style  lang="less">
  .index-con {
    .banner{
      max-width: 1370px;margin: 0 auto;
    }
    .el-carousel {
      margin-top: 40px;
    }
    .el-carousel__indicators--outside{
      margin-top: 20px;
      .el-carousel__button{
        height: 4px;
      }
    }
    .el-carousel__item h3 {
      color: #475669;
      font-size: 14px;
      opacity: 0.75;
      line-height: 200px;
      margin: 0;
    }
    .el-carousel__item img {
      width: 100%;
      background: #ffffff;
    }
    .el-carousel__arrow {
      height: 50px;
      width: 50px;
    }
    .solution {
      padding: 80px 0;
      dl{
        padding: 43px 33px 60px 76px
      }
      dt {
        color: #009ef6;
        font-size: 22px;
        margin-bottom: 28px;
      }
      dd {
        color: #959595;
        font-size: 18px;
        line-height: 30px;
      }
      > h3 {
        color: #888;
      }

    }

    .title {
      font-size: 40px;
    }
    .product {
      padding-top: 4px;
    }
    .product-box {
      margin-top: 28px;
      position: relative;
      bottom: 0;
      transition: all .3s ease-in-out;
    }
    .card {
      height: 362px;
      width: 100%;
      position: relative;
      h3 {
        font-size: 18px;
      }
      img {
        height: 100px;
        width: 100px;
        margin: 54px 0 30px 0;
      }
      p {
        margin-top: 15px;
        font-size: 14px;
        color: #99a9bf;
        padding: 0 25px;
        line-height: 20px;
      }
      a {
        height: 52px;
        line-height: 52px;
        font-size: 14px;
        color: #409eff;
        text-align: center;
        border: 0;
        border-top: 1px solid #eaeefb;
        padding: 0;
        position: absolute;
        bottom: 0;
        left: 0;
        cursor: pointer;
        width: 100%;
        background-color: #fff;
        border-radius: 0 0 5px 5px;
        transition: all .3s;
        text-decoration: none;
        display: block;
      }
    }
    .product-box:hover {
      bottom: 6px;
      box-shadow: 0 6px 18px 0 rgba(232, 237, 250, .5)
    }
    .card a:hover {
      color: #fff;
      background: #409eff
    }
    .card .bg-gray:hover {
      background: #ffffff;
      color: #409eff;
    }
    @media (max-width: 768px){
      .banner{
        /*display: none;*/
      }
      .solution{
        padding: 30px 0 80px 0;
        h3{
          text-align: left;
          padding: 0 20px;
          font-size: 20px;
        }
      }
      .product-box {
        width: 80%;
        float: none;
        margin: 0 auto 20px;
      }
      .el-row--flex{
        display: block;
      }
      .solution-box {
        width: 80%;
        float: none;
        margin: 0 auto 20px;
        dl{
          padding: 30px;
        }
      }
    }
  }
</style>

解决方案页面也挺有意思的

//solution.vue
<template>
  <div class="solution-page container">
    <el-row :gutter="20">
      <el-col :span="6" class="m-el-menu">
        <el-menu class="side-nav"
          :default-active="activeIndex"
          :active-text-color="activeColor"
          @select="handleSelect"
        >
          <el-menu-item index="game">
            <span slot="title" class="nav-item">游戏解决方案</span>
          </el-menu-item>
          <el-menu-item index="finance">
            <span slot="title" class="nav-item">金融解决方案</span>
          </el-menu-item>
        </el-menu>
      </el-col>
      <el-col :span="18" class="m-el-page">
        <component :is="currentView"></component>
      </el-col>
    </el-row>
  </div>
</template>

<script>
  import game from './game'
  import finance from './finance'
export default {
  name: 'solution',
  data() {
    return {
      activeIndex: 'game',
      activeColor:'#409EFF',
      currentView:''
    }
  },
  components: {
    game,
    finance
  },
  methods: {
    handleSelect(key) {
      console.log('key',key)
        this.currentView = key
      _hmt.push(['_trackEvent', 'solution-menu', 'click', key])
    },
    goToPage(){
      window.scrollTo(0,0);
      var page = this.$route.query.page;
      console.log('............page',this.$route.query.page)
      if(page){
        this.currentView = page;
        this.activeIndex = page;
      }else {
        this.currentView = 'game'
      }
    }
  },
  created(){
    this.goToPage()
  }
}
</script>

<style scoped lang="less">
  .solution-page{
    padding: 55px 0 95px;
    box-sizing: border-box;;
  }
  .side-nav {
    width: 100%;
    box-sizing: border-box;
    padding:0 30px;
    transition: opacity .3s;
    border-right: 0;
    .el-menu-item{
      height: 40px;
      padding: 0!important;
      border-right: 1px solid #e6e6e6;
    }
  }
  .el-menu-item{
    background: #ffffff!important;
  }
  el-menu-item:hover{
    background: #ffffff!important;
  }
  .side-nav .nav-item {
    font-size: 16px;
    line-height: 40px;
    height: 100%;
    margin: 0;
    padding: 0;
    text-decoration: none;
    display: block;
    position: relative;
    font-weight: 700;
    cursor: pointer;
  }
  @media (max-width: 768px){
    .side-nav{
      padding:0 20px 40px;
      .el-menu-item{
        border-right: 0;
      }
    }
  }
</style>



//game.vue
<template>
  <div class="game-content">
    <h2 >游戏解决方案</h2>
    <div class="background">
      <h3>产品背景</h3>
      <p class="introduce">游戏是我们公司发展的重要业务,对创新性、趣味性、时效性有很高的要求,我们通过为他们提供账户、支付、数据服务,使游戏开发者更专注于游戏开发。</p>
    </div>
    <div class="advantage">
      <h3>我们的优势</h3>
      <el-row :gutter="64">
        <el-col :sm="7" :xs="22" v-for="(item,index) in advantage" :key="index">
          <el-card :body-style="{ padding: '0px 0px 25px 0px' }" class="card" shadow="never">
            <div class="text-center">
              <img :src="item.img">
              <h4>{{item.tit}}</h4>
              <span>{{item.con}}</span>
            </div>
          </el-card>
          <ul class="hidden-sm-and-up" style="margin-top: 20px">
            <li >
              <strong >{{item.tit}}:</strong>
              {{item.info}}
            </li>
          </ul>
        </el-col>
      </el-row>
    </div>
    <ul class="hidden-xs-only">
      <li >
        <strong >快速安装接入:</strong>
        客户端安装便捷,SDK一键出包,后台简便部署,快速高效解决游戏接入和部署问题
      </li>
      <li>
        <strong>数据安全无忧:</strong>
        无第三方介入用户登录、支付流程、用户运营数据传输皆在公司内部更安全
       </li>
      <li>
        <strong>多维数据管理:</strong>
        强大的后台管理系统,多游戏管理,参数维护,数据统计分析,让游戏运营轻松可靠
      </li>
    </ul>
    <div class="Packing">
      <h3>包含产品</h3>
      <el-row :gutter="10">
        <el-col :sm="8"  :xs="24" v-for="(item,index) in Packing" class="m-cards" :key="index">
          <el-card :body-style="{ padding: '15px 20px',height: '140px',position: 'relative' }" class="card" shadow="never">
            <div class="pack-card">
              <h4 class="text-center">{{item.tit}}</h4>
              <p class="text-left">{{item.con}}</p>
              <a @click="goPage(item.href)">{{item.btn}}</a>
            </div>
          </el-card>
        </el-col>
      </el-row>
    </div>
    <div class="access">
      <h3>接入我们</h3>
      <el-steps class="hidden-xs-only" >
        <el-step title="确定合作意向" description=""></el-step>
        <el-step title="联系我们,沟通功能需求" description=""></el-step>
        <el-step title="开发完成,联调测试" description=""></el-step>
        <el-step title="产品交接培训" description=""></el-step>
      </el-steps>
      <div style="height: 300px;margin-bottom: 40px" class="hidden-sm-and-up">
        <el-steps direction="vertical">
          <el-step title="确定合作意向"></el-step>
          <el-step title="联系我们,沟通功能需求"></el-step>
          <el-step title="开发完成,联调测试"></el-step>
          <el-step title="产品交接培训"></el-step>
        </el-steps>
      </div>
    </div>
  </div>
</template>

<script>
    export default {
      data () {
        return {
          value2: 0,
          advantage: [
            {
              img: 'static/image/game1.png',
              tit: '快速安装接入',
              con: 'quickly',
              info:'客户端安装便捷,SDK一键出包,后台简便部署,快速高效解决游戏接入和部署问题'
            },
            {
              img: 'static/image/game2.png',
              tit: '数据安全无忧',
              con: 'security',
              info:'无第三方介入用户登录、支付流程、用户运营数据传输皆在公司内部更安全'
            },
            {
              img: 'static/image/game3.png',
              tit: '多维数据管理',
              con: 'dimensional analysis',
              info:'强大的后台管理系统,多游戏管理,参数维护,数据统计分析,让游戏运营轻松可靠'
            }
          ],
          Packing: [
            {
              tit: '用户管理',
              con: '用户自建平台,满足个性化定制需求',
              btn:'敬请期待',
              href:''
            },
            {
              tit: '支付体系',
              con: '公司内部的支付流程,数据传播更安全,沟通无障碍',
              btn:'了解更多>',
              href:'payment'
            },
            {
              tit: '数据平台',
              con: '强大的后台管理功能,多游戏管理,参数维护,数据统计分析,财务报表,让游戏运营轻松可靠',
              btn:'了解更多>',
              href:'dataSystem'
            }
          ]
        }
      },
      methods: {
        goPage(id){
            if(id){
              this.$router.push({
                path:'/product',
                query: {
                  id: id
                }
              });
            }
          }
      }
    }
</script>

<style scoped lang="less">
 .game-content{
   margin-left: -1px;
   .background{
     margin-bottom:64px;
     p{
       color: #7b8799;
     }
   }
   .advantage{
     margin-bottom:70px;
     .el-card{
       border:0;
     }
     .card{
       background: #fbfcfd;
       text-align: center;
       margin-top: 20px;
       img{
         margin: 40px auto 25px;
         width: 80px;
         height: 80px;
       }
       h4{
         color: #1f2d3d;
         font-weight: 400;
         margin: 0;
       }
       span{
         font-size: 14px;
         color: #99a9bf;
       }
     }
   }
   ul{
     margin-bottom: 50px;
     padding-left: 0;
     li{
       font-size: 14px;
       margin-bottom: 10px;
       color: #99a9bf;
     }
     li strong{
       font-weight: 400;
       color: #5e6d82;
     }
   }
   .Packing{
     h3{
       margin: 20px 0 40px 0;
       font-size: 22px;
     }
     .pack-card{
       h4{
         font-size: 18px;
       }
        p{
          color: #b7c1d2;
        }
        a{
          color:#409EFF;
          position: absolute;
          left: 20px;
          bottom: 15px;
        }
     }
   }
   .access{
     h3{
       margin: 65px 0 40px 0;
       font-size: 22px;
     }
   }
 }

</style>

//finance.vue
<template>
  <div class="finance-content">
    <h2 >金融解决方案</h2>
    <div class="background">
      <h3>产品背景</h3>
      <h4>基于金融业务推出的风控解决方案</h4>
      <p>风控是整个金融业务的核心环节,对系统的稳定性、运行速度、灵活性有很高的要求,我们与金融团队沟通并确认需求后,为其推出的整套风控
解决方案,经过严格的审批流程验证、模型测试和数据校验,充分的保证了金融策略以及风控系统的完整性和安全性。</p>
    </div>
    <div class="function">
      <h3>产品功能</h3>
      <el-row type="flex" class="row-bg cards-div" justify="space-around">
        <el-col :span="6" class="cards-box">
          <el-card :body-style="{ padding: '15px 20px',position: 'relative' }" class="card" shadow="hover">
            <div class="function-card">
              <h4 class="blue">用户特征获取</h4>
              <ul>
                <li>设备特征</li>
                <li>进件特征</li>
              </ul>
              <em class="garden">1</em>
            </div>
          </el-card>
        </el-col>
        <el-col :span="6" class="cards-box">
          <el-card :body-style="{ padding: '15px 20px',position: 'relative' }" class="card" shadow="hover">
            <div class="function-card">
              <h4 class="blue">风控核心类型</h4>
              <ul>
                <li>支持多类型&规则计算</li>
                <li>支持模型数配置</li>
                <li>进行多模型串行运算</li>
              </ul>
              <em class="garden">2</em>
            </div>
          </el-card>
        </el-col>
        <el-col :span="6" class="cards-box">
          <el-card :body-style="{ padding: '15px 20px',position: 'relative' }" class="card" shadow="hover">
            <div class="function-card">
              <h4 class="blue">信贷评级</h4>
              <ul>
                <li>信贷政策针对不同客群灵活配置</li>
                <li>根据业务配置信用分、风险权重、概率限制等</li>
              </ul>
              <em class="garden">3</em>
            </div>
          </el-card>
        </el-col>
      </el-row>
    </div>
    <div class="advantage">
      <h3>我们的优势</h3>
      <el-row >
        <el-col  :sm="20" :xs="24" v-for="(item,index) in advantage" :key="index">
          <el-row class="cards">
            <el-col :span="6" class="text-center">
              <img :src="item.img"/>
              <span>{{item.tit}}</span>
            </el-col>
            <el-col :span="18">
              <p v-html="item.con"></p>
            </el-col>
          </el-row>
        </el-col>
      </el-row>
    </div>
    <div class="access">
      <h3>接入我们</h3>
      <el-steps class="hidden-xs-only">
        <el-step title="确定合作意向" description=""></el-step>
        <el-step title="联系我们,沟通功能需求" description=""></el-step>
        <el-step title="开发完成,联调测试" description=""></el-step>
        <el-step title="产品交接培训" description=""></el-step>
      </el-steps>
      <div style="height: 300px;margin-bottom: 40px" class="hidden-sm-and-up">
        <el-steps direction="vertical">
          <el-step title="确定合作意向"></el-step>
          <el-step title="联系我们,沟通功能需求"></el-step>
          <el-step title="开发完成,联调测试"></el-step>
          <el-step title="产品交接培训"></el-step>
        </el-steps>
      </div>
    </div>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        value2: 0,
        advantage: [
          {
            img: 'static/image/finance1.png',
            tit: '快速安装接入',
            con: '服务器对外部网络完全隔离,仅支持内部网络访问<br>服务器采用负载均衡设计,可实现自动转移错误,支持水平扩展',
          },
          {
            img: 'static/image/finance2.png',
            tit: '数据安全无忧',
            con: '支持大量特征数据的实时运算,响应速度快,性能优异',
          },
          {
            img: 'static/image/finance3.png',
            tit: '多维数据管理',
            con: '针对金融业务政策变化大的特点,支持模型、规则的灵活配置,更加贴合业务场景',
          }
        ]
      }
    }
  }
</script>

<style  lang="less">
  .finance-content{
    margin-left: -1px;
    .background{
      margin-bottom:64px;
      h4{
        margin: 32px 0 16px 0;
      }
      p{
        color: #7b8799;
      }
    }
    .function{
      h3{
        margin: 20px 0 40px 0;
        font-size: 22px;
      }
      .function-card{
        h4{
          font-size: 18px;
          margin-left: 10px;
        }
       ul{
         margin-top: 24px;
         li{
           color: #979797;
           line-height: 24px;
           list-style: disc;
           margin-left: 10px;
         }
       }
        .garden{
          display: inline-block;
          list-style: none;
          width: 40px;height: 40px;
          border-radius: 50%;
          background: #eff5fd;
          text-align: center;
          line-height: 40px;
          position: absolute;
          color: #409EFF;
          font-size: 20px;
          left: -20px;top: -20px;
        }
      }
      .el-card{
        overflow: inherit;
        min-height: 180px;
      }
      @media (min-width:1024px) and (max-width:1140px) {
        .el-card{
          min-height: 200px;
        }
      }
    }
    .advantage{
      h3{
        margin-bottom: 32px;
      }
      .cards{
        margin-bottom: 22px;
        padding: 15px 0 25px 0;
        background: #FBFCFD;
        span{
          margin-top: 11px;
          display: block;
        }
        p{
          margin: 40px 0 0 30px;
        }
      }
    }
    .access{
      h3{
        margin: 65px 0 40px 0;
        font-size: 22px;
      }
    }
    @media (max-width: 768px){
      .cards-div{
        display: block;
      }
      .cards-box{
        float: none;
        width: 80%;
        margin: 0 auto 30px;
      }
      .advantage{
        .cards p{
          margin: 20px 0 0 20px;
        }
      }
    }
  }

</style>

产品中心页面

扫描二维码关注公众号,回复: 11455208 查看本文章
<template>
  <div class="solution-page container">
    <el-row :gutter="20">
      <el-col :span="6" class="m-el-menu">
        <el-menu class="side-nav"
                 :default-active="activeIndex"
                 :active-text-color="activeColor"
                 @select="handleSelect"
        >
          <el-menu-item index="payment">
            <span slot="title" class="nav-item">支付系统</span>
          </el-menu-item>
          <el-menu-item index="dataSystem">
            <span slot="title" class="nav-item">数据系统</span>
          </el-menu-item>
          <el-menu-item index="dataSDK">
            <span slot="title" class="nav-item">大数据SDK</span>
          </el-menu-item>
          <!--<el-menu-item index="accountNum" disabled>-->
            <!--<span slot="title" class="nav-item">账号系统</span>-->
          <!--</el-menu-item>-->
        </el-menu>
      </el-col>
      <el-col :span="18" class="m-el-page">
        <component :is="currentView"></component>
      </el-col>
    </el-row>
  </div>
</template>

<script>
  import payment from './payment'
  import dataSystem from './data'
  import dataSDK from './dataSDK'
  import accountNum from './accountNum'
  export default {
    name: 'product',
    data() {
      return {
        activeIndex: 'payment',
        activeColor:'#409EFF',
        currentView:''
      }
    },
    components: {
      payment,
      dataSystem,
      dataSDK,
      accountNum
    },
    methods: {
      handleSelect(key) {
        _hmt.push(['_trackEvent', 'product-menu', 'click', key])
        this.currentView = key
      },
      goToPage(){
        window.scrollTo(0,0);
        var id = this.$route.query.id;
        if(id){
          this.currentView = id;
          this.activeIndex = id;
        }else {
          this.currentView = 'payment'
        }
      }
    },
    created(){
      this.goToPage()

    }
  }
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="less">
  .solution-page{
    padding: 55px 0 95px;
    box-sizing: border-box;;
  }
  .side-nav {
    width: 100%;
    box-sizing: border-box;
    padding:0 30px;
    transition: opacity .3s;
    border-right: 0;
    .el-menu-item{
      height: 40px;
      padding: 0!important;
      background: #ffffff!important;
      border-right: 1px solid #e6e6e6;
    }
  }

  el-menu-item:hover{
    background: #ffffff!important;
  }
  .side-nav .nav-item {
    font-size: 16px;
    line-height: 40px;
    height: 100%;
    margin: 0;
    padding: 0;
    text-decoration: none;
    display: block;
    position: relative;
    font-weight: 700;
  }
  @media (max-width: 768px){
    .side-nav{
      padding:0 20px 40px;
      .el-menu-item{
        border-right: 0;
      }
    }
  }
</style>
//payment.vue
<template>
  <div class="payment-content">
    <h2 >支付系统</h2>
    <div class="background">
      <h3>产品背景</h3>
      <p class="introduce">支付是商业变现必不可少的环节。支付SDK是针对支付功能推出的集成SDK,开发者不需要自己搭建支付模块,写冗长代码,接入聚合SDK
就可拥有各渠道支付功能。</p>
    </div>
    <div class="trait">
      <h3>产品特点</h3>
      <ul>
        <li class="trait-tit">分别支持Android、IOS系统</li>
        <li style="margin: 20px 0 62px 0">
          <el-row type="flex" class="row-bg">
            <el-col  :sm="7" :xs="10">
              <el-card class="box-card" shadow="hover" :body-style="{ padding: '10px 0'}">
                  <img src="../../../../static/image/ios.png">
                  <span>IOS</span>
              </el-card>
            </el-col>
            <el-col  style="margin-left: 30px" :sm="7" :xs="10">
              <el-card class="box-card" shadow="hover" :body-style="{ padding: '10px 0'}">
                <img src="../../../../static/image/Android.png">
                <span>Android</span>
              </el-card>
            </el-col>
          </el-row>
        </li>
        <li class="trait-tit">集成Google play In-app Billing、IOS In-App Purchase、微信、支付宝等多种支付渠道</li>
        <li class="pay">
          <el-row  class="row-bg">
          <el-col :sm="6" :xs="12">
            <img src="../../../../static/image/billing-icon.png">
            <span>In-app Billing</span>
          </el-col>
          <el-col :sm="6" :xs="12">
            <img src="../../../../static/image/ios-icon.png" style="height: 38px;width: 32px;margin-top: -3px">
            <span>In-app Purchase</span>
            </el-col>
          <el-col :sm="6" :xs="12" class="m-mtb20">
            <img src="../../../../static/image/weixin-icon.png" style="height: 32px;width: 36px;">
            <span>WeChat Pay</span>
          </el-col>
          <el-col :sm="6" :xs="12" class="m-mtb20">
            <img src="../../../../static/image/ali-icon.png" style="height: 34px;width: 34px;margin-top: -1px">
            <span>AliPay</span>
          </el-col>
         </el-row>
        </li>
        <li class="trait-tit" >无需开发,直接接入</li>
        <li class="gray" style="margin: 20px 0 62px 0">公司内部聚合支付,在保障您数据安全的基础上,简化接入流程,给您带来简单便捷的接入体验</li>
        <li class="trait-tit">简洁而强大的订单管理系统</li>
        <li class="gray"  style="margin: 20px 0 62px 0">通过后台可实时查询订单详情、支付状态,可查询多方交易数据,统一管理账务数据,可多维度分析业务运营情况</li>
      </ul>
       
    </div>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        value2: 0,

      }
    }
  }
</script>

<style  lang="less">
  .payment-content{
    margin-left: -1px;
    .background{
      margin-bottom:64px;
      h4{
        margin: 32px 0 16px 0;
      }
    }
    .trait{
      h3{
        margin: 20px 0 40px 0;
        font-size: 22px;
      }
      ul{
       .trait-tit{
         list-style: disc;
         margin-left: 15px;
         color: #414d5a;
        }
        .pay {
          margin: 30px 0 62px 0;
          line-height: 39px;
          span{
            margin-left: 5px;
          }
        }
        .box-card{
          img{
            margin-left: 20px;
          }
          span{
            display: inline-block;
            width: 84px;
            font-size: 22px;
            margin-left: 25px;
            vertical-align: middle;
          }
        }
        @media (max-width: 768px){
          .box-card{
            img{
              margin-left: 10px;
            }
          }
        }
      }
    }
  }

</style>
//data.vue
<template>
  <div class="data-content">
    <h2 >数据系统</h2>
    <div class="background">
      <h3>产品背景</h3>
      <h4>DataX支持自定义报表,可根据需求快速产出报表,让你的数据应付自如~</h4>
      <div class="cards-box">
        <el-row  :gutter="40" class="row-bg" >
          <el-col  :sm="8" :xs="24" class="m-mb20">
            <el-card class="box-card" shadow="hover">
              <img src="../../../../static/image/data-icon1.png"/>
              <h5 class="blue">无报表时代</h5>
              <p>从数据抽取、制作报表、分析结果全部人工实现</p>
              <ul>
                <li>准确度低</li>
                <li>效率低</li>
                <li>工作繁琐</li>
              </ul>
            </el-card>
          </el-col>
          <el-col  :sm="8" :xs="24" class="m-mb20">
            <el-card class="box-card" shadow="hover">
              <img src="../../../../static/image/data-icon2.png"/>
              <h5 class="blue">传统报表时代</h5>
              <p>业务提需求,平台部门做报表</p>
              <ul>
                <li>需求沟通时间长</li>
                <li>开发成本高</li>
                <li>实现周期长</li>
              </ul>
            </el-card>
          </el-col>
          <el-col  :sm="8" :xs="24" class="m-mb20">
            <el-card class="box-card" shadow="hover">
              <img src="../../../../static/image/data-icon3.png"/>
              <h5 class="blue">自定义报表时代</h5>
              <p>DataX自助式报表系统</p>
              <ul>
                <li>效率高</li>
                <li>个性化定制</li>
                <li>覆盖广</li>
              </ul>
            </el-card>
          </el-col>
        </el-row>
      </div>
      <p class="introduce">在面临业务需求增多、数据获取多样、开发成本高的压力下,我们推出DataX自定义报表系统。</p>
    </div>
    <div class="goods">
      <h3>产品优势</h3>
      <ul>
        <li >
          <strong >效率高:</strong>
          半小时出报表,快速获取数据&分析的结果
        </li>
        <li>
          <strong>易操作:</strong>
          自定义报表系统,拖拽式操作,半小时快速出报表。
         </li>
        <li>
          <strong>样式多:</strong>
          交叉表、柱状图、地图、漏斗图等多种图表样式,让你的报表随你所想
        </li>
        <li>
          <strong>个性化定制:</strong>
          Dashbroad、报表、交互分析等多种数据需求,均可满足
        </li>
        <li>
          <strong>数据源覆盖广:</strong>
          ES、MYSQL等,支持多种数据存储,报表的展示在几秒内
        </li>
      </ul>
    </div>
    <div class="access">
      <h3>使用方法</h3>
      <h4>如何使用DataX</h4>
      <el-steps class="hidden-xs-only">
        <el-step title="添加数据源" description=""></el-step>
        <el-step title="抽取数据集" description=""></el-step>
        <el-step title="生成图表" description=""></el-step>
        <el-step title="组合报表" description=""></el-step>
        <el-step title="报表展示" description=""></el-step>
      </el-steps>
      <div style="height: 400px;margin-bottom: 40px" class="hidden-sm-and-up">
        <el-steps direction="vertical">
          <el-step title="添加数据源"></el-step>
          <el-step title="抽取数据集"></el-step>
          <el-step title="生成图表"></el-step>
          <el-step title="组合报表"></el-step>
          <el-step title="报表展示"></el-step>
        </el-steps>
      </div>
      <div style="padding-top: 32px">
        <video controls
               class="video"
               x5-video-player-type="h5"
               x5-video-player-fullscreen="true"
               x5-video-orientation="portraint"
               poster="/static/image/video.jpg"
        >
          <source src="static/video/DataxoOperate2.mp4" type="video/mp4">
          您的浏览器不支持 HTML5 video 标签。
        </video>
      </div>
      <div class="download">
        <a href="static/file/datax操作文档.pdf">
          <i class="el-icon-download"></i>
          操作文档下载
        </a>
      </div>
    </div>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        value2: 0
      }
    }
  }
</script>

<style  lang="less">
  .data-content{
    margin-left: -1px;
    .background{
      margin-bottom:64px;
      h4{
        margin: 30px 0 32px 0;
      }
      .cards-box{
        margin: 10px 0 18px 0;
        .box-card{
          background: #fbfcfd;
          h5{
            font-size: 18px;
            margin: 18px 0;
          }
          p{
            color: #333333;
            min-height: 45px;
          }
          ul{
            margin-top: 10px;
          }
          li{
            color: #979797;
            line-height: 28px;
          }

        }
      }
    }
    .goods{
      ul{
        margin-bottom: 50px;
        margin-top: 30px;
        padding-left: 0;
        li{
          font-size: 14px;
          margin-bottom: 10px;
          color: #979797;
        }
        li strong{
          font-weight: 400;
          color: #5e6d82;
        }
      }
    }
    .access{
      h4{
        font-size: 18px;
        margin: 32px 0 16px 0;
      }
      h3{
        margin: 65px 0 40px 0;
        font-size: 22px;
      }
      .download{
        margin-top: 50px;
      }
      .video{
        width: 550px;
      }
      @media (max-width: 768px){
        .video{
          width: 100%;
        }
      }
    }
  }

</style>

//dataSDK.vue
<template xmlns="http://www.w3.org/1999/html">
  <div class="SDK-content">
    <h2 >大数据SDK</h2>
    <div class="background">
      <h3>产品背景</h3>
      <p class="introduce">随着数据时代的到来,数据将在各个方面扮演越来越重要的角色。公司开展多项数据业务,同时不同业务也开始越来越多的使用数据建模进行推广运营,数据价值越来越被看中。收集整合用户数据的大数据SDK应运而生,通过公司各产品积极支持, 客户端通过大数据SDK收集、上报数据,由大数据团队接收处理并管理数据,共同为公司各业务线提供丰富有价值的数据。</p>
    </div>
    <div class="data-sources">
      <h3>数据来源及内容</h3>
      <p class="introduce">大数据SDK通过集成到公司内各产品收集用户数据,输出维度主要有以下:</p>
      <el-row style="margin-top: 40px" :gutter="20">
        <el-col :sm="12" :xs="24" class="m-mb20">
          <el-card class="box-card" shadow="hover">
            <el-row>
              <el-col :span="12">
                <h4 class="circle-dot">用户属性</h4>
                <div class="text-center">
                  <img src="../../../../static/image/sdk-icon1.png"/>
                  <p>硬件信息</p>
                </div>
              </el-col>
              <el-col :span="12">
                <div class="text-center" style="margin-top: 30px">
                  <img src="../../../../static/image/sdk-icon2.png"/>
                  <p>地理信息信息</p>
                </div>
              </el-col>
            </el-row>
          </el-card>
        </el-col>
        <el-col :sm="12" :xs="24">
          <el-card class="box-card" shadow="hover">
            <el-row>
              <el-col :span="12">
                <h4 class="circle-dot">用户行为</h4>
                <div class="text-center">
                  <img src="../../../../static/image/sdk-icon3.png"/>
                  <p>系统行为</p>
                </div>
              </el-col>
              <el-col :span="12">
                <div class="text-center" style="margin-top: 30px">
                  <img src="../../../../static/image/sdk-icon4.png"/>
                  <p>第三方应用行为</p>
                </div>
              </el-col>
            </el-row>
          </el-card>
        </el-col>
      </el-row>
    </div>
    <div class="apply">
      <h3>大数据应用</h3>
      <p class="introduce">大数据SDK将收集到的用户数据,处理整合输出到公司内部各数据业务及其他产品线。目前向Libra,智库等数据业务;金融业务建模;广告用户标签及产品推广中用户挖掘等需求提供数据。</p>
      <el-row style="margin-top: 45px" class="hidden-xs-only">
        <el-col  :sm="2" :xs="4" class="front">
          <div style="margin-top: 10px">获取<br>数据</div>
          <img src="../../../../static/image/arrow.png">
          <div class="">业务<br>输出</div>
        </el-col>
        <el-col  :sm="22" :xs="20">
          <div class="bg-purple">大数据SDK</div>
          <el-row :gutter="20" style="margin-top: 45px">
            <el-col  :sm="6" :xs="20" class="m-mb20">
              <el-card class="box-card" shadow="hover">
                <h4 class="circle-dot">数据业务</h4>
                <p>Libra 平台<br>智能数据平台</p>
              </el-card>
            </el-col>
            <el-col :sm="6" :xs="20" class="m-mb20">
              <el-card class="box-card" shadow="hover">
                <h4 class="circle-dot">金融业务</h4>
                <p>数据建模</p>
              </el-card>
            </el-col>
            <el-col :sm="6" :xs="20" class="m-mb20">
              <el-card class="box-card" shadow="hover">
                <h4 class="circle-dot">广告业务</h4>
                <p>用户标签</p>
              </el-card>
            </el-col>
            <el-col :sm="6" :xs="20" class="m-mb20">
              <el-card class="box-card" shadow="hover">
                <h4 class="circle-dot">产品推广</h4>
                <p>潜在用户挖掘</p>
              </el-card>
            </el-col>
          </el-row>
        </el-col>
      </el-row>
      <el-row style="margin-top: 45px" class="hidden-sm-and-up">
        <el-col  :xs="24" class="front">
          <el-col :xs="8">
            获取数据
          </el-col>
          <el-col :xs="6">
            <div style="height: 40px;">
              <img src="../../../../static/image/arrow.png"  class="arrow">
            </div>
          </el-col>
          <el-col :xs="10" class="text-left">
            业务输出
          </el-col>
        </el-col>
        <el-col  :xs="24">
          <el-row>
            <el-col :xs="6">
              <div class="m-bg-purple">大<br>数<br>据<br>S<br>D<br>K</div>
            </el-col>
            <el-col :xs="16">
              <el-row style="margin-left: 30px">
                <el-col  :sm="12" :xs="24" class="m-mb20">
                  <el-card class="box-card" shadow="hover">
                    <h4 class="circle-dot">数据业务</h4>
                    <p>Libra 平台<br>智能数据平台</p>
                  </el-card>
                </el-col>
                <el-col :sm="12" :xs="24" class="m-mb20">
                  <el-card class="box-card" shadow="hover">
                    <h4 class="circle-dot">金融业务</h4>
                    <p>数据建模</p>
                  </el-card>
                </el-col>
                <el-col :sm="12" :xs="24" class="m-mb20">
                  <el-card class="box-card" shadow="hover">
                    <h4 class="circle-dot">广告业务</h4>
                    <p>用户标签</p>
                  </el-card>
                </el-col>
                <el-col :sm="12" :xs="24" class="m-mb20">
                  <el-card class="box-card" shadow="hover">
                    <h4 class="circle-dot">产品推广</h4>
                    <p>潜在用户挖掘</p>
                  </el-card>
                </el-col>
              </el-row>
            </el-col>
          </el-row>
        </el-col>
      </el-row>
    </div>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        value2: 0
      }
    }
  }
</script>

<style  lang="less">
  .SDK-content{
    margin-left: -1px;
    .background{
      margin-bottom:64px;
      h4{
        margin: 32px 0 16px 0;
      }
    }
    .data-sources{
      .box-card{
        background: #fbfcfd;
        h4{
          margin-left: 20%;
        }
        img{
          margin-top: 38px;
        }
        p{
          font-size: 18px;
          margin-top: 10px;
          color: #7b8799;
        }

      }
    }
    .apply{
      .front{
        text-align: center;
        img{
          margin: 9px 0 16px 0;
        }
        .arrow{
          transform:rotate(270deg);margin-top: -16px;
          margin-left: -20px;
        }
        div{
          font-size: 16px;
          color: #7b8799;
        }
      }
      .bg-purple{
        padding: 20px 0;
        background: #ebeef5;
        border-radius: 4px;
        font-size: 18px;
        text-align: center;
      }
      .box-card{
        background: #fbfcfd;
        p{
          font-size: 18px;
          color: #979797;
          min-height: 58px;
          margin: 10px 0 0 20px;
        }
      }
      @media (max-width: 768px){
        .m-bg-purple{
          width: 70%;
          margin-left: 20px;
          padding-top: 180px;
          height:340px ;
          background: #ebeef5;
          border-radius: 4px;
          font-size: 18px;
          text-align: center;
        }
        .data-sources{
          .box-card{
            h4{
              margin-left: 10%;
            }
          }
        }
        .box-card p{
          min-height: auto;
        }
      }
    }
    @media (max-width: 768px){
      .data-sources{
        .box-card{
          h4{
            margin-left: 10%;
          }
        }
      }
    }
  }

</style>

contactUs页面就比较随性了

//contactUs
<template>
  <div>
    <div class="container">
      <div class="contact-us text-center">
        <dl>
          <dt class="h2">联系我</dt>
          <dd>有任何使用和体验问题,请联系我们</dd>
        </dl>
       <dl >
            <dt class="h3" style="margin-right: 36px">邮箱联系</dt>
            <dd class="gray">[email protected]</dd>
        </dl>
        <dl>
          <dt class="h3">部门地址</dt>
          <dd class="gray">部门地址:</dd>
        </dl>
        <div>
          <!-- <img src="../../../../static/image/address2.jpg" style="width: 100%"> -->
        </div>
      </div>
    </div>
    <div class="bottom-side">
      ©2018 石志凯 [email protected]
  </div>
  </div>
</template>

<script>
export default {
  name: 'contactUs'
}
</script>

<style scoped lang="less">
  .contact-us{
    padding-top: 55px;
    .h2{
      font-size: 28px;
    }
    .h3{
      font-size: 22px;
    }
    dl{
      margin-bottom: 72px;
      dd{
        margin-top: 18px;
      }
      .weixin{
        display: inline-block;
        width: 162px;
        height: 162px;
      }

    }
    .mr32{
      margin-right: 32px;
    }
    .ml32{
      margin-left: 32px;
    }
  }
  .bottom-side{
    color: #ababab;
    margin-top: 100px;
    height: 68px;
    background: #f7fbfd;
    text-align: center;
    padding-top: 32px;
  }
  @media (max-width: 768px){
    .contact-us{
      .mr32,.ml32{
        margin-right: 0;
        margin-left: 0;
      }
      dl{
        text-align: center!important;
      }
      dt{
        margin-right: 0!important;
      }
    }
  }
</style>

感谢作者大大开源项目,超级感谢

猜你喜欢

转载自www.cnblogs.com/smart-girl/p/13386575.html
EL