提交 4e7fab33 authored 作者: lihuihui's avatar lihuihui

初始化项目

上级 e60588c3
# Created by .ignore support plugin (hsz.mobi)
### Node template
# Logs
/logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# Nuxt generate
dist
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless
# IDE / Editor
.idea
# Service worker
sw.*
# macOS
.DS_Store
# Vim swap files
*.swp
# new-node-ezijing
## Build Setup
```bash
# install dependencies
$ npm install
# serve with hot reload at localhost:3000
$ npm run dev
# build for production and launch server
$ npm run build
$ npm run start
# generate static project
$ npm run generate
```
For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org).
# ASSETS
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your un-compiled assets such as LESS, SASS, or JavaScript.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked).
* {
margin: 0;
padding: 0;
}
html {
height: 100%;
font-size: 100px;
}
ul,
li,
a {
padding: 0;
margin: 0;
list-style: none;
}
a {
text-decoration: none;
}
body {
font-size: 14px;
font-family: 'Source Han Sans CN', 'PingFang SC', -apple-system, 'Microsoft YaHei', 'Helvetica', 'Arial', Verdana,
'Hiragino Sans GB', 'Wenquanyi Micro Hei', sans-serif;
padding: 0;
margin: 0;
background: #F9F8F8;
}
p {
margin: 0;
padding: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
img {
vertical-align: middle;
}
/* 独立 特殊修改 */
/* 进度条 原始背景色 加深 */
.el-progress-bar__outer {
background-color: #e5e5e5 !important;
}
.el-progress-bar__innerText {
color: #313131;
}
.el-progress-bar {
margin-right: -65px;
padding-right: 65px;
}
.el-progress__text {
margin-left: 6px;
}
/* 学分 页面 - 进度条样式 */
.el-progress-bar__outer {
border-radius: 0;
}
.el-progress-bar__inner {
border-radius: 0;
}
/* 富文本 */
.course-assess .detail .b1 {
display: block;
max-width: 5rem;
margin: 0.2rem auto;
width: 100%;
height: auto;
}
.course-assess .detail .h1 {
font-size: 0.16rem;
font-weight: 700;
color: #313131;
line-height: 0.38rem;
}
.course-assess .detail .h2 {
font-size: 0.14rem;
font-weight: 700;
color: #313131;
line-height: 0.3rem;
}
.course-assess .detail .p {
font-size: 0.14rem;
color: #313131;
line-height: 1.5;
text-align: justify;
}
.course-assess .detail .em {
font-size: 0.12rem;
color: #b49441;
line-height: 1.5;
text-align: justify;
}
/* 富文本 */
.discuss-scroll .item-list .text p {
margin: 0;
padding: 0;
}
/* 富文本 */
.discuss-detail-scroll .ques .text p {
margin: 0;
padding: 0;
}
.discuss-detail-scroll .ask .text p {
margin: 0;
padding: 0;
}
/* 公共标题 - 样式 */
.con-title {
padding: 0 30px;
font-size: 16px;
line-height: 45px;
border-bottom: 1px solid #c9c9c9;
}
/* 公共盒子 - 样式 */
.con-box {
margin: 0.3rem;
padding: 0.3rem 0.3rem 0.15rem 0.3rem;
background: #ffffff;
overflow: hidden;
position: relative;
}
/* Extra small devices (portrait phones, less than 576px) */
@media (max-width: 575px) {
html {
font-size: 80px;
}
.con-box {
margin: 0.2rem 0;
padding: 0.2rem;
}
}
/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) and (max-width: 767px) {
html {
font-size: 80px;
}
.step3 {
width: 80%;
}
.con-box {
margin: 0.2rem 0;
padding: 0.2rem;
}
}
/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) and (max-width: 991px) {
html {
font-size: 80px;
}
}
/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) and (max-width: 1199px) {
html {
font-size: 90px;
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
html {
font-size: 100px;
}
}
a {
color: currentColor;
}
<template>
<div class="foot-mian">
<div class="foot-box">
<div class="foot-content">
<div class="left-content">
<div>
<a href="http://jsj.moe.gov.cn" target="_blank" >
教育部涉外监管网
</a>
</div>
<div>
<a href="http://www.pbcsf.tsinghua.edu.cn" target="_blank" >
五道口官网
</a>
</div>
<!-- <div>
合作大学官网
</div> -->
</div>
<div class="center-content">
<div class="address">&nbsp;&nbsp;&nbsp;&nbsp;址:北京市海淀区中关村东路1号院清华科技园7号楼5层</div>
<div class="phone">联系电话:010-62793299</div>
<div class="mail">&nbsp;&nbsp;&nbsp;&nbsp;箱:service@ezijing.com</div>
</div>
<div class="right-content">
<img src="https://zws-imgs-pub.ezijing.com/static/public/734d8fd7b853b838e5e029049e2d9db3.png" alt="" class="code">
<div class="tips-txt">
<img src="https://zws-imgs-pub.ezijing.com/static/public/184235d9f6edbb39d52fc6f77339ff5b.png" alt="">
<div class="txt">微信公众号</div>
</div>
</div>
</div>
<!-- <div class="links">
友情链接:中国人民银行 中国涉外监管网 中国银行协会 中国证券投资基金业协会
</div> -->
</div>
<div class="copyright" style="height: 40px;line-height: 40px;color: rgba(153, 153, 153, 1);background: #fff;">
<div class="inner" style="width: 100%;justify-content: center;display: flex;">
<p style="font-size: 12px;">Copyright © 2017 Zijing Education. All rights reserved. 清控紫荆(北京)教育科技股份有限公司</p>
<a target="_blank" href="https://tsm.miit.gov.cn/dxxzsp/" style="color: rgba(153, 153, 153, 1);text-decoration:none;margin-left: 10px;">
<p style="font-size: 12px;">京ICP证150431号</p>
</a>
<a target="_blank" class="record" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802023681"
style="color: rgba(153, 153, 153, 1);text-decoration:none;align-items: center;display: flex;margin-right: 5px;">
<img src="https://zws-imgs-pub.ezijing.com/e0a0ec47dfdfc1e0797b1d5254021d00.png" alt=""
style="width: 20px;height: 20px;margin: 0 6px;display: block;">
<p style="font-size: 12px;">安备 11010802023681号</p>
</a>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index" style="color: rgba(153, 153, 153, 1);text-decoration:none;">
<p style="font-size: 12px;">京ICP备15016866号-1</p>
</a>
</div>
</div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
.foot-mian{
width: 100%;
background: rgba(170, 25, 65, 1);
.links{
padding-top: 12px;
font-size: 14px;
font-weight: 300;
line-height: 24px;
color: #FFFFFF;
opacity: 0.6;
width: 1200px;
margin: 0 auto;
}
.foot-box{
padding: 80px 0 35px;
width: 1200px;
margin: 0 auto;
}
.foot-content{
// height: 300px;
display: flex;
.left-content{
div{
opacity: 0.7;
font-size: 22px;
font-weight: 300;
line-height: 50px;
color: #FFFFFF;
text-decoration: underline;
letter-spacing: 3px;
}
}
.center-content{
font-size: 16px;
line-height: 32px;
color: #FFFFFF;
letter-spacing: 3px;
opacity: 0.7;
margin-left: 88px;
}
.right-content{
margin-left: auto;
padding-top: 20px;
.code{
width: 120px;
display: block;
}
.tips-txt{
padding-top: 20px;
display: flex;
align-items: center;
justify-content: center;
img{
width: 21px;
display: block;
}
.txt{
font-size: 14px;
color: #FFFFFF;
margin-left: 7px;
}
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="head-mian">
<div class="color-bar"></div>
<div class="head-top-content">
<div class="max-width-content">
<img src="https://zws-imgs-pub.ezijing.com/static/public/307f688850f8308a5c944bd129436fe0.png" alt="" @click="goPage('/')">
<!-- <div class="login-btn-box">
<div class="login">快速登录</div>
<div class="register">注册</div>
</div> -->
</div>
</div>
<div class="head-nav-content max-width-content">
<ul class="nav-item-box" @mouseleave="navLeave">
<template v-for="(item, index) in navData">
<li :key="index">
<div :class="getNameActive(item)">
<template v-if="!item.path">
<template v-if="item.click">
<span @click="showEnroll">{{ item.name }}</span>
</template>
<template v-else>
{{ item.name }}
</template>
</template>
<template v-else>
<nuxt-link :to="item.path">{{ item.name }}</nuxt-link>
</template>
</div>
<div class="child-item" v-if="item.childern">
<div class="one-level">
<template v-for="(level2Item, level2Index) in item.childern">
<div :class="$route.path === level2Item.path || level2Item.isShow ? 'li active' : 'li'" :key="level2Index + 'level2'" @mouseenter="levelShow(level2Item)" @mouseleave="levelShow(level2Item, 'out')">
<div
@click="goPage(level2Item.path, level2Item.pathType)"
class="name"
>
{{ level2Item.name }}
</div>
<div class="el-icon-arrow-right" v-if="level2Item.childern"></div>
</div>
</template>
</div>
<template v-for="(level2Item, level2Index) in item.childern">
<div class="two-level" :key="level2Index + 'two-level2'" v-if="level2Item.isShow" @mouseenter="level3Show" @mouseleave="level3Show(level2Item, 'out')">
<div @click="goPage(level3Item.path, level3Item.pathType)" class="name" v-for="(level3Item, level3Index) in level2Item.childern" :key="level3Index + level3Item">
{{ level3Item.name }}
</div>
</div>
</template>
</div>
</li>
</template>
</ul>
<div class="search-box"></div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
navData: [
{
name: '项目介绍',
path: '/about/introduce',
childern: [
{
name: '项目背景',
isShow: false,
path: '/about/introduce'
},
{
name: '项目特色',
isShow: false,
path: '/about/culture'
},
{
name: '证书授予',
isShow: false,
path: '/about/news'
}
]
},
{
name: '课程与师资',
childern: [
{
name: '课程设置',
isShow: false,
path: '/about/introduce',
},
{
name: '师资力量',
isShow: false,
path: '/about/introduce'
}
]
},
{
name: '最新动态',
childern: [
{
name: '热点新闻',
isShow: false
},
{
name: '教授采访',
isShow: false
}
]
},
{
name: '报名申请',
childern: [
{
name: '有关申请',
isShow: false
},
{
name: '费用资助',
isShow: false
},
{
name: '常见问题',
isShow: false
}
]
},
{
name: '校友风采',
childern: [
{
name: '杰出校友',
isShow: false
},
{
name: '校友分享',
isShow: false
}
]
}
],
time: null
}
},
methods: {
goPage(path, goType) {
if (parseInt(goType) === 3) {
this.$message('暂未开通,尽请期待')
} else {
if (path) {
goType
? window.open(path)
: this.$router.push({ path: path })
}
}
},
levelShow(item, isOut) {
if (item.childern) {
if (isOut) {
clearTimeout(this.time)
this.time = setTimeout(() => {
item.isShow = false
}, 500)
return
}
this.navLeave()
item.isShow = true
} else {
this.navLeave()
}
},
level3Show(item, isOut) {
if (isOut) {
item.isShow = false
} else {
clearTimeout(this.time)
}
},
navLeave() {
this.navData.map(item => {
if (item.childern) {
item.childern.map(cItem => {
cItem.isShow = false
})
}
})
this.$forceUpdate()
},
showEnroll() {
const dom = document.getElementById('show-enroll')
const dom2 = document.getElementById('show-enroll-content')
dom.style.display = 'block'
dom2.style.display = 'block'
}
},
computed: {
getNameActive() {
return (item) => {
const currentPath = this.$route.path
if (item.path === currentPath) {
return 'name active'
} else {
let className = 'name'
if (item.childern) {
item.childern.map(cData => {
cData.path === currentPath && (className = 'name active')
})
}
return className
}
}
}
}
}
</script>
<style lang="scss" scoped>
ul,li{
margin: 0;
padding: 0;
list-style: none;
}
.head-mian{
width: 100%;
background: #fff;
.color-bar{
height: 10px;
background: #AA1941;
}
.head-top-content{
// width: 1200px;
// margin: 0 auto;
border: 1px solid #EBEBEB;
padding: 23px 0 22px;
.max-width-content{
display: flex;
align-items: center;
img{
height: 55px;
cursor: pointer;
display: block;
}
.login-btn-box{
margin-left: auto;
display: flex;
div{
width: 72px;
height: 24px;
box-sizing: border-box;
text-align: center;
line-height: 24px;
font-size: 12px;
border-radius: 6px;
margin-left: 10px;
cursor: pointer;
}
.login{
background: #AA1941;
color: #fff;
}
.register{
color: #333333;
border: 1px solid #EAEAEA;
}
}
}
}
.max-width-content{
width: 1200px;
margin: 0 auto;
}
.head-nav-content{
height: 72px;
display: flex;
align-items: center;
.nav-item-box{
padding-left: 11px;
display: flex;
li{
position: relative;
margin-right: 60px;
.name{
line-height: 72px;
font-size: 22px;
color: #333333;
cursor: pointer;
a{
color: #333333;
font-size: 22px;
text-decoration: none;
}
&.active{
font-weight: 500;
color: #AA1941;
a{
// font-weight: 500;
color: #AA1941;
}
}
}
&:hover{
.name{
color: #AA1941;
font-weight: 500;
a{
// font-weight: 500;
color: #AA1941;
}
}
.child-item{
.one-level{
display: block;
}
}
}
.child-item{
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
position: absolute;
top: 72px;
left: -10px;
display: flex;
background: #fff;
z-index: 999;
.one-level{
padding: 36px 24px 0;
border-top: 4px solid rgba(170, 25, 65, 1);
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
display: none;
.li{
margin-bottom: 36px;
display: flex;
justify-content: space-between;
&.active{
.name{
color: rgba(170, 25, 65, 1);
}
}
.name{
font-weight: 400;
line-height: 100%;
color: #333333;
font-size: 16px;
white-space: nowrap;
a{
color: #333333;
font-size: 16px;
}
}
.el-icon-arrow-right{
color: rgba(51, 51, 51, 1);
margin-left: 15px;
}
&:hover{
.name{
color: rgba(170, 25, 65, 1);
a{
color: rgba(170, 25, 65, 1);
}
}
.el-icon-arrow-right{
color: rgba(170, 25, 65, 1);
}
}
}
}
.two-level{
pointer-events: auto;
padding: 34px 41px 0 24px;
.name{
font-size: 16px;
font-weight: 400;
line-height: 20px;
color: #333333;
margin-bottom: 36px;
white-space: nowrap;
&:hover{
color: rgba(170, 25, 65, 1);
}
a{
font-size: 16px;
font-weight: 400;
line-height: 20px;
color: #333333;
margin-bottom: 36px;
white-space: nowrap;
}
}
}
}
}
}
}
}
</style>
# COMPONENTS
**This directory is not required, you can delete it if you don't want to use it.**
The components directory contains your Vue.js Components.
_Nuxt.js doesn't supercharge these components._
<template>
<div class="contact-content-box">
<div id="allmap"></div>
<!-- <img src="https://zws-imgs-pub.ezijing.com/static/public/ae02f022dd9ab2ffec155b98a9c5f809.png" alt=""> -->
<div class="con-mian">
<div class="tit">联系我们</div>
<div class="info">
&nbsp;&nbsp;址:北京市海淀区中关村东路1号院7号楼5层<br />
联系电话:010-62793299<br />
&nbsp;&nbsp;箱:service@ezijing.com
</div>
<div class="follow">
<div class="tits">关注我们</div>
<ul>
<li>
<img src="https://zws-imgs-pub.ezijing.com/static/public/5c4a58f1d41f786e7713a5a84069404d.png" alt="">
<div class="name">紫荆企业微信</div>
</li>
<li>
<img src="https://zws-imgs-pub.ezijing.com/static/public/b4de41c51c1a897ee4bca574d7bf0d50.png" alt="">
<div class="name">紫荆官方微博</div>
</li>
<li>
<img src="https://zws-imgs-pub.ezijing.com/static/public/85fb47e859d152f1021bc6b94154ce91.png" alt="">
<div class="name">紫荆官方抖音</div>
</li>
<li>
<img src="https://zws-imgs-pub.ezijing.com/static/public/e2ffbf6b9d7fd6fd66d2487e7c33540c.png" alt="">
<div class="name">紫荆小鹅通</div>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
export default {
mounted() {
if(process.browser){
!function (mapInit) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://api.map.baidu.com/api?v=2.0&ak=Z9Km7UTGFI2fwRrpGp7Mji4ySDsvn30d&callback=mapinit";
window['mapinit'] = function () {
mapInit();
};
document.head.appendChild(script);
}(function () {
// 这里使用BMap
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.336323, 39.998848), 20);
map.enableScrollWheelZoom(true);
// 创建点标记
var marker1 = new BMap.Marker(new BMap.Point(116.336323, 39.998848));
map.addOverlay(marker1);
});
}
}
}
</script>
<style lang="scss" scoped>
#allmap{
width: 1000px;
height: 320px;
}
.contact-content-box{
width: 1000px;
padding-bottom: 100px;
img{
width: 100%;
display: block;
}
.con-mian{
background: #fff;
padding: 60px 75px 62px;
.tit{
font-size: 22px;
font-weight: 500;
line-height: 100%;
}
.info{
font-size: 16px;
line-height: 32px;
color: #333333;
margin-top: 20px;
}
.follow{
padding-top: 97px;
.tits{
font-size: 22px;
font-weight: 500;
line-height: 100%;
color: #333333;
margin-bottom: 30px;
}
ul{
display: flex;
li{
width: 130px;
margin-right: 80px;
img{
display: block;
width: 100%;
}
.name{
font-size: 16px;
margin-top: 22px;
text-align: center;
color: #666666;
}
}
}
}
}
}
</style>
<template>
<div class="culture-content-box">
<div class="video-box">
<video
src="https://zws-imgs-pub.ezijing.com/static/public/630810d0c5276d1195325d88d40a0034.mp4"
width=""
height=""
controls="controls"
preload="none"
></video>
</div>
<div class="honor-content">
<div class="tit">企业荣誉</div>
<ul>
<li>
<div class="flex">
<img src="https://zws-imgs-pub.ezijing.com/static/public/9f22659632f43c0b1bb93d6adf49bd4c.png" alt="">
<div class="text">
2015年<br />
将五道口金融学院<br />
在线教育中心商业化<br />
成立清控紫荆教育
</div>
</div>
<div class="flex">
<img src="https://zws-imgs-pub.ezijing.com/static/public/48b2ab5dfc414d3f6c8500e8328f6b28.png" alt="">
<div class="text">
2015年9月<br />
签约索菲亚大学推出<br />
在线MBA学位项目
</div>
</div>
</li>
<li>
<div class="flex">
<img src="https://zws-imgs-pub.ezijing.com/static/public/a37b13b8fa98ee448850bbb32a5fcd2f.png" alt="">
<div class="text">
行业技术优秀服务商<br />
——在线教育资讯网
</div>
</div>
<div class="flex">
<img src="https://zws-imgs-pub.ezijing.com/static/public/00cdb23e91efa803bb711058e251e962.png" alt="">
<div class="text">
综合实力突出教育集团<br />
——中国教育网
</div>
</div>
</li>
<li>
<div class="flex">
<img src="https://zws-imgs-pub.ezijing.com/static/public/5fdb3a042efcb0f8fb0eea8d4376eacc.png" alt="">
<div class="text">
年度城市教育行业<br />
影响力机构<br />
——巨量引擎
</div>
</div>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
.culture-content-box{
width: 1000px;
padding-bottom: 100px;
img{
width: 100%;
display: block;
}
.video-box{
width: 1000px;
height: 552px;
background: #AA1941;
padding: 51px 100px;
box-sizing: border-box;
video{
width: 100%;
height: 100%;
}
}
.honor-content{
padding: 50px 50px 20px;
background: #fff;
.tit{
font-size: 22px;
font-weight: 500;
line-height: 100%;
color: #424242;
margin-bottom: 30px;
}
ul{
li{
display: flex;
justify-content: space-between;
margin-bottom: 80px;
.flex{
align-items: center;
display: flex;
}
img{
width: 211px;
display: block;
}
.text{
font-size: 16px;
font-weight: 300;
line-height: 32px;
color: #424242;
margin-left: 38px;
}
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="detail-content-box">
<div class="back-btn" @click="$router.go(-1)">
<div class="el-icon-arrow-left"></div>
<div class="text">返回</div>
</div>
<div class="times">{{ data.created_time }}</div>
<div class="titles">{{ data.title }}</div>
<div class="article-content" v-html="data.content">
<!-- 当今世界正经历百年未有之大变局,中国正在努力构建“双循环”新格局,深化金融改革信号明确,我们迫切需要什么样的金融人才?如何培养担当大任的金融领军人才?
10月16日上午,由紫荆教育、印第安纳大学KELLEY商学院主办,中国教育发展战略学会支持的2020(第七届)紫荆·国际金融人才论坛暨“中国未来金融领袖计划”新闻发布会在北京威斯汀酒店举行,权威大咖云集,观点激荡碰撞出独家思想盛宴。紫荆教育董事长张博、资深副总裁金梅,全国社会保障基金理事会原副理事长、中国基金业协会母基金专委会主席王忠民,中国银行业协会东方银行业高级管理人员研修院院长助理唐绍云,中国教育发展战略学会教育认证专业委员会秘书长顾占春,清华大学公共管理学院中国公共领导力中心副主任于永达,清华大学五道口金融学院业界导师、香港致富证券首席经济学家肇越,天风证券首席风险官王勇,人民网、新华网、新浪网、凤凰网、搜狐视频、网易网等媒体朋友参加了论坛。
<img src="https://zws-imgs-pub.ezijing.com/static/public/c563a1e422b67a14b9fb22ea86d56e0b.png" alt=""> -->
</div>
<div class="recommend-content">
<div class="titles">
<div class="line"></div>
<div class="text">相关推荐</div>
</div>
<ul class="list-box">
<li v-for="(item, index) in listData" :key="index" @click="goPage(item)">
<img :src="item.photo_uri" alt="">
<div class="dec">{{ item.title }}</div>
</li>
</ul>
</div>
<div class="more-btn" @click="$router.push({ path: '/about/news' })">查看更多</div>
</div>
</template>
<script>
export default {
data () {
return {
data: {},
listData: []
}
},
async fetch() {
this.data = await this.$axios.$get(`/api/zws/v1/cms/news/${this.$route.query.id}`).then(res => {
return res
})
const params = {
page: 1,
per_page: 100,
type: 74,
project_id: 1013
}
this.listData = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => {
return res.filter((item, index) => {
return index < 3
})
})
},
mounted () {
},
methods: {
goPage(item) {
if (item.source === '') {
// this.$router.push({
// path: '/about/news-detail',
// query: {
// id: item.id
// }
// })
window.open(`${window.location.origin}/about/news-detail?id=${item.id}`)
} else {
window.open(item.source)
}
}
}
}
</script>
<style lang="scss" scoped>
.detail-content-box{
width: 1000px;
background: #fff;
padding: 50px 50px 94px;
box-sizing: border-box;
margin-bottom: 100px;
.back-btn{
display: flex;
align-items: center;
cursor: pointer;
.el-icon-arrow-left{
color: rgba(153, 153, 153, 1);
font-size: 16px;
}
.text{
font-size: 16px;
color: #999999;
}
}
.times{
font-size: 16px;
line-height: 100%;
margin: 35px 0 16px;
color: #999999;
}
.titles{
font-size: 32px;
font-weight: bold;
color: #141414;
height: 62px;
border-bottom: 1px solid #E6E6E6;
line-height: 100%;
}
.article-content{
padding-top: 25px;
font-size: 14px;
line-height: 28px;
color: #333333;
img{
display: block;
width: 100%;
margin-top: 40px;
}
}
.recommend-content{
border-top: 1px solid #E6E6E6;
padding-top: 37px;
.titles{
display: flex;
align-items: center;
.line{
width: 6px;
height: 22px;
background: #AA1941;
}
.text{
font-size: 22px;
color: #333333;
margin-left: 10px;
}
}
.list-box{
margin-top: 50px;
display: flex;
justify-content: space-between;
li{
width: 280px;
img{
width: 280px;
height: 184px;
display: block;
}
.dec{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
font-size: 16px;
line-height: 26px;
color: #333333;
margin-top: 10px;
}
}
}
}
.more-btn{
position: relative;
z-index: 999;
width: 164px;
height: 40px;
border: 1px solid #D3D3D3;
border-radius: 8px;
line-height: 40px;
text-align: center;
font-size: 16px;
color: #999999;
margin: 50px auto 0;
cursor: pointer;
}
}
</style>
<template>
<div class="intr-content-box">
<img src="https://zws-imgs-pub.ezijing.com/static/public/e9de7416bef8822d5557afdfcda69f8a.png" alt="">
<div class="text-content">
<div class="title">紫荆简介</div>
<div class="text-intr">
紫荆教育全称是清控紫荆(北京)教育科技股份有限公司,由清华控股有限公司于2015年以清华大学五道口金融学院相关知识产权创设而成。“紫荆”二字取自清华大学校花“紫荆花”,寓意“自强不息,向美而行”。<br />
紫荆教育以教育为本、以科技赋能、以专业化为基础,以国际化为目标,提供高端国际学位教育、职业教育和在线教育解决方案,为我国培养高质量的国际化人才和产业人才。
</div>
<div class="garish-content">
<div class="flex-box">
<div class="li w184">
<div class="col-txt">12<span></span></div>
<div class="n-txt">国际合作院校</div>
</div>
<div class="li w180">
<div class="col-txt">522<span></span></div>
<div class="n-txt">线上课程</div>
</div>
<div class="li w249">
<div class="col-txt">600<span>+</span></div>
<div class="n-txt">金融机构/协会/政府/学校</div>
</div>
<div class="li w186">
<div class="col-txt">700<span>+</span></div>
<div class="n-txt">国内外师资团队</div>
</div>
</div>
<div class="flex-box mar-t-35">
<div class="li w188">
<div class="col-txt">1000<span>+</span></div>
<div class="n-txt">学术直播课</div>
</div>
<div class="li w180">
<div class="col-txt">4800<span>+</span></div>
<div class="n-txt">总研发课时</div>
</div>
<div class="li w249">
<div class="col-txt">5000<span>+</span></div>
<div class="n-txt">学位学员</div>
</div>
<div class="li w186">
<div class="col-txt">500<span>万+</span></div>
<div class="n-txt">人次学习</div>
</div>
</div>
</div>
<div class="tab-content">
<div class="tab-nav">
<div :class="indexActive === 0 ? 'li active' : 'li'" @click="changeIndex(0)">
<div class="t1">专业化</div>
<div class="t2">长期思维&nbsp;&nbsp;严谨治学</div>
</div>
<div :class="indexActive === 1 ? 'li active' : 'li'" @click="changeIndex(1)">
<div class="t1">科技化</div>
<div class="t2">源自清华&nbsp;&nbsp;持续投入</div>
</div>
<div :class="indexActive === 2 ? 'li active' : 'li'" @click="changeIndex(2)">
<div class="t1">国际化</div>
<div class="t2">放眼全球&nbsp;&nbsp;国际合作</div>
</div>
</div>
<div class="tab-con" v-if="indexActive === 0">
<span>8</span>年深耕教育产业,完善的教学管理体系和内控体系 ; <br />
<span>12</span>所国际合作大学,<span>16</span>个国际学位项目,互认学分 ; <br />
<span>600+</span>金融机构政府、协会等合作单位 ; <br />
<span>50+</span>课程研发人员,<span>700+</span>师资团队,<span>4800+</span>总研发课时。
</div>
<div class="tab-con tab-con2" v-if="indexActive === 1">
源自清华 持续投入 <span>50+</span>技术研发团队,<span>1亿+</span>累计研发投入<br />
<span>500万+</span>总学习人次,<span>24</span>小时在线<br />
<span>1000+</span>次直播,<span>10000+</span>题库,<br />
大数据智能学习分析、作业评判、智能化营销数据分配<br />
</div>
<div class="tab-con tab-con3" v-if="indexActive === 2">
<span>WSCUC、AACSB、EQUIS…</span>认证<br />
<span>30</span>余位哈佛、清华、哥伦比亚等国际一流大学人才组成的国际化团队;<br />
<span>40%</span>员工有研究生学历<br />
<span>5</span>大洲<span>16</span>个国家/地区国际校友网络。覆盖全国<span>380+</span>省、市、自治区及行政特区
</div>
</div>
</div>
</div>
</template>
<script>
export default {
components: {
},
data() {
return {
indexActive: 0
}
},
methods: {
changeIndex(n) {
this.indexActive = n
}
}
}
</script>
<style lang="scss" scoped>
.intr-content-box{
width: 1000px;
padding-bottom: 100px;
img{
width: 100%;
display: block;
}
.text-content{
padding: 50px 64px 81px;
box-sizing: border-box;
background: #fff;
.title{
font-size: 22px;
font-weight: 500;
color: #424242;
margin-bottom: 15px;
}
.text-intr{
font-size: 16px;
line-height: 32px;
color: #424242;
}
}
.garish-content{
padding-top: 66px;
.flex-box{
display: flex;
width: 800px;
margin: 0 auto;
&.mar-t-35{
padding-top: 35px;
}
.li{
box-sizing: border-box;
padding-top: 6px;
height: 70px;
border-right: 1px solid #C3C3C3;
&:last-child{
border: none;
}
.col-txt{
font-size: 36px;
font-weight: 500;
line-height: 30px;
color: #AA1941;
text-align: center;
span{
font-size: 24px;
}
}
.n-txt{
font-size: 16px;
font-family: Source Han Sans CN;
line-height: 34px;
text-align: center;
color: #666666;
}
&.w184{
width: 184px;
}
&.w180{
width: 180px;
}
&.w249{
width: 249px;
}
&.w186{
width: 186px;
}
&.w188{
width: 188px;
}
}
}
}
.tab-content{
padding-top: 80px;
.tab-nav{
display: flex;
justify-content: space-between;
.li{
width: 280px;
height: 150px;
box-sizing: border-box;
padding-top: 38px;
background: #FBFBFB;
// margin-right: 16px;
cursor: pointer;
&.active{
background: #FFFFFF;
box-shadow: 0px 1px 25px rgba(0, 0, 0, 0.06);
position: relative;
&::after{
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 8px;
background: #AA1941;
}
}
.t1{
text-align: center;
line-height: 100%;
font-size: 34px;
font-weight: 500;
color: #AA1941;
}
.t2{
font-size: 20px;
font-weight: 300;
line-height: 100%;
color: #424242;
margin-top: 16px;
text-align: center;
}
}
}
.tab-con{
width: 872px;
background: #FFFFFF;
box-shadow: 0px 1px 25px rgba(0, 0, 0, 0.06);
box-sizing: border-box;
padding: 20px 48px;
margin-top: 40px;
position: relative;
font-size: 16px;
font-weight: 400;
line-height: 40px;
color: #333333;
span{
color: rgba(170, 25, 65, 1);
font-size: 28px;
font-weight: bold;
}
&.tab-con2{
&::after{
top: -15px;
left: 50%;
transform: translateX(-50%);
}
}
&.tab-con3{
&::after{
top: -15px;
left: auto;
right: 140px;
}
}
&::after{
content: '';
position: absolute;
top: -15px;
left: 140px;
width: 0;
height: 0;
border-left: 15px solid transparent;
border-right: 15px solid transparent;
border-bottom: 15px solid #fff;
}
}
}
}
</style>
<template>
<div class="news-content-box">
<img src="https://zws-imgs-pub.ezijing.com/static/public/a72ef577c9bae694c6bfc33e5bfc93af.png" alt="" class="banner">
<ul class="list-content">
<template v-for="(item, index) in listData">
<li @click="goDetail(item)" :key="index">
<img :src="item.photo_uri" alt="">
<div class="right-con">
<div class="time">{{ item.created_time }}</div>
<div class="title">{{ item.title }}</div>
<div class="text">{{ item.summary }}</div>
</div>
</li>
</template>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
listData: []
}
},
async fetch() {
const params = {
page: 1,
per_page: 100,
type: this.$route.query.type || 74,
project_id: 1013
}
this.listData = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => {
return res
})
},
methods: {
goDetail(item) {
if (item.source === '') {
this.$router.push({
path: '/about/news-detail',
query: {
id: item.id
}
})
} else {
window.open(item.source)
}
}
}
}
</script>
<style lang="scss" scoped>
.news-content-box{
width: 1000px;
padding-bottom: 100px;
display: block;
.banner{
width: 100%;
display: block;
}
.list-content{
width: 1000px;
padding: 50px;
background: #fff;
li{
display: flex;
border-bottom: 1px solid #E6E6E6;
margin-bottom: 20px;
padding-bottom: 36px;
cursor: pointer;
&:hover{
.right-con{
.text{
color: #141414;
}
}
}
img{
width: 320px;
height: 210px;
display: block;
}
.right-con{
margin-left: 30px;
.time{
font-size: 16px;
font-weight: 300;
line-height: 100%;
color: #AA1941;
padding-top: 13px;
}
.title{
font-size: 22px;
font-weight: bold;
line-height: 32px;
color: #141414;
margin-top: 10px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.text{
font-size: 14px;
font-weight: 300;
line-height: 24px;
color: #666666;
margin-top: 15px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 5;
-webkit-box-orient: vertical;
}
}
}
}
}
</style>
<template>
<ul class="tab-content">
<li
v-for="(item, index) in dataNav"
:class="item.pathActive.findIndex(path => {
return path === $route.path
}) !== -1 && 'active'"
:key="index"
@click="goPage(item.goPath)"
>
{{ item.name }}
</li>
</ul>
</template>
<script>
export default {
data() {
return {
dataNav: [
{
name: '紫荆简介',
goPath: '/about/introduce',
pathActive: ['/about/introduce']
},
{
name: '文化理念',
goPath: '/about/culture',
pathActive: ['/about/culture']
},
{
name: '新闻中心',
goPath: '/about/news',
pathActive: ['/about/news', '/about/news-detail']
},
{
name: '联系我们',
goPath: '/about/contact',
pathActive: ['/about/contact']
}
// {
// name: '招聘信息',
// goPath: '',
// pathActive: ['']
// }
]
}
},
mounted() {
},
methods: {
goPage(path) {
this.$router.push({
path: path
})
}
}
}
</script>
<style lang="scss" scoped>
.tab-content{
width: 160px;
height: 420px;
background: #fff;
padding-top: 35px;
padding-bottom: 43px;
li{
position: relative;
width: 100%;
height: 40px;
font-size: 22px;
line-height: 40px;
text-align: center;
color: #777777;
margin-bottom: 60px;
cursor: pointer;
&:last-child{
margin: 0;
}
&.active{
color: rgba(170, 25, 65, 1);
&::after{
content: '';
width: 8px;
height: 40px;
background: rgba(170, 25, 65, 1);
position: absolute;
top: 0;
left: 0;
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="party-content-box">
<img src="https://zws-imgs-pub.ezijing.com/static/public/54e010d17c5cf9a36ef3addd9e893a4f.png" alt="" class="banner">
<div class="party-con-mian">
<div class="tit">校友会简介</div>
<div class="text-con">
<p>紫荆教育拥有阵容强大、组织活跃、遍布全球的校友网络。截至2020年12月,紫荆校友人数已经超过5000位,校友们通过地区分会、行业协会/俱乐部、班级这个三维立体网络与紫荆紧密相连。同时,通过“i紫荆”在线信息平台,促进校友间的相互学习和交流。</p>
<p>至今,在广大校友的热情支持下,紫荆校友会已经先后成立了北京、上海、深圳等地校友分会,并将陆续成立其他省份和海外等多地校友分会。紫荆各地校友分会的成立将有效整合跨界资源的精英网络,为紫荆校友蓄势未来、取得更大成功奠定坚实的基础。</p>
<p>紫荆校友会不是简单意义上的校友联谊机构,她是紫荆教学活动的延续,是培养新生代企业家的一个重要环节。紫荆校友会秉持“紫荆花开,向美而行”的美好愿景,倡导培养终身学习的习惯,积极奉献爱心、回馈社会,并保持“健康可持续”的生活方式。在紫荆大家庭里,校友们生活上彼此关心、事业上相互支持、精神上相互激励,结交真心朋友、分享精彩人生。</p>
</div>
<div class="tit">校友分布</div>
<div class="text-con2">
国内学员已百分百覆盖中国34个省级行政区、380+城市及全球多个国家和地区
</div>
<div class="img-content">
<img src="https://zws-imgs-pub.ezijing.com/static/public/8d402595ac1eb1c5142b548fa84be60d.png" alt="" class="img1">
<img src="https://zws-imgs-pub.ezijing.com/static/public/560f659bcb9896f6dde674beeac1fd15.png" alt="" class="img2">
</div>
<div class="end-time">数据截止2020年6月</div>
</div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
.party-content-box{
width: 1000px;
padding-bottom: 100px;
img{
width: 100%;
display: block;
}
.party-con-mian{
padding: 50px;
background: #fff;
.tit{
font-size: 22px;
line-height: 100%;
color: #424242;
margin-bottom: 20px;
}
.text-con{
p{
font-size: 16px;
font-family: SourceHanSansCN-Light;
line-height: 32px;
color: #424242;
margin-bottom: 35px;
}
}
.text-con2{
font-size: 16px;
font-family: SourceHanSansCN-Light;
line-height: 100%;
color: #424242;
margin-bottom: 25px;
}
.img-content{
display: flex;
.img1{
width: 389px;
height: 256px;
display: block;
}
.img2{
width: 383px;
height: 241px;
display: block;
margin-left: 105px;
}
}
.end-time{
text-align: right;
margin-top: 62px;
font-size: 16px;
color: #424242;
}
}
}
</style>
<template>
<ul class="tab-content">
<li
v-for="(item, index) in dataNav"
:class="item.pathActive.findIndex(path => {
return path === $route.path
}) !== -1 && 'active'"
:key="index"
@click="goPage(item.goPath)"
>
{{ item.name }}
</li>
</ul>
</template>
<script>
export default {
data() {
return {
dataNav: [
{
name: '校友会',
goPath: '/alumnus',
pathActive: ['/alumnus']
}
]
}
},
mounted() {
},
methods: {
goPage(path) {
this.$router.push({
path: path
})
}
}
}
</script>
<style lang="scss" scoped>
.tab-content{
width: 160px;
height: 110px;
background: #fff;
padding-top: 35px;
padding-bottom: 43px;
li{
position: relative;
width: 100%;
height: 40px;
font-size: 22px;
line-height: 40px;
text-align: center;
color: #777777;
margin-bottom: 60px;
cursor: pointer;
&:last-child{
margin: 0;
}
&.active{
color: rgba(170, 25, 65, 1);
&::after{
content: '';
width: 8px;
height: 40px;
background: rgba(170, 25, 65, 1);
position: absolute;
top: 0;
left: 0;
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="alumni-content">
<div :class="isScale ? 'title-content max-width scale' : 'title-content max-width'">
<div class="left-title">
<div class="line"></div>
<div class="text">校友故事</div>
</div>
</div>
<div :class="isScale ? 'small-tit max-width scale' : 'small-tit max-width'">You are What you together,结识5000+ 同样优秀的人!</div>
<div class="swiper-content" @mouseenter="swiperStop" @mouseleave="swiperStart">
<div v-swiper:mySwiper="swiperOption" ref="mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item, index) in listData" :key="index" @click="goPage(item)">
<img :src="item.photo_uri">
<div class="text">{{ item.title }}</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data () {
const _this = this
return {
isScale: false,
listData: [],
// 轮播图配置信息, 更多请参考 swiper.js 中文网,上面很详细。
swiperOption: {
observer: true,
observeParents: true,
speed: 400,
autoplay: true,
delay: 3000,
loop: true,
slidesPerView: 4,
centeredSlides: true,
spaceBetween: 20,
on: {
init() {
_this.swiper.slideNext()
}
}
}
}
},
async fetch() {
const params = {
page: 1,
per_page: 100,
type: 71,
project_id: 1013
}
this.listData = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => {
return res
})
},
computed: {
swiper() {
return this.$refs.mySwiper.swiper;
}
},
created() {
},
mounted() {
if (document.documentElement.clientWidth < 1400) {
// this.isScale = true
}
},
methods: {
swiperStop() {
this.swiper.autoplay.stop()
},
swiperStart() {
this.swiper.autoplay.start()
},
goPage(item) {
if (item.source === '') {
this.$router.push({
path: '/about/news-detail',
query: {
id: item.id
}
})
} else {
window.open(item.source)
}
}
}
}
</script>
<style lang="scss" scoped>
.max-width{
width: 1200px;
margin: 0 auto;
}
.alumni-content{
padding-top: 89px;
.title-content{
display: flex;
.left-title{
display: flex;
.line{
width: 6px;
height: 34px;
background: #AA1941;
}
.text{
font-size: 34px;
font-weight: bold;
line-height: 34px;
color: #424242;
margin-left: 9px;
}
}
}
.small-tit{
font-size: 24px;
font-weight: bold;
line-height: 34px;
color: #424242;
margin-top: 12px;
}
.swiper-content{
padding-top: 37px;
// width: 100%;
.swiper-slide{
position: relative;
width: 388px;
.text{
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 40px;
line-height: 40px;
background: rgba(0,0,0,0.5);
padding: 0 20px;
box-sizing: border-box;
font-size: 20px;
color: #FEFEFE;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
img{
width: 100%;
}
}
}
}
.scale{
transform: scale(0.85);
}
</style>
<template>
<div class="banner-content" @mouseenter="swiperStop" @mouseleave="swiperStart">
<div v-swiper:mySwiper="swiperOption" ref="mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item, index) in listData" :key="index">
<img :src="item.photo_uri" @click="goPage(item)">
</div>
</div>
<!-- <div class="swiper-pagination swiper-pagination-bullets"></div> -->
</div>
<div class="prev-button"></div>
<div class="next-button"></div>
</div>
</template>
<script>
const _this = this
export default {
data () {
return {
listData: [],
// 轮播图配置信息, 更多请参考 swiper.js 中文网,上面很详细。
swiperOption: {
speed: 400,
autoplay: true,
delay: 3000,
observer: true,
observerParent: true,
navigation: {
nextEl: '.next-button',
prevEl: '.prev-button'
},
loop: true
}
}
},
// async fetch() {
// const params = {
// terminal_type: 'WWW',
// ad_position_uri: 'www.ezijing.com'
// }
// this.bannerData = await this.$axios.$get('/api/zws/v1/marketing/advertisements', { params }).then(res => {
// return res.filter((item, index) => {
// return index < 4
// })
// })
// },
async fetch() {
const params = {
page: 1,
per_page: 100,
type: 69,
project_id: 1013
}
this.listData = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => {
return res
})
},
computed: {
swiper() {
return this.$refs.mySwiper.swiper;
}
},
mounted() {
},
methods: {
// openPage(path) {
// path !== '' && window.open(path)
// }
swiperStop() {
this.swiper.autoplay.stop()
},
swiperStart() {
this.swiper.autoplay.start()
},
goPage(item) {
if (item.source === '') {
this.$router.push({
path: '/about/news-detail',
query: {
id: item.id
}
})
} else {
window.open(item.source)
}
}
}
}
</script>
<style lang="scss" scoped>
.banner-content{
position: relative;
width: 100%;
.swiper-wrapper{
width: 100%;
display: flex;
.swiper-slide{
width: 100%;
// float: left;
img{
width: 100%;
display: block;
}
}
}
.prev-button{
position: absolute;
top: 50%;
left: 30px;
width: 20px;
height: 35px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/beb733466e5ab0168b459a55d198b084.png);
background-size: 100% 100%;
z-index: 999;
cursor: pointer;
}
.next-button{
position: absolute;
top: 50%;
right: 30px;
width: 20px;
height: 35px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/e97f45b23a3e5ec4913f0069cc714baf.png);
background-size: 100% 100%;
z-index: 999;
cursor: pointer;
}
}
</style>
\ No newline at end of file
<template>
<div class="degree-content max-width-center">
<div class="title">学位教育</div>
<div class="nav-content">
<ul class="tab-left">
<li
@mouseover="changeIndex(index)"
:class="indexActive === index && 'active'"
v-for="(item, index) in data"
:key="index"
>{{ item.name }}
</li>
</ul>
<template v-for="(item, index) in data">
<ul class="tab-right" :key="index" v-if="indexActive === index">
<li :key="cIndex + 'c'" v-for="(cItem, cIndex) in item.content" @click="goPage(cItem.path)">
<img :src="cItem.icon" alt="" class="icon">
<img :src="cItem.iconActive" alt="" class="icon2">
<div class="text" v-html="cItem.text"></div>
</li>
</ul>
</template>
</div>
</div>
</template>
<script>
export default {
data() {
return {
indexActive: 0,
data: [
{
name: '本科',
content: [
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/e624ed7af7b49a9e04e7ac2ec95db7e1.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/8b32a69e26a4d20eaddc8bb3d6f4ccc5.png',
text: '海外留学<br />SHMS',
path: ''
}
]
},
{
name: '硕士',
content: [
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/69fc809f95bd7985e13827a6dcd4dcd1.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/ac6cde3fb04de4c3478d02e7572fe9c9.png',
text: '金融硕士<br />MSF',
path: 'https://kelley.ezijing.com'
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/ac66fee3cad3cca2b4b38ef3cceed9dc.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/8fe0f6c8995847dee420e70a21da4d3f.png',
text: '教育学硕士MED<br />(早教-蒙台梭利)',
path: 'https://cu.ezijing.com'
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/aa2c06a74a470cbee1443e66bb6bc981.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/db8ca58d8032f32a77a7a9deea9b417b.png',
text: '应用心理学<br />硕士MAP',
path: 'https://ciis.ezijing.com'
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/70748b8e679e7b3f40310635d9f3bae7.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/49f4eb2509433e42555754f74a4dcae2.png',
text: '未来金融<br />领袖计划',
path: 'https://cfflp.ezijing.com'
}
]
},
{
name: 'MBA',
content: [
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/17ef11bc534aadf1d8e3b94fd6d4350f.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/0d2ea39ee5d40200a6f513db2e9b88de.png',
text: '通用MBA',
path: ''
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/a23695e5428a3d5e0a2f47f7d36ebb14.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/a2c4b8a1f799b35f04ed618f7b47b9c1.png',
text: '金融MBA',
path: 'https://sofia.ezijing.com'
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/709ab2dd245369c16631a8d9ebe67006.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/29917e1f3d47ca9381b5e0c397e1f082.png',
text: '酒店与旅游工商<br/>管理MBA',
path: 'https://shms.ezijing.com'
}
]
},
{
name: '博士',
content: [
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/841ff657ca26c0f26da3e24d799ae2a5.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/5785a4d37264a8293b956a3f065f11cf.png',
text: '心理学博士<br/>(即将推出)',
path: ''
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/aebf1f65a324cff54eb9466bf2fd0b66.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/526bebd1d9279c19895c5c4f1a3cfcce.png',
text: '工商管理学博士<br/>(即将推出)',
path: ''
}
]
}
]
}
},
methods: {
changeIndex(n) {
this.indexActive = n
},
goPage(path) {
if (path === '') {
this.$message('暂未开通,尽请期待。')
return
}
window.open(path)
}
}
}
</script>
<style lang="scss" scoped>
.degree-content{
padding-top: 71px;
.title{
font-size: 24px;
font-weight: bold;
line-height: 34px;
color: #424242;
margin-bottom: 20px;
}
.nav-content{
display: flex;
.tab-left{
li{
width: 156px;
height: 42px;
background: #fff;
text-align: center;
line-height: 42px;
color: rgba(102, 102, 102, 1);
font-size: 18px;
font-weight: 500;
margin-bottom: 6px;
cursor: pointer;
&.active{
background: #AA1941;
color: #fff;
}
}
}
.tab-right{
display: flex;
// margin-left: 18px;
li{
width: 156px;
height: 186px;
margin-left: 18px;
background: #fff;
padding-top: 36px;
box-sizing: border-box;
transition: all .5s;
cursor: pointer;
img{
display: block;
width: 64px;
height: 64px;
margin: 0 auto;
}
.icon2{
display: none;
}
&:hover{
background: rgba(170, 25, 65, 1);
.icon{
display: none;
}
.icon2{
display: block;
}
.text{
color: #fff;
}
}
.text{
font-size: 14px;
line-height: 18px;
color: #666666;
text-align: center;
margin-top: 20px;
}
}
}
}
}
.max-width-center{
width: 1212px;
margin: 0 auto;
}
</style>
<template>
<div class="msg-content">
<div class="title-content">
<div class="left-title">
<div class="line"></div>
<div class="text">校长寄语</div>
</div>
<div class="right-text" @click="$router.push({ path: '/about/news', query: { type: 70 } })">
查看更多+
</div>
</div>
<div class="swiper-content" @mouseenter="swiperStop" @mouseleave="swiperStart">
<div v-swiper:mySwiper="swiperOption" ref="mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item, index) in listData" :key="index" @click="goPage(item)">
<img :src="item.photo_uri">
</div>
</div>
<div class="swiper-pagination swiper-pagination-bullets"></div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
listData: [],
swiperOption: {
speed: 400,
autoplay: true,
delay: 3000,
loop: true,
pagination: {
el: '.swiper-pagination',
clickable: true
},
direction: 'vertical',
height: 500,
autoHeight: true
}
}
},
async fetch() {
const params = {
page: 1,
per_page: 100,
type: 70,
project_id: 1013
}
this.listData = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => {
console.log(params)
return res
})
},
computed: {
swiper() {
return this.$refs.mySwiper.swiper;
}
},
mounted() {
},
methods: {
swiperStop() {
this.swiper.autoplay.stop()
},
swiperStart() {
this.swiper.autoplay.start()
},
goPage(item) {
console.log(1123)
if (item.source === '') {
this.$router.push({
path: '/about/news-detail',
query: {
id: item.id
}
})
} else {
window.open(item.source)
}
}
}
}
</script>
<style lang="scss" scoped>
.msg-content{
padding-top: 90px;
width: 1200px;
margin: 0 auto;
.title-content{
display: flex;
.left-title{
display: flex;
.line{
width: 6px;
height: 34px;
background: #AA1941;
}
.text{
font-size: 34px;
font-weight: bold;
line-height: 34px;
color: #424242;
margin-left: 9px;
}
}
.right-text{
margin-left: auto;
margin-top: 18px;
font-size: 16px;
font-weight: 300;
line-height: 34px;
color: #9B9B9B;
cursor: pointer;
}
}
.swiper-content{
height: 500px;
margin-top: 15px;
// overflow: hidden;
img{
width: 100%;
height: 100%;
display: block;
}
::v-deep{
.swiper-pagination-bullets{
right: 34px !important;
}
.swiper-pagination-bullet{
width: 6px;
height: 6px;
border-radius: 100%;
border: 1px solid #fff;
box-sizing: border-box;
background: none;
opacity: 1;
margin: 10px 0;
}
.swiper-pagination-bullet-active{
width: 6px;
height: 31px;
border-radius: 25px;
background: #fff;
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="class-content">
<div class="title-content">
<div class="left-title">
<div class="line"></div>
<div class="text">公开课</div>
</div>
<div class="right-text" @click="$router.push({ path: '/about/news', query: { type: 72 } })">
查看更多+
</div>
</div>
<div class="content-box">
<img src="https://zws-imgs-pub.ezijing.com/static/public/c04caada9ed0f473c786e21eff83c4b9.png" alt="" class="banner">
<ul>
<li v-for="(item, index) in listData" :key="index" @click="goPage(item)">
<div class="title">{{ item.title }}</div>
<div class="con-txt">{{ item.summary }}</div>
<div class="info-box">
<div class="time">{{ item.updated_time.slice(0, item.updated_time.indexOf(' ')) }}</div>
<div class="look-num">
<div class="icon"></div>
<div class="num">36023</div>
</div>
<div class="btn">免费学习</div>
</div>
</li>
<li>
<img src="https://zws-imgs-pub.ezijing.com/static/public/5a92e49bf43a7c7a7fb75cd1415ffc2b.png" alt="" class="logo">
<div class="wecome">HI!欢迎回来</div>
<div class="course-btn" @click="showEnroll">课程预约</div>
<div class="login-txt" @click="showEnroll">注册/登陆</div>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
data() {
return {
listData: []
}
},
async fetch() {
const params = {
page: 1,
per_page: 100,
type: 72,
project_id: 1013
}
this.listData = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => {
return res.filter((item, index) => {
return index < 3
})
})
},
methods: {
goPage(item) {
if (item.source === '') {
this.$router.push({
path: '/about/news-detail',
query: {
id: item.id
}
})
} else {
window.open(item.source)
}
},
showEnroll() {
const dom = document.getElementById('show-enroll')
const dom2 = document.getElementById('show-enroll-content')
dom.style.display = 'block'
dom2.style.display = 'block'
}
}
}
</script>
<style lang="scss" scoped>
.class-content{
padding-top: 87px;
width: 1200px;
margin: 0 auto;
.title-content{
display: flex;
.left-title{
display: flex;
.line{
width: 6px;
height: 34px;
background: #AA1941;
}
.text{
font-size: 34px;
font-weight: bold;
line-height: 34px;
color: #424242;
margin-left: 9px;
}
}
.right-text{
margin-left: auto;
margin-top: 18px;
font-size: 16px;
font-weight: 300;
line-height: 34px;
color: #9B9B9B;
cursor: pointer;
}
}
.content-box{
padding-top: 20px;
.banner{
width: 1200px;
display: block;
}
ul{
display: flex;
justify-content: space-between;
padding-top: 27px;
li{
width: 285px;
height: 287px;
background: #FFFFFF;
padding: 43px 22px 34px;
box-sizing: border-box;
cursor: pointer;
.logo{
width: 89px;
display: block;
margin: 0 auto;
}
.wecome{
font-size: 18px;
line-height: 100%;
color: #666666;
text-align: center;
margin: 18px 0 34px;
}
.course-btn{
font-size: 21px;
line-height: 36px;
color: #FFFFFF;
width: 193px;
height: 36px;
background: #AA1941;
border-radius: 5px;
text-align: center;
margin: 0 auto;
cursor: pointer;
}
.login-txt{
font-size: 14px;
line-height: 100%;
color: #666666;
margin-top: 15px;
text-align: center;
cursor: pointer;
}
.title{
font-size: 22px;
line-height: 30px;
color: #333333;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.con-txt{
font-size: 14px;
line-height: 28px;
color: #666666;
margin-top: 10px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
.info-box{
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 21px;
.time{
font-size: 12px;
line-height: 28px;
color: #A8A8A8;
white-space: nowrap;
}
.look-num{
// margin-left: 16px;
display: flex;
align-items: center;
.icon{
width: 15px;
height: 10px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/948410ca5d8663ef4e80d4913df8a9b4.png);
background-size: 100% 100%;
}
.num{
font-size: 12px;
line-height: 28px;
color: #9B9B9B;
margin-left: 3px;
white-space: nowrap;
}
}
.btn{
width: 72px;
height: 24px;
background: #AA1941;
opacity: 1;
border-radius: 6px;
font-size: 13px;
line-height: 18px;
color: #FFFFFF;
text-align: center;
line-height: 24px;
cursor: pointer;
// margin-left: 32px;
}
}
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="service-content max-width-center">
<div class="title">项目特色</div>
<ul class="nav-content">
<li v-for="(item, index) in data" :key="index" @click="goPage(item.path)">
<img :src="item.icon" alt="" class="icon">
<img :src="item.iconActive" alt="" class="icon-active">
<div class="text" v-html="item.text"></div>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
data: [
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/3118a654ec7f92a52b7d04f2f1f5989a.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/37488a824991634e9283c870d976eb79.png',
text: '1+X', path: 'https://x.ezijing.com', pathType: 0
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/7bea5e01e4e4c92e104bb1d73d313500.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/8b624145e8cd4a8c38f108dbd0efc3eb.png',
text: '专业共建', path: '', pathType: 0
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/6db512b8b2b4501651e6f9bc520d7379.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/bcbc44b065ea26146a68750e82aa058c.png',
text: '校企合作', path: '', pathType: 0
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/0e5522064d9070290b3d541a485d469f.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/01d9b50bd0e2e2355a18f486181d710a.png',
text: '产业学院', path: '', pathType: 0
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/0912f621abe188ccc84df6520a8fecf9.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/759a550044932bcf0f1159d103361ed2.png',
text: '双高建设', path: '', pathType: 0
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/6cf5b6010dd7d35a80d4acc270db8a86.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/4e86da38599e6fcfdd53f459df2f0a16.png',
text: '在线教育<br />解决方案', path: '', pathType: 0
},
{
icon: 'https://zws-imgs-pub.ezijing.com/static/public/9603456c7edb101ec5469f92e9e21553.png',
iconActive: 'https://zws-imgs-pub.ezijing.com/static/public/ae17f20f43525893b263fef139ea7006.png',
text: '更多', path: '', pathType: 0
}
]
}
},
methods: {
goPage(path) {
if (path === '') {
this.$message('暂未开通,尽请期待。')
return
}
window.open(path)
}
}
}
</script>
<style lang="scss" scoped>
.service-content{
padding-top: 44px;
.title{
font-size: 24px;
font-weight: bold;
line-height: 34px;
color: #424242;
margin-bottom: 20px;
}
.nav-content{
display: flex;
li{
width: 156px;
height: 186px;
background: #FFFFFF;
padding-top: 36px;
margin-right: 20px;
cursor: pointer;
transition: all .5s;
img{
width: 64px;
height: 64px;
display: block;
margin: 0 auto;
}
.icon-active{
display: none;
}
&:hover{
background: rgba(170, 25, 65, 1);
.text{
color: #fff;
}
.icon{
display: none;
}
.icon-active{
display: block;
}
}
.text{
text-align: center;
font-size: 14px;
font-weight: 400;
line-height: 18px;
color: #666666;
margin-top: 20px;
}
}
}
}
.max-width-center{
width: 1212px;
margin: 0 auto;
}
</style>
<template>
<div class="notice-content">
<div class="title-content">
<div class="left-title">
<div class="line"></div>
<div class="text">项目公告</div>
</div>
<div class="right-text" @click="$router.push({ path: '/about/news', query: { type: 75 } })">
查看更多+
</div>
</div>
<div class="news-content">
<div class="left-content">
<div class="tit">即将开始的<br />课程日期</div>
<div class="list">
<div class="li">
<div class="txt">KELLEY商学院金融硕士(MSF)开学典礼</div>
<div class="time">3月23日</div>
</div>
<div class="li">
<div class="txt">酒店管理HMBA<br />报名截止日 </div>
<div class="time">4月10日</div>
</div>
</div>
</div>
<div class="right-content">
<ul>
<li v-for="(item, index) in listData" :key="index" @click="goPage(item)">
<div class="time-block">
<div class="m-time">{{ item.dateMonth }}</div>
<div class="t-time">{{ item.dateYear }}</div>
</div>
<div class="text">{{ item.title }}</div>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
listData: []
}
},
async fetch() {
const params = {
page: 1,
per_page: 100,
type: 75,
project_id: 1013
}
this.listData = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => {
const data = []
console.log(res)
res.map((item, index) => {
if (index < 3) {
item.dateYear = item.created_time.slice(0, 4)
item.dateMonth = item.created_time.slice(5, 10).replace('-', '/')
data.push(item)
}
})
return data
})
},
methods: {
goPage(item) {
if (item.source === '') {
this.$router.push({
path: '/about/news-detail',
query: {
id: item.id
}
})
} else {
window.open(item.source)
}
}
}
}
</script>
<style lang="scss" scoped>
.notice-content{
padding-top: 80px;
width: 1200px;
margin: 0 auto;
.title-content{
display: flex;
.left-title{
display: flex;
.line{
width: 6px;
height: 34px;
background: #AA1941;
}
.text{
font-size: 34px;
font-weight: bold;
line-height: 34px;
color: #424242;
margin-left: 9px;
}
}
.right-text{
margin-left: auto;
margin-top: 18px;
font-size: 16px;
font-weight: 300;
line-height: 34px;
color: #9B9B9B;
cursor: pointer;
}
}
.news-content{
margin-top: 15px;
display: flex;
.left-content{
width: 771px;
height: 282px;
background: #FFFFFF;
box-shadow: 0px 0px 29px rgba(0, 0, 0, 0.03);
padding: 72px 88px 72px 74px;
display: flex;
.tit{
font-size: 34px;
font-weight: 500;
line-height: 51px;
color: #424242;
padding-top: 29px;
text-align: center;
}
.list{
width: 378px;
margin-left: 60px;
.li{
display: flex;
align-items: center;
padding-top: 28px;
&:nth-child(1){
border-bottom: 1px solid #999999;
padding-bottom: 35px;
padding-top: 0;
}
.txt{
width: 188px;
font-size: 18px;
font-weight: 400;
line-height: 24px;
color: #424242;
text-align: center;
}
.time{
font-size: 30px;
font-weight: bold;
line-height: 60px;
color: #AA1941;
margin-left: 40px;
}
}
}
}
.right-content{
margin-left: auto;
ul{
li{
display: flex;
padding: 19px 0 15px;
align-items: center;
border-top: 1px solid #E3E3E3;
cursor: pointer;
&:nth-child(1){
border: none;
}
&:hover{
.text{
color: #AA1941;
}
}
.time-block{
width: 76px;
height: 58px;
background: #AA1941;
border: 10px solid #AA1941;
border-radius: 5px;
.m-time{
font-size: 18px;
font-family: Helvetica Neue LT Pro;
font-weight: normal;
// line-height: 53px;
color: #FFFFFF;
opacity: 0.8;
text-align: center;
}
.t-time{
font-size: 14px;
font-weight: normal;
line-height: 15px;
color: #FFFFFF;
opacity: 0.8;
text-align: center;
}
}
.text{
width: 275px;
font-size: 18px;
line-height: 24px;
color: #424242;
margin-left: 15px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
}
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="class-content">
<div class="title-content">
<div class="left-title">
<div class="line"></div>
<div class="text">教育服务案例</div>
</div>
<div class="right-text" @click="$router.push({ path: '/about/news', query: { type: 73 } })">
查看更多+
</div>
</div>
<div class="swiper-content" @mouseenter="swiperStop" @mouseleave="swiperStart">
<div v-swiper:mySwiper="swiperOption" ref="mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item, index) in listData" :key="index" @click="goPage(item)">
<img :src="item.photo_uri">
<div class="pop-txt-box">{{ item.title }}</div>
</div>
</div>
<!-- <div class="swiper-pagination swiper-pagination-bullets"></div> -->
</div>
<div class="prev-button"></div>
<div class="next-button"></div>
</div>
</div>
</template>
<script>
export default {
data () {
return {
listData: [],
swiperOption: {
speed: 400,
autoplay: true,
delay: 3000,
observer: true,
observerParent: true,
navigation: {
nextEl: '.next-button',
prevEl: '.prev-button'
}
}
}
},
async fetch() {
const params = {
page: 1,
per_page: 100,
type: 73,
project_id: 1013
}
this.listData = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => {
return res
})
},
computed: {
swiper() {
return this.$refs.mySwiper.swiper;
}
},
methods: {
swiperStop() {
this.swiper.autoplay.stop()
},
swiperStart() {
this.swiper.autoplay.start()
},
goPage(item) {
if (item.source === '') {
this.$router.push({
path: '/about/news-detail',
query: {
id: item.id
}
})
} else {
window.open(item.source)
}
}
}
}
</script>
<style lang="scss" scoped>
.class-content{
padding-top: 87px;
width: 1200px;
margin: 0 auto;
.title-content{
display: flex;
.left-title{
display: flex;
.line{
width: 6px;
height: 34px;
background: #AA1941;
}
.text{
font-size: 34px;
font-weight: bold;
line-height: 34px;
color: #424242;
margin-left: 9px;
}
}
.right-text{
margin-left: auto;
margin-top: 18px;
font-size: 16px;
font-weight: 300;
line-height: 34px;
color: #9B9B9B;
cursor: pointer;
}
}
.swiper-content{
padding-top: 20px;
position: relative;
.swiper-slide{
position: relative;
img{
width: 100%;
display: block;
}
.pop-txt-box{
width: 100%;
background: rgba(0, 0, 0, .6);
height: 76px;
padding-left: 33px;
line-height: 76px;
font-size: 24px;
color: #FFFFFF;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
}
.prev-button{
position: absolute;
top: 50%;
left: 30px;
width: 20px;
height: 35px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/881f563105c3a04eb30e57094639eb33.png);
background-size: 100% 100%;
z-index: 999;
cursor: pointer;
}
.next-button{
position: absolute;
top: 50%;
right: 30px;
width: 20px;
height: 35px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/87a93f0d579074213dc9014c9887ed38.png);
background-size: 100% 100%;
z-index: 999;
cursor: pointer;
}
}
}
</style>
\ No newline at end of file
<template>
<div class="right_bar">
<ul class="tab_btns">
<li
:class="{ enroll: true, active: tabBtnActive && tabBtnTarget === 'enroll' }"
@mouseenter="handleMsOver('enroll')"
@mouseleave="handleMsOut"
>
<p>报名咨询</p>
</li>
<li
:class="{ wx: true, active: tabBtnActive && tabBtnTarget === 'wx' }"
@mouseenter="handleMsOver('wx')"
@mouseleave="handleMsOut"
>
<p>关注我们</p>
</li>
</ul>
<transition
name="custom-classes-transition"
enter-active-class="animated tada"
leave-active-class="animated bounceOutRight"
>
<div id="show-enroll" v-show="tabBtnActive" class="tab_cont" @mouseover="handleMsOver('')" @mouseout="handleMsOut">
<div class="enroll_cont" id="show-enroll-content" v-show="tabBtnTarget === 'enroll'">
<h5>报名咨询</h5>
<p><el-input v-model="formInfo.name" placeholder="请输入您的姓名" size="small"></el-input></p>
<p><el-input v-model="formInfo.phone" placeholder="请输入您的电话" size="small"></el-input></p>
<!-- <p><el-input v-model="projectName" size="small" :readonly="true"></el-input></p> -->
<p>
<select name="" id="" v-model="formInfo.projectId">
<option :value="item.value" v-for="(item, index) in projectList" :key="index">{{ item.label }}</option>
</select>
<span class="icon el-icon-arrow-down"></span>
<!-- <el-select v-model="formInfo.projectId" placeholder="请选择" size="small">
<el-option
v-for="item in projectList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select> -->
</p>
<p class="sendcode">
<el-input v-model="sendCode" placeholder="请输入验证码" size="small"></el-input><el-button class="btn" :disabled="isBtnDisabled" id="checkedCode" @click="getSendCode">获取验证码</el-button>
</p>
<p><el-button style="width: 100%" @click="submitEnroll">立即报名</el-button></p>
</div>
<div class="wx_cont" v-show="tabBtnTarget === 'wx'">
<h5>扫描关注微信公众号</h5>
<img src="https://zws-imgs-pub.ezijing.com/static/public/d2d9945d598e81c3b58aff5ce927a78a.jpg" />
</div>
</div>
</transition>
</div>
</template>
<script>
import { sendCode, checkCode, postNes } from '../plugins/api'
const MOBILE_REG = /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/
export default {
data() {
return {
tabBtnActive: false,
tabBtnTarget: '',
projectName: '金融工商管理硕士',
sendCode: '',
isBtnDisabled: false,
formInfo: {
name: '',
phone: '',
projectId: '1000'
},
projectList: [
{label:'金融工商管理硕士', value: '1000'},
{label:'酒店及旅游业工商管理硕士', value: '1008'},
{label:'金融硕士', value: '1001'},
{label:'应用心理学硕士', value: '1006'},
{label:'教育学硕士', value: '1005'},
{label:'中国未来金融领袖计划', value: '1007'},
]
}
},
methods: {
handleMsOver(type) {
this.tabBtnActive = true
if (type !== '') {
this.tabBtnTarget = type
}
},
handleMsOut(type) {
this.tabBtnActive = false
},
submitEnroll() {
let flag = true
Object.keys(this.formInfo).map(item => {
if (this.formInfo[item] === '') {
flag = false
}
})
if (!flag || !this.sendCode) {
this.$message('请完善信息')
} else if (!MOBILE_REG.test(this.formInfo.phone)) {
this.$message('手机号格式错误')
} else {
this.checkSendcode()
.then(res => {
return this.enrollQuery()
})
.then(res => {
this.$message({
type: 'success',
message: '报名成功',
duration: 5000
})
})
.catch(err => {
if (err && err.type === 'checkcode') this.$message.error(err.msg)
else this.$message.error(err.msg || '报名提交失败')
})
}
},
enrollQuery() {
const params = {
channel: 19960,
project_id: this.formInfo.projectId,
name: this.formInfo.name,
phone: this.formInfo.phone
}
return new Promise((resolve, reject) => {
postNes(params)
.then(res => {
console.log(res)
if (res && res.status === 200 && res.error === 0) {
resolve({
type: 'enroll',
state: 'success'
})
} else {
reject({
type: 'enroll',
state: 'fail',
msg: res.message || '报名提交失败'
})
}
})
})
},
getSendCode() {
if (!this.formInfo.phone) {
this.$message('手机号不能为空')
} else if (!MOBILE_REG.test(this.formInfo.phone)) {
this.$message('手机号格式错误')
} else {
const param = {
account: this.formInfo.phone,
service: 'ezijing.com'
}
sendCode(param)
.then(res => {
console.log(res)
this.btnDisabledTimer()
if (res && res.code === 0) this.$message.success('验证码已发送,请注意查收')
else this.$message.error('获取验证码失败,请稍后再试')
})
.catch(() => {})
}
},
checkSendcode() {
const checkCodeParam = '?account=' + this.formInfo.phone + '&code=' + this.sendCode + '&countryCode=86'
return new Promise((resolve, reject) => {
checkCode(checkCodeParam).then(res => {
console.log(res)
if (res && res.code === 0) {
res.type = 'checkcode'
resolve({
type: 'checked',
state: 'success'
})
} else {
reject({
type: 'checked',
state: 'fail',
msg: res.msg || '验证码检测失败'
})
}
})
})
},
btnDisabledTimer() {
this.isBtnDisabled = true
let count = 60
document.querySelector('#checkedCode').innerHTML = count + '秒后重发'
const timer = setInterval(() => {
count--
if (count < 1) {
clearInterval(timer)
this.isBtnDisabled = false
document.querySelector('#checkedCode').innerHTML = '获取验证码'
} else {
document.querySelector('#checkedCode').innerHTML = count + '秒后重发'
}
}, 1000)
}
}
}
</script>
<style lang="scss" scoped>
.right_bar {
position: fixed;
top: 50%;
right: 10px;
z-index: 2000;
transform:translateY(-50%);
.tab_btns {
width: 100px;
// height: 136px;
font-size: 12px;
border-radius: 4px;
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.1);
overflow: hidden;
li {
padding: 70px 0 18px;
color: #999;
background-position: center 18px;
background-repeat: no-repeat;
background-color: #fff;
text-align: center;
}
li.active {
background-color: #af1b40;
color: #fff;
opacity: 0.9;
transition: 0.3s;
}
li.enroll {
position: relative;
background-image: url(https://zws-imgs-pub.ezijing.com/static/public/d434fa0ffd77892273e63e6d694cff0a.png);
}
li.enroll:after {
content: '';
width: 100%;
height: 1px;
background: #b8bcbf;
position: absolute;
left: 0;
bottom: 0;
// transform: translateX(-50%) scale(0.5);
}
li.enroll.active {
background-image: url(https://zws-imgs-pub.ezijing.com/static/public/4cbef518113d24b392be80148e921abd.png);
}
li.wx {
background-image: url(https://zws-imgs-pub.ezijing.com/static/public/5526b83d7526b2742f6eba7151c367db.png);
}
li.wx.active {
background-image: url(https://zws-imgs-pub.ezijing.com/static/public/0831ea27fee535ab0ce9f730f467b2e1.png);
}
li > p {
font-size: 12px;
line-height: 14px;
text-align: center;
// transform: scale(0.9);
line-height: 100%;
cursor: default;
}
}
.tab_cont {
position: absolute;
left: -310px;
top: -120px;
width: 310px;
height: 374px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/4ae1f00a05a40fd10866ffe153fa82b0.png);
// display:none;
h5 {
font-size: 20px;
line-height: 60px;
font-weight: normal;
color: rgba(255, 255, 255, 0.9);
text-align: center;
}
.enroll_cont {
padding: 0 20px;
p {
margin-bottom: 15px;
position: relative;
::v-deep.el-input__inner {
border: 1px solid #ccc;
line-height: 44px;
height: 44px;
}
::v-deep.el-select{
width: 100%;
}
select{
width: 100%;
height: 44px;
border-radius: 5px;
font-size: 13px;
border: 1px solid #ccc;
line-height: 44px;
height: 44px;
outline: none;
color: #606266;
padding: 0 12px;
box-sizing: border-box;
appearance:none;
-moz-appearance:none;
-webkit-appearance:none;
}
.icon{
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 10px;
color: #606266;
}
::v-deep.el-button {
background-color: #ff8e1a;
border:#ff8e1a 1px solid;
color:rgba(255,255,255,.9);
}
}
.sendcode {
display: flex;
justify-content: space-between;
::v-deep.el-input {
width: 170px;
}
::v-deep.el-button {
width: 94px;
margin-right: 2px;
padding: 12px 0;
text-align: center;
}
::v-deep.is-disabled{
color: #c0c4cc;
cursor: not-allowed;
background-image: none;
background-color: #fff;
border-color: #ebeef5;
}
}
}
.wx_cont img {
width: 156px;
height: 156px;
display: block;
margin: 65px auto 0;
}
}
}
</style>
<style>
/* .right_bar .enroll_cont .el-input__inner {
border: 1px solid #ccc;
line-height: 44px;
height: 44px;
}
.right_bar .sendcode .el-input {
width: 170px;
}
.right_bar .el-button{
background: #ff8e1a;
border:#ff8e1a 1px solid;
color:rgba(255,255,255,.9);
}
.sendcode .el-button {
width: 94px;
margin-right: 2px;
padding: 12px 0;
text-align: center;
} */
</style>
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA9MjUExxOj6tfMUaU+t/k0+VokVkh1GVZACLPdxR2VcjjOkaI
qloY4TK4/uybncLhoqu9ggyiJFNmXVLxe2TxReGXhR8tAc0RTCuaFv0oHJ7HXI48
CZ/zc8sgjyd7XsuyRurKwpHWXfy9FMHE7r/9R+IUHAkIPmZ17qlwqphlePK8I1fn
DU/LOvglXPIlR55TUe6NKVoCPZXQEHHPZClH0qdnXFiUq5I1f6GMUoGCbV5DLECb
OAndCP/snqakw8oeLmoBGSig/FGrc/41l2DJxyIxm/CfaEhfnSN4hvOTAFXcro9c
gyy88H1BfT/bEhM7OO+RRaKUrV5CieeIOEmvGQIDAQABAoIBAGmkcsJ8qPsgPskJ
aSqMjjlU/Lgd+5eq1apVW6xMzHVhaY+w+TJsB+jI90Yt30tK3A5UiEkkIqYCyF7m
eQmEGwzJu5bcSZRJaHmzJ6FcSH9xlyC+0fJlcbA7riWaKIhU6O/qTO+D+Tw+42ud
5NwVR75KN9uRmlkz5xnFTraRZtm3MJmA7dwXK3hrN+dFJR2vLO3KBAtpgtpPdkK1
ObpJQ1Q7jsnEmODVRZ7n1CKZEDmXd8GBPA/jCVqgiEbVVCdkhHkyxyIMQenBReyy
tJIPf7CdL3O3PPsThhMa1P2CP/xehS4bcQSLw9wtNTJcvVPHTvffHKOKUfhUxkHu
0cpl+zECgYEA/jzySW/br7W+xS2e4VBHzY+UZJwxd/3mY3d/kasMV1zuipr6WOhQ
FVsd5uJXPRr+rHBypwyOIlP205V2K5oQEK0yT+tF+IBvKGdJv89wskCgrXcD3Kfb
dCFbt014pHw89A8jb8LBbGOPH6jhZhGkxP33CJdVPtncUc4m0hj4HHcCgYEA9nsc
KcCZOIYRlZmJ93DoukhjxaouGFDTOZoujaqasrfXUaWRnpZYekDZWa1NneOzLBEz
h1RwPcmeYLCVRmXtpRzLOKXfJY0gGSJr979I0AVkzj8A9NZcU/HxUP0GqpwBbzAp
EEShQVhjYppQ62KAwZ1tbsVWX2V1SBsa3McExO8CgYEA6kVy5aTDhOgugDeHnguB
/rN9hDBBjVZTQ/jLfolld+NUlDg21FJN6T/rD+Qli1MitfdwTupM1ukUGugw2gC/
KP7Py8D62wBObaav2KXoLPlMlkuDLYMnv501jHVA5CDvcd25Q7Ts01nyerP97zX2
5Oc5CZuZm67ZTDBwqU0E5AUCgYBIC2wL+DPRBb8WDy74mJQt/wLKwBeBG/7hk2OQ
HRHis0HIp7CMvj1WXqYpRDKvt+KjOtPo9pFoPgqBEJxRW3G/FU+BW1qCS2HadulA
HTVXOHxinJ/W8OFD2DBFD/Bm5fq1WUpnaugHhaJnK9wDMWOZND7MZfn9IFbLoMCV
T8bhGQKBgG7qsZhI9ldAqooZQ1xSua/2SBc8GI8d03g7y8kZkkx/XclbEz6X6wUu
U3PVL+neY8Qw3JxC1cHS++KIdHR2ZSoTpF00A4QvDJL0+eo1KgI88vRV8QaWLxPB
ahvXwmkKW2+jgvCAqFtepZx/KsKpQW+x3GOJyhl2tIT8sZwRmE6u
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFhzCCBG+gAwIBAgIQCzEi4VmynSzbyBV1UEXGojANBgkqhkiG9w0BAQsFADBu
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
RFYgVExTIENBIC0gRzEwHhcNMjAxMTA5MDAwMDAwWhcNMjExMTA5MjM1OTU5WjAa
MRgwFgYDVQQDEw9kZXYuZXppamluZy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQD0yNQTHE6Pq18xRpT63+TT5WiRWSHUZVkAIs93FHZVyOM6Roiq
WhjhMrj+7JudwuGiq72CDKIkU2ZdUvF7ZPFF4ZeFHy0BzRFMK5oW/SgcnsdcjjwJ
n/NzyyCPJ3tey7JG6srCkdZd/L0UwcTuv/1H4hQcCQg+ZnXuqXCqmGV48rwjV+cN
T8s6+CVc8iVHnlNR7o0pWgI9ldAQcc9kKUfSp2dcWJSrkjV/oYxSgYJtXkMsQJs4
Cd0I/+yepqTDyh4uagEZKKD8Uatz/jWXYMnHIjGb8J9oSF+dI3iG85MAVdyuj1yD
LLzwfUF9P9sSEzs475FFopStXkKJ54g4Sa8ZAgMBAAGjggJzMIICbzAfBgNVHSME
GDAWgBRVdE+yck/1YLpQ0dfmUVyaAYca1zAdBgNVHQ4EFgQUkRHkmubxZAvEWtCY
IBT9sw/3Yb8wGgYDVR0RBBMwEYIPZGV2LmV6aWppbmcuY29tMA4GA1UdDwEB/wQE
AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwTAYDVR0gBEUwQzA3
BglghkgBhv1sAQIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQu
Y29tL0NQUzAIBgZngQwBAgEwgYAGCCsGAQUFBwEBBHQwcjAkBggrBgEFBQcwAYYY
aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEoGCCsGAQUFBzAChj5odHRwOi8vY2Fj
ZXJ0cy5kaWdpY2VydC5jb20vRW5jcnlwdGlvbkV2ZXJ5d2hlcmVEVlRMU0NBLUcx
LmNydDAJBgNVHRMEAjAAMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDwAHYA9lyUL9F3
MCIUVBgIMJRWjuNNExkzv98MLyALzE7xZOMAAAF1qpa6jQAABAMARzBFAiAwHOcp
Ua1H0WK4OZUHiQ1rndqnYxPHhP9XWunwpRMoagIhAOB2MPSW9M4qj6Yih7eQkydl
lgawpoBZzRzhisU+TN67AHYAXNxDkv7mq0VEsV6a1FbmEDf71fpH3KFzlLJe5vbH
DsoAAAF1qpa63gAABAMARzBFAiEA92ZeW0PgyWW3j+3wypLS0O/wI63C+x0WTvMZ
Vngp6AMCIBoThjaKif+XY11YbaV89ndqs1nDlzbEfBrFftoB9fchMA0GCSqGSIb3
DQEBCwUAA4IBAQA2geo9wQAd+vx+lwAafVRxCBQyBiS0qT413ewYpZYDnSkLX0l1
5kRdxDGWQhPzOio0ckj/jOtOlbbSsiovBBVTyYPB8WfkNjMd0psMNx2e6Wy/WKkQ
X3DqEOB4XGg0RwpebiAmz6lWxyFwIAbCrwCntkkaIF4LnIvczn6pvPFBtK2nXJJC
HL0Igbxo+xJLt3Hql7TcwkFDXz/LIB8AwhhkkhhwW45r3Eyjw8eOyzvflDPwSNH+
ByadQ+AH4H4vYYVo0ILNIPCdaokLQ+u4FttB9VQ+iGmpJ56Yg2muxWh8Qckca+vH
40RbC5aK1RSy2RIRpC5fwvq2JuV/CksP5G5Q
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc
oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo
lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj
pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h
yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n
wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M
pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf
BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B
SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW
M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV
4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
-----END CERTIFICATE-----
# LAYOUTS
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your Application Layouts.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts).
<template>
<div>
<Head />
<Nuxt />
<Foot />
</div>
</template>
<style>
html {
font-family:
'Source Sans Pro',
-apple-system,
BlinkMacSystemFont,
'Segoe UI',
Roboto,
'Helvetica Neue',
Arial,
sans-serif;
font-size: 16px;
word-spacing: 1px;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
box-sizing: border-box;
}
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
}
.button--green {
display: inline-block;
border-radius: 4px;
border: 1px solid #3b8070;
color: #3b8070;
text-decoration: none;
padding: 10px 30px;
}
.button--green:hover {
color: #fff;
background-color: #3b8070;
}
.button--grey {
display: inline-block;
border-radius: 4px;
border: 1px solid #35495e;
color: #35495e;
text-decoration: none;
padding: 10px 30px;
margin-left: 15px;
}
.button--grey:hover {
color: #fff;
background-color: #35495e;
}
</style>
# MIDDLEWARE
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your application middleware.
Middleware let you define custom functions that can be run before rendering either a page or a group of pages.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware).
import path from 'path'
import fs from 'fs'
let config = {}
if (process.env.NODE_ENV === 'production') {
config = {
server: { port: 2048, host: '0.0.0.0', timing: false },
axios: {
baseURL: 'https://project-api.ezijing.com',
}
}
} else {
config = {
axios: {
proxy: true
},
server: {
port: 3000,
host: 'dev.ezijing.com',
timing: false,
https: {
key: fs.readFileSync(path.resolve(__dirname, 'dev.ezijing.com.key')),
cert: fs.readFileSync(path.resolve(__dirname, 'dev.ezijing.com.pem'))
}
},
proxy: {
'/api': {
target: 'https://project-api.ezijing.com/api',
selfHandleResponse: false,
secure: false,
changeOrigin: true,
followRedirects: true,
logLevel: 'info',
headers: {
'Referer': 'https://project-api.ezijing.com/api'
},
pathRewrite: {
'^/api': '/'
}
}
}
}
}
export default {
...config,
// Global page headers: https://go.nuxtjs.dev/config-head
head: {
title: '紫荆教育-在线MBA课程-MBA在线课程-专业金融在线教育品牌',
htmlAttrs: {
lang: 'en'
},
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: '' },
{
name: 'keywords',
content:
'理财规划师,企业理财顾问师,投资理财顾问,金融理财师,理财培训,企业融资,国家理财规划师,财富管理,资产管理,个人财富管理,证券投资,信托投资,房地产投资'
},
{
name: 'description',
content:
'紫荆教育依托清华大学和五道口金融学院丰富的教育资源,秉承其严谨务实的教学理念,紧密结合宏观经济转型过程中,企业和个人知识结构升级的需求,融理论大家、实践专家、顶尖专业机构集体智慧于一体,构建以金融为核心的商业实战知识体系,努力为中国社会商业素质提高贡献一己之力.课程分类:企业理财顾问(CFC),理财规划师,财富资产管理,金融创业投资项目.'
}
],
link: [
{
rel: 'icon',
type: 'image/x-icon',
href: 'https://zws-imgs-pub.ezijing.com/static/public/f56441ae1441902080226712d4d650aa.ico'
}
]
},
// Global CSS: https://go.nuxtjs.dev/config-css
css: [
'element-ui/lib/theme-chalk/index.css',
'assets/css/base.css'
],
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
plugins: [
'@/plugins/element-ui',
{
// 引入一个插件,这里的 ssr 表示使用服务端渲染
src: "plugins/vue-swiper.js", ssr: false
}
],
// Auto import components: https://go.nuxtjs.dev/config-components
components: true,
// Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
buildModules: [
],
// Modules: https://go.nuxtjs.dev/config-modules
modules: [
'@nuxtjs/axios'
],
// Build Configuration: https://go.nuxtjs.dev/config-build
build: {
transpile: [/^element-ui/],
}
// proxy: {
// '/api': {
// target: 'https://project-api.ezijing.com/api',
// selfHandleResponse: false,
// secure: false,
// changeOrigin: true,
// followRedirects: true,
// logLevel: 'info',
// headers: {
// 'Referer': 'https://project-api.ezijing.com/api'
// },
// pathRewrite: {
// '^/api': '/'
// }
// }
// }
}
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "new-node-ezijing",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start",
"generate": "nuxt generate"
},
"dependencies": {
"axios": "^0.21.1",
"core-js": "^3.9.1",
"element-ui": "^2.15.1",
"fs": "0.0.1-security",
"lodash": "^4.17.21",
"nuxt": "^2.15.3",
"path": "^0.12.7",
"qs": "^6.10.1",
"swiper": "^5.4.5",
"vue-awesome-swiper": "^4.1.1"
},
"devDependencies": {
"@nuxtjs/axios": "^5.13.1",
"@nuxtjs/proxy": "^2.1.0",
"sass": "^1.32.11",
"sass-loader": "^10.1.1"
}
}
# PAGES
This directory contains your Application Views and Routes.
The framework reads all the `*.vue` files inside this directory and creates the router of your application.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing).
<template>
<div class="news-content">
<tab />
<contact-content />
</div>
</template>
<script>
import tab from '../../components/about/tabNav'
import contactContent from '../../components/about/contact'
export default {
components: {
tab,
contactContent
}
}
</script>
<style lang="scss" scoped>
.news-content{
width: 1200px;
margin: 0 auto;
padding-top: 63px;
display: flex;
justify-content: space-between;
}
</style>
<template>
<div class="culture-content">
<tab />
<culture-content />
</div>
</template>
<script>
import tab from '../../components/about/tabNav'
import cultureContent from '../../components/about/culture'
export default {
components: {
tab,
cultureContent
}
}
</script>
<style lang="scss" scoped>
.culture-content{
width: 1200px;
margin: 0 auto;
padding-top: 63px;
display: flex;
justify-content: space-between;
}
</style>
<template>
<div class="intr-content">
<tab />
<intr-content />
</div>
</template>
<script>
import tab from '../../components/about/tabNav'
import intrContent from '../../components/about/introduce'
export default {
components: {
tab,
intrContent
}
}
</script>
<style lang="scss" scoped>
.intr-content{
width: 1200px;
margin: 0 auto;
padding-top: 63px;
display: flex;
justify-content: space-between;
}
</style>
<template>
<div class="news-content">
<tab />
<detail-content />
</div>
</template>
<script>
import tab from '../../components/about/tabNav'
import detailContent from '../../components/about/detail'
export default {
components: {
tab,
detailContent
}
}
</script>
<style lang="scss" scoped>
.news-content{
width: 1200px;
margin: 0 auto;
padding-top: 63px;
display: flex;
justify-content: space-between;
}
</style>
<template>
<div class="news-content">
<tab />
<news-content />
</div>
</template>
<script>
import tab from '../../components/about/tabNav'
import newsContent from '../../components/about/news'
export default {
components: {
tab,
newsContent
}
}
</script>
<style lang="scss" scoped>
.news-content{
width: 1200px;
margin: 0 auto;
padding-top: 63px;
display: flex;
justify-content: space-between;
}
</style>
<template>
<div class="news-content">
<tab />
<party-content />
</div>
</template>
<script>
import tab from '../../components/alumnus/tabNav'
import partyContent from '../../components/alumnus/party'
export default {
components: {
tab,
partyContent
}
}
</script>
<style lang="scss" scoped>
.news-content{
width: 1200px;
margin: 0 auto;
padding-top: 63px;
display: flex;
justify-content: space-between;
}
</style>
<template>
<div class="container">
<!-- 轮播图 -->
<banner />
<!-- 项目特色 -->
<project-features :class="isScale && 'scale space2'"/>
<!-- 项目公告 -->
<project-notice :class="isScale && 'scale space3'"/>
<!-- 校长寄语 -->
<headmaster-msg :class="isScale && 'scale space4'"/>
<!-- 校友故事 -->
<alumni-stories :class="isScale && 'space5'"/>
<!-- 公开课 -->
<open-class :class="isScale && 'scale space6'" />
<!-- 教育服务案例 -->
<service-case :class="isScale && 'scale space7'"/>
<!-- 右侧功能栏 -->
<right-aside />
</div>
</template>
<script>
import banner from '../components/home/banner'
// import degreeEducation from '../components/home/degreeEducation'
import projectFeatures from '../components/home/projectFeatures'
import projectNotice from '../components/home/projectNotice'
import headmasterMsg from '../components/home/headmasterMsg'
import alumniStories from '../components/home/alumniStories'
import openClass from '../components/home/openClass'
import serviceCase from '../components/home/serviceCase'
import rightAside from '../components/rightAside'
export default {
components: {
banner,
// degreeEducation,
projectFeatures,
projectNotice,
headmasterMsg,
alumniStories,
openClass,
serviceCase,
rightAside
},
data () {
return {
isScale: false
}
},
created() {
},
mounted() {
if (document.documentElement.clientWidth < 1400) {
// this.isScale = true
}
}
}
</script>
<style>
.container{
padding-bottom: 100px;
}
.scale{
transform: scale(0.85);
}
.space1{
transform: translateY(-30px) scale(0.85);
}
.space2{
transform: translateY(-60px) scale(0.85);
}
.space3{
transform: translateY(-90px) scale(0.85);
}
.space4{
transform: translateY(-110px) scale(0.85);
}
.space5{
transform: translateY(-140px);
}
.space6{
transform: translateY(-170px) scale(0.85);
}
.space7{
transform: translateY(-230px) scale(0.85);
}
</style>
# PLUGINS
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains Javascript plugins that you want to run before mounting the root Vue.js application.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/plugins).
import httpRequest from './base_api'
/**
* 发送验证码
*/
export function sendCode(data) {
return httpRequest.post('https://project-api.ezijing.com/api/usercenter/user/send-code', data)
}
/**
* 检验验证码
*/
export function checkCode(params) {
return httpRequest.get('https://project-api.ezijing.com/api/usercenter/user/check-code' + params)
}
/**
* 提交留咨信息
*/
export function postNes(obj) {
return httpRequest.post('https://project-api.ezijing.com/api/new-app/v1.0/applications', obj, {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
})
}
import axios from 'axios'
import qs from 'qs'
import { Message } from 'element-ui'
const httpRequest = axios.create({
// baseURL: process.env.VUE_APP_BASE_API,
timeout: 60000,
withCredentials: true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
tenant: 'transport'
}
})
// 请求拦截
httpRequest.interceptors.request.use(
function(config) {
if (config.headers['Content-Type'] === 'application/x-www-form-urlencoded') {
config.data = qs.stringify(config.data)
}
if (config.headers['Content-Type'] === 'multipart/form-data') {
const form = new window.FormData()
for (const key in config.data) {
form.append(key, config.data[key])
}
config.data = form
}
return config
},
function(error) {
return Promise.reject(error)
}
)
// 响应拦截
httpRequest.interceptors.response.use(
function(response) {
const { data } = response
if (data.msg) {
if (data.msg === '请先登录') {
window.location.href = `${webConf.others.loginUrl}?rd=${encodeURIComponent(window.location.href)}`
}
}
if (parseInt(data.code) === 1) {
return Message.error(data.msg)
}
if (data.code) {
if (data.code === 4001) {
window.location.href = `${webConf.others.loginUrl}?rd=${encodeURIComponent(window.location.href)}`
}
return data.message ? Message.error(data.message) : Message.error(data.msg)
}
return data
},
function(error) {
if (error.response) {
const { status, message } = error.response.data
// 未登录
if (status === 403) {
window.location.href = `${webConf.others.loginUrl}?rd=${encodeURIComponent(window.location.href)}`
}
Message.error(message || error.response.data)
return Promise.reject(error.response)
} else {
Message.error(error)
}
return Promise.reject(error)
}
)
export default httpRequest
import Vue from 'vue'
import Element from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'
Vue.use(Element, { locale })
import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/swiper.scss'
Vue.use(VueAwesomeSwiper)
\ No newline at end of file
# STATIC
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your static files.
Each file inside this directory is mapped to `/`.
Thus you'd want to delete this README.md before deploying to production.
Example: `/static/robots.txt` is mapped as `/robots.txt`.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#static).
# STORE
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your Vuex Store files.
Vuex Store option is implemented in the Nuxt.js framework.
Creating a file in this directory automatically activates the option in the framework.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/vuex-store).
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论