提交 9e96f929 authored 作者: lhh's avatar lhh

update

上级 9403dcdd
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
"check:node": "node build/checkNodeVersion.js", "check:node": "node build/checkNodeVersion.js",
"lint": "eslint --ext .js --ext .jsx --ext .vue src/", "lint": "eslint --ext .js --ext .jsx --ext .vue src/",
"lint:fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/", "lint:fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/",
"dev": "npm run check:node && cross-env NODE_ENV=development node build/getSSL.js && cross-env NODE_ENV=development SERVER_PORT=3001 webpack-dev-server --inline --progress --config build/webpack.client.conf.js", "dev": "cross-env NODE_ENV=development SERVER_PORT=3001 webpack-dev-server --inline --progress --config build/webpack.client.conf.js",
"build:test": "npm run check:node && cross-env NODE_ENV=test webpack --progress --config build/webpack.client.conf.js && cross-env NODE_ENV=test node ./build/uploadAliyunCDN.js", "build:test": "npm run check:node && cross-env NODE_ENV=test webpack --progress --config build/webpack.client.conf.js && cross-env NODE_ENV=test node ./build/uploadAliyunCDN.js",
"build:pro": "npm run check:node && cross-env NODE_ENV=production webpack --progress --config build/webpack.client.conf.js && cross-env NODE_ENV=production node ./build/uploadAliyunCDN.js" "build:pro": "npm run check:node && cross-env NODE_ENV=production webpack --progress --config build/webpack.client.conf.js && cross-env NODE_ENV=production node ./build/uploadAliyunCDN.js"
}, },
......
// import LoginAPI from './login_api' // import LoginAPI from './login_api'
import ArticleAPI from './article_api' import ArticleAPI from './article_api'
import httpRequest from '../../utils/httpRequest'
// let loginApi = new LoginAPI(webConf) // let loginApi = new LoginAPI(webConf)
let articleApi = new ArticleAPI(webConf) const articleApi = new ArticleAPI(webConf)
/**
* 提交留咨信息
*/
export function postNes(data) {
return httpRequest.post('/api/enrollment/v1.0/applications', data)
}
export { articleApi } export { articleApi }
import BaseAPI from './base_api' import BaseAPI from './base_api'
export default class ScoreAPI extends BaseAPI { export default class ScoreAPI extends BaseAPI {
//zws/v1/cms/news
/** /**
* zws项目内容获取 * zws项目内容获取
*/ */
......
...@@ -15,9 +15,11 @@ a { ...@@ -15,9 +15,11 @@ a {
text-decoration: none; text-decoration: none;
} }
html { html {
background-color: #F9F8F8;
font-family: 'PingFangSC-Regular', 'PingFang SC', 'Microsoft Yahei' !important; font-family: 'PingFangSC-Regular', 'PingFang SC', 'Microsoft Yahei' !important;
} }
body { body {
background-color: #F9F8F8;
margin: 0; margin: 0;
} }
.content-box { .content-box {
......
<template> <template>
<div> <div>
<div class="home-head"> <div class="home-head">
<swiper ref="mySwiper" :options="swiperOptions" class="item-swiper"> <h1 v-if="$route.path !== '/news'">
教育部第四批1+X培训评价机构<br />
金融产品数字化营销职业技能等级证书
</h1>
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/x-new/banner.png" />
<!-- <swiper ref="mySwiper" :options="swiperOptions" class="item-swiper">
<swiper-slide v-for="(item, index) in swiperList" :key="index"> <swiper-slide v-for="(item, index) in swiperList" :key="index">
<!-- <router-link :to="`/news/detail?id=${item.id}&type=home`"> -->
<a :href="item.url" target="_blank"> <a :href="item.url" target="_blank">
<img :src="item.image_info.full_path" alt="" /> <img :src="item.image_info.full_path" alt="" />
</a> </a>
<!-- </router-link> -->
</swiper-slide> </swiper-slide>
</swiper> </swiper> -->
</div> </div>
</div> </div>
</template> </template>
...@@ -36,8 +39,8 @@ export default { ...@@ -36,8 +39,8 @@ export default {
_this.swiperIndex = this.activeIndex _this.swiperIndex = this.activeIndex
} }
}, },
observer:true,//修改swiper自己或子元素时,自动初始化swiper observer: true, //修改swiper自己或子元素时,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swiper observeParents: true, //修改swiper的父元素时,自动初始化swiper
// loop:true, // loop:true,
autoplay: { autoplay: {
delay: 2000, delay: 2000,
...@@ -47,14 +50,14 @@ export default { ...@@ -47,14 +50,14 @@ export default {
} }
}, },
created() { created() {
action.articleAction.getAllClassify({ tag: 'carousel-category' }).then(response => { // action.articleAction.getAllClassify({ tag: 'carousel-category' }).then(response => {
const findId = response.data[0].children.find(item => { // const findId = response.data[0].children.find(item => {
return item.display_name === '轮播1' // return item.display_name === '轮播1'
}) // })
action.articleAction.getBanner({ category_id: findId.id }).then(res => { // action.articleAction.getBanner({ category_id: findId.id }).then(res => {
this.swiperList = res.data // this.swiperList = res.data
}) // })
}) // })
}, },
mounted() { mounted() {
// if (!Object.keys(this.$store.state.classify).length) { // if (!Object.keys(this.$store.state.classify).length) {
...@@ -82,7 +85,6 @@ export default { ...@@ -82,7 +85,6 @@ export default {
// // // loading.close() // // // loading.close()
// // }) // // })
// } // }
}, },
computed: { computed: {
swiper() { swiper() {
...@@ -92,10 +94,24 @@ export default { ...@@ -92,10 +94,24 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.home-head{ .home-head {
img{ position: relative;
img {
width: 100%; width: 100%;
display: block; display: block;
} }
h1 {
text-align: center;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 60px;
font-weight: bold;
color: #ffffff;
line-height: 86px;
text-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
white-space: nowrap;
}
} }
</style> </style>
...@@ -4,7 +4,10 @@ ...@@ -4,7 +4,10 @@
<div class="inner"> <div class="inner">
<div class="left"> <div class="left">
<!-- <h3>友情链接</h3> --> <!-- <h3>友情链接</h3> -->
<img src="http://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/static/ezijing/logo/ezijing-logo-white.svg" class="logo" /> <img
src="http://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/static/ezijing/logo/ezijing-logo-white.svg"
class="logo"
/>
<ul class="menu"> <ul class="menu">
<li v-for="item in menuList" :key="item.href"> <li v-for="item in menuList" :key="item.href">
<a :href="item.href" target="_blank">{{ item.title }}</a> <a :href="item.href" target="_blank">{{ item.title }}</a>
...@@ -26,33 +29,52 @@ ...@@ -26,33 +29,52 @@
</p> </p>
</div> </div>
<div class="qrcode"> <div class="qrcode">
<h3>关注我们</h3>
<img src="https://zws-imgs-pub.ezijing.com/static/public/9a6b48364a2249aea9030645dfefc546.jpeg" alt="" /> <img src="https://zws-imgs-pub.ezijing.com/static/public/9a6b48364a2249aea9030645dfefc546.jpeg" alt="" />
<h3>关注我们</h3>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="copyright" style="height: 40px;line-height: 40px;color: #666;background: #eaebec;"> <div class="copyright" style="height: 40px;line-height: 40px;color: #666;background: #eaebec;">
<div class="inner" style="max-width: 1200px;width: 100%;justify-content: center;display: flex;"> <div class="inner" style="max-width: 1200px;width: 100%;justify-content: center;display: flex;">
<p style="font-size: 12px;">Copyright © 2017 Zijing Education. All rights reserved. 清控紫荆(北京)教育科技股份有限公司</p> <p style="font-size: 12px;">
<a target="_blank" href="https://tsm.miit.gov.cn/dxxzsp/" style="color: #666;text-decoration:none;margin-left: 10px;"> Copyright © 2017 Zijing Education. All rights reserved. 清控紫荆(北京)教育科技股份有限公司
</p>
<a
target="_blank"
href="https://tsm.miit.gov.cn/dxxzsp/"
style="color: #666;text-decoration:none;margin-left: 10px;"
>
<p style="font-size: 12px;">京ICP证150431号</p> <p style="font-size: 12px;">京ICP证150431号</p>
</a> </a>
<a target="_blank" class="record" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802023681" style=" <a
target="_blank"
class="record"
href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802023681"
style="
color: #666; color: #666;
text-decoration:none; text-decoration:none;
align-items: center; align-items: center;
display: flex; display: flex;
margin-right: 5px;"> margin-right: 5px;"
<img src="https://zws-imgs-pub.ezijing.com/e0a0ec47dfdfc1e0797b1d5254021d00.png" alt="" style=" >
<img
src="https://zws-imgs-pub.ezijing.com/e0a0ec47dfdfc1e0797b1d5254021d00.png"
alt=""
style="
width: 20px; width: 20px;
height: 20px; height: 20px;
margin: 0 6px; margin: 0 6px;
display: block; display: block;
"> "
/>
<p style="font-size: 12px;">安备 11010802023681号</p> <p style="font-size: 12px;">安备 11010802023681号</p>
</a> </a>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index" style="color: #666;text-decoration:none;"> <a
target="_blank"
href="https://beian.miit.gov.cn/#/Integrated/index"
style="color: #666;text-decoration:none;"
>
<p style="font-size: 12px;">京ICP备15016866号-1</p> <p style="font-size: 12px;">京ICP备15016866号-1</p>
</a> </a>
</div> </div>
...@@ -77,11 +99,15 @@ export default { ...@@ -77,11 +99,15 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.logo {
width: 120px;
margin-bottom: 30px;
}
.app-footer { .app-footer {
.inner { .inner {
max-width: 800px; // max-width: 800px;
margin: 0 auto; margin: 0 auto;
.left{ .left {
// margin-top: 20px; // margin-top: 20px;
h3 { h3 {
font-size: 16px; font-size: 16px;
...@@ -92,20 +118,19 @@ export default { ...@@ -92,20 +118,19 @@ export default {
} }
} }
.app-footer-main { .app-footer-main {
padding: 10px 0; padding: 76px 0 104px;
color: #fff; color: #fff;
background-color: #A81A42; background-color: #a81a42;
.inner { .inner {
width: 1200px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center;
} }
} }
.menu { .menu {
margin-top: 10px;
line-height: 30px; line-height: 30px;
font-size: 12px; font-size: 16px;
color: #fff; color: #ededed;
} }
.right { .right {
display: flex; display: flex;
...@@ -113,26 +138,29 @@ export default { ...@@ -113,26 +138,29 @@ export default {
} }
.contact { .contact {
h3 { h3 {
font-size: 16px; font-size: 20px;
color: #fff;
color: #ededed;
line-height: 1; line-height: 1;
margin-bottom: 15px; margin-bottom: 45px;
} }
p { p {
font-size: 12px; font-size: 14px;
color: #fff; color: #ededed;
line-height: 24px; line-height: 30px;
} }
} }
.qrcode { .qrcode {
h3 { h3 {
font-size: 16px;
color: #fff;
line-height: 1; line-height: 1;
margin-bottom: 15px; margin-top: 15px;
font-size: 14px;
color: #ffffff;
text-align: center;
font-weight: normal;
} }
width: 128px; width: 128px;
margin-left: 80px; margin-left: 133px;
img { img {
width: 100%; width: 100%;
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<title>1+X金融产品数字化营销职业技能等级证书网站</title> <title>1+X金融产品数字化营销职业技能等级证书网站</title>
<meta name="viewport" id="viewport" content="initial-scale=-1,maximum-scale=1,shrink-to-fit=no" /> <meta name="viewport" id="viewport" content="initial-scale=-1,maximum-scale=1,shrink-to-fit=no" />
</head> </head>
<body> <body style="background-color: #F9F8F8;">
<div id="app"></div> <div id="app"></div>
<!-- es5 兼容 新方法 --> <!-- es5 兼容 新方法 -->
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-shim.min.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-shim.min.js"></script>
......
<template>
<div>
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/x-new/query-banner.png" class="banner" />
<section class="section">
<h1 class="pt-100">认证报名</h1>
<h2>1、报名条件</h2>
<p style="margin: 20px 0;">遵纪守法并具备以下各等级证书条件之一者,可申请参加相应等级证书考试:</p>
<h3>初级</h3>
<p>
(1)中职及以上学历层次财经商贸大类等相关专业毕业生(含在校生);<br />
(2)高中及以上学历毕业且从事相关工作满1年以上(含1年)者。
</p>
<h3>中级</h3>
<p>
(1)中职及以上学历层次财经商贸大类等相关专业毕业生(含在校生);<br />
(2)高中及以上学历毕业且从事相关工作满2年以上(含2年)者。
</p>
<h3>高级</h3>
<p>
(1)专科及以上财经商贸大类相关专业毕业生(含在校生);<br />
(2)取得中级证书后,连续从事本职业工作2年以上(含2年);<br />
(3)专科学历毕业
</p>
<h2>2、报名方式</h2>
<p style="margin-top: 20px;">
(1) 在校学生:咨询学校所在院系教研室,由院系项目办统一报名。<br />
(2) 社会人员:在报名前请拨打010-62799201,由工作人员安排就近考核站点进行报名。<br />
(3)具体报考信息以紫荆教育实际发布公告通知为准;<br />
(4)报名过程中遇到任何问题,请咨询紫荆教育,咨询电话:010-62799201
</p>
</section>
<div class="practice-box">
<div class="pra-title">认证练习</div>
<div class="pra-tips">
这是一句副标题副标题副标题副标题,这是一句副标题副标题副标题副标题这是一句副标题副标题副标题
</div>
<a href="https://login.ezijing.com/xlearn/login" target="_blank">
<div class="pra-btn">立即练习</div>
</a>
</div>
<section class="section">
<h1 class="pt-80">证书查询</h1>
<p class="zs-tips">成绩和证书查询入口https://vslc.ncb.edu.cn/gateway/Querydata</p>
<div class="cert-box" style="margin-bottom: 100px;">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/x-new/query-img1.png" />
</div>
</section>
</div>
</template>
<script>
export default {
components: {},
data() {
return {}
},
mounted() {},
methods: {}
}
</script>
<style lang="scss" scoped>
.section {
width: 1200px;
margin: 0 auto;
}
.banner {
width: 100%;
display: block;
}
.pt-80 {
padding-top: 80px;
}
.pt-100 {
padding-top: 100px;
}
h1 {
font-size: 32px;
font-weight: bold;
color: #333333;
line-height: 34px;
text-align: center;
margin-bottom: 50px;
}
.describe {
font-size: 18px;
color: #666666;
line-height: 36px;
margin-bottom: 50px;
}
h2 {
font-size: 24px;
color: #333;
}
h3 {
font-size: 20px;
color: #333;
}
p {
font-size: 18px;
color: #333;
line-height: 30px;
margin-bottom: 30px;
}
.practice-box {
background-color: #aa1941;
height: 340px;
padding: 60px 0;
margin-top: 70px;
box-sizing: border-box;
.pra-title {
font-size: 32px;
font-weight: bold;
color: #ffffff;
line-height: 100%;
text-align: center;
}
.pra-tips {
font-size: 18px;
color: #ffffff;
line-height: 100%;
text-align: center;
margin-top: 50px;
}
.pra-btn {
width: 150px;
line-height: 40px;
text-align: center;
margin: 80px auto 0;
font-size: 18px;
background: #ffffff;
color: #424242;
border-radius: 6px 6px 6px 6px;
cursor: pointer;
}
}
.zs-tips {
font-size: 18px;
color: #666666;
line-height: 100%;
text-align: center;
margin-bottom: 80px;
}
</style>
差异被折叠。
差异被折叠。
<template>
<div>
<div class="banner-top">
<div class="max-width-auto">
<img src="https://zws-imgs-pub.ezijing.com/static/public/9931abadf2c7559a6550d43bec908f3f.png" alt="">
<div class="text-box">
<div class="title">金融产品数字化营销</div>
<div class="tit-m2">职业技能等级证书</div>
</div>
</div>
</div>
<div class="model1">
<img src="https://zws-imgs-pub.ezijing.com/static/public/23f41572138217b62e6fdd68ab6064a3.png" alt="">
</div>
<div class="model2">
<img src="https://zws-imgs-pub.ezijing.com/static/public/f8d7213088d1b7713172f931d0a7cf12.png" alt="">
</div>
<div class="model3">
<img src="https://zws-imgs-pub.ezijing.com/static/public/691b2914a112e8c22b05d63bd93dd9ca.png" alt="">
</div>
<div class="model4">
<div class="title">Project Description</div>
<div class="title2">项目内容</div>
<div class="text">此项目由清北人等知名院校导师及中国特色高水平高职学校等学术专家,联合金融行业数字化营销领域专家、银 证保等金融机构业务高管等实线导师共同整体设计。内容涵盖:</div>
<div class="swiper-box">
<swiper ref="mySwiper" :options="swiperOptions" class="item-swiper">
<swiper-slide v-for="(item, index) in swiperList" :key="index">
<div class="dosc">{{ item }}</div>
</swiper-slide>
<div class="swiper-button-prev" slot="button-prev"></div>
<div class="swiper-button-next" slot="button-next"></div>
</swiper>
</div>
</div>
<div class="model5">
<img src="https://zws-imgs-pub.ezijing.com/static/public/e1676483b830f3f07e708770dcab14bd.png" alt="">
</div>
</div>
</template>
<script>
import { swiper, swiperSlide, directive } from 'vue-awesome-swiper'
import 'swiper/swiper-bundle.css'
export default {
components: {
swiper,
swiperSlide
},
directives: {
swiper: directive
},
data() {
const _this = this
return {
swiperList: [
'(一)教材研发。研发团队:清北人知名院校教授领衔主编,双高院校学科带头人和业界到导师团队主编。内容设计:以工作过程为导向,以实践结果为考核标准。',
'(二)师资培训。双师型数字营销教师培训,课堂教学和企业数字营销任务实践紧密结合,做中学,学中做,新型产教融合模式。训练”以学员为中心”引导式教学技能。',
'(三)考试考核。众多金融机构合作资源,提供数字营销岗位的实习机会,专业团队远程指导。证书技能聚焦岗位群精准且广泛,无缝连接就业。(一)全覆盖。金融产品数字化营销职业技能等级标准设计场景涵盖了中职、高职和应用型本科三个层次,有效服务于“1+X”制度改革全覆盖。(二)补充性。金融产品数字化营销职业技能等级标准总课时约为280课时,采用精准对岗既解决培训资源先进性、实时性和好用性问题,也优化课程资源和金融和营销的新业态,充分体现“X”对“1”补充作用和不可替代性。(三)多样性。金融产品数字化营销职业技能等级标准鉴定立足于与学历教育有效衔接,设计了课程置换、学分置换、实践置换、新职业等级置换等“X”与“1”完全融合的多样性。(四)无缝性。金融产品数字化营销职业技能等级标准培训教材所选取典型工作领域,遵循岗位群对接既精准又广泛,即持证就能上岗,达到无缝对接效果。',
'(四)学习系统。既对技能标准、培训教材、考核平台、考核大纲等培训资源进行一体化开发。对培训指导方法、培训评价站点、培训评价办法等培训条件和制度办法进行系统设计。',
'(五)实训系统。全业务场景数字化销售赋能,打造闭环销售链路技能。产教研深度融合的数字营销实训平台。包括大数据、营销自动化、社交媒体营销、移动营销等。',
'(六)就业安排。众多金融机构合作资源,提供数字营销岗位的实习机会,专业团队远程指导。证书技能聚焦岗位群精准且广泛,无缝连接就业。'
],
swiperOptions: {
on: {
slideChangeTransitionStart: function() {
// _this.swiperIndex = this.activeIndex
}
},
observer:true,//修改swiper自己或子元素时,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swiper
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
autoHeight: true
// loop:true,
// autoplay: {
// delay: 2000,
// disableOnInteraction: false
// }
}
}
},
computed: {
swiper() {
return this.$refs.mySwiper.$swiper
}
}
}
</script>
<style lang="scss" scoped>
.banner-top{
position: relative;
width: 100%;
height: 610px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/1541ea20b9066ab0cb8dec36ea4088f6.png);
background-size: cover;
.max-width-auto{
position: absolute;
top: 26px;
left: 50%;
transform: translateX(-50%);
width: 1081px;
display: flex;
align-items: center;
.text-box{
padding-left: 90px;
}
.title{
font-size: 47px;
font-weight: bold;
color: #FFFFFF;
line-height: 71px;
}
.tit-m2{
font-size: 26px;
color: #FFFFFF;
line-height: 39px;
margin-top: 31px;
}
}
}
.model1{
width: 100%;
background: #fff;
padding: 200px 0 100px 0;
img{
width: 1200px;
display: block;
margin: 0 auto;
}
}
.model2{
width: 100%;
background: #F8F8F9;
padding: 100px 0 100px 0;
img{
width: 1200px;
display: block;
margin: 0 auto;
}
}
.model3{
width: 100%;
background: #fff;
padding: 100px 0 100px 0;
img{
width: 1200px;
display: block;
margin: 0 auto;
}
}
.model4{
background: #F8F8F9;
padding: 100px 0 120px 0;
.title{
text-align: center;
font-size: 16px;
color: #797979;
line-height: 24px;
}
.title2{
text-align: center;
font-size: 26px;
color: #626262;
line-height: 39px;
margin: 20px 0;
}
.text{
width: 616px;
font-size: 14px;
color: #888888;
line-height: 24px;
margin: 0 auto;
}
.swiper-box{
padding-top: 60px;
width: 1200px;
margin: 0 auto;
.dosc{
width: 800px;
margin: 0 auto;
text-align: center;
font-size: 18px;
color: #444444;
line-height: 36px;
letter-spacing: 1px;
}
.swiper-button-prev{
color: #D8D8D8;
// height: 60px;
// background: url(https://zws-imgs-pub.ezijing.com/static/public/0ec9d99a7350896c087766175ce65f89.png);
}
.swiper-button-next{
color: #D8D8D8;
// height: 60px;
}
}
}
.model5{
width: 100%;
background: #fff;
padding: 100px 0 100px 0;
img{
width: 1200px;
display: block;
margin: 0 auto;
}
}
</style>
<template>
<div class="news-detail-box">
<!-- <breadcrumb class="content-max-width crumb" :data="crumbData"/> -->
<div class="title">{{ data.title }}</div>
<div class="content content-max-width" v-html="data.content"></div>
<div class="pdf content-max-width">
<a target="_blank" :href="data.attachment_url" class="name">{{ data.attachment_title }}</a>
</div>
</div>
</template>
<script>
import action from '@action'
import breadcrumb from '@/components/breadcrumb'
export default {
components: {
breadcrumb
},
data() {
return {
data: {},
crumbData: [
{
path: '/',
name: '首页'
},
{
name: parseInt(this.$route.query.tabs) === 1 ? '工作动态' : '通知公告'
}
]
}
},
mounted() {
this.getData()
if (this.$route.query.type) {
this.crumbData = [
{
path: '/',
name: '首页'
},
{
name: parseInt(this.$route.query.tabs) === 1 ? '工作动态' : '通知公告'
}
]
}
},
methods: {
getData() {
action.articleAction.getArticleDetail(79).then(res => {
this.data = res.data
})
}
}
}
</script>
<style lang="scss" scoped>
.crumb{
padding-top: 24px;
}
.content-max-width{
width: 870px;
margin: 0 auto;
}
.news-detail-box{
.title{
text-align: center;
font-size: 18px;
font-weight: bold;
color: #C01540;
line-height: 25px;
margin: 24px 0;
}
.content{
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
color: #717171;
line-height: 20px;
margin-bottom: 24px;
}
}
.pdf{
padding-bottom: 30px;
.name{
color: #0053C6;
}
}
</style>
<template>
<div class="view-box">
<iframe v-if="$route.query.type == 1" src='https://view.officeapps.live.com/op/view.aspx?src=https://zws-imgs-pub.ezijing.com/static/public/f63f489fed119a6f6678fd75a98ac8e3.docx' width='100%' height='100%' frameborder='1'>
</iframe>
<iframe v-if="$route.query.type == 2" src='https://view.officeapps.live.com/op/view.aspx?src=https://zws-imgs-pub.ezijing.com/static/public/75002d93f43f2d0b42b2e21c9937cb5e.docx' width='100%' height='100%' frameborder='1'>
</iframe>
</div>
</template>
<script>
export default {
components: {
},
data () {
return {
}
},
computed: {
},
methods: {
}
}
</script>
<style lang="scss">
.view-box{
width: 100%;
height: 100%;
}
</style>
<template> <template>
<div> <div>
<div class="home-box" v-if="cardListMap.length > 0"> <div class="home-box" v-if="cardListMap && cardListMap.length > 0">
<!-- <haedBanner></haedBanner> --> <!-- <haedBanner></haedBanner> -->
<div> <div>
<div v-for="(item, index) in cardListMap" :key="index" class="home-box-content"> <div v-for="(item, index) in cardListMap" :key="index" class="home-box-content">
...@@ -37,7 +37,7 @@ export default { ...@@ -37,7 +37,7 @@ export default {
}, },
computed: { computed: {
cardListMap() { cardListMap() {
return this.cardList.filter(item => item.status === 2) return this.cardList?.filter(item => item.status === 2)
} }
}, },
methods: { methods: {
...@@ -45,7 +45,7 @@ export default { ...@@ -45,7 +45,7 @@ export default {
handleGetCard() { handleGetCard() {
const params = { project_prefix: 'x1' } const params = { project_prefix: 'x1' }
action.articleAction.getCard(params).then(res => { action.articleAction.getCard(params).then(res => {
this.cardList = res.data.list this.cardList = res.data?.list
}) })
}, },
// 打印 // 打印
......
...@@ -2,20 +2,16 @@ ...@@ -2,20 +2,16 @@
<div class="news-box"> <div class="news-box">
<haedBanner></haedBanner> <haedBanner></haedBanner>
<!-- <breadcrumb class="content-max-width crumb" :data="crumbData"/> --> <!-- <breadcrumb class="content-max-width crumb" :data="crumbData"/> -->
<btn-tabs class="tabs-box content-max-width" @tabsChange='tabsChange' :data="tabsData"></btn-tabs> <btn-tabs class="tabs-box content-max-width" @tabsChange="tabsChange" :data="tabsData"></btn-tabs>
<ul class="content-max-width"> <ul class="content-max-width">
<template v-for="(item, index) in list"> <template v-for="(item, index) in list">
<li :key="index"> <li>
<item :data="item" :index="tabsDataIndex"></item> <item :data="item" :index="tabsDataIndex"></item>
</li> </li>
</template> </template>
</ul> </ul>
<div class="pagination"> <div class="pagination">
<el-pagination <el-pagination :page-size="pages.page_size" layout="prev, pager, next, jumper" :total="5"> </el-pagination>
:page-size="pages.page_size"
layout="prev, pager, next, jumper"
:total="5">
</el-pagination>
</div> </div>
</div> </div>
</template> </template>
...@@ -60,8 +56,7 @@ export default { ...@@ -60,8 +56,7 @@ export default {
} }
this.newsList() this.newsList()
}, },
mounted() { mounted() {},
},
methods: { methods: {
tabsChange(n) { tabsChange(n) {
this.tabsDataIndex = n this.tabsDataIndex = n
...@@ -99,7 +94,7 @@ export default { ...@@ -99,7 +94,7 @@ export default {
}, },
watch: { watch: {
$route: { $route: {
handler: function(val, oldVal){ handler: function(val, oldVal) {
if (this.$route.query.type !== undefined || this.$route.query.type !== 'undefined') { if (this.$route.query.type !== undefined || this.$route.query.type !== 'undefined') {
this.tabsData.index = parseInt(this.$route.query.type) this.tabsData.index = parseInt(this.$route.query.type)
this.tabsDataIndex = parseInt(this.$route.query.type) this.tabsDataIndex = parseInt(this.$route.query.type)
...@@ -112,24 +107,24 @@ export default { ...@@ -112,24 +107,24 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
img{ img {
width: 100%; width: 100%;
display: block; display: block;
// height: 240px; // height: 240px;
} }
.crumb{ .crumb {
padding-top: 24px; padding-top: 24px;
} }
.content-max-width{ .content-max-width {
width: 1112px; width: 1112px;
margin: 0 auto; margin: 0 auto;
} }
.news-box{ .news-box {
.tabs-box{ .tabs-box {
padding: 60px 0 0; padding: 60px 0 0;
} }
} }
.pagination{ .pagination {
padding: 24px 0; padding: 24px 0;
display: flex; display: flex;
justify-content: center; justify-content: center;
......
<template>
<div>
<div class="presence-content-box">
<div class="content-mian">
<div class="form-box">
<div class="title-box">
<div class="title-content">
<div class="bt">申请试用</div>
</div>
</div>
<div class="form">
<div class="li">
<el-input v-model="f1" placeholder="咨询产品"></el-input>
</div>
<div class="li">
<el-input v-model="f2" placeholder="院校名称"></el-input>
</div>
<div class="li">
<el-input v-model="f3" placeholder="校系"></el-input>
</div>
<div class="li">
<el-input v-model="form.name" placeholder="联系人"></el-input>
</div>
<div class="li">
<el-input v-model="form.phone" placeholder="电话"></el-input>
</div>
<div class="btn" @click="submit">立即提交</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { postNes } from '@/api'
export default {
components: {},
data() {
return {
// comment: '#专业:' + data.major + '#年级:' + data.class + '#大学:' + data.edu
f1: '',
f2: '',
f3: '',
form: {
name: '',
phone: '',
project_id: process.env.projectId
}
}
},
mounted() {},
methods: {
submit() {
const findNull = Object.values(this.form).findIndex(item => {
return item === ''
})
if (findNull !== -1) {
this.$message('请完善信息')
return
} else {
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}$/
if (!MOBILE_REG.test(this.form.phone)) {
this.$message('手机号格式错误')
return
}
}
this.form = Object.assign(this.form, { comment: `#咨询产品:${this.f1};#院校名称:${this.f2};#院系:${this.f3}` })
postNes(this.form)
.then(res => {
if (res && res.status === 200) {
this.$message({
type: 'success',
message: '提交成功'
})
} else {
this.$message.error('提交失败')
}
})
.catch(() => {})
}
}
}
</script>
<style lang="scss" scoped>
.card-style {
width: 1200px;
margin: 0 auto;
}
.presence-content-box {
padding-top: 80px;
.m-title {
width: 1200px;
margin: 0 auto;
}
.content-mian {
padding-top: 24px;
.my-swipe {
height: 500px;
::v-deep {
.app-link {
width: 100%;
height: 100%;
}
a {
width: 100%;
height: 100%;
}
}
img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
}
.form-box {
width: 1200px;
height: 500px;
margin: 0 auto 40px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/exed/home-ssfc-bg.png);
background-size: 100% 100%;
display: flex;
justify-content: space-between;
.title-box {
width: 580px;
height: 160px;
background: rgba(170, 25, 65, 0.4);
box-shadow: 0px 0px 122px rgba(0, 0, 0, 0.07);
margin-top: 170px;
position: relative;
.title-content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 380px;
height: 200px;
background: #aa1941;
}
.bt {
font-size: 22px;
line-height: 100%;
color: #ffffff;
text-align: center;
margin-top: 90px;
}
.tips {
font-size: 22px;
line-height: 100%;
color: #ffffff;
text-align: center;
margin-top: 20px;
}
}
.form {
width: 401px;
background: #ffffff;
margin-top: 54px;
box-sizing: border-box;
padding: 40px 50px;
height: fit-content;
margin-right: 116px;
::v-deep {
.el-select {
width: 100%;
}
}
.li {
margin-bottom: 20px;
}
.btn {
font-size: 18px;
line-height: 32px;
color: #ffffff;
width: 281px;
background: #aa1941;
border-radius: 4px;
text-align: center;
cursor: pointer;
}
}
}
}
}
</style>
<template>
<div class="product-box">
<img class="banner" src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/x-new/pro-banner.png" />
<section class="section">
<!-- 实训平台介绍 -->
<h1 class="pt-100">1+X金融产品数字化营销实训平台介绍</h1>
<div class="describe">
1+X金融产品数字化营销实训平台是一款既面向1+X职业技能登记等级证书,又面向企业数字化转型核心基础能力人才培养的综合金融产品数字化营销训练平台,该平台是在成熟工业级数字营销系统基础上进行教育适配化改造得来,提供涵盖了银行、保险、证券等多个金融行业综合案例集和配套理论与实践教学资源,定位于学生实践平台、教师科研平台、企业营销业务平台等功能为一体的综合性平台,是院校金融营销实训室建设的必备实训平台。
</div>
<!-- 核心模块 -->
<h1 class="pt-80">核心模块</h1>
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/x-new/pro-img1.png" class="describe-img" />
<h1 class="pt-80">案例资源</h1>
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/x-new/pro-img2.png" class="describe-img" />
<p class="js">
金融产品数字营销实验室目前配备<span>6</span>个案例,<span>6</span>篇案例原文、<span>34</span>份案例指导书、<span>33</span>套教学PPT、<span>80</span>个教学视频。
</p>
<!-- 案例资源示例 -->
<h3 class="section-subtitle pt-80">案例资源示例</h3>
<div class="tab">
<ul class="tab-header">
<li
v-for="(item, index) in tabList"
:class="{ 'is-active': index === tabActive }"
:key="index"
@mouseover="tabActive = index"
>
{{ item.title }}
</li>
</ul>
<ul class="tab-body" v-for="(item, index) in tabList" :key="index" v-if="index === tabActive">
<li v-for="item in item.children" :key="item"><img :src="item" /></li>
</ul>
</div>
<!-- 产品配套服务 -->
<h2 class="section-title">配套服务</h2>
<h3 class="section-subtitle">标准服务</h3>
<ul class="bz-list">
<li v-for="item in bzfwList" :key="item.title">
<img :src="item.icon" />
<div class="cover">
<h4>{{ item.title }}</h4>
<p v-html="item.desc"></p>
</div>
</li>
</ul>
<!-- 增值服务 -->
<h3 class="section-subtitle" style="padding-top: 50px;">增值服务</h3>
<ul class="zz-list">
<li v-for="item in zzfwList" :key="item">{{ item }}</li>
</ul>
<!-- 报名 -->
<presence></presence>
</section>
</div>
</template>
<script>
import presence from './components/presence.vue'
export default {
components: {
presence
},
data() {
return {
tabActive: 0,
// 标准服务
bzfwList: [
{
icon: 'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/bzfw_1.png',
title: '产品服务',
desc: '产品安装服务<br/>产品配置调试服务<br/>产品免费升级服务<br/>……'
},
{
icon: 'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/bzfw_2.png',
title: '资源服务',
desc: '配套课程资源<br/>课程资源免费更新服务<br/>行业案例免费升级服务<br/>……'
},
{
icon: 'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/bzfw_3.png',
title: '培训服务',
desc: '产品使用培训<br/>产品维护培训<br/>……'
},
{
icon: 'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/bzfw_4.png',
title: '产品技术支持',
desc: '产品功能与性能巡检<br/>产品使用分析与建议<br/>产品在线技术支持<br/>产品电话技术支持<br/>……'
}
],
// 增值服务
zzfwList: ['顶层设计服务', '师资培训服务', '行业讲座服务', '科研服务', '教学服务'],
tabList: [
{
title: '案例原文',
children: [
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_1_1.png',
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_1_2.png',
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_1_3.png'
]
},
{
title: '案例指导书',
children: [
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_2_1.png',
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_2_2.png',
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_2_3.png'
]
},
{
title: '教学PPT',
children: [
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_3_1.png',
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_3_2.png'
]
},
{
title: '操作视频',
children: [
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_4_1.png',
'https://webapp-pub.ezijing.com/www/pc/digital/yx_1_1/alzy_4_2.png'
]
}
]
}
},
mounted() {},
methods: {}
}
</script>
<style lang="scss" scoped>
.banner {
width: 100%;
display: block;
}
.pt-80 {
padding-top: 80px;
}
.pt-100 {
padding-top: 100px;
}
h1 {
font-size: 32px;
font-weight: bold;
color: #333333;
line-height: 34px;
text-align: center;
margin-bottom: 50px;
}
.describe {
font-size: 18px;
color: #666666;
line-height: 36px;
margin-bottom: 50px;
}
.describe-img {
width: 100%;
display: block;
}
.section {
width: 1200px;
margin: 0 auto;
}
.js {
font-size: 18px;
color: #666666;
margin-top: 10px;
line-height: 100%;
span {
font-size: 24px;
color: #aa1941;
}
}
.section-subtitle {
display: inline-block;
margin: 0 0 36px 0;
font-size: 20px;
line-height: 32px;
color: #424242;
border-bottom: 1px solid var(--main-color);
}
.tab {
display: flex;
margin-bottom: 70px;
}
.tab-header {
margin-right: 38px;
li {
width: 270px;
height: 70px;
font-size: 24px;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
line-height: 70px;
color: #333333;
background: #fff;
text-align: center;
border: 1px solid #d5d5d5;
cursor: pointer;
&.is-active {
color: #fff;
background-color: var(--main-color);
border: 1px solid var(--main-color);
}
& + li {
margin-top: 22px;
}
}
}
.tab-body {
flex: 1;
display: flex;
align-items: center;
justify-content: space-evenly;
background-color: var(--main-color);
}
.section-title {
margin-bottom: 36px;
font-size: 30px;
font-family: Source Han Sans CN;
font-weight: bold;
line-height: 32px;
color: #333333;
text-align: center;
}
.bz-list {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 38px;
li {
position: relative;
transition: all 0.3s;
&:hover {
transform: scale(1.06);
}
}
.cover {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: rgba(51, 51, 51, 0.6);
}
h4 {
padding: 64px 0 45px;
font-size: 24px;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
}
p {
font-size: 16px;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #ffffff;
line-height: 40px;
text-align: center;
}
}
.zz-list {
display: flex;
gap: 25px;
li {
flex: 1;
font-size: 22px;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #333333;
line-height: 80px;
text-align: center;
border: 1px solid var(--main-color);
border-left-width: 10px;
}
}
</style>
<template>
<div>
<breadcrumb class="content-max-width crumb" :data="crumbData"/>
<div class="site-box" v-if="list.length">
<div class="title">{{ list[0].title }}</div>
<div class="content" v-html="list[0].content">
证书成绩查询请前往职业技能等级证书信息管理服务平台(网址: https://vslc.ncb.edu.cn )进行查询。
</div>
<div class="btn" @click="goDetail">去查询</div>
</div>
<img :src="list[0].cover_pc_url" alt="">
</div>
</template>
<script>
import action from '@action'
import breadcrumb from '@/components/breadcrumb'
export default {
components: {
breadcrumb
},
data() {
return {//this.$store.state.classify
articleClassify: this.$store.state.classify,
list: [],
crumbData: [
{
path: '/',
name: '首页'
},
{
name: '证书成绩查询'
}
]
}
},
mounted() {
this.newsList()
},
methods: {
goDetail() {
window.open('https://vslc.ncb.edu.cn')
},
newsList() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
if (!Object.keys(this.$store.state.classify).length) {
setTimeout(() => {
this.articleClassify = this.$store.state.classify
this.newsList()
}, 2000)
} else {
const findId = this.articleClassify[0].children.find(item => {
return item.display_name === '证书成绩查询'
})
action.articleAction.getArticle({ category_id: findId.id }).then(res => {
this.list = res.data.list
loading.close()
})
}
}
}
}
</script>
<style lang="scss" scoped>
.crumb{
padding-top: 24px;
}
.content-max-width{
width: 1112px;
margin: 0 auto;
}
.site-box{
width: 650px;
margin: 0 auto;
.title{
text-align: center;
font-size: 18px;
color: #222222;
line-height: 18px;
margin: 24px 0;
}
.content{
font-size: 14px;
color: #666666;
line-height: 20px;
}
.btn{
text-align: center;
width: 96px;
height: 36px;
background: linear-gradient(315deg, rgba(225, 47, 116, 0.83) 0%, #C01540 100%);
border-radius: 4px;
font-size: 14px;
color: #FFFFFF;
line-height: 20px;
margin: 24px auto;
line-height: 36px;
cursor: pointer;
}
}
img{
width: 876px;
display: block;
margin: 0 auto 24px auto;
}
</style>
<template>
<div class="notice-mian">
<ul class="assist-list">
<template v-for="(item, index) in list">
<template v-if="index >= 0 && index <= 3">
<router-link :to="`/news/detail?id=${item.id}&type=home&tabs=${newsTabIndex}`" :key="index">
<li>
<div class="text">
<div class="p">{{ item.title }}</div>
<div class="time">{{ item.published_time.substring(item.published_time.indexOf(' '), 0) }}</div>
</div>
</li>
</router-link>
</template>
</template>
<li class="border-none">
<div class="text cen" @click="goNewsPage">更多通知</div>
</li>
</ul>
</div>
</template>
<script>
import action from '@action'
export default {
data() {
return {
articleClassify: this.$store.state.classify,
list: [],
newsTabIndex: 1
}
},
mounted() {
this.newsList()
},
methods: {
newsList() {
// const loading = this.$loading({
// lock: true,
// text: 'Loading',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'//
// })
if (!Object.keys(this.$store.state.classify).length) {
setTimeout(() => {
this.articleClassify = this.$store.state.classify
this.newsList()
}, 2000)
} else {
console.log(this.articleClassify, 'this.articleClassify')
const findId = this.articleClassify[0].children.find(item => {
return item.display_name === (this.newsTabIndex ? '工作动态' : '新闻动态')
})
action.articleAction.getArticle({ category_id: findId ? findId.id : 23 }).then(res => {
this.list = res.data.list
console.log(this.list, 'this.list')
})
}
},
goNewsPage() {
this.$router.push({
path: '/news',
query: {
type: this.newsTabIndex
}
})
}
}
}
</script>
<style lang="scss" scoped>
.section {
width: 1200px;
margin: 0 auto;
}
.notice-mian {
display: flex;
margin-top: 16px;
.assist-list {
width: 100%;
background: #ffffff;
border-radius: 4px;
a {
// &:nth-child(1){
// li{
// background: #A81A42;
// border-radius: 4px;
// .text{
// color: #fff;
// }
// }
// }
}
li {
padding: 0 20px;
&:hover {
background: #a81a42;
border-radius: 4px;
.text {
color: #fff;
}
}
cursor: pointer;
&.border-none {
border: none;
}
.text {
display: flex;
.p {
width: 800px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.time {
margin-left: auto;
}
// width: 423px;
// margin: 0 auto;
height: 55px;
border-bottom: 1px solid #eee;
line-height: 55px;
font-size: 18px;
color: #444444;
&.cen {
text-align: center;
}
}
}
}
.slide-box {
cursor: pointer;
position: relative;
width: 713px;
height: 280px;
margin-left: auto;
.item-swiper {
width: 100%;
height: 100%;
img {
display: block;
width: 100%;
height: 100%;
}
}
.assist {
display: flex;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 44px;
background: rgba(0, 0, 0, 0.3);
z-index: 99;
.text {
font-size: 14px;
color: #ffffff;
line-height: 44px;
margin-left: 24px;
}
}
.pagination {
display: flex;
margin-left: auto;
align-items: center;
padding-right: 40px;
span {
width: 8px;
height: 8px;
background: #000000;
opacity: 0.2;
border-radius: 50%;
margin-left: 8px;
&.active {
opacity: 1;
background: #fff;
}
}
}
}
}
</style>
差异被折叠。
差异被折叠。
...@@ -12,31 +12,43 @@ export default [ ...@@ -12,31 +12,43 @@ export default [
{ path: '/news', component: () => import('@/pages/news/index.vue') }, { path: '/news', component: () => import('@/pages/news/index.vue') },
// 工作动态详情 // 工作动态详情
{ path: '/news/detail', component: () => import('@/pages/news/detail.vue') }, { path: '/news/detail', component: () => import('@/pages/news/detail.vue') },
// 教材中心 // 1+x产品
{ path: '/textBook', component: () => import('@/pages/textBook/index.vue') }, { path: '/product', component: () => import('@/pages/product/index.vue') },
// 教材中心详情
{ path: '/textBook/detail', component: () => import('@/pages/textBook/detail.vue') },
// 教材中心详情->章节
{ path: '/textBook/chapter', component: () => import('@/pages/textBook/chapter.vue') },
// 师资培训 // 师资培训
{ path: '/teacher', component: () => import('@/pages/teachers/index.vue') },
// 证书成绩查询
{ path: '/attestation', component: () => import('@/pages/attestation/index.vue') },
// // 教学服务
{ path: '/service', component: () => import('@/pages/service/index.vue') },
{ path: '/train', component: () => import('@/pages/train/index.vue') }, { path: '/train', component: () => import('@/pages/train/index.vue') },
// 师资培训详情 // 师资培训详情
{ path: '/train/detail', component: () => import('@/pages/train/detail.vue') }, { path: '/train/detail', component: () => import('@/pages/train/detail.vue') },
// 师资培训详情->报名 // 师资培训详情->报名
{ path: '/train/form', component: () => import('@/pages/train/form.vue') }, { path: '/train/form', component: () => import('@/pages/train/form.vue') },
{ path: '/school/form', component: () => import('@/pages/train/form2.vue') }, { path: '/school/form', component: () => import('@/pages/train/form2.vue') },
// 考核站点
{ path: '/site', component: () => import('@/pages/site/index.vue') },
// 证书成绩查询
{ path: '/query', component: () => import('@/pages/query/index.vue') },
// 证书成绩查询
{ path: '/register', component: () => import('@/pages/account/register.vue') }, { path: '/register', component: () => import('@/pages/account/register.vue') },
// 办事大厅 // 证书成绩查询
{ path: '/hall', component: () => import('@/pages/hall/index.vue') },
// 教学服务
{ path: '/service', component: () => import('@/pages/service/index.vue') },
{ path: '/introduce', component: () => import('@/pages/home/newIntroduce.vue') },
{ path: '/queryCard', component: () => import('@/pages/home/queryCard.vue') } { path: '/queryCard', component: () => import('@/pages/home/queryCard.vue') }
// // 教材中心
// { path: '/textBook', component: () => import('@/pages/textBook/index.vue') },
// // 教材中心详情
// { path: '/textBook/detail', component: () => import('@/pages/textBook/detail.vue') },
// // 教材中心详情->章节
// { path: '/textBook/chapter', component: () => import('@/pages/textBook/chapter.vue') },
// // 师资培训详情
// { path: '/train/detail', component: () => import('@/pages/train/detail.vue') },
// // 师资培训详情->报名
// { path: '/train/form', component: () => import('@/pages/train/form.vue') },
// { path: '/school/form', component: () => import('@/pages/train/form2.vue') },
// // 考核站点
// { path: '/site', component: () => import('@/pages/site/index.vue') },
// // 办事大厅
// { path: '/hall', component: () => import('@/pages/hall/index.vue') },
// // 教学服务
// { path: '/service', component: () => import('@/pages/service/index.vue') },
// { path: '/introduce', component: () => import('@/pages/home/newIntroduce.vue') },
// { path: '/queryCard', component: () => import('@/pages/home/queryCard.vue') }
] ]
}, },
// 考核站点详情 // 考核站点详情
......
import axios from 'axios'
import qs from 'qs'
import { Message } from 'element-ui'
const httpRequest = axios.create({
baseURL: process.env.baseURL,
timeout: 60000,
withCredentials: true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
// 请求拦截
httpRequest.interceptors.request.use(
function(config) {
if (config.url.includes('/api/cms')) {
const defaultParams = {
timestamp: parseInt(Date.now() / 1000),
nonce: Math.random()
.toString(36)
.slice(-8)
}
// 接口请求参数
let params = config.params || config.data
// 排序
function alphabeticalSort(a, b) {
return a.localeCompare(b)
}
params = Object.assign({}, defaultParams, params)
const str = qs.stringify(Object.assign({}, params, { salt: 'n7xAav2tSjn9Ysnr' }), { sort: alphabeticalSort })
const strs = qs.parse(str)
Object.keys(strs).map(item => {
strs[item] = Array.isArray(strs[item]) ? JSON.stringify(strs[item]) : strs[item]
})
params.signature = 'UG7wBenexQhiuD2wpCwuxkU0jqcj006d'
if (config.method === 'post') {
config.data = params
} else {
config.params = params
}
}
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
// zws
if (parseInt(data.code)) {
return Promise.reject(data)
}
if (parseInt(data.error) && data.message === '需要登录才能调用接口') {
location.href = `${process.env.loginURL}/login/index?redirect_uri=${encodeURIComponent(location.href)}`
return Promise.reject(data)
}
// enrollment
if (parseInt(data.error)) {
Message.error(data.message)
return Promise.reject(data)
}
return data
},
function(error) {
if (error.response) {
const { message } = error.response.data
Message.error(message || error.response.data)
return Promise.reject(error.response)
} else {
Message.error(error)
}
return Promise.reject(error)
}
)
export default httpRequest
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论