提交 b72a79e6 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 46b61778
......@@ -33,6 +33,6 @@ module.exports = {
},
ProvidePlugin: {},
others: {
projectId: '1006'
projectId: '1021'
}
}
......@@ -14,6 +14,6 @@ module.exports = {
},
ProvidePlugin: {},
others: {
projectId: '1006'
projectId: '1021'
}
}
......@@ -14,6 +14,6 @@ module.exports = {
},
ProvidePlugin: {},
others: {
projectId: '1006'
projectId: '1021'
}
}
......@@ -9,7 +9,7 @@
"version": "3.0.14",
"license": "ISC",
"dependencies": {
"@ezijing/vue-form": "^2.2.1",
"@ezijing/vue-form": "^2.3.12",
"animate.css": "^4.1.0",
"axios": "^0.19.2",
"core-js": "^3.6.5",
......@@ -1221,9 +1221,9 @@
}
},
"node_modules/@ezijing/vue-form": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@ezijing/vue-form/-/vue-form-2.2.2.tgz",
"integrity": "sha512-kfFnnpYxW+mW96Ba/+FxKKGmhOpPOAPmhUC71EVqOk49gFaqwpmjnUMLLHmC3jFXkfyGSwQNqSWLILrf+ii3bQ==",
"version": "2.3.12",
"resolved": "https://registry.npmmirror.com/@ezijing/vue-form/-/vue-form-2.3.12.tgz",
"integrity": "sha512-qmMqfkqQL2+abSAiD4+GEOGQJOmKeGyk45pSBIhNJQ580SMTE97W+db5peUI710zs+Qst/Y5ypRsvWhwgM6d5g==",
"dependencies": {
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
"@vue/babel-preset-jsx": "^1.1.2",
......@@ -19792,9 +19792,9 @@
}
},
"@ezijing/vue-form": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@ezijing/vue-form/-/vue-form-2.2.2.tgz",
"integrity": "sha512-kfFnnpYxW+mW96Ba/+FxKKGmhOpPOAPmhUC71EVqOk49gFaqwpmjnUMLLHmC3jFXkfyGSwQNqSWLILrf+ii3bQ==",
"version": "2.3.12",
"resolved": "https://registry.npmmirror.com/@ezijing/vue-form/-/vue-form-2.3.12.tgz",
"integrity": "sha512-qmMqfkqQL2+abSAiD4+GEOGQJOmKeGyk45pSBIhNJQ580SMTE97W+db5peUI710zs+Qst/Y5ypRsvWhwgM6d5g==",
"requires": {
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
"@vue/babel-preset-jsx": "^1.1.2",
......@@ -190,5 +190,5 @@ textarea {
}
:root {
--main-color: #e27f4d;
--main-color: #fa9e3b;
}
{
"common": {
"title": "theme"
},
"action": {
"interface": "interface back test"
},
"components": {
"errorPages": {
"404page": {
"errStr": "很抱歉,您访问的页面已经断开",
"goBack": "返回首页",
"goNext": "返回上一页"
}
}
}
}
import Cookies from 'js-cookie'
import VueI18n from 'vue-i18n'
import language from './language'
import zhCNLocale from 'element-ui/lib/locale/lang/zh-CN'
import enLocale from 'element-ui/lib/locale/lang/en'
export default () => {
let _locale = 'zh-CN'
/* 国际化初始化 */
const _defaultLocale = 'zh-CN'
const _lang = Cookies.get('lang') || window.navigator.language || window.navigator.userLanguage || ''
if (_lang) {
if (language[_lang]) {
_locale = _lang
} else {
let flag = true
/* 做一下 兼容性处理 */
for (const k in language) {
const reg = new RegExp(k, 'gi')
if (reg.test(_lang)) {
_locale = k
flag = false
break
}
}
if (flag) {
/* 当前语言版本 - 不再我们的语言库中,那么默认 en */
_locale = _defaultLocale
Cookies.set('lang', _defaultLocale, { expires: 30, domain: '.ezijing.com' })
}
}
}
return new VueI18n({
locale: _locale, // 定义默认语言为中文
messages: {
'zh-CN': Object.assign(require('./zh-CN.json'), zhCNLocale),
en: Object.assign(require('./en.json'), enLocale)
}
})
}
/* 定义语言模型 - key 值定义 跟 languages i18n 中 保持一致 */
const language = {
'zh-CN': { show: '语言', arr: [{ 'zh-CN': '中文' }, { en: 'English' }] },
en: { show: 'Language', arr: [{ 'zh-CN': '中文' }, { en: 'English' }] }
}
export default language
{
"common": {
"title": "主题"
},
"action": {
"interface": "接口返回数据测试"
},
"components": {
"errorPages": {
"404page": {
"errStr": "很抱歉,您访问的页面已经断开",
"goBack": "返回首页",
"goNext": "返回上一页"
}
}
}
}
<template>
<div class="err-container">
<img class="error-404" src="@/assets/images/404.png" alt="页面未找到" />
<div class="tit">{{ $t('components.errorPages.404page.errStr') }}...</div>
<div style="height: 20px; width: 100%;"></div>
<el-button type="primary" @click="goIndex">{{ $t('components.errorPages.404page.goBack') }}</el-button>
<el-button type="primary" @click="goPrev">{{ $t('components.errorPages.404page.goNext') }}</el-button>
<div style="height: 50px; width: 100%;"></div>
</div>
</template>
<script>
export default {
mounted () {},
methods: {
goIndex () {
this.$router.push({ path: '/' })
},
goPrev () {
this.$router.go(-1)
}
}
}
</script>
<style lang="scss" scoped>
.err-container {
width: 100%;
// height: 100%;
text-align: center;
overflow: hidden;
.error-404 {
display: block;
width: 60%;
max-width: 600px;
margin: 10% auto;
}
.tit {
font-size: 24px;
color: #313131;
text-align: center;
}
}
</style>
<template>
<div class="err-container">
<img class="error-500" src="@/assets/images/500.png" alt="服务器错误" />
<div class="tit">很抱歉,您访问的服务器出错...</div>
<div style="height: 20px; width: 100%;"></div>
<el-button type="primary" @click="goIndex">返回首页</el-button>
<el-button type="primary" @click="goPrev">返回上一页</el-button>
<div style="height: 50px; width: 100%;"></div>
</div>
</template>
<script>
export default {
mounted () {
// this.VueEvent.$emit('headerChange', '1-error') // 修改 头部导航
},
methods: {
goIndex () {
this.$router.push({ path: '/' })
},
goPrev () {
this.$router.go(-1)
}
}
}
</script>
<style lang="scss" scoped>
.err-container {
width: 100%;
// height: 100%;
text-align: center;
overflow: hidden;
.error-500 {
display: block;
width: 60%;
max-width: 600px;
margin: 10% auto;
}
.tit {
font-size: 24px;
color: #313131;
text-align: center;
}
}
</style>
<template>
<div class="tap-language-switch">
<el-menu class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-submenu index="1">
<template slot="title">{{ show }}</template>
<template v-for="item in language.arr">
<template v-for="(v, k) in item">
<el-menu-item :key="k" :index="k">{{v}}</el-menu-item>
</template>
</template>
</el-submenu>
</el-menu>
</div>
</template>
<script>
import Cookies from 'js-cookie'
import language from '@/assets/languages/language'
export default {
name: 'sLanguage',
componentName: 'sLanguage',
data () {
const _defaultLocale = 'zh-CN'
const _lang = Cookies.get('lang') || window.navigator.language || window.navigator.userLanguage || ''
if (_lang) {
if (language[_lang]) {
this.$i18n.locale = _lang
} else {
let flag = true
/* 做一下 兼容性处理 */
for (const k in language) {
const reg = new RegExp(k, 'gi')
if (reg.test(_lang)) {
this.$i18n.locale = k
flag = false
break
}
}
if (flag) {
/* 当前语言版本 - 不再我们的语言库中,那么默认 en */
this.$i18n.locale = _defaultLocale
Cookies.set('lang', _defaultLocale, { expires: 30, domain: '.ezijing.com' })
}
}
} else {
this.$i18n.locale = _defaultLocale
Cookies.set('lang', _defaultLocale, { expires: 30, domain: '.ezijing.com' })
}
let show = language[this.$i18n.locale].show
language[this.$i18n.locale].arr.forEach((item, i) => {
if (item[this.$i18n.locale]) {
show = item[this.$i18n.locale]
}
})
return {
show: show,
language: language[this.$i18n.locale]
}
},
mounted () {},
methods: {
handleSelect (key, val) {
Cookies.set('lang', key, { expires: 30, domain: '.ezijing.com' })
this.$i18n.locale = key
/* 刷新页面 */
this.$router.go(0)
}
}
}
</script>
<style lang="scss" scoped>
.tap-language-switch {
position: absolute;
top: 5px;
right: 100px;
height: 70px;
.el-menu--horizontal > .el-submenu.is-active .el-submenu__title {
border: none;
}
}
</style>
......@@ -31,12 +31,12 @@ export default {
.layout-register {
.layout-register-header {
padding: 20px 0px;
color: #E27F4D;
color: #fa9e3b;
.border {
width: 100%;
height: 2px;
display: inline-block;
background: #E27F4D;
background: #fa9e3b;
}
}
.layout-register-body {
......
......@@ -56,7 +56,7 @@ export default {
formInfo: {
name: '',
phone: '',
projectId: 1006
projectId: 1021
}
}
},
......
......@@ -41,7 +41,7 @@ export default {
tempRoute: {},
navList: [
{ title: '首页', path: '/index' },
{ title: '专业设置', path: '/profession' },
{ title: '家庭教育硕士', path: '/profession' },
{ title: '报名申请', path: '/my' },
{ title: '最新动态', path: '/news' },
{ title: '联系我们', path: '/contact' }
......@@ -100,7 +100,7 @@ export default {
.app-link {
color: #fff;
&.router-link-active .tab-link {
color: #e27f4d !important;
color: #fa9e3b !important;
}
}
......
......@@ -19,7 +19,7 @@ export default {
quiuse: {
page: 1,
per_page: 1,
project_id: 1006
project_id: 1021
}
}
},
......@@ -65,7 +65,7 @@ export default {
<style lang="scss" scoped>
.tab {
height: 40px;
background: #E27F4D;
background: #0b5a94;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #fff;
......
......@@ -62,7 +62,7 @@ export default {
name: '',
phone: '',
channel: 19960,
project_id: 1006
project_id: 1021
},
isLoading: false,
rules: {
......
......@@ -14,45 +14,64 @@
<span>学校认证</span>
</h4>
<a href="http://jsj.moe.gov.cn/news/1/170.shtml" target="_blank"><span class="fo">教育涉外监管网</span></a>
<a href="https://www.wscuc.org/institutions/california-institute-integral-studies" target="_blank"><span class="fo">WASC认证</span></a>
<a href="https://www.wscuc.org/institutions/california-institute-integral-studies" target="_blank"
><span class="fo">WASC认证</span></a
>
</div>
<div class="footer_cx fot">
<h4>
<span>认证查询</span>
</h4>
<a href="https://www.universities.com/find/california/best/counseling-psychology-degrees" target="_blank"><span class="fo">2020年加州最佳心理咨询学院排名第1</span></a>
<a href="https://www.universities.com/find/california/best/counseling-psychology-degrees" target="_blank"><span class="fo">2020年CIIS临床心理咨询专业排名全美第4</span></a>
<a href="https://www.greatvaluecolleges.net/by-city/online-colleges-san-francisco-ca/" target="_blank"><span class="fo">2020年旧金山最佳在线学位项目排名第3</span></a>
<a href="https://www.online-phd-programs.org/best-online-phd-psychology/" target="_blank"><span class="fo">2020年心理学在线博士项目全美排名第14</span></a>
<a href="https://www.universities.com/find/california/best/counseling-psychology-degrees" target="_blank"
><span class="fo">2020年加州最佳心理咨询学院排名第1</span></a
>
<a href="https://www.universities.com/find/california/best/counseling-psychology-degrees" target="_blank"
><span class="fo">2020年CIIS临床心理咨询专业排名全美第4</span></a
>
<a href="https://www.greatvaluecolleges.net/by-city/online-colleges-san-francisco-ca/" target="_blank"
><span class="fo">2020年旧金山最佳在线学位项目排名第3</span></a
>
<a href="https://www.online-phd-programs.org/best-online-phd-psychology/" target="_blank"
><span class="fo">2020年心理学在线博士项目全美排名第14</span></a
>
</div>
<div class="footer_logo">
<img src="@/assets/images/logo.svg" alt class="ezijing-logo"/>
<img src="@/assets/images/logo.svg" alt class="ezijing-logo" />
<img src="@/assets/images/logginred.png" alt />
</div>
</div>
</div>
<div class="copyright" style="height: 40px;line-height: 40px;color: #fff;background: #ccc;">
<div class="inner" style="width: 100%;justify-content: center;display: flex;">
<p style="font-size: 12px;">Copyright © 2017 Zijing Education. All rights reserved. 清控紫荆(北京)教育科技股份有限公司</p>
<a target="_blank" href="https://tsm.miit.gov.cn/dxxzsp/" style="color: #fff;text-decoration:none;margin-left: 10px;">
<p style="font-size: 12px;">京ICP证150431号</p>
<div class="copyright" style="height: 40px; line-height: 40px; color: #fff; background: #ccc">
<div class="inner" style="width: 100%; justify-content: center; display: flex">
<p style="font-size: 12px">
Copyright © 2017 Zijing Education. All rights reserved. 清控紫荆(北京)教育科技股份有限公司
</p>
<a
target="_blank"
href="https://tsm.miit.gov.cn/dxxzsp/"
style="color: #fff; text-decoration: none; margin-left: 10px"
>
<p style="font-size: 12px">京ICP证150431号</p>
</a>
<a target="_blank" class="record" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802023681" style="
color: #fff;
text-decoration:none;
align-items: center;
display: flex;
margin-right: 5px;">
<img src="https://zws-imgs-pub.ezijing.com/e0a0ec47dfdfc1e0797b1d5254021d00.png" alt="" style="
width: 20px;
height: 20px;
margin: 0 6px;
display: block;
">
<p style="font-size: 12px;">安备 11010802023681号</p>
<a
target="_blank"
class="record"
href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802023681"
style="color: #fff; text-decoration: none; align-items: center; display: flex; margin-right: 5px"
>
<img
src="https://zws-imgs-pub.ezijing.com/e0a0ec47dfdfc1e0797b1d5254021d00.png"
alt=""
style="width: 20px; height: 20px; margin: 0 6px; display: block"
/>
<p style="font-size: 12px">安备 11010802023681号</p>
</a>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index" style="color: #fff;text-decoration:none;">
<p style="font-size: 12px;">京ICP备15016866号-1</p>
<a
target="_blank"
href="https://beian.miit.gov.cn/#/Integrated/index"
style="color: #fff; text-decoration: none"
>
<p style="font-size: 12px">京ICP备15016866号-1</p>
</a>
</div>
</div>
......@@ -69,19 +88,19 @@ export default {}
line-height: 40px;
color: #fff;
background: #ccc;
.inner2{
.inner2 {
width: 100%;
justify-content: center;
display: flex;
p{
p {
font-size: 12px;
}
.record{
.record {
color: #fff;
align-items: center;
display: flex;
margin-right: 5px;
img{
img {
width: 20px;
height: 20px;
margin: 0 6px;
......@@ -95,7 +114,7 @@ export default {}
background-size: cover;
background: #fff;
width: 100%;
.flex{
.flex {
margin: 0 auto;
position: relative;
width: 100%;
......@@ -144,7 +163,7 @@ export default {}
position: absolute;
bottom: -4px;
height: 3px;
background:#E27F4D;
background: #fa9e3b;
width: 100%;
}
}
......@@ -165,7 +184,7 @@ export default {}
align-items: baseline;
flex-direction: column;
justify-content: space-around;
.ezijing-logo{
.ezijing-logo {
width: 187px;
}
}
......
<template>
<div class="slide-body">
<div
class="slide-list"
v-for="(item, index) in list"
:key="index"
:class="{'bg-ye': index === active}"
>
<div class="slide-list" v-for="(item, index) in list" :key="index" :class="{ 'bg-ye': index === active }">
<span class="sl" v-if="index === active"></span>
<div class="slide-list-title">
<svg-icon :iconClass="item.icon" class="font-size-25"></svg-icon>
<span class="font-size-14">{{item.title}}</span>
<span class="font-size-14">{{ item.title }}</span>
</div>
</div>
</div>
......@@ -37,7 +32,7 @@ export default {
background: #fff4eeff;
.slide-list-title {
font-weight: 600;
color: #E27F4D;
color: #fa9e3b;
}
}
.slide-list {
......@@ -67,7 +62,7 @@ export default {
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
width: 3px;
background: #E27F4D;
background: #fa9e3b;
}
}
}
......
......@@ -8,7 +8,7 @@
<!-- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> -->
<!-- <meta http-equiv="Pragma" content="no-cache" /> -->
<!-- <meta http-equiv="Expires" content="0" /> -->
<title>紫荆教育-加州整合大学应用心理学硕士,在职心理学硕士</title>
<title>紫荆教育-威斯康星协和大学家庭教育硕士</title>
<meta
name="description"
content="美国加州整合大学始创于1968年,是一所专注于心理学相关专业的非营利性研究型大学,全美临床心理咨询专业排名第4,2年学制,专业心理咨询师摇篮,学位证书与出国留学所获得的证书相同!"
......@@ -41,7 +41,7 @@
<![endif]-->
<script>
var _hmt = _hmt || []
;(function() {
;(function () {
var hm = document.createElement('script')
hm.src = 'https://hm.baidu.com/hm.js?e1cb5f1b0c9c26edeeaef974df0704f4'
var s = document.getElementsByTagName('script')[0]
......@@ -49,10 +49,10 @@
})()
</script>
<script>
;(function(b, a, e, h, f, c, g, s) {
;(function (b, a, e, h, f, c, g, s) {
b[h] =
b[h] ||
function() {
function () {
;(b[h].c = b[h].c || []).push(arguments)
}
b[h].s = !!c
......
/* Automatically generated by './build/bin/build-entry.js' */
/* 模块基于 element-ui,一定在 element-ui后加载 */
import TestModule from './test-module'
const components = [
TestModule
]
const install = function (Vue, opts = {}) {
components.forEach(component => {
Vue.use(component, opts)
})
}
/* istanbul ignore if */
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue)
}
export default {
install,
TestModule
}
import BaseACTION from '@/action/base_action'
import { TestModule } from '../api'
export default class TestModuleAction extends BaseACTION {
/**
* 测试模块获取接口
*/
getTestInfo () {
return TestModule.getTestInfo().then(res => {
return { test: this.getVueInstance().$t('moduleAction.test') } || res
}).catch(res => {
return { test: this.getVueInstance().$t('moduleAction.test') } || res
})
}
}
import TestModuleAction from './TestModuleAction'
const TestModule = new TestModuleAction()
export default TestModule
import TestModuleAPI from './login_module_api'
const TestModule = new TestModuleAPI(webConf)
export {
TestModule
}
import BaseAPI from '@/api/base_api'
export default class LoginModuleAPI extends BaseAPI {
/**
* 测试模块获取接口
*/
getTestInfo = () =>
this.get(
'/passport/account/get-user-info',
{},
{ headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
)
}
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
@font-face {font-family: "selfAllIcon";
src: url('iconfont.eot?t=1585881159034'); /* IE9 */
src: url('iconfont.eot?t=1585881159034#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('iconfont.woff?t=1585881159034') format('woff'),
url('iconfont.ttf?t=1585881159034') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1585881159034#selfAllIcon') format('svg'); /* iOS 4.1- */
}
.selfAllIcon {
font-family: "selfAllIcon" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.el-icon-self-fankuiyijian:before {
content: "\e68f";
}
.el-icon-self-icon-test:before {
content: "\e655";
}
.el-icon-self-shipinjinzhi:before {
content: "\e60b";
}
.el-icon-self-shipinbofang:before {
content: "\e60c";
}
.el-icon-self-tuichu:before {
content: "\e606";
}
.el-icon-self-star_full:before {
content: "\e627";
}
.el-icon-self-wujiaoxing:before {
content: "\e614";
}
.el-icon-self-guanbi:before {
content: "\e611";
}
.el-icon-self-xuexiao:before {
content: "\e632";
}
.el-icon-self-quanping:before {
content: "\e743";
}
.el-icon-self-shipin:before {
content: "\e60e";
}
.el-icon-self-iconset0481:before {
content: "\e768";
}
.el-icon-self-wenjian:before {
content: "\e650";
}
.el-icon-self-PPT:before {
content: "\e602";
}
.el-icon-self-13:before {
content: "\e6ce";
}
.el-icon-self-cc-book:before {
content: "\e615";
}
.el-icon-self-grade:before {
content: "\e66c";
}
.el-icon-self-xuexi-:before {
content: "\e609";
}
.el-icon-self-nav:before {
content: "\e66b";
}
.el-icon-self-mima:before {
content: "\e607";
}
.el-icon-self-character:before {
content: "\e62e";
}
.el-icon-self-statistic:before {
content: "\e601";
}
.el-icon-self-discover:before {
content: "\e67e";
}
.el-icon-self-settings:before {
content: "\e68a";
}
.el-icon-self-new:before {
content: "\e71e";
}
.el-icon-self-album:before {
content: "\e734";
}
{
"id": "948269",
"name": "self-all",
"font_family": "selfAllIcon",
"css_prefix_text": "el-icon-self-",
"description": "所有外包项目,图标库",
"glyphs": [
{
"icon_id": "1546564",
"name": "反馈意见",
"font_class": "fankuiyijian",
"unicode": "e68f",
"unicode_decimal": 59023
},
{
"icon_id": "8777427",
"name": "help",
"font_class": "icon-test",
"unicode": "e655",
"unicode_decimal": 58965
},
{
"icon_id": "11720124",
"name": "视频禁止",
"font_class": "shipinjinzhi",
"unicode": "e60b",
"unicode_decimal": 58891
},
{
"icon_id": "11720125",
"name": "视频播放",
"font_class": "shipinbofang",
"unicode": "e60c",
"unicode_decimal": 58892
},
{
"icon_id": "11717677",
"name": "退出",
"font_class": "tuichu",
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "551615",
"name": "五角星",
"font_class": "star_full",
"unicode": "e627",
"unicode_decimal": 58919
},
{
"icon_id": "2681717",
"name": "五角星",
"font_class": "wujiaoxing",
"unicode": "e614",
"unicode_decimal": 58900
},
{
"icon_id": "632985",
"name": "关闭",
"font_class": "guanbi",
"unicode": "e611",
"unicode_decimal": 58897
},
{
"icon_id": "646387",
"name": "刷新",
"font_class": "xuexiao",
"unicode": "e632",
"unicode_decimal": 58930
},
{
"icon_id": "1010014",
"name": "全屏",
"font_class": "quanping",
"unicode": "e743",
"unicode_decimal": 59203
},
{
"icon_id": "2198788",
"name": "视频",
"font_class": "shipin",
"unicode": "e60e",
"unicode_decimal": 58894
},
{
"icon_id": "554517",
"name": "播放",
"font_class": "iconset0481",
"unicode": "e768",
"unicode_decimal": 59240
},
{
"icon_id": "4251768",
"name": "文件",
"font_class": "wenjian",
"unicode": "e650",
"unicode_decimal": 58960
},
{
"icon_id": "5620349",
"name": "PPT",
"font_class": "PPT",
"unicode": "e602",
"unicode_decimal": 58882
},
{
"icon_id": "720044",
"name": "image-o",
"font_class": "13",
"unicode": "e6ce",
"unicode_decimal": 59086
},
{
"icon_id": "372115",
"name": "cc-book",
"font_class": "cc-book",
"unicode": "e615",
"unicode_decimal": 58901
},
{
"icon_id": "938307",
"name": "Grade",
"font_class": "grade",
"unicode": "e66c",
"unicode_decimal": 58988
},
{
"icon_id": "4657687",
"name": "学习",
"font_class": "xuexi-",
"unicode": "e609",
"unicode_decimal": 58889
},
{
"icon_id": "1174321",
"name": "nav",
"font_class": "nav",
"unicode": "e66b",
"unicode_decimal": 58987
},
{
"icon_id": "1418216",
"name": "密码",
"font_class": "mima",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "3090318",
"name": "人物",
"font_class": "character",
"unicode": "e62e",
"unicode_decimal": 58926
},
{
"icon_id": "6918240",
"name": "statistic",
"font_class": "statistic",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "30446",
"name": "discover",
"font_class": "discover",
"unicode": "e67e",
"unicode_decimal": 59006
},
{
"icon_id": "30480",
"name": "settings",
"font_class": "settings",
"unicode": "e68a",
"unicode_decimal": 59018
},
{
"icon_id": "90850",
"name": "new",
"font_class": "new",
"unicode": "e71e",
"unicode_decimal": 59166
},
{
"icon_id": "151470",
"name": "album",
"font_class": "album",
"unicode": "e734",
"unicode_decimal": 59188
}
]
}
{
"test": {
"title": "test module"
},
"moduleAction": {
"test": "test"
}
}
import Cookies from 'js-cookie'
import VueI18n from 'vue-i18n'
import language from './language'
import zhCNLocale from 'element-ui/lib/locale/lang/zh-CN'
import enLocale from 'element-ui/lib/locale/lang/en'
export default () => {
let _locale = 'zh-CN'
/* 国际化初始化 */
const _defaultLocale = 'zh-CN'
const _lang = Cookies.get('lang') || window.navigator.language || window.navigator.userLanguage || ''
if (_lang) {
if (language[_lang]) {
_locale = _lang
} else {
let flag = true
/* 做一下 兼容性处理 */
for (const k in language) {
const reg = new RegExp(k, 'gi')
if (reg.test(_lang)) {
_locale = k
flag = false
break
}
}
if (flag) {
/* 当前语言版本 - 不再我们的语言库中,那么默认 en */
_locale = _defaultLocale
Cookies.set('lang', _defaultLocale, { expires: 30, domain: '.ezijing.com' })
}
}
}
return new VueI18n({
locale: _locale, // 定义默认语言为中文
messages: {
'zh-CN': Object.assign(require('./zh-CN.json'), zhCNLocale),
en: Object.assign(require('./en.json'), enLocale)
}
})
}
/* 定义语言模型 - key 值定义 跟 languages i18n 中 保持一致 */
const language = {
'zh-CN': { show: '语言', arr: [{ 'zh-CN': '中文' }, { en: 'English' }] },
en: { show: 'Language', arr: [{ 'zh-CN': '中文' }, { en: 'English' }] }
}
export default language
{
"test": {
"title": "测试模块"
},
"moduleAction": {
"test": "测试"
}
}
import './index.scss'
import TestModule from './src/TestModule.vue'
const components = [
TestModule
]
const install = function (Vue, opts = {}) {
/* 存在国际化 */
if (opts.i18n) {
const msgs = opts.i18n.messages
for (const k in msgs) {
opts.i18n.setLocaleMessage(k, Object.assign(msgs[k], require('./assets/languages/' + k + '.json')))
}
}
components.forEach(component => {
Vue.component(component.name, component)
})
}
/* istanbul ignore if */
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue)
}
export default {
install,
TestModule
}
<template>
<div class="bg-test">
<img src="@/modules/test-module/assets/images/logo.png" alt="">
{{ $t('test.title') }}
</div>
</template>
<script>
import TestModule from '../action'
export default {
name: 'TestModule',
componentName: 'TestModule',
mounted () {
TestModule.getTestInfo().then(res => {
console.log('模块接口调用成功', res)
})
}
}
</script>
<template>
<div
class="details-margin-top-120 islogin"
v-loading="isLoading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.5)"
></div>
</template>
<script>
import Login from '@/pages/login/index.vue'
import Apply from '@/pages/apply/index.vue'
export default {
name: 'apply-for',
components: { Login, Apply },
data() {
return {
isLoading: true,
UserInfo: {}
}
},
methods: {
setData() {
const self = this
this.isLoading = true
setTimeout(() => {
this.UserInfo = window.G.UserInfo
if (
this.UserInfo &&
this.UserInfo.data &&
Object.keys(this.UserInfo.data).length > 0
) {
this.$router.push({
name: 'apply'
})
} else {
this.$router.push({
name: 'login'
})
}
self.isLoading = false
}, 200)
}
},
mounted() {
this.setData()
}
}
</script>
<style lang="scss" scoped>
.islogin {
height: 100%;
width: 100%;
}
</style>
{
"list": [
{
"key": 0,
"icon": "user",
"title": "个人信息"
}
],
"0": {
"size": "medium",
"header": {
"name": "报名中心"
},
"ruleForm": {
"username": "",
"account": "",
"code": "",
"password": ""
},
"ruleFormlabel": "left",
"labelWidth": "70px",
"rules": {
"username": [
{ "required": true, "message": "请填写姓名!", "trigger": "change" }
],
"account": [
{ "required": true, "message": "请填写手机号!", "trigger": "change" }
],
"code": [
{ "required": true, "message": "请填写验证码!", "trigger": "change" }
],
"password": [
{ "required": true, "message": "请填写密码!", "trigger": "change" }
]
},
"filters": [
{
"type": "PageInput",
"size": "medium",
"label": "姓名",
"width": "270px",
"placeholder": "姓名",
"querykey": "username"
},
{
"type": "PageInput",
"size": "medium",
"width": "270px",
"label": "手机号",
"placeholder": "手机号",
"querykey": "account"
},
{
"type": "PageSendCode",
"size": "medium",
"width": "270px",
"label": "验证码",
"placeholder": "验证码",
"querykey": "code"
},
{
"type": "PagePasInput",
"size": "medium",
"width": "270px",
"label": "密码",
"placeholder": "密码",
"querykey": "password"
}
],
"button": [
{
"title": "报名",
"size": "medium",
"event": "keep",
"type": "primary",
"width": "148px",
"disabled": false,
"loading": false
}
]
}
}
<template>
<div class="details-margin-top-120 apply">
<div class="apply-body">
<layout-register :headerTitle="'在线报名'">
<template v-slot:left>
<slide-list :active="active" :list="FilterJson.list"></slide-list>
</template>
<template v-slot:right>
<PageHeader :title="FilterJson[active].header" @goback="goback" />
<z-form
:formConfig="FilterJson[active]"
ref="form"
:defaultValue="FilterJson[active].ruleForm"
@on-action="actionHandle"
>
<template v-slot:submit>
<button-list :list="FilterJson[active].button" @buttnClick="buttnClick" />
</template>
</z-form>
</template>
</layout-register>
</div>
</div>
</template>
<script>
import LayoutRegister from '@/components/layout-register.vue'
import FilterJson from './filterType.json'
import ZForm from '@/components/form.vue'
import SlideList from '@/components/slide-list.vue'
import PageHeader from '@/components/page-header.vue'
import ButtonList from '@/components/button-list.vue'
import Login from '@/pages/login/components/action/index.js'
export default {
name: 'apply',
components: {
LayoutRegister,
ZForm,
SlideList,
PageHeader,
ButtonList
},
data() {
return {
FilterJson,
active: 0
}
},
methods: {
buttnClick(item) {
item.loading = true
const params = {
keep: this.transferKeep
}
params[item.event](item)
},
actionHandle(queries) {
FilterJson[this.active].ruleForm = Object.assign({}, queries)
},
goback() {
this.$router.push({
name: 'apply'
})
},
transferKeep(item) {
console.log(Login)
this.$refs.form.submit().then(state => {
if (state) {
this.$message({
message: '报名成功',
type: 'success'
})
} else {
item.loading = false
}
})
}
}
}
</script>
<style lang="scss" scoped>
.apply {
height: 100%;
width: 100%;
.apply-body {
width: 80%;
margin: 0 auto;
}
}
</style>
<template>
<div class="layout_com_page">
<vue-lazy-component>
<div class="homepage-banner" :style="{height: heightdy + 'px'}">
<div class="homepage-banner" :style="{ height: heightdy + 'px' }">
<div class="video-box">
<video
x5-playsinline=""
webkit-playsinline=""
ref="video"
id="myAudio"
style="width: 100%;height: 80%; object-fit: fill;"
style="width: 100%; height: 80%; object-fit: fill"
src="https://zws-imgs-pub.ezijing.com/static/public/54f23971c68517443056d531c6d1f982.mp4"
playsinline
></video>
......@@ -36,18 +36,10 @@
</vue-lazy-component>
<vue-lazy-component>
<div class="color-fff">
<div
class="homepage-main"
:class="{'study-show': hoverCap}"
:style="{'min-height': heightdy - 60 + 'px'}"
>
<div class="homepage-main" :class="{ 'study-show': hoverCap }" :style="{ 'min-height': heightdy - 60 + 'px' }">
<div class="cap">
<div class="cap-image" ref="cap">
<img
:src="require('@/assets/images/mz.png')"
alt
:class="{'cap-image-hover': hoverCap}"
/>
<img :src="require('@/assets/images/mz.png')" alt :class="{ 'cap-image-hover': hoverCap }" />
</div>
<div class="cap-title">
<div class="cap-h3">
......@@ -56,20 +48,29 @@
</div>
</div>
<div class="cap-main" ref="counter">
<span>加州整合大学(California Institute of Integral Studies)始创于1968年,是一所专注于心理学相关专业的非营利性研究型大学。学校位于美国加州湾区核心——旧金山,坐落在Twitter、Uber、Airbnb和市政府、收容所中间,是链接财富与道德、未来与传统的界限和平衡所在。</span>
<span
>加州整合大学(California Institute of Integral
Studies)始创于1968年,是一所专注于心理学相关专业的非营利性研究型大学。学校位于美国加州湾区核心——旧金山,坐落在Twitter、Uber、Airbnb和市政府、收容所中间,是链接财富与道德、未来与传统的界限和平衡所在。</span
>
</div>
<ul class="cap-item-box">
<li>
<div class="title">学校构成</div>
<div class="txt">加州整合大学是全美整合教育研究的创始者和中心,由4个学院共26个专业构成,涵盖了本科、硕士和博士的教学和研究工作。</div>
<div class="txt">
加州整合大学是全美整合教育研究的创始者和中心,由4个学院共26个专业构成,涵盖了本科、硕士和博士的教学和研究工作。
</div>
</li>
<li>
<div class="title">学校特色</div>
<div class="txt">绝大多数项目均系围绕心理学理论和临床的细分方向进行专业设置,几十年间,孕育了大批政界、商界、学术界的杰出人才。</div>
<div class="txt">
绝大多数项目均系围绕心理学理论和临床的细分方向进行专业设置,几十年间,孕育了大批政界、商界、学术界的杰出人才。
</div>
</li>
<li>
<div class="title">学术影响</div>
<div class="txt">加州整合大学连续15年蝉联美国加州心理咨询师资格考试通过率第1名,每年约有500名专业心理咨询师在这里持证。</div>
<div class="txt">
加州整合大学连续15年蝉联美国加州心理咨询师资格考试通过率第1名,每年约有500名专业心理咨询师在这里持证。
</div>
</li>
</ul>
<!-- <div class="cap-xx animate__animated animate__fadeInUp animate__delay-0.2s">
......@@ -102,8 +103,12 @@
<vue-lazy-component>
<div
class="homepage-wrapper"
:style="{'min-height': heightdy - 60 + 'px'}"
:class="[{'wrapper-show-title':hoverWrapperTitle}, {'wrapper-show':hoverWrapperLi01}, {'wrapper-show-a':hoverWrapperLi02}]"
:style="{ 'min-height': heightdy - 60 + 'px' }"
:class="[
{ 'wrapper-show-title': hoverWrapperTitle },
{ 'wrapper-show': hoverWrapperLi01 },
{ 'wrapper-show-a': hoverWrapperLi02 }
]"
>
<div class="homepage-son">
<div class="title" ref="wrapper_title">
......@@ -180,7 +185,7 @@
<leavex
:imgUrl="require('@/assets/images/mes1.png')"
:imgUrlBg="require('@/assets/images/mesbk.png')"
:leavheight=" heightdy - 60"
:leavheight="heightdy - 60"
/>
</div>
<vue-lazy-component>
......@@ -305,8 +310,7 @@ export default {
.easing(TWEEN.Easing.Quadratic.Out)
.to({ tweeningNumber: newValue }, 2000)
.onUpdate(function () {
vm.animatedNum4 =
Math.round((this.tweeningNumber.toFixed(0) / 10000) * 100) / 100
vm.animatedNum4 = Math.round((this.tweeningNumber.toFixed(0) / 10000) * 100) / 100
})
.start()
animate()
......@@ -373,10 +377,7 @@ export default {
const h = this.$refs[el].offsetHeight
const t = this.$refs[el].offsetTop
const top = t - (windowH - h) / 2
const scrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
let currentTop = scrollTop
let requestId
function step() {
......@@ -412,7 +413,7 @@ export default {
</script>
<style lang="scss" scoped>
.color-fff{
.color-fff {
background: #fff;
}
.homepage-banner {
......@@ -445,13 +446,13 @@ export default {
background-size: 100% 100%;
cursor: pointer;
}
.video-img-pop{
.video-img-pop {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.3);
background: rgba(0, 0, 0, 0.3);
z-index: 4;
}
}
......@@ -484,7 +485,7 @@ export default {
}
.ts-bu {
width: 138px;
background: #E27F4D;
background: #fa9e3b;
border: 0px;
span {
padding-right: 10px;
......@@ -521,8 +522,8 @@ export default {
width: 100%;
position: relative;
overflow: hidden;
background: url(https://zws-imgs-pub.ezijing.com/static/public/0b231f6b83983243fd13e2911c371b40.png)
no-repeat center center;
background: url(https://zws-imgs-pub.ezijing.com/static/public/0b231f6b83983243fd13e2911c371b40.png) no-repeat center
center;
background-size: cover;
display: flex;
justify-content: center;
......@@ -562,11 +563,11 @@ export default {
position: absolute;
bottom: -4px;
height: 3px;
background: #E27F4D;
background: #fa9e3b;
width: 100%;
}
.red {
color: #E27F4D;
color: #fa9e3b;
}
.black {
color: #222;
......@@ -852,47 +853,47 @@ export default {
.no_mar {
padding-bottom: 5px !important;
}
.cap-item-box{
.cap-item-box {
width: 1000px;
margin: 0 auto;
display: flex;
justify-content: space-between;
padding-top: 40px;
li{
li {
position: relative;
width: 320px;
height: 254px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/907e29cdca94fd79c2725cc0b2161028.png);
background-size: 100% 100%;
.title{
.title {
position: absolute;
top: 10px;
left: 30px;
color: #fff;
font-size: 18px;
}
.txt{
.txt {
padding-top: 60px;
width: 260px;
margin: 0 auto;
font-size: 18px;
color: #AF1B40;
color: #af1b40;
line-height: 30px;
}
}
}
.rz-new-mar{
.rz-new-mar {
margin-top: 60px;
}
.cap-more{
::v-deep .el-button--primary{
background: #E27F4D;
.cap-more {
::v-deep .el-button--primary {
background: #fa9e3b;
border: none;
}
}
.demo-ruleForm{
::v-deep .el-button--primary{
background: #E27F4D;
.demo-ruleForm {
::v-deep .el-button--primary {
background: #fa9e3b;
border: none;
}
}
......
......@@ -3,18 +3,33 @@
<header class="header">
<div class="inner">
<div class="logo">
<router-link to="/"><img src="https://zws-imgs-pub.ezijing.com/static/public/2a5dca328ca63abcf1c8496180adc485.png"/></router-link>
<router-link to="/"
><img src="https://zws-imgs-pub.ezijing.com/static/public/2a5dca328ca63abcf1c8496180adc485.png"
/></router-link>
</div>
</div>
</header>
<nav class="nav"><h1 class="title">加州整合大学应用心理学硕士项目推荐信</h1></nav>
<section class="content">
<el-form :model="ruleForm" :rules="rules" ref="form" label-width="100px" :label-position="labelPosition" @submit.native.prevent style="max-width: 680px">
<el-form
:model="ruleForm"
:rules="rules"
ref="form"
label-width="100px"
:label-position="labelPosition"
@submit.native.prevent
style="max-width: 680px"
>
<el-form-item label="姓名" prop="provider_name">
<el-input v-model="ruleForm.provider_name" @blur="onBlur('provider_name')"></el-input>
</el-form-item>
<el-form-item label="推荐信内容" prop="letter_content">
<el-input type="textarea" :autosize="{ minRows: 6 }" v-model="ruleForm.letter_content" @blur="onBlur('letter_content')"></el-input>
<el-input
type="textarea"
:autosize="{ minRows: 6 }"
v-model="ruleForm.letter_content"
@blur="onBlur('letter_content')"
></el-input>
</el-form-item>
<el-form-item label="手机号" prop="provider_phone_number">
<el-input v-model="ruleForm.provider_phone_number"></el-input>
......@@ -136,7 +151,7 @@ export default {
}
}
.nav {
background-color: #e27f4d;
background-color: #fa9e3b;
.title {
font-size: 24px;
font-weight: 600;
......
<template>
<div class="layout_com_page">
<vue-lazy-component>
<div class="layout_com_page_banner recent-news-header" :style="{height: 364 + 'px'}">
<div class="layout_com_page_banner recent-news-header" :style="{ height: 364 + 'px' }">
<span>最新动态</span>
</div>
</vue-lazy-component>
......@@ -17,28 +17,28 @@
@click="details(item)"
@mouseover="item.hover = true"
@mouseleave="item.hover = false"
:class="{'riht-bg': (index + 1) % 2 === 0, 'hover-bg': item.hover}"
:class="{ 'riht-bg': (index + 1) % 2 === 0, 'hover-bg': item.hover }"
>
<div class="list" v-if="(index + 1) % 2 !== 0">
<div class="list-time">
<span class="font-size-30">{{item.created_time | formatDate}}</span>
<span class="font-size-15">{{item.created_time | formatDate(item.created_time, true)}}</span>
<span class="font-size-30">{{ item.created_time | formatDate }}</span>
<span class="font-size-15">{{ item.created_time | formatDate(item.created_time, true) }}</span>
</div>
<img :src="item.photo_uri" />
<div class="list-title">
<span class="font-size-30">{{item.title}}</span>
<span class="font-size-15">{{item.summary}}</span>
<span class="font-size-30">{{ item.title }}</span>
<span class="font-size-15">{{ item.summary }}</span>
</div>
</div>
<div class="list" v-else>
<div class="list-title">
<span class="font-size-30">{{item.title}}</span>
<span class="font-size-15">{{item.summary}}</span>
<span class="font-size-30">{{ item.title }}</span>
<span class="font-size-15">{{ item.summary }}</span>
</div>
<img :src="item.photo_uri" />
<div class="list-time">
<span class="font-size-30">{{item.created_time | formatDate}}</span>
<span class="font-size-15">{{item.created_time | formatDate(item.created_time, true)}}</span>
<span class="font-size-30">{{ item.created_time | formatDate }}</span>
<span class="font-size-15">{{ item.created_time | formatDate(item.created_time, true) }}</span>
</div>
</div>
</div>
......@@ -85,7 +85,7 @@ export default {
quiuse: {
page: 1,
per_page: 4,
project_id: 1006
project_id: 1021
}
}
},
......@@ -197,7 +197,7 @@ export default {
align-items: center;
justify-content: center;
background: #fff;
color: #E27F4D;
color: #fa9e3b;
padding: 20px;
span {
padding: 0px 20px;
......
<script>
export default {
created() {
const { params, query } = this.$route
const { path } = params
this.$router.replace({ path: '/' + path, query })
},
render: function (h) {
return h() // avoid warning message
}
}
</script>
<template>
<div class="abc">
<div>这是一个测试页面{{test}}</div>
<!-- 外部引入字体库 -->
<div class="el-icon-self-star_full"></div>
<!-- 页面引入的两种方式 -->
<img :src="require('@/assets/images/logo.png')" alt="">
<img src="@/assets/images/logo.png" alt="">
<!-- 切换中英文 -->
<s-language></s-language>
<div @click="changeLanguage">切换中英文:{{ $t('common.title') }}</div>
<!-- css图片引入 -->
<div class="bg-img"></div>
<!-- 引入 模块 -->
<test-module></test-module>
<!-- element-ui 弹框 查看中英文切换 -->
<div @click="alertMsg">点击弹框</div>
</div>
</template>
<script>
import sLanguage from '@/components/languageSwitch/index.vue'
import action from '@action'
export default {
components: { sLanguage },
data () {
return {
test: 'abc'
}
},
metaInfo () {
return {
title: '独立 - 标题',
meta: [
// { vmid: 'description', name: 'description', content: this.description }
]
}
},
mounted () {
/* 接口请求测试 */
// action.Test.getTest('1').then((res) => {
// console.log(res)
// })
action.Test.postTest().then(res => {
console.log(res)
})
console.log(1, CKEDITOR)
console.log(2, Base64)
console.log(3, md5)
},
methods: {
changeLanguage () {
this.$i18n.locale = (this.$i18n.locale === 'cn' ? 'en' : 'cn')
},
alertMsg () {
this.$alert('这是一段内容', '标题名称', {
callback: action => {}
})
}
}
}
</script>
<style lang="scss" scoped>
.bg-img {
width: 134px;
height: 44px;
background: url('~@/assets/images/logo.png') no-repeat;
}
</style>
import Vue from 'vue'
import Router from 'vue-router'
import { constantRoutes } from './routes.js'
import { routes } from './routes.js'
Vue.use(Router)
const createRouter = () =>
new Router({
mode: 'history',
fallback: true,
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})
const router = createRouter()
const router = new Router({
mode: 'history',
fallback: true,
scrollBehavior: () => ({ y: 0 }),
routes
})
export default router
import Layout from '@/components/layout/index.vue'
export const constantRoutes = [
export const routes = [
{ path: '*', redirect: '/index' },
{
path: '/index',
......@@ -130,6 +130,3 @@ export const constantRoutes = [
component: () => import(/* webpackChunkName: "complete" */ '@/pages/my/application/complete.vue')
}
]
export default {
constantRoutes
}
import Vue from 'vue'
import Vuex from 'vuex'
// import router from '@/router'
import { constantRoutes } from '@/router/routes.js'
import { routes } from '@/router/routes.js'
import { logout } from '@/api/my'
Vue.use(Vuex)
......@@ -21,8 +21,8 @@ export default new Vuex.Store({
actions: {
generateRoutes({ commit }) {
return new Promise(resolve => {
commit('SET_ROUTES', constantRoutes)
resolve(constantRoutes)
commit('SET_ROUTES', routes)
resolve(routes)
})
},
logout() {
......
......@@ -6,9 +6,8 @@ body {
}
/* 统一字体样式 */
* {
font-family: 'Source Han Sans CN', 'PingFang SC', -apple-system,
'Microsoft YaHei', 'Helvetica', 'Arial', Verdana, 'Hiragino Sans GB',
'Wenquanyi Micro Hei', sans-serif;
font-family: 'Source Han Sans CN', 'PingFang SC', -apple-system, 'Microsoft YaHei', 'Helvetica', 'Arial', Verdana,
'Hiragino Sans GB', 'Wenquanyi Micro Hei', sans-serif;
}
/* Extra small devices (portrait phones, less than 576px) */
......@@ -32,7 +31,7 @@ body {
}
/* 改变主题色变量 */
$--color-primary: #E27F4D;
$--color-primary: #fa9e3b;
/* 改变 icon 字体路径变量,必需 */
$--font-path: '~element-ui/lib/theme-chalk/fonts';
/* 引入element-ui对应scss文件,重新编译 */
......
export default class ConvertTime {
/**
* 工具方法 - 播放时间 转化 h:m:s
* @param {[string]} duration 时间戳
*/
durationToTimeString (duration) {
let h = Math.floor(duration / 3600)
let m = Math.floor((duration - h * 3600) / 60)
let s = (duration - h * 3600 - m * 60) % 60
function tenify (a) {
return a >= 10 ? a : '0' + a
}
let to = { h: tenify(h), m: tenify(m), s: tenify(s) }
let format = 'h:m:s'
return format.replace(/h|m|s/g, k => to[k]).replace(/^00:/, '')
}
}
export default class Cookies {
/*
name: cookies的名字,也是cookies的唯一标识,通过他来获取和设置cookies
value:cookies的值,也就是cookies的内容,这是cookies有用的内容
Domain:cookies所属的域
Path: cookies所属的路径,他是属于某个路径的,/代表根路径
expires:cookies的到期时间,如果为0则永不过期
http: 如果打钩则通过脚本无法获取,可以防止xss攻击
secure:https连接才会传送该cookies,增强了安全性
sameSite:可选值Strict 和 Lax,Strict 严格模式,不能被第三方网站获取,Lax:宽松模式,可以被第三方获取
*/
/* 如果 http 打钩,则 这边的 脚本函数将全部失效,而线上就是这么做的 */
/**
* 设置 Cookies,用于客户端
* @param {[string]} cName 要设置cookie的key值
* @param {[string]} cValue 要设置cookie的value值
* @param {[object]} obj 要设置cookie的其他值
* @param {[object]} obj.path 路径
* @param {[object]} obj.domain 域名
* @param {[object]} obj.expires 过期时间
*/
setCookie (cName, cValue, obj) {
let d = new Date()
if (obj.expires) {
d.setTime(d.getTime() + ((obj.expires || 0) * 24 * 60 * 60 * 1000))
obj.expires = d.toUTCString()
}
let str = ''
for (let key in obj) {
str += '; ' + key + '=' + obj[key]
}
document.cookie = cName + '=' + cValue + str
}
/**
* 获取指定cookie,用于客户端
* @param {[string]} cName 要获取cookie的key值
*/
getCookie (cName) {
let key = cName + '='
let ca = document.cookie.split(';')
for (let i = 0; i < ca.length; i++) {
let c = ca[i]
while (c.charAt(0) === ' ') c = c.substring(1)
if (c.indexOf(key) !== -1) {
return c.substring(key.length, c.length)
}
}
return ''
}
/**
* 获取全cookie,用于客户端
*/
getAllCookies () {
return document.cookie
}
/**
* 清除cookie,用于客户端
* 需要path 和 domain 唯一确定 一个 cookie
* @param {[string]} cName 要清除cookie的key值
* @param {[object]} obj.path 路径
* @param {[object]} obj.domain 域名
* @param {[object]} obj.expires 过期时间
*/
clearCookie (cName, obj) {
let exp = new Date() // 获取客户端本地当前系统时间
// 将exp设置为客户端本地时间1分钟以前,将exp赋值给cookie作为过期时间后,就表示该cookie已经过期了, 那么浏览器就会将其立刻删除掉
exp.setTime(exp.getTime() - 60 * 1000)
obj.expires = exp.toUTCString()
let str = ''
for (let key in obj) {
str += '; ' + key + '=' + obj[key]
}
document.cookie = cName + '=' + str
}
}
import Cookies from './cookies'
import ConvertTime from './convert_time'
import Other from './other'
let cookies = new Cookies()
let convertTime = new ConvertTime()
let other = new Other()
export default {
cookies,
convertTime,
other
}
export default class Other {
/**
* 获取idt
*/
getIdt () {
let cookieName = '_idt'
// 尝试从cookie获取
let idt = /_idt=/.test(document.cookie) && document.cookie.replace(/.*_idt=([^;]+).*/, '$1')
if (!idt) {
idt = (new Date()).getTime().toString(36) + Math.random().toString(32) + Math.random().toString(32)
let d = new Date()
d.setMonth(d.getMonth() + 6)
document.cookie = cookieName + '=' + idt + ';path=/;domain=.ezijing.com;expires=' + d.toGMTString()
}
return idt
}
}
export function isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path)
}
/*
* base64.js
*
* Licensed under the BSD 3-Clause License.
* http://opensource.org/licenses/BSD-3-Clause
*
* References:
* http://en.wikipedia.org/wiki/Base64
*/
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
? module.exports = factory(global)
: typeof define === 'function' && define.amd
? define(factory) : factory(global)
}((
typeof self !== 'undefined' ? self
: typeof window !== 'undefined' ? window
: typeof global !== 'undefined' ? global
: this
), function(global) {
'use strict';
// existing version for noConflict()
var _Base64 = global.Base64;
var version = "2.5.0";
// if node.js and NOT React Native, we use Buffer
var buffer;
if (typeof module !== 'undefined' && module.exports) {
try {
buffer = eval("require('buffer').Buffer");
} catch (err) {
buffer = undefined;
}
}
// constants
var b64chars
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var b64tab = function(bin) {
var t = {};
for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
return t;
}(b64chars);
var fromCharCode = String.fromCharCode;
// encoder stuff
var cb_utob = function(c) {
if (c.length < 2) {
var cc = c.charCodeAt(0);
return cc < 0x80 ? c
: cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
+ fromCharCode(0x80 | (cc & 0x3f)))
: (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
+ fromCharCode(0x80 | ( cc & 0x3f)));
} else {
var cc = 0x10000
+ (c.charCodeAt(0) - 0xD800) * 0x400
+ (c.charCodeAt(1) - 0xDC00);
return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
+ fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
+ fromCharCode(0x80 | ( cc & 0x3f)));
}
};
var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
var utob = function(u) {
return u.replace(re_utob, cb_utob);
};
var cb_encode = function(ccc) {
var padlen = [0, 2, 1][ccc.length % 3],
ord = ccc.charCodeAt(0) << 16
| ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
| ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
chars = [
b64chars.charAt( ord >>> 18),
b64chars.charAt((ord >>> 12) & 63),
padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
];
return chars.join('');
};
var btoa = global.btoa ? function(b) {
return global.btoa(b);
} : function(b) {
return b.replace(/[\s\S]{1,3}/g, cb_encode);
};
var _encode = buffer ?
buffer.from && Uint8Array && buffer.from !== Uint8Array.from
? function (u) {
return (u.constructor === buffer.constructor ? u : buffer.from(u))
.toString('base64')
}
: function (u) {
return (u.constructor === buffer.constructor ? u : new buffer(u))
.toString('base64')
}
: function (u) { return btoa(utob(u)) }
;
var encode = function(u, urisafe) {
return !urisafe
? _encode(String(u))
: _encode(String(u)).replace(/[+\/]/g, function(m0) {
return m0 == '+' ? '-' : '_';
}).replace(/=/g, '');
};
var encodeURI = function(u) { return encode(u, true) };
// decoder stuff
var re_btou = new RegExp([
'[\xC0-\xDF][\x80-\xBF]',
'[\xE0-\xEF][\x80-\xBF]{2}',
'[\xF0-\xF7][\x80-\xBF]{3}'
].join('|'), 'g');
var cb_btou = function(cccc) {
switch(cccc.length) {
case 4:
var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
| ((0x3f & cccc.charCodeAt(1)) << 12)
| ((0x3f & cccc.charCodeAt(2)) << 6)
| (0x3f & cccc.charCodeAt(3)),
offset = cp - 0x10000;
return (fromCharCode((offset >>> 10) + 0xD800)
+ fromCharCode((offset & 0x3FF) + 0xDC00));
case 3:
return fromCharCode(
((0x0f & cccc.charCodeAt(0)) << 12)
| ((0x3f & cccc.charCodeAt(1)) << 6)
| (0x3f & cccc.charCodeAt(2))
);
default:
return fromCharCode(
((0x1f & cccc.charCodeAt(0)) << 6)
| (0x3f & cccc.charCodeAt(1))
);
}
};
var btou = function(b) {
return b.replace(re_btou, cb_btou);
};
var cb_decode = function(cccc) {
var len = cccc.length,
padlen = len % 4,
n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)
| (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)
| (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)
| (len > 3 ? b64tab[cccc.charAt(3)] : 0),
chars = [
fromCharCode( n >>> 16),
fromCharCode((n >>> 8) & 0xff),
fromCharCode( n & 0xff)
];
chars.length -= [0, 0, 2, 1][padlen];
return chars.join('');
};
var _atob = global.atob ? function(a) {
return global.atob(a);
} : function(a){
return a.replace(/\S{1,4}/g, cb_decode);
};
var atob = function(a) {
return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g, ''));
};
var _decode = buffer ?
buffer.from && Uint8Array && buffer.from !== Uint8Array.from
? function(a) {
return (a.constructor === buffer.constructor
? a : buffer.from(a, 'base64')).toString();
}
: function(a) {
return (a.constructor === buffer.constructor
? a : new buffer(a, 'base64')).toString();
}
: function(a) { return btou(_atob(a)) };
var decode = function(a){
return _decode(
String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
.replace(/[^A-Za-z0-9\+\/]/g, '')
);
};
var noConflict = function() {
var Base64 = global.Base64;
global.Base64 = _Base64;
return Base64;
};
// export Base64
global.Base64 = {
VERSION: version,
atob: atob,
btoa: btoa,
fromBase64: decode,
toBase64: encode,
utob: utob,
encode: encode,
encodeURI: encodeURI,
btou: btou,
decode: decode,
noConflict: noConflict,
__buffer__: buffer
};
// if ES5 is available, make Base64.extendString() available
if (typeof Object.defineProperty === 'function') {
var noEnum = function(v){
return {value:v,enumerable:false,writable:true,configurable:true};
};
global.Base64.extendString = function () {
Object.defineProperty(
String.prototype, 'fromBase64', noEnum(function () {
return decode(this)
}));
Object.defineProperty(
String.prototype, 'toBase64', noEnum(function (urisafe) {
return encode(this, urisafe)
}));
Object.defineProperty(
String.prototype, 'toBase64URI', noEnum(function () {
return encode(this, true)
}));
};
}
//
// export Base64 to the namespace
//
if (global['Meteor']) { // Meteor.js
Base64 = global.Base64;
}
// module.exports and AMD are mutually exclusive.
// module.exports has precedence.
if (typeof module !== 'undefined' && module.exports) {
module.exports.Base64 = global.Base64;
}
else if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], function(){ return global.Base64 });
}
// that's it!
return {Base64: global.Base64}
}));
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论