提交 0c07c670 authored 作者: lihuihui's avatar lihuihui

Merge branch 'kelley-h5' into shms

# Conflicts: # app.html # components/home/presence.vue # modules/my/admission/form/xy.js # modules/my/application/form/declare.js # modules/my/interview/form/index.js # modules/my/interview/form/ywjl.js # nuxt.config.js
projectId=1001
newProjectId=6800243768751554560
baseURL=https://project-api2.ezijing.com
loginURL=https://login2.ezijing.com/auth
\ No newline at end of file
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
var _hmt = _hmt || [] var _hmt = _hmt || []
;(function() { ;(function() {
var hm = document.createElement('script') var hm = document.createElement('script')
hm.src = 'https://hm.baidu.com/hm.js?1dd4b8da0ab91581de2051d7225809a1' hm.src = 'https://hm.baidu.com/hm.js?c29be2e1d21ce64d1534ece3acbf4ab5'
var s = document.getElementsByTagName('script')[0] var s = document.getElementsByTagName('script')[0]
s.parentNode.insertBefore(hm, s) s.parentNode.insertBefore(hm, s)
})() })()
......
<template> <template>
<div class="article-item"> <div class="article-item">
<app-link :data="data" v-bind="$attrs"> <app-link :data="data" v-bind="$attrs">
<div class="article-item-inner"> <div :class="$route.path == '/alumni/sharing' ? 'article-item-inner set-list' : 'article-item-inner'">
<img :src="data.web_img_uri" class="article-item-pic" /> <img :src="data.web_img_uri" class="article-item-pic" />
<div class="article-item-content"> <div class="article-item-content">
<div class="article-item-content__date">{{ formatDate(data.start_time) }}</div> <div class="article-item-content__date">{{ formatDate(data.start_time) }}</div>
...@@ -39,11 +39,30 @@ export default { ...@@ -39,11 +39,30 @@ export default {
} }
.article-item-inner { .article-item-inner {
display: flex; display: flex;
&.set-list{
.article-item-pic{
width: 335px;
object-fit: cover;
height: 130px;
}
.article-item-content__text{
-webkit-line-clamp: 2;
}
}
}
.app-link{
::v-deep{
a{
height: fit-content;
}
}
} }
.article-item-pic { .article-item-pic {
width: 320px; width: 320px;
height: 210px; height: 100%;
object-fit: cover; // height: fit-content;
// height: 210px;
// object-fit: cover;
} }
.article-item-content { .article-item-content {
flex: 1; flex: 1;
...@@ -55,7 +74,7 @@ export default { ...@@ -55,7 +74,7 @@ export default {
font-weight: 300; font-weight: 300;
line-height: 100%; line-height: 100%;
color: #aa1941; color: #aa1941;
padding-top: 13px; // padding-top: 13px;
} }
.article-item-content__title { .article-item-content__title {
font-size: 22px; font-size: 22px;
...@@ -66,7 +85,7 @@ export default { ...@@ -66,7 +85,7 @@ export default {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 1;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
} }
.article-item-content__text { .article-item-content__text {
...@@ -93,8 +112,9 @@ export default { ...@@ -93,8 +112,9 @@ export default {
.article-item-pic { .article-item-pic {
display: block; display: block;
width: 100%; width: 100%;
// height: fit-content;
// height: 2.99rem; // height: 2.99rem;
object-fit: cover; // object-fit: cover;
} }
.article-item-content { .article-item-content {
padding: 0.18rem; padding: 0.18rem;
......
...@@ -40,7 +40,7 @@ export default { ...@@ -40,7 +40,7 @@ export default {
projectList: [ projectList: [
{ label: '金融工商管理硕士', value: '1000' }, { label: '金融工商管理硕士', value: '1000' },
{ label: '酒店及旅游业工商管理硕士', value: '1008' }, { label: '酒店及旅游业工商管理硕士', value: '1008' },
{ label: '金融硕士', value: '1001' }, { label: '金融硕士MSF', value: '1001' },
{ label: '应用心理学硕士', value: '1006' }, { label: '应用心理学硕士', value: '1006' },
{ label: '教育学硕士', value: '1005' }, { label: '教育学硕士', value: '1005' },
{ label: '中国未来金融领袖计划', value: '1007' } { label: '中国未来金融领袖计划', value: '1007' }
...@@ -157,6 +157,7 @@ export default { ...@@ -157,6 +157,7 @@ export default {
background-size: 30px 30px; background-size: 30px 30px;
box-sizing: border-box; box-sizing: border-box;
border: none; border: none;
appearance: none;
} }
.form-button { .form-button {
padding: 0 10px; padding: 0 10px;
......
...@@ -47,13 +47,13 @@ export default { ...@@ -47,13 +47,13 @@ export default {
name: '校友风采', name: '校友风采',
children: [ children: [
{ name: '杰出校友', path: '/alumni/outstanding' }, { name: '杰出校友', path: '/alumni/outstanding' },
{ name: '校友分享', path: '/alumni/share' } { name: '校友分享', path: '/alumni/sharing' }
] ]
}, },
{ {
name: '我要报名', name: '我要报名',
onClick: () => { onClick: () => {
this.$emit('showApplyForm') window.open('/my/account')
} }
} }
] ]
......
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
</ul> </ul>
</div> </div>
</app-link> </app-link>
<div class="msg-box"> <!-- <div class="msg-box">
<el-input type="textarea" placeholder="请输入内容" v-model="textarea"> </el-input> <el-input type="textarea" placeholder="请输入内容" v-model="textarea"> </el-input>
<div class="btn">在线留言</div> <div class="btn">在线留言</div>
</div> </div> -->
</div> </div>
</card> </card>
</div> </div>
......
...@@ -169,8 +169,8 @@ export default { ...@@ -169,8 +169,8 @@ export default {
.case-pic { .case-pic {
display: block; display: block;
width: 100%; width: 100%;
height: 1.17rem; // height: 1.17rem;
object-fit: cover; // object-fit: cover;
} }
.case-title { .case-title {
position: absolute; position: absolute;
......
...@@ -101,7 +101,8 @@ export default { ...@@ -101,7 +101,8 @@ export default {
degree: '', degree: '',
name: '', name: '',
phone: '', phone: '',
project_id: process.env.projectId project_id: process.env.projectId,
channel: 19960
}, },
value: '', value: '',
titleParams: { titleParams: {
...@@ -180,10 +181,21 @@ export default { ...@@ -180,10 +181,21 @@ export default {
padding-top: 24px; padding-top: 24px;
.my-swipe { .my-swipe {
height: 500px; height: 500px;
::v-deep{
.app-link{
width: 100%;
height: 100%;
}
a{
width: 100%;
height: 100%;
}
}
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: block; display: block;
object-fit: cover;
} }
} }
.form-box { .form-box {
...@@ -260,10 +272,21 @@ export default { ...@@ -260,10 +272,21 @@ export default {
.presence-content-box { .presence-content-box {
.my-swipe { .my-swipe {
height: 1.58rem; height: 1.58rem;
::v-deep{
.app-link{
width: 100%;
height: 100%;
}
a{
width: 100%;
height: 100%;
}
}
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: block; display: block;
object-fit: cover;
} }
} }
.enroll-box { .enroll-box {
...@@ -313,7 +336,7 @@ export default { ...@@ -313,7 +336,7 @@ export default {
} }
.btn { .btn {
font-size: 0.12rem; font-size: 0.12rem;
line-height: 0.16rem; line-height: 0.26rem;
color: #ffffff; color: #ffffff;
background: #aa1941; background: #aa1941;
border-radius: 0.02rem; border-radius: 0.02rem;
......
...@@ -32,7 +32,7 @@ export default { ...@@ -32,7 +32,7 @@ export default {
return { return {
link: [ link: [
{ title: '中国教育部', href: 'http://www.pbc.gov.cn/' }, { title: '中国教育部', href: 'http://www.pbc.gov.cn/' },
{ title: '教育部涉外监管网', href: 'http://www.pbc.gov.cn/' }, { title: '教育涉外监管信息网', href: 'http://www.pbc.gov.cn/' },
{ title: '印第安纳大学', href: 'http://www.pbc.gov.cn/' }, { title: '印第安纳大学', href: 'http://www.pbc.gov.cn/' },
{ title: 'Kelley商学院', href: 'https://kelley.ezijing.com/' }, { title: 'Kelley商学院', href: 'https://kelley.ezijing.com/' },
{ title: '紫荆教育', href: 'https://www.ezijing.com/' } { title: '紫荆教育', href: 'https://www.ezijing.com/' }
......
<template> <template>
<component :is="componentName" /> <div>
<component :is="componentName" />
</div>
</template> </template>
<script> <script>
......
...@@ -69,8 +69,8 @@ export default { ...@@ -69,8 +69,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.foot-mian{ .foot-mian{
width: 100%;
background: rgba(170, 25, 65, 1); background: rgba(170, 25, 65, 1);
min-width: 1200px;
.links{ .links{
padding-top: 12px; padding-top: 12px;
font-size: 14px; font-size: 14px;
......
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
<a :href="registerURL">{{ $t('menu.register') }}</a> <a :href="registerURL">{{ $t('menu.register') }}</a>
</div> </div>
</div> </div>
<div class="language"> <!-- <div class="language">
<span @click="switchLocale('zh-CN')">中文</span> / <span @click="switchLocale('en-US')">EN</span> <span @click="switchLocale('zh-CN')">中文</span> / <span @click="switchLocale('en-US')">EN</span>
</div> </div> -->
</div> </div>
</div> </div>
<div class="head-nav-content max-width-content"> <div class="head-nav-content max-width-content">
...@@ -78,6 +78,7 @@ li { ...@@ -78,6 +78,7 @@ li {
.head-mian { .head-mian {
width: 100%; width: 100%;
background: #fff; background: #fff;
min-width: 1200px;
.color-bar { .color-bar {
height: 10px; height: 10px;
background: #aa1941; background: #aa1941;
......
...@@ -40,15 +40,15 @@ export default { ...@@ -40,15 +40,15 @@ export default {
h5: { h5: {
itemT1: '全方位的<br />金融职业<br />教育课程体系', itemT1: '全方位的<br />金融职业<br />教育课程体系',
itemT2: '专业金融<br />在线<br />教育品牌', itemT2: '专业金融<br />在线<br />教育品牌',
itemT3: '科学成熟的<br />在线<br />教育模式', itemT3: '线上线下<br />结合灵活的<br />授课学习方式',
itemT4: '无需联考<br />快速入门<br />的学习体验', itemT4: '全球排名<br />顶尖师资及<br />中国金融界权威专家',
itemT5: '聚焦中国实践<br />和国际前沿<br />的最新课程' itemT5: '聚焦中国实践<br />和国际前沿<br />的最新课程'
}, },
pc: { pc: {
itemT1: '全方位的金融职业<br />教育课程体系', itemT1: '全方位的金融职业<br />教育课程体系',
itemT2: '专业金融<br />在线教育品牌', itemT2: '专业金融<br />在线教育品牌',
itemT3: '科学成熟的<br />在线教育模式', itemT3: '线上线下结合灵活的<br />授课学习方式',
itemT4: '无需联考、快速入门<br />的学习体验', itemT4: '全球排名顶尖师资<br />及中国金融界权威专家',
itemT5: '聚焦中国实践和国际前沿<br />的最新课程' itemT5: '聚焦中国实践和国际前沿<br />的最新课程'
} }
}, },
...@@ -57,12 +57,12 @@ export default { ...@@ -57,12 +57,12 @@ export default {
item1Tit: '印第安纳大学', item1Tit: '印第安纳大学',
item2Tit: 'KELLEY 商学院', item2Tit: 'KELLEY 商学院',
item3Tit: 'KELLEY<br />在线金融硕士', item3Tit: 'KELLEY<br />在线金融硕士',
item1Txt1: '全球最佳研究生院排名<br />2018 《美国新闻与世界报道》', item1Txt1: '全球最佳研究生院排名<br />2018《美国新闻与世界报道》',
item1Txt2: '全美最佳商学院研究生综合排名<br />2018 《美国新闻与世界报道》', item1Txt2: '全美最佳商学院排名<br />2019《美国新闻与世界报道》',
item2Txt1: '总体排名<br />2018 《美国新闻与世界报道》', item2Txt1: '在线硕士排名<br />2019《美国新闻与世界报道》',
item2Txt2: '学生满意度排名<br />2016 《彭博商业周刊》', item2Txt2: '学生满意度排名<br />2016《彭博商业周刊》',
item3Txt1: '全球最佳研究生院排名<br />2018 《美国新闻与世界报道》', item3Txt1: '在线MBA排名<br />2021《美国新闻与世界报道》',
item3Txt2: '全美最佳商学院研究生综合排名<br />2018 《美国新闻与世界报道》' item3Txt2: '最佳教授排名<br />2021《普林斯顿评论》'
}, },
news: { news: {
title: '最新动态' title: '最新动态'
...@@ -90,7 +90,7 @@ export default { ...@@ -90,7 +90,7 @@ export default {
contact: '联系电话:010-62793299', contact: '联系电话:010-62793299',
email: '邮&nbsp;&nbsp;&nbsp;&nbsp;箱:service@ezijing.com', email: '邮&nbsp;&nbsp;&nbsp;&nbsp;箱:service@ezijing.com',
link1: '中国教育部', link1: '中国教育部',
link2: '教育部涉外监管网', link2: '教育涉外监管信息网',
link3: '印第安纳大学', link3: '印第安纳大学',
link4: 'Kelley商学院', link4: 'Kelley商学院',
link5: '紫荆教育', link5: '紫荆教育',
...@@ -114,9 +114,9 @@ export default { ...@@ -114,9 +114,9 @@ export default {
unit1: '所', unit1: '所',
unit2: '门', unit2: '门',
unit3: '万', unit3: '万',
con2Txt: `印第安纳大学伯明顿分校是美国公立常春藤名校,成立于1820年,有近200年历史,是著名的研究型大学,拥有9位诺贝尔奖得主。<br /> con2Txt: `印第安纳大学伯明顿分校是美国公立常春藤院校,成立于1820年,有200多年历史,是著名的研究型大学,拥有9位诺贝尔奖得主。<br />
印第安纳大学Kelley商学院是印第安纳大学伯明顿分校的明星学院,也是世界上历史最悠久和领先的商学院之一,成立于1920年,有近100年历史。<br /> 印第安纳大学Kelley商学院是印第安纳大学伯明顿分校的明星学院,也是世界上历史最悠久和领先的商学院之一,成立于1920年,有100多年历史。<br />
Kelley商学院是印第安纳大学的商科研究生院,前身为Indiana University School of Commerce and Finance. Kelley商学院是印第安纳大学的商科研究生院,前身为Indiana University School of Commerce and Finance
Kelley自1920年创立以来一直被认为是美国顶尖的商学院之一,在Business Week, U.S.News & World Report, 和The Kelley自1920年创立以来一直被认为是美国顶尖的商学院之一,在Business Week, U.S.News & World Report, 和The
Economist Intelligence Economist Intelligence
Unit等权威杂志的商学院排名中更是名列前茅,Kelley的校友在世界各地的企业,非盈利性组织,政府和学术机构中扮演着领导者的角色。`, Unit等权威杂志的商学院排名中更是名列前茅,Kelley的校友在世界各地的企业,非盈利性组织,政府和学术机构中扮演着领导者的角色。`,
...@@ -130,7 +130,7 @@ export default { ...@@ -130,7 +130,7 @@ export default {
feature: { feature: {
item1Tit: '线上线下结合灵活的授课学习方式', item1Tit: '线上线下结合灵活的授课学习方式',
item1Txt1: '线上+线下教学模式', item1Txt1: '线上+线下教学模式',
item1Txt2: '在职学习、无需出国、入读名校', item1Txt2: '在职学习、无需出国、便捷高效',
item1Txt3: '最短15个月最长5年拿到学位', item1Txt3: '最短15个月最长5年拿到学位',
item2Tit: '高性价比享超高品质教学服务体验', item2Tit: '高性价比享超高品质教学服务体验',
item2Txt1: '专业金融在线教育品牌', item2Txt1: '专业金融在线教育品牌',
...@@ -228,24 +228,30 @@ export default { ...@@ -228,24 +228,30 @@ export default {
con2Tit: '贷款', con2Tit: '贷款',
con2Txt: `1、就读本项目的学生,可以申请多家金融机构的贷款服务。<br /> con2Txt: `1、就读本项目的学生,可以申请多家金融机构的贷款服务。<br />
2、具体信息会在学生获得正式录取资格后公布。<br /> 2、具体信息会在学生获得正式录取资格后公布。<br />
3、清华控股旗下紫荆教育不为学员担保贷款,不承担催款义务` 3、清华控股旗下紫荆教育不为学员担保贷款,不承担催款义务`
}, },
// 常见问题 // 常见问题
problem: { problem: {
item1Tit: '申请和面试相关问题', item1Tit: '申请和面试相关问题',
item1problem1: 'Q:如何申请美国印第安纳大学Kelley商学院金融学硕士?大概流程是什么?', item1problem1: 'Q: 如何申请美国印第安纳大学Kelley商学院金融学硕士?大概流程是什么?',
item1answer1: 'A: 请参考网页招生简章。', item1answer1: 'A: 本项目为申请面试制; 申请流程为:在线填写申请资料—初审通过—面试安排—综合评审—录取offer—学费缴纳及入学手续办理。',
item1problem2: 'Q:面试多少人?录取多少人?率取比率是多少?', item1problem2: 'Q: 面试多少人?录取多少人?率取比率是多少?',
item1answer2: 'A: 本项目采取现场/视频面试的方式,面试人数和录取人数视申请人数和申请资质而定。', item1answer2: 'A: 本项目采取现场/视频面试的方式,面试人数和录取人数视申请人数和申请资质而定。',
item1problem3: 'Q:是否要求考生的工作经验必须属于金融行业?', item1problem3: 'Q: 是否要求考生的工作经验必须属于金融行业?',
item1answer3: 'A: 本项目对考生的行业没有特殊要求。只要是有志于从事金融行业和相关工作的考生都可以报考本项目。录取为综合考评,工作背景是综合评价时需要参考的一部分信息。', item1answer3: 'A: 本项目对考生的行业背景无特殊要求。欢迎有志于从事金融行业或相关工作的考生报考。录取为综合考评,工作背景是综合考评时需要参考的一部分信息。',
item1problem4:'Q: 英语一般可以申请吗?',
item1answer4:'A: 建议强化英语学习,可尝试申请。面试阶段会涉及英文面试,如果被录取,会有先修课程《金融英语》供学员提前学习。',
item1problem5: 'Q: 本项目是在职还是全职?上课安排是怎样的?',
item1answer5: 'A: 本项目为在职金融硕士项目,采用线上学习和线下面授相结合的学习方式。在线学习每周1-2次实时课程,面授采用周末或短期集中上课形式,中英双语授课。紫荆和Kelley商学院各负责教学内容的百分之五十。课程最后安排一次美国访学(往返交通费用自理),时间为两周左右。',
item1problem6: 'Q: 本项目学制多久?获得的硕士学位证书与在美国全日制就读是否相同?',
item1answer6: 'A: 本项目学制15个月,修满学分达到毕业要求,印第安纳大学KELLEY商学院颁发学位证书,与美国本土全日制就读获得的学位证书完全相同。',
item2Tit: '报考资格相关问题', item2Tit: '报考资格相关问题',
item2problem1: 'Q:大专毕业后,又通过自考获得本科毕业证和学士学位,能否报考?', item2problem1: 'Q: 大专毕业后,又通过自考获得本科毕业证和学士学位,能否报考?',
item2answer1: 'A: 可以报考,只要获得本科学位证书,按照本科毕业生身份报考即可。', item2answer1: 'A: 可以报考,只要获得本科学位证书,按照本科毕业生身份报考即可。',
item2problem2: 'Q:成人教育的本科毕业生(无学位证)能否报考?', item2problem2: 'Q: 成人教育的本科毕业生(无学位证)能否报考?',
item2answer2: 'A: 不可以。需要获得本科学位证书才能符合相应报考条件。', item2answer2: 'A: 不可以。需要获得本科学位证书才能符合相应报考条件。',
item3Tit: '', item3Tit: '费用相关问题',
item3problem1: 'Q:美国印第安纳大学Kelley商学院金融学硕士项目学费是多少? 可以分期吗?', item3problem1: 'Q: 美国印第安纳大学Kelley商学院金融学硕士项目学费是多少? 可以分期吗?',
item3answer1: 'A: 目前本项目的学费为24.98万元人民币,由学生在入学前向紫荆教育缴清(不可选择分期)。', item3answer1: 'A: 目前本项目的学费为24.98万元人民币,由学生在入学前向紫荆教育缴清(不可选择分期)。',
}, },
// 杰出校友 // 杰出校友
......
...@@ -90,7 +90,7 @@ export default { ...@@ -90,7 +90,7 @@ export default {
contact: '联系电话:010-62793299', contact: '联系电话:010-62793299',
email: '邮&nbsp;&nbsp;&nbsp;&nbsp;箱:service@ezijing.com', email: '邮&nbsp;&nbsp;&nbsp;&nbsp;箱:service@ezijing.com',
link1: '中国教育部', link1: '中国教育部',
link2: '教育部涉外监管网', link2: '教育涉外监管信息网',
link3: '印第安纳大学', link3: '印第安纳大学',
link4: 'Kelley商学院', link4: 'Kelley商学院',
link5: '紫荆教育', link5: '紫荆教育',
...@@ -233,19 +233,25 @@ export default { ...@@ -233,19 +233,25 @@ export default {
// 常见问题 // 常见问题
problem: { problem: {
item1Tit: '申请和面试相关问题', item1Tit: '申请和面试相关问题',
item1problem1: 'Q:如何申请美国印第安纳大学Kelley商学院金融学硕士?大概流程是什么?', item1problem1: 'Q: 如何申请美国印第安纳大学Kelley商学院金融学硕士?大概流程是什么?',
item1answer1: 'A: 本项目为申请面试制; 申请流程为:在线填写申请资料—初审通过—面试安排—综合评审—录取offer—学费缴纳及入学手续办理。', item1answer1: 'A: 本项目为申请面试制; 申请流程为:在线填写申请资料—初审通过—面试安排—综合评审—录取offer—学费缴纳及入学手续办理。',
item1problem2: 'Q:面试多少人?录取多少人?率取比率是多少?', item1problem2: 'Q: 面试多少人?录取多少人?率取比率是多少?',
item1answer2: 'A: 本项目采取现场/视频面试的方式,面试人数和录取人数视申请人数和申请资质而定。', item1answer2: 'A: 本项目采取现场/视频面试的方式,面试人数和录取人数视申请人数和申请资质而定。',
item1problem3: 'Q:是否要求考生的工作经验必须属于金融行业?', item1problem3: 'Q: 是否要求考生的工作经验必须属于金融行业?',
item1answer3: 'A: 本项目对考生的行业背景无特殊要求。欢迎有志于从事金融行业或相关工作的考生报考。录取为综合考评,工作背景是综合考评时需要参考的一部分信息。', item1answer3: 'A: 本项目对考生的行业背景无特殊要求。欢迎有志于从事金融行业或相关工作的考生报考。录取为综合考评,工作背景是综合考评时需要参考的一部分信息。',
item1problem4:'Q: 英语一般可以申请吗?',
item1answer4:'A: 建议强化英语学习,可尝试申请。面试阶段会涉及英文面试,如果被录取,会有先修课程《金融英语》供学员提前学习。',
item1problem5: 'Q: 本项目是在职还是全职?上课安排是怎样的?',
item1answer5: 'A: 本项目为在职金融硕士项目,采用线上学习和线下面授相结合的学习方式。在线学习每周1-2次实时课程,面授采用周末或短期集中上课形式,中英双语授课。紫荆和Kelley商学院各负责教学内容的百分之五十。课程最后安排一次美国访学(往返交通费用自理),时间为两周左右。',
item1problem6: 'Q: 本项目学制多久?获得的硕士学位证书与在美国全日制就读是否相同?',
item1answer6: 'A: 本项目学制15个月,修满学分达到毕业要求,印第安纳大学KELLEY商学院颁发学位证书,与美国本土全日制就读获得的学位证书完全相同。',
item2Tit: '报考资格相关问题', item2Tit: '报考资格相关问题',
item2problem1: 'Q:大专毕业后,又通过自考获得本科毕业证和学士学位,能否报考?', item2problem1: 'Q: 大专毕业后,又通过自考获得本科毕业证和学士学位,能否报考?',
item2answer1: 'A: 可以报考,只要获得本科学位证书,按照本科毕业生身份报考即可。', item2answer1: 'A: 可以报考,只要获得本科学位证书,按照本科毕业生身份报考即可。',
item2problem2: 'Q:成人教育的本科毕业生(无学位证)能否报考?', item2problem2: 'Q: 成人教育的本科毕业生(无学位证)能否报考?',
item2answer2: 'A: 不可以。需要获得本科学位证书才能符合相应报考条件。', item2answer2: 'A: 不可以。需要获得本科学位证书才能符合相应报考条件。',
item3Tit: '', item3Tit: '费用相关问题',
item3problem1: 'Q:美国印第安纳大学Kelley商学院金融学硕士项目学费是多少? 可以分期吗?', item3problem1: 'Q: 美国印第安纳大学Kelley商学院金融学硕士项目学费是多少? 可以分期吗?',
item3answer1: 'A: 目前本项目的学费为24.98万元人民币,由学生在入学前向紫荆教育缴清(不可选择分期)。', item3answer1: 'A: 目前本项目的学费为24.98万元人民币,由学生在入学前向紫荆教育缴清(不可选择分期)。',
}, },
// 杰出校友 // 杰出校友
......
<template> <template>
<div class="main-container"> <div class="main-container" v-if="false">
<h1 v-if="error.statusCode === 404">Page not found</h1> <h1 v-if="error.statusCode === 404">Page not found</h1>
<h1 v-else>An error occurred</h1> <h1 v-else>An error occurred</h1>
<NuxtLink to="/">返回首页</NuxtLink> <NuxtLink to="/">返回首页</NuxtLink>
...@@ -14,6 +14,9 @@ export default { ...@@ -14,6 +14,9 @@ export default {
function ({ redirect }) { function ({ redirect }) {
return redirect(301, '/el?e=rnf') return redirect(301, '/el?e=rnf')
} }
] ],
mounted() {
this.$router.push('/')
}
} }
</script> </script>
export default function(context) { export default function(context) {
const UA = process.server ? context.req.headers['user-agent'] : navigator.userAgent const UA = process.server ? context.req.headers['user-agent'] : navigator.userAgent
const isMobile = /iphone/i.test(UA) || (/android/i.test(UA) && /mobile/i.test(UA)) let isMobile = /iphone/i.test(UA) || (/android/i.test(UA) && /mobile/i.test(UA))
if (context.route.path.includes('/my')) {
isMobile = false
}
context.store.commit('setIsMobile', isMobile) context.store.commit('setIsMobile', isMobile)
} }
...@@ -49,9 +49,9 @@ export default { ...@@ -49,9 +49,9 @@ export default {
material: {}, material: {},
progress: {}, progress: {},
submissionStage: { submissionStage: {
0: ['FILLING', 'PREPAYMENT'], 0: ['FILLING'],
1: ['INTERVIEW_APPLICATION', 'AUDITION', 'INTERVIEW', 'PAYMENT'], 1: ['INTERVIEW_APPLICATION', 'AUDITION', 'PREPAYMENT', 'INTERVIEW'],
2: ['REGISTRATION'], 2: ['REGISTRATION', 'PAYMENT'],
3: ['CLOSED'] 3: ['CLOSED']
}, },
result: {}, result: {},
...@@ -112,7 +112,7 @@ export default { ...@@ -112,7 +112,7 @@ export default {
// 申请面试 // 申请面试
toInterview() { toInterview() {
if (this.activeProgress < 1) { if (this.activeProgress < 1) {
this.$message.warning('请完成报名申请并缴报名费') this.$message.warning('请完成报名申请')
return return
} }
this.$router.push('/my/interview') this.$router.push('/my/interview')
......
...@@ -69,6 +69,12 @@ export default { ...@@ -69,6 +69,12 @@ export default {
console.log('提交失败了', data) console.log('提交失败了', data)
this.$message({ type: 'error', message: data.message }) this.$message({ type: 'error', message: data.message })
} }
},
mounted() {
if (!window.sessionStorage.isRefresh) {
window.sessionStorage.isRefresh = 1
this.$router.go(0)
}
} }
} }
</script> </script>
...@@ -38,10 +38,10 @@ export default function(_this) { ...@@ -38,10 +38,10 @@ export default function(_this) {
data: { file_type: 'ADMISSION_AGREEMENT' } data: { file_type: 'ADMISSION_AGREEMENT' }
}, },
prepend: ` prepend: `
<p>第一步:点击下载按键获取入学协议</p> <p><a href="https://zws-imgs-pub.ezijing.com/pc/kelley/%E5%85%A5%E5%AD%A6%E5%8D%8F%E8%AE%AE.pdf" download="入学协议">下载入学协议</a></p>
<p><a href="https://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/pc/cu/%E5%85%A5%E5%AD%A6%E5%8D%8F%E8%AE%AE3.docx" target="_blank" download>下载入学协议</a></p> <p>申请者可将签字后的入学协议原件扫描或拍照后提交。</p>
<p>第二步:申请者可将签字后的入学协议原件扫描或拍照后提交。学员应仔细阅读《入学协议》以及课程介绍,如对入学协议或课程有异议,请第一时间与课程顾问咨询确认。请用A4纸打印后,在入学协议上签上姓名和日期,内容需显示完整、格式整齐、字迹清晰可辨。点击下方按钮,上传文件</p> <p>学员应仔细阅读《入学协议》以及课程介绍,如对入学协议或课程有异议,请第一时间与课程顾问咨询确认。请用A4纸打印后,在入学协议上签上姓名和日期,内容需显示完整、格式整齐、字迹清晰可辨。上传文件仅限“jpg,jpeg,pdf,png”格式,文件小于10Mb。</p>
` `
} }
] ]
} }
......
...@@ -26,7 +26,8 @@ export default function(_this) { ...@@ -26,7 +26,8 @@ export default function(_this) {
callback() { callback() {
_this.getApplication() _this.getApplication()
this.form.options.disabled = true this.form.options.disabled = true
_this.$router.push({ path: this.$route.path, query: { active: 'application_pay' } }) // _this.$router.push({ path: this.$route.path, query: { active: 'application_pay' } })
_this.$router.push({ path: '/my/interview' })
}, },
errorCallback() { errorCallback() {
_this.completeVisible = true _this.completeVisible = true
......
...@@ -11,15 +11,15 @@ export default function(_this) { ...@@ -11,15 +11,15 @@ export default function(_this) {
info(_this), info(_this),
tjx(_this), tjx(_this),
// wfzsm(_this), // wfzsm(_this),
declare(_this), declare(_this)
{ // {
id: 'application_pay', // id: 'application_pay',
title: '缴报名费', // title: '缴报名费',
show: false, // show: false,
visible() { // visible() {
return _this.visible // return _this.visible
} // }
} // }
] ]
} }
} }
...@@ -84,7 +84,7 @@ export default function(_this) { ...@@ -84,7 +84,7 @@ export default function(_this) {
data: { file_type: 'ID_CARD_BACK' }, data: { file_type: 'ID_CARD_BACK' },
limit: 1, limit: 1,
accept: 'image/*', accept: 'image/*',
image: 'https://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/pc/cu/id_card_back.png' image: 'https://zws-imgs-pub.ezijing.com/pc/cu/id_card_back.png'
}, },
rules: [{ type: 'array', required: true, message: '请上传身份证照片人像面', trigger: 'change' }], rules: [{ type: 'array', required: true, message: '请上传身份证照片人像面', trigger: 'change' }],
isShow(data) { isShow(data) {
...@@ -102,7 +102,7 @@ export default function(_this) { ...@@ -102,7 +102,7 @@ export default function(_this) {
data: { file_type: 'ID_CARD_FRONT' }, data: { file_type: 'ID_CARD_FRONT' },
limit: 1, limit: 1,
accept: 'image/*', accept: 'image/*',
image: 'https://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/pc/cu/id_card_front.png' image: 'https://zws-imgs-pub.ezijing.com/pc/cu/id_card_front.png'
}, },
rules: [{ type: 'array', required: true, message: '请上传身份证照片国徽面', trigger: 'change' }], rules: [{ type: 'array', required: true, message: '请上传身份证照片国徽面', trigger: 'change' }],
isShow(data) { isShow(data) {
......
...@@ -106,7 +106,7 @@ export default function(_this) { ...@@ -106,7 +106,7 @@ export default function(_this) {
data: { file_type: 'ID_CARD_BACK' }, data: { file_type: 'ID_CARD_BACK' },
limit: 1, limit: 1,
accept: 'image/*', accept: 'image/*',
image: 'https://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/pc/cu/id_card_back.png' image: 'https://zws-imgs-pub.ezijing.com/pc/cu/id_card_back.png'
}, },
rules: [{ type: 'array', required: true, message: '请上传身份证照片人像面', trigger: 'change' }], rules: [{ type: 'array', required: true, message: '请上传身份证照片人像面', trigger: 'change' }],
isShow(data) { isShow(data) {
...@@ -124,7 +124,7 @@ export default function(_this) { ...@@ -124,7 +124,7 @@ export default function(_this) {
data: { file_type: 'ID_CARD_FRONT' }, data: { file_type: 'ID_CARD_FRONT' },
limit: 1, limit: 1,
accept: 'image/*', accept: 'image/*',
image: 'https://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/pc/cu/id_card_front.png' image: 'https://zws-imgs-pub.ezijing.com/pc/cu/id_card_front.png'
}, },
rules: [{ type: 'array', required: true, message: '请上传身份证照片国徽面', trigger: 'change' }], rules: [{ type: 'array', required: true, message: '请上传身份证照片国徽面', trigger: 'change' }],
isShow(data) { isShow(data) {
......
...@@ -35,7 +35,7 @@ export default function(_this) { ...@@ -35,7 +35,7 @@ export default function(_this) {
}, },
prepend: ` prepend: `
<p>第一步:点击下载按键获取无犯罪证明模板</p> <p>第一步:点击下载按键获取无犯罪证明模板</p>
<p><a href="https://zws-imgs-pub.oss-cn-beijing.aliyuncs.com/pc/cu/%E6%97%A0%E7%8A%AF%E7%BD%AA%E8%AE%B0%E5%BD%95%E8%AF%81%E6%98%8E.docx" target="_blank" download>下载模板</a></p> <p><a href="https://zws-imgs-pub.ezijing.com/pc/cu/%E6%97%A0%E7%8A%AF%E7%BD%AA%E8%AE%B0%E5%BD%95%E8%AF%81%E6%98%8E.docx" download>下载模板</a></p>
<p>第二步:打印文件后填写内容并签字上传至电脑,点击下方按钮上传文件</p> <p>第二步:打印文件后填写内容并签字上传至电脑,点击下方按钮上传文件</p>
` `
} }
......
<template>
<div class="h5pay">
<el-button type="primary" @click="handlePay">去支付</el-button>
</div>
</template>
<script>
import * as api from '@/api/my'
export default {
data() {
return {
openId: window.localStorage.getItem('open_id')
}
},
computed: {
pageUrl() {
return window.location.origin + this.$route.path + '?active=application_pay'
}
},
methods: {
// 获取订单
getOrder(callback) {
api.getOrder({ wx_open_id: this.openId, payment_method: 'WX_PAY' }).then(response => {
const { data, error, message } = response
if (error.toString() === '0') {
this.order = data
this.$emit('update', this.order)
callback && callback(this.order)
} else {
this.$message.error(message)
}
})
},
// 获取微信code
getCode() {
const redirectURI = `https://pages.ezijing.com/given/auth.html?redirect_uri=${encodeURIComponent(this.pageUrl)}`
window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx451c01d40d090d7a&redirect_uri=${redirectURI}&response_type=code&scope=snsapi_base#wechat_redirect`
},
// 获取微信openid
getOpenId(code) {
api.getOpenId({ code, identity: 'ezijing' }).then(response => {
if (response.code === 0) {
this.openId = response.openid
window.localStorage.setItem('open_id', this.openId)
this.getOrder()
} else {
this.getCode()
}
})
},
// 去支付
handlePay() {
this.getOrder(() => {
window.location.href = `https://web-pay.ezijing.com/wxpay/h5?prepay_id=${this.order.wx_prepay_id}&open_id=${
this.openId
}&redirect_uri=${encodeURIComponent(this.pageUrl)}`
})
}
},
beforeMount() {
if (!this.openId) {
const { code } = this.$route.query
code ? this.getOpenId(code) : this.getCode()
}
}
}
</script>
<style scoped>
.h5pay {
padding: 40px;
text-align: center;
}
</style>
<template>
<div class="qrpay">
<div class="qrpay-hd">
<div class="pic">
<img src="https://webapp-pub.ezijing.com/project/application/images/my_pay_01.png" />
</div>
<h1>欢迎您</h1>
<p class="t1">
紫荆-印第安纳大学Kelley商学院金融硕士(MSF)项目申请费<span>700</span>元,请扫描二维码支付完成报名。
</p>
</div>
<div class="qrcode-error" v-if="qrcodeError">
生成二维码失败请刷新<i class="el-icon-refresh-left" @click="getOrder" title="刷新"></i>
</div>
<div class="qrcode" v-else>
<qrcode-vue :value="qrcodeValue" size="100"></qrcode-vue>
<span @click="getOrder">刷新</span>
</div>
</div>
</template>
<script>
import QrcodeVue from 'qrcode.vue'
import * as api from '@/api/my'
export default {
components: { QrcodeVue },
data() {
return {
order: { id: '', payment_url: '' },
qrcodeError: false
}
},
computed: {
// 二维码地址
qrcodeValue() {
return this.order.payment_url
}
},
methods: {
// 获取订单
getOrder() {
api.getOrder({ payment_method: 'WX_PAY_QR' }).then(response => {
const { data, error, message } = response
this.qrcodeError = error.toString() === '1'
if (error.toString() === '0') {
this.order = data
this.$emit('update', this.order)
} else {
this.$message.error(message)
}
})
}
},
beforeMount() {
this.getOrder()
}
}
</script>
<style lang="scss" scoped>
.qrpay-hd {
.pic {
text-align: center;
}
h1 {
padding: 10px 0;
font-size: 24px;
font-weight: 500;
color: #222;
line-height: 1;
text-align: center;
}
}
.qrcode {
padding: 20px 0;
text-align: center;
span {
margin-top: 10px;
font-size: 12px;
color: #999;
cursor: pointer;
}
}
.qrcode-error {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
width: 100px;
height: 100px;
padding: 10px;
margin: 20px auto;
color: var(--main-color);
border-style: dashed;
border-width: 1px;
border-color: var(--main-color);
box-sizing: border-box;
text-align: center;
i {
margin-top: 10px;
cursor: pointer;
}
}
.t1 {
font-size: 14px;
color: #303030;
line-height: 20px;
text-align: center;
span {
color: #ffa448;
}
}
</style>
...@@ -6,6 +6,6 @@ export default function(_this) { ...@@ -6,6 +6,6 @@ export default function(_this) {
return { return {
id: 'interview', id: 'interview',
title: '申请面试', title: '申请面试',
children: [byz, cjd, zp(_this)] children: [byzs, xwzs, ywjl, zp(_this), { id: 'interview_pay', title: '缴报名费' }]
} }
} }
export default {
id: 'interview_ywjl',
title: '英文简历',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'PAYMENT',
'REGISTRATION',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 2
const RESUME_EN = attachments.filter(item => {
return item.file_type_id === 'RESUME_EN'
})
return { RESUME_EN }
}
},
form: {
prev: { to: { query: { active: 'interview_xwzs' } } },
next: { to: { query: { active: 'interview_zp' } } },
hasButton: false,
options: {},
items: [
{
type: 'v-upload',
required: true,
model: 'RESUME_EN',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'RESUME_EN' }
},
append: `
<p>请下载填写英文简历模板后上传 [<a href="https://zws-imgs-pub.ezijing.com/pc/kelley/%E8%8B%B1%E6%96%87%E7%AE%80%E5%8E%86.docx" download="英文简历模板">下载模板</a>]</p>
<p>请将英文简历填写完存为"pdf"格式上传,文件小于10MB。</p>`
}
]
}
}
...@@ -32,6 +32,7 @@ export default function(_this) { ...@@ -32,6 +32,7 @@ export default function(_this) {
this.form.options.disabled = true this.form.options.disabled = true
_this.dialogVisible = true _this.dialogVisible = true
_this.getApplication() _this.getApplication()
_this.$router.push({ path: this.$route.path, query: { active: 'interview_pay' } })
}, },
errorCallback() { errorCallback() {
_this.completeVisible = true _this.completeVisible = true
......
...@@ -13,6 +13,10 @@ ...@@ -13,6 +13,10 @@
<template #aside-append> <template #aside-append>
<div class="aside-logout" @click="$store.dispatch('logout')"><span>退出登录</span></div> <div class="aside-logout" @click="$store.dispatch('logout')"><span>退出登录</span></div>
</template> </template>
<!-- 报名缴费 -->
<template #content v-if="currentActive === 'interview_pay'">
<app-pay />
</template>
</vue-form> </vue-form>
<app-complete :type="1" v-model="completeVisible"></app-complete> <app-complete :type="1" v-model="completeVisible"></app-complete>
<el-dialog <el-dialog
...@@ -36,11 +40,12 @@ ...@@ -36,11 +40,12 @@
<script> <script>
import AppLayout from '../layout.vue' import AppLayout from '../layout.vue'
import getMenu from './form' import getMenu from './form'
import AppPay from './pay.vue'
import AppComplete from '../application/complete.vue' import AppComplete from '../application/complete.vue'
import * as api from '@/api/my' import * as api from '@/api/my'
export default { export default {
components: { AppLayout, AppComplete }, components: { AppLayout, AppPay, AppComplete },
data() { data() {
const menus = getMenu(this) const menus = getMenu(this)
return { return {
......
<template>
<div class="pay">
<h5-pay @update="handleUpdateOrder" v-if="isWechat"></h5-pay>
<qrcode-pay @update="handleUpdateOrder" v-else></qrcode-pay>
<!-- <div class="pay-ft">
<p class="t2">注释:该申请费提交后不予退还,缴纳申请费后,申请人还需提交以下文件:</p>
<p class="t2">①本科及以上学历毕业证书扫描件②本科及以上学历学位证书扫描件③个人证件照④英文简历</p>
<p class="t2">该申请费不退,请慎重缴费!</p>
</div> -->
<el-dialog
title="报名费缴费成功"
:visible.sync="dialogVisible"
:center="true"
:close-on-click-modal="false"
width="348px"
>
<div class="dialog-pay">
<p>缴纳报名费成功,请等待审核结果。</p>
<div class="icon"><img src="https://webapp-pub.ezijing.com/project/application/images/icon_success.png" /></div>
</div>
<!-- <template #footer>
<el-button type="primary" @click="toInterview">立即预约</el-button>
</template> -->
</el-dialog>
</div>
</template>
<script>
import * as api from '@/api/my'
import qrcodePay from './components/qrcodePay'
import h5Pay from './components/h5Pay'
export default {
name: 'AppPay',
components: { qrcodePay, h5Pay },
data() {
const UA = window.navigator.userAgent
const isMobile = /android|iphone|ipad|ipod/i.test(UA)
return {
isWechat: isMobile && /micromessenger/i.test(UA),
order: { id: '', payment_url: '' },
dialogVisible: false,
timer: null,
paymentRecords: [] // 所有订单
}
},
computed: {
user() {
return this.$store.state.user
},
// 二维码地址
qrcodeValue() {
return this.order.payment_url
},
// 支付成功
paySuccess() {
return this.order.payment_status === 'SUCCESS'
},
// 待支付订单
orderList() {
// 筛选待支付订单
const list = this.paymentRecords.filter(item => {
return item.bill_type === 'APPLICATION_FEE' && item.payment_status === 'WAITING_FOR_PAY'
})
// 待支付订单是否有当前订单
const found = list.find(item => item.id === this.order.id)
return found ? list : [...list, this.order]
}
},
methods: {
// 获取报名信息
async getApplication() {
await api.getApplication().then(response => {
const { payment_records: paymentRecords = [] } = response.data.material
// 获取支付订单
this.paymentRecords = paymentRecords
if (paymentRecords && paymentRecords.length) {
// 获取支付成功的订单
const orderPaySuccess = paymentRecords.find(item => {
return item.bill_type === 'APPLICATION_FEE' && item.payment_status === 'SUCCESS'
})
if (orderPaySuccess) {
this.order = orderPaySuccess
this.dialogVisible = true
return
}
// 获取最后一个订单
const [lastPayment] = paymentRecords.reverse()
this.order = lastPayment
}
})
},
// 检查支付状态
checkPay(order) {
const userId = this.user.id
api.checkPay(order.id, { user_id: userId }).then(response => {
if (response.data.payment_status === 'SUCCESS') {
this.timer && clearInterval(this.timer)
this.dialogVisible = true
}
})
},
// 检测支付状态定时器
setCheckPayTimer() {
this.timer && clearInterval(this.timer)
this.timer = setInterval(() => {
if (this.paySuccess) {
this.timer && clearInterval(this.timer)
return
}
this.orderList.forEach(order => this.checkPay(order))
}, 3000)
},
// 填写个人资料
toApplication() {
this.$router.push('/my/application?active=application_info')
},
// 申请面试
toInterview() {
this.$router.push('/my/interview')
},
handleUpdateOrder(order) {
this.order = order
}
},
async mounted() {
await this.getApplication()
this.setCheckPayTimer()
},
destroyed() {
this.timer && clearInterval(this.timer)
}
}
</script>
<style lang="scss" scoped>
.pay {
max-width: 562px;
margin: 0 auto;
padding: 40px 0;
}
.t1 {
font-size: 14px;
color: #303030;
line-height: 20px;
text-align: center;
span {
color: #ffa448;
}
}
.t2 {
font-size: 12px;
color: #999;
line-height: 20px;
}
.dialog-pay {
text-align: center;
p {
color: #262626;
line-height: 20px;
}
.icon {
margin-top: 20px;
text-align: center;
}
}
</style>
<template> <template>
<div style="background-color: #eee"> <div style="background-color: #eee;min-width: 1200px;">
<div class="layout"> <div class="layout">
<div class="layout-hd"> <div class="layout-hd">
<slot name="header"> <slot name="header">
...@@ -13,6 +13,13 @@ ...@@ -13,6 +13,13 @@
</div> </div>
</template> </template>
<script>
export default {
head: {
meta: [{ hid: 'viewport', name: 'viewport', content: '' }]
}
}
</script>
<style lang="scss" scoped> <style lang="scss" scoped>
.layout { .layout {
max-width: 1200px; max-width: 1200px;
......
...@@ -23,14 +23,15 @@ export default { ...@@ -23,14 +23,15 @@ export default {
}, },
meta: [ meta: [
{ charset: 'utf-8' }, { charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' }, { hid: 'viewport', name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: '' },
{ {
hid: 'keywords',
name: 'keywords', name: 'keywords',
content: content:
'瑞士酒店管理大学,瑞士酒店管理学院,瑞士酒店管理大学排名,瑞士酒店管理大学学费,瑞士酒店管理MBA,瑞士酒店管理学院排名,瑞士酒店管理学校,瑞士酒店管理学费,seg瑞士酒店管理,酒店管理专业,酒店管理课程,酒店管理专业排名,酒店管理app,酒店管理博士,酒店管理本科,酒店管理大学香港,qs酒店管理大学排名,酒店管理大学排名2020,酒店管理排名,酒店管理集团' '瑞士酒店管理大学,瑞士酒店管理学院,瑞士酒店管理大学排名,瑞士酒店管理大学学费,瑞士酒店管理MBA,瑞士酒店管理学院排名,瑞士酒店管理学校,瑞士酒店管理学费,seg瑞士酒店管理,酒店管理专业,酒店管理课程,酒店管理专业排名,酒店管理app,酒店管理博士,酒店管理本科,酒店管理大学香港,qs酒店管理大学排名,酒店管理大学排名2020,酒店管理排名,酒店管理集团'
}, },
{ {
hid: 'description',
name: 'description', name: 'description',
content: content:
'瑞士酒店管理大学,2021年QS世界大学排名酒店管理专业综合排名位列世界第4。全球首款款待业MBA,目标是培养未来文旅行业领军人才及未来领袖,课程采用混合式教学模式,不用出国就可以享受瑞士及国内清华、北大、人大等顶尖的教育资源。学习方式灵活,更加符合在文旅行业高层管理人员及有志于从事款待业工作的学习者;目前在读学员均来自万豪、洲际、凯悦、希尔顿等国际高端品牌及锦江、华住、东呈等国内大中型文旅企业。' '瑞士酒店管理大学,2021年QS世界大学排名酒店管理专业综合排名位列世界第4。全球首款款待业MBA,目标是培养未来文旅行业领军人才及未来领袖,课程采用混合式教学模式,不用出国就可以享受瑞士及国内清华、北大、人大等顶尖的教育资源。学习方式灵活,更加符合在文旅行业高层管理人员及有志于从事款待业工作的学习者;目前在读学员均来自万豪、洲际、凯悦、希尔顿等国际高端品牌及锦江、华住、东呈等国内大中型文旅企业。'
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
"scripts": { "scripts": {
"dev": "nuxt --open --dotenv .env.dev", "dev": "nuxt --open --dotenv .env.dev",
"build": "nuxt build", "build": "nuxt build",
"build:test": "nuxt build --dotenv .env.test",
"start": "nuxt start", "start": "nuxt start",
"generate": "nuxt generate" "generate": "nuxt generate"
}, },
......
...@@ -116,8 +116,8 @@ export default { ...@@ -116,8 +116,8 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.is-pc{ .is-pc{
.course-content-box { .course-content-box {
width: 1200px; // width: 1200px;
margin: 0 auto; // margin: 0 auto;
.content-mian { .content-mian {
padding: 106px 141px 110px 96px; padding: 106px 141px 110px 96px;
.border-box { .border-box {
...@@ -125,8 +125,8 @@ export default { ...@@ -125,8 +125,8 @@ export default {
border-top: 1px solid #e6e6e6; border-top: 1px solid #e6e6e6;
border-bottom: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6;
.item-box { .item-box {
// display: flex; display: flex;
// justify-content: space-between; justify-content: space-between;
margin-bottom: 40px; margin-bottom: 40px;
ul { ul {
padding-bottom: 37px; padding-bottom: 37px;
......
<template> <template>
<app-frame :data="frameParams"> <div :class="isMobile ? 'is-h5' : 'is-pc'">
<div class="detail-content-box"> <app-frame :data="frameParams">
<div class="content-box"> <div class="detail-content-box">
<div class="back-btn" @click="$router.go(-1)"> <div class="content-box">
<div class="el-icon-arrow-left"></div> <div class="back-btn" @click="$router.go(-1)">
<div class="text">返回</div> <div class="el-icon-arrow-left"></div>
<div class="text">返回</div>
</div>
<div class="times">{{ formatDate(data.start_time) }}</div>
<div class="titles">{{ data.title }}</div>
<div class="article-content" v-html="data.content"></div>
<recommend />
</div> </div>
<div class="times">{{ formatDate(data.start_time) }}</div>
<div class="titles">{{ data.title }}</div>
<div class="article-content" v-html="data.content"></div>
<recommend />
</div> </div>
</div> </app-frame>
</app-frame> </div>
</template> </template>
<script> <script>
import appFrame from '@/components/appFrame' import appFrame from '@/components/appFrame'
...@@ -53,111 +55,228 @@ export default { ...@@ -53,111 +55,228 @@ export default {
console.log(date.getMonth()) console.log(date.getMonth())
return date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate() return date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate()
} }
},
computed: {
isMobile() {
return this.$store.state.isMobile
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.detail-content-box { ::v-deep{
// width: 1000px; img{
// background: #fff; width: 100%;
// box-sizing: border-box; height: auto !important;
// margin-bottom: 100px; display: block;
.content-box {
padding: 50px 50px 94px;
} }
.back-btn { }
display: flex; .is-pc{
align-items: center; .detail-content-box {
cursor: pointer; // background: #fff;
.el-icon-arrow-left { // box-sizing: border-box;
color: rgba(153, 153, 153, 1); // margin-bottom: 100px;
.content-box {
padding: 50px 50px 94px;
}
.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; font-size: 16px;
line-height: 100%;
margin: 35px 0 16px;
color: #999999;
} }
.text { .titles {
font-size: 32px;
font-weight: bold;
color: #141414;
// height: 62px;
border-bottom: 1px solid #e6e6e6;
padding-bottom: 10px;
// 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; font-size: 16px;
color: #999999; color: #999999;
margin: 50px auto 0;
cursor: pointer;
} }
} }
.times { }
font-size: 16px; .is-h5{
line-height: 100%; .detail-content-box {
margin: 35px 0 16px; // background: #fff;
color: #999999; // box-sizing: border-box;
} // margin-bottom: 100px;
.titles { .content-box {
font-size: 32px; padding: .25rem .25rem .47rem;
font-weight: bold;
color: #141414;
// height: 62px;
border-bottom: 1px solid #e6e6e6;
padding-bottom: 10px;
// line-height: 100%;
}
.article-content {
padding-top: 25px;
font-size: 14px;
line-height: 28px;
color: #333333;
img {
display: block;
width: 100%;
margin-top: 40px;
} }
} .back-btn {
.recommend-content {
border-top: 1px solid #e6e6e6;
padding-top: 37px;
.titles {
display: flex; display: flex;
align-items: center; align-items: center;
.line { cursor: pointer;
width: 6px; .el-icon-arrow-left {
height: 22px; color: rgba(153, 153, 153, 1);
background: #aa1941; font-size: 16px;
} }
.text { .text {
font-size: 22px; font-size: .14rem;
color: #333333; color: #999999;
margin-left: 10px;
} }
} }
.list-box { .times {
margin-top: 50px; font-size: .14rem;
display: flex; line-height: 100%;
justify-content: space-between; margin: .17rem 0 .08rem;
li { color: #999999;
width: 280px; }
img { .titles {
width: 280px; font-size: .18rem;
height: 184px; font-weight: bold;
display: block; color: #141414;
// height: 62px;
border-bottom: 1px solid #e6e6e6;
padding-bottom: .05rem;
// line-height: 100%;
}
.article-content {
padding-top: .13rem;
font-size: .12rem;
line-height: .14rem;
color: #333333;
img {
display: block;
width: 100%;
margin-top: .2rem;
}
}
.recommend-content {
border-top: 1px solid #e6e6e6;
padding-top: .17rem;
.titles {
display: flex;
align-items: center;
.line {
width: .03rem;
height: .11rem;
background: #aa1941;
} }
.dec { .text {
display: -webkit-box; font-size: .16rem;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
font-size: 16px;
line-height: 26px;
color: #333333; color: #333333;
margin-top: 10px; margin-left: .05rem;
}
}
.list-box {
margin-top: .25rem;
display: flex;
justify-content: space-between;
li {
width: 1.4rem;
img {
width: 1.4rem;
height: .92rem;
display: block;
}
.dec {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
font-size: .14rem;
line-height: .13rem;
color: #333333;
margin-top: .05rem;
}
} }
} }
} }
} .more-btn {
.more-btn { position: relative;
position: relative; z-index: 999;
z-index: 999; width: .82rem;
width: 164px; height: .2rem;
height: 40px; border: 1px solid #d3d3d3;
border: 1px solid #d3d3d3; border-radius: .04rem;
border-radius: 8px; line-height: .2re,;
line-height: 40px; text-align: center;
text-align: center; font-size: .14rem;
font-size: 16px; color: #999999;
color: #999999; margin: .25rem auto 0;
margin: 50px auto 0; cursor: pointer;
cursor: pointer; }
} }
} }
</style> </style>
...@@ -45,6 +45,18 @@ export default { ...@@ -45,6 +45,18 @@ export default {
{ {
tit: this.$t('problem.item1problem3'), tit: this.$t('problem.item1problem3'),
answer: this.$t('problem.item1answer3') answer: this.$t('problem.item1answer3')
},
{
tit: this.$t('problem.item1problem4'),
answer: this.$t('problem.item1answer4')
},
{
tit: this.$t('problem.item1problem5'),
answer: this.$t('problem.item1answer5')
},
{
tit: this.$t('problem.item1problem6'),
answer: this.$t('problem.item1answer6')
} }
] ]
}, },
......
<template> <template>
<app-frame :data="frameParams"> <div :class="isMobile ? 'is-h5' : 'is-pc'">
<div class="detail-content-box"> <app-frame :data="frameParams">
<div class="content-box"> <div class="detail-content-box">
<div class="back-btn" @click="$router.go(-1)"> <div class="content-box">
<div class="el-icon-arrow-left"></div> <div class="back-btn" @click="$router.go(-1)">
<div class="text">返回</div> <div class="el-icon-arrow-left"></div>
<div class="text">返回</div>
</div>
<div class="times">{{ formatDate(data.start_time) }}</div>
<div class="titles">{{ data.title }}</div>
<div class="article-content" v-html="data.content"></div>
<recommend />
</div> </div>
<div class="times">{{ formatDate(data.start_time) }}</div>
<div class="titles">{{ data.title }}</div>
<div class="article-content" v-html="data.content"></div>
<recommend />
</div> </div>
</div> </app-frame>
</app-frame> </div>
</template> </template>
<script> <script>
import appFrame from '@/components/appFrame' import appFrame from '@/components/appFrame'
...@@ -52,110 +54,228 @@ export default { ...@@ -52,110 +54,228 @@ export default {
console.log(date.getMonth()) console.log(date.getMonth())
return date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate() return date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate()
} }
},
computed: {
isMobile() {
return this.$store.state.isMobile
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.detail-content-box { ::v-deep{
// background: #fff; img{
// box-sizing: border-box; width: 100%;
// margin-bottom: 100px; height: auto !important;
.content-box { display: block;
padding: 50px 50px 94px;
} }
.back-btn { }
display: flex; .is-pc{
align-items: center; .detail-content-box {
cursor: pointer; // background: #fff;
.el-icon-arrow-left { // box-sizing: border-box;
color: rgba(153, 153, 153, 1); // margin-bottom: 100px;
.content-box {
padding: 50px 50px 94px;
}
.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; font-size: 16px;
line-height: 100%;
margin: 35px 0 16px;
color: #999999;
} }
.text { .titles {
font-size: 32px;
font-weight: bold;
color: #141414;
// height: 62px;
border-bottom: 1px solid #e6e6e6;
padding-bottom: 10px;
// 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; font-size: 16px;
color: #999999; color: #999999;
margin: 50px auto 0;
cursor: pointer;
} }
} }
.times { }
font-size: 16px; .is-h5{
line-height: 100%; .detail-content-box {
margin: 35px 0 16px; // background: #fff;
color: #999999; // box-sizing: border-box;
} // margin-bottom: 100px;
.titles { .content-box {
font-size: 32px; padding: .25rem .25rem .47rem;
font-weight: bold;
color: #141414;
// height: 62px;
border-bottom: 1px solid #e6e6e6;
padding-bottom: 10px;
// line-height: 100%;
}
.article-content {
padding-top: 25px;
font-size: 14px;
line-height: 28px;
color: #333333;
img {
display: block;
width: 100%;
margin-top: 40px;
} }
} .back-btn {
.recommend-content {
border-top: 1px solid #e6e6e6;
padding-top: 37px;
.titles {
display: flex; display: flex;
align-items: center; align-items: center;
.line { cursor: pointer;
width: 6px; .el-icon-arrow-left {
height: 22px; color: rgba(153, 153, 153, 1);
background: #aa1941; font-size: 16px;
} }
.text { .text {
font-size: 22px; font-size: .14rem;
color: #333333; color: #999999;
margin-left: 10px;
} }
} }
.list-box { .times {
margin-top: 50px; font-size: .14rem;
display: flex; line-height: 100%;
justify-content: space-between; margin: .17rem 0 .08rem;
li { color: #999999;
width: 280px; }
img { .titles {
width: 280px; font-size: .18rem;
height: 184px; font-weight: bold;
display: block; color: #141414;
// height: 62px;
border-bottom: 1px solid #e6e6e6;
padding-bottom: .05rem;
// line-height: 100%;
}
.article-content {
padding-top: .13rem;
font-size: .12rem;
line-height: .14rem;
color: #333333;
img {
display: block;
width: 100%;
margin-top: .2rem;
}
}
.recommend-content {
border-top: 1px solid #e6e6e6;
padding-top: .17rem;
.titles {
display: flex;
align-items: center;
.line {
width: .03rem;
height: .11rem;
background: #aa1941;
} }
.dec { .text {
display: -webkit-box; font-size: .16rem;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
font-size: 16px;
line-height: 26px;
color: #333333; color: #333333;
margin-top: 10px; margin-left: .05rem;
}
}
.list-box {
margin-top: .25rem;
display: flex;
justify-content: space-between;
li {
width: 1.4rem;
img {
width: 1.4rem;
height: .92rem;
display: block;
}
.dec {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
font-size: .14rem;
line-height: .13rem;
color: #333333;
margin-top: .05rem;
}
} }
} }
} }
} .more-btn {
.more-btn { position: relative;
position: relative; z-index: 999;
z-index: 999; width: .82rem;
width: 164px; height: .2rem;
height: 40px; border: 1px solid #d3d3d3;
border: 1px solid #d3d3d3; border-radius: .04rem;
border-radius: 8px; line-height: .2re,;
line-height: 40px; text-align: center;
text-align: center; font-size: .14rem;
font-size: 16px; color: #999999;
color: #999999; margin: .25rem auto 0;
margin: 50px auto 0; cursor: pointer;
cursor: pointer; }
} }
} }
</style> </style>
...@@ -39,6 +39,8 @@ export default { ...@@ -39,6 +39,8 @@ export default {
} }
} }
} }
},
methods: {
} }
} }
</script> </script>
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<div class="content-mod1" v-if="showIndex === 0"> <div class="content-mod1" v-if="showIndex === 0">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/kelley-h5/project-mod1-banner.png" class="main-banner"> <img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project/kelley-h5/project-mod1-banner.png" class="main-banner">
<div class="content-txt"> <div class="content-txt">
<div class="tit">{{ $t('bg.brief') }}</div> <!-- <div class="tit">{{ $t('bg.brief') }}</div> -->
<div class="text"> <div class="text">
<div class="p" v-html="$t('bg.con1Txt')"></div> <div class="p" v-html="$t('bg.con1Txt')"></div>
</div> </div>
......
...@@ -40,9 +40,9 @@ httpRequest.interceptors.request.use( ...@@ -40,9 +40,9 @@ httpRequest.interceptors.request.use(
config.params = params config.params = params
} }
} }
// if (config.headers['Content-Type'] === 'application/x-www-form-urlencoded') { if (config.headers['Content-Type'] === 'application/x-www-form-urlencoded') {
// config.data = qs.stringify(config.data) config.data = qs.stringify(config.data)
// } }
if (config.headers['Content-Type'] === 'multipart/form-data') { if (config.headers['Content-Type'] === 'multipart/form-data') {
const form = new window.FormData() const form = new window.FormData()
for (const key in config.data) { for (const key in config.data) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论