提交 be1e2b81 authored 作者: lihuihui's avatar lihuihui

ciis项目

上级 03eda911
module.exports = { module.exports = {
domain: 'dev.ezijing.com', domain: 'dev.ezijing.com',
url: 'https://ehall2.ezijing.com/api', url: 'https://ciis.ezijing.com/api',
isEnableToIphoneDebugger: false, isEnableToIphoneDebugger: false,
// apiBaseURL: '//demo-login.ezijing.com/', // apiBaseURL: '//demo-login.ezijing.com/',
webpack: { webpack: {
......
module.exports = { module.exports = {
url: '//api.ezijing.com', url: '/api',
DesDir: './client-dist', DesDir: './client-dist',
apiBaseURL: '//api.ezijing.com/', apiBaseURL: '/api',
isUploadStatic: false, isUploadStatic: false,
isEnableToIphoneDebugger: false, isEnableToIphoneDebugger: false,
webpack: { webpack: {
......
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAgddAmdjWL+4JUXvmiR/lr9cbdoctEGLwdLpnIrRlL/oVKubZ
TrASed5pA2kHKUbbV9i64iNIzn668ziytivudRiuGL4wBTPdtlpkSty9ij0ZHZXe
23oWQ73fV3FNROp3ekLmIYHqo2ep5hhfq1A4Sey7IM1Z0A9OF6MV7Tgqm+8a6Fy4
eNbgx99f0n7nquGjYZ3RcnU0j6xzfQhOqOYmhk4flQqSx6Mb6sSmWM7V4/h/554L
QyJNV3ngNfT3ZFmAmhIZt7n+o3svzIqwghiZSj0K9jyE7zbSZjVUBEQztFUcfYgP
ZQfZFFsdgIkFSvR3cXIpIiN8oPf8xK6naApOXwIDAQABAoIBAHKlKKJvZvgdO1ca
ir1rT7jKu7IVu4GritvWtzhahrotHEGsYhZru3SmIJ1lQHB+4zAW6zS/qQrDtbkK
yCm4cq4sI5UvYWFGoa7g84tyi12jgyiva37ptv0Li0g/f9WpHePzbBYMC61K3CaS
QO8YPwtvHu/gwjvHN9IBK1wxatYRriAfR6CF2+pfZXhlq3nprc0z9YypExLg2Swa
ML1uQGLObDHAFKheVFYOgWOncMbG5eXNV9mdfzoUuc+mkENDtynQUTzI2ZM4OZFr
uMjto7y4RLFu463Rg0ijg2MXL4FbygzclaePNL7YBS6wed0Z8cE26FvbG5vM//Qc
qYK+WBECgYEA0FdJ7tPzgBvn4VsvBBdA8gmmFmmD/TJxehrxAwn/x0QkcZa6ngxJ
ScgcicJ2OSM049zId35KA4OV7aGUC6QKdG6JbL00Wqg9xWbsHiiB9XzV1iDghTug
35cDWhRN8SnMgBhQ85l5ps8NJuLS/fqLBK0/yeE54mkWKqvD4JS39KcCgYEAn4rl
Uc4PQ/xkgCKCTOCIYmzvDUuZcS0pA0MU/uJ/aQIwaJFanIehczs6Wg/Gb0YhKx0h
cMDuvZYY2XjbCic8eDNE7ED0hUHBAa8VAQZwS22ds/qNoooCO5UcHPRevenb/dIk
oKQTrI+4e5izQtuV3YLJMeH5Ba9bUP45iaZDt4kCgYEAnBGnmrc/46oD7HdoIwJg
bm/38TYd3+CXzUa9YO9uohFT05t8NMUzaYf0iOYZtfe/uSo9KfZ672L1P0wZIRdD
lbDwVXru6zK5A1V0b6scn49iiMOcLXJbsuLnaeVn9c7AGP0eNz2zOdhFG+oy8Htt
BJXcARktSYQ7TL/bPjNqEmUCgYB54o8XVCltcyEEk1igitkm+LoYmiz7vdibWWBs
6XUVMErzWDi1ZRj/A7ysmWisEhO88GBf18WMqWMKob4Vn6we2GxLYcRtGbLuKmgN
hHG97lyQ51XVW0IhauUzaa4HwOYEn8rDvxYYuyPhqOMqrL9tn0E+DrlEkpdc5Rvo
AVGyoQKBgGYvAeoKrdkfLUUnvRBIju9/bg5H6t1MY8lYi4WEnL+aPn056LV43LU9
+gF7+S7f8Er6WiJCCb7laYeDyC5adqnF/fI//4iNsarid86blirXfJMSfTG+GkZM
OEBHd/sX0IbRUt6MCxiG3Znmdpny3/MG4CegPMtdohQktQEAS2yJ
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFiDCCBHCgAwIBAgIQAepAKb4wAxmrtof7BwPQSDANBgkqhkiG9w0BAQsFADBu
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
RFYgVExTIENBIC0gRzEwHhcNMTkxMTA4MDAwMDAwWhcNMjAxMTA3MTIwMDAwWjAa
MRgwFgYDVQQDEw9kZXYuZXppamluZy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCB10CZ2NYv7glRe+aJH+Wv1xt2hy0QYvB0umcitGUv+hUq5tlO
sBJ53mkDaQcpRttX2LriI0jOfrrzOLK2K+51GK4YvjAFM922WmRK3L2KPRkdld7b
ehZDvd9XcU1E6nd6QuYhgeqjZ6nmGF+rUDhJ7LsgzVnQD04XoxXtOCqb7xroXLh4
1uDH31/Sfueq4aNhndFydTSPrHN9CE6o5iaGTh+VCpLHoxvqxKZYztXj+H/nngtD
Ik1XeeA19PdkWYCaEhm3uf6jey/MirCCGJlKPQr2PITvNtJmNVQERDO0VRx9iA9l
B9kUWx2AiQVK9HdxcikiI3yg9/zErqdoCk5fAgMBAAGjggJ0MIICcDAfBgNVHSME
GDAWgBRVdE+yck/1YLpQ0dfmUVyaAYca1zAdBgNVHQ4EFgQU28ndXe6qIDlhPWX5
+gzJoRhaQQowGgYDVR0RBBMwEYIPZGV2LmV6aWppbmcuY29tMA4GA1UdDwEB/wQE
AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwTAYDVR0gBEUwQzA3
BglghkgBhv1sAQIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQu
Y29tL0NQUzAIBgZngQwBAgEwgYAGCCsGAQUFBwEBBHQwcjAkBggrBgEFBQcwAYYY
aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEoGCCsGAQUFBzAChj5odHRwOi8vY2Fj
ZXJ0cy5kaWdpY2VydC5jb20vRW5jcnlwdGlvbkV2ZXJ5d2hlcmVEVlRMU0NBLUcx
LmNydDAJBgNVHRMEAjAAMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYApLkJkLQY
WBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BAAAAFuSnTaJgAABAMARzBFAiEAtYCW
PLYE6pylBOsB1MmETgxGpYrG64Osn/XXyJlh+/UCIEnttMCBvNif4hpJfAQibP/Q
bJ9w0VYC59hi8Tmcf/mfAHcAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFx
RVgAAAFuSnTZSQAABAMASDBGAiEAsMgDWdSJ5d2jiXoNyxJ5FY7+3PET59vgvxi9
Eev9MwECIQC3sfR8sRWxJg82xH7lIA9sN87p7fLmr+KyhnuAK+2bcjANBgkqhkiG
9w0BAQsFAAOCAQEAOXMhz5dapVgYoLe23i+rEbBeO648c3cAO11qubqE0b5ie2bY
4DuatptwiLA47xfSVbFF0Y44cPL1b0zHe+Ki9TpcFP+TQ/+cPD2bPrqovI2uh8Qi
1RU7baLoYO9t7NxaPXh9RtRLUufJHas7HcWtLw/nPvVi+SuhgiiPytWdVM64dIPz
+nP9YY6wZhp4S/vNw5T7LARaw28xrEPzgCzWoXBUDyLB1slU3A2Uu+vl4lilcVeF
B/hl/75PWIdlxeRsD2V4TGCg796eL1BTVYEh7+mjvvaft+1/jwofKtGxg34YZHfl
6M22MuuP1pLviPZEE4ZlPXvltUV/Qq47LvZkTg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc
oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo
lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj
pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h
yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n
wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M
pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf
BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B
SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW
M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV
4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
-----END CERTIFICATE-----
...@@ -167,11 +167,11 @@ if ($GLOBAL.isDev === 'development') { ...@@ -167,11 +167,11 @@ if ($GLOBAL.isDev === 'development') {
return content return content
} }
} }
]), ])
$GLOBAL.isDev === 'test' && new VconsoleWebpackPlugin({ // $GLOBAL.isDev === 'test' && new VconsoleWebpackPlugin({
filter: [], // filter: [],
enable: $GLOBAL.isEnableToIphoneDebugger // enable: $GLOBAL.isEnableToIphoneDebugger
}) // })
], ],
optimization: { optimization: {
runtimeChunk: { runtimeChunk: {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
"assets/font-icons/" "assets/font-icons/"
], ],
"devDependencies": { "devDependencies": {
"@xunlei/vue-lazy-component": "^1.1.3",
"acorn": "^7.1.1", "acorn": "^7.1.1",
"ali-oss": "^6.5.1", "ali-oss": "^6.5.1",
"autoprefixer": "^9.7.5", "autoprefixer": "^9.7.5",
...@@ -49,6 +50,7 @@ ...@@ -49,6 +50,7 @@
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1", "eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1", "eslint-plugin-standard": "^4.0.1",
"svg-sprite-loader": "^5.0.0",
"eslint-plugin-vue": "^6.2.2", "eslint-plugin-vue": "^6.2.2",
"file-loader": "^6.0.0", "file-loader": "^6.0.0",
"html-webpack-plugin": "^4.0.4", "html-webpack-plugin": "^4.0.4",
...@@ -65,18 +67,28 @@ ...@@ -65,18 +67,28 @@
"webpack-merge": "^4.2.2" "webpack-merge": "^4.2.2"
}, },
"dependencies": { "dependencies": {
"@ezijing/vue-form": "^0.1.15",
"@ezijing/vue-passport": "^0.1.5",
"animate.css": "^4.1.0",
"axios": "^0.19.2", "axios": "^0.19.2",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"element-ui": "^2.13.0", "element-ui": "^2.13.0",
"install": "^0.13.0",
"js-cookie": "^2.2.1", "js-cookie": "^2.2.1",
"lodash": "^4.17.15", "lodash": "^4.17.15",
"npm": "^6.14.8",
"promise.prototype.finally": "^3.1.2", "promise.prototype.finally": "^3.1.2",
"regenerator": "^0.14.4", "regenerator": "^0.14.4",
"tween.js": "^16.6.0",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-i18n": "^8.16.0", "vue-i18n": "^8.16.0",
"vue-loader": "^15.9.1", "vue-loader": "^15.9.1",
"vue-meta-info": "^0.1.7", "vue-meta-info": "^0.1.7",
"vue-router": "^3.1.6", "vue-router": "^3.1.6",
"vue-template-compiler": "^2.6.11" "vue-scrollmagic": "^1.2.0",
"vue-template-compiler": "^2.6.11",
"vuex": "^3.1.3",
"swiper": "^5.4.5",
"vue-awesome-swiper": "^4.1.1"
} }
} }
import BaseACTION from './base_action'
import { Info } from '@api'
export default class InfoAction extends BaseACTION {
postInfo(obj) {
return Info.postInfo(obj).then(res => res)
}
}
import BaseACTION from './base_action'
import { News } from '@api'
export default class NewsAction extends BaseACTION {
newsList(obj) {
return News.newsList(obj).then(res => res)
}
news(id) {
return News.news(id).then(res => res)
}
}
import TestAction from './TestAction' import TestAction from './TestAction'
import InfoAction from './InfoAction'
import NewsAction from './NewsAction'
const Test = new TestAction() const Test = new TestAction()
const Infos = new InfoAction()
const News = new NewsAction()
const cAction = { const cAction = {
Test Test,
Infos,
News
} }
export default cAction export default cAction
import TestAPI from './test_api' import TestAPI from './test_api'
import InfoAPI from './info_api'
import NewsAPI from './news_api'
const Test = new TestAPI(webConf) const Test = new TestAPI(webConf)
const Info = new InfoAPI(webConf)
const News = new NewsAPI(webConf)
export { export { Test, Info, News }
Test
}
import BaseAPI from './base_api'
export default class InfoAPI extends BaseAPI {
/**
* 获取基本信息
* @param {[string]} qid
*/
postInfo = (obj = {}) =>
this.post('/new-app/v1.0/applications', obj, {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
})
}
import BaseAPI from './base_api'
export default class NewsAPI extends BaseAPI {
/**
* 获取基本信息
* @param {[string]} qid
*/
postNes = (obj = {}) =>
this.post('/new-app/v1.0/applications', obj, {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
})
newsList(params) {
return this.get('/zws/v1/cms/news', params)
}
news(id) {
return this.get(`/zws/v1/cms/news/${id}`)
}
}
...@@ -14,5 +14,5 @@ export default class TestAPI extends BaseAPI { ...@@ -14,5 +14,5 @@ export default class TestAPI extends BaseAPI {
/** /**
* 当前登录用户,检测是否该系统有权限 * 当前登录用户,检测是否该系统有权限
*/ */
getInfo = () => this.post('/user_center/get_user_info', {}, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) getInfo = () => this.get('/passport/account/get-user-info', {}, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
} }
@charset "UTF-8";
/*!
* animate.css - https://animate.style/
* Version - 4.0.0
* Licensed under the MIT license - http://opensource.org/licenses/MIT
*
* Copyright (c) 2020 Animate.css
*/:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*0.8);animation-duration:calc(var(--animate-duration)*0.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}
\ No newline at end of file
@charset "utf-8";
/*!--CSS重置和样式初始化(参考Normalize.css) ~ v1.0--*/
body,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
p,
blockquote,
dl,
dt,
dd,
ul,
ol,
li,
button,
input,
textarea,
th,
td {
margin: 0;
padding: 0;
}
html {
-webkit-touch-callout: none;
-webkit-text-size-adjust: 100%;
}
body {
font-style: normal;
font-family: '\5FAE\8F6F\96C5\9ED1', Helvetica, sans-serif;
}
h4,
h5,
h6 {
font-size: 100%;
}
ul,
ol {
list-style: none;
}
a {
text-decoration: none;
background-color: transparent;
}
a:hover,
a:active {
outline-width: 0;
text-decoration: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
hr {
border: 0;
height: 1px;
}
img {
border-style: none;
}
img:not([src]) {
display: none;
}
svg:not(:root) {
overflow: hidden;
}
input,
textarea,
button,
a {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
button,
input,
select,
textarea {
font-size: 100%;
outline: none;
border: 0;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
textarea {
overflow: auto;
}
button,
html [type='button'],
[type='reset'],
[type='submit'] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
border-style: none;
padding: 0;
}
button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
outline: 1px dotted ButtonText;
}
[type='checkbox'],
[type='radio'] {
box-sizing: border-box;
padding: 0;
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
height: auto;
}
::-webkit-input-placeholder {
color: inherit;
opacity: 0.54;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
.clear:after {
display: block;
height: 0;
content: '';
clear: both;
}
a,
a:active,
a:visited,
a:hover,
a:target {
display: block;
}
* {
-webkit-tap-highlight-color: transparent;
-webkit-appearance: none;
-webkit-backface-visibility: hidden;
}
input.checkbox {
-webkit-appearance: checkbox;
}
div > img {
vertical-align: middle;
}
input,
textarea {
-webkit-user-select: text !important;
user-select: text !important;
cursor: pointer;
}
src/assets/images/logo.png

7.6 KB | W: | H:

src/assets/images/logo.png

9.3 KB | W: | H:

src/assets/images/logo.png
src/assets/images/logo.png
src/assets/images/logo.png
src/assets/images/logo.png
  • 2-up
  • Swipe
  • Onion skin
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596076645510" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7826" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M1024 10.24l-251.392 271.872c-1.536 2.048-2.56 4.608-2.048 7.168 5.632 26.624-11.776 52.736-37.888 58.368-16.384 3.584-33.792-2.048-45.568-13.824L486.4 534.016l19.968 264.704 225.28 225.28L1024 10.24z" fill="#82fbfd" p-id="7827"></path><path d="M1021.44 16.896l-248.832 268.8c-1.536 2.048-2.56 4.608-2.048 7.168 5.632 26.112-10.752 52.224-36.864 57.856-16.896 3.584-34.304-1.536-46.08-14.336l-197.12 197.12c-1.024 1.024-1.024 2.048-1.024 3.072l19.456 260.096 501.76-757.248 10.752-22.528z" fill="#82fbfd" p-id="7828"></path><path d="M1013.76 0l-271.872 251.392c-2.048 2.048-4.608 2.56-7.168 2.048-26.624-5.632-52.736 11.776-58.368 38.4-3.584 16.384 2.048 33.792 13.824 45.568l-200.704 200.704-264.192-19.968-225.28-225.28L1013.76 0z" fill="#82fbfd" p-id="7829"></path><path d="M1007.104 3.072l-269.312 248.832c-2.048 1.536-4.608 2.56-7.168 2.048-26.112-5.632-52.224 10.752-57.856 36.864-3.584 16.896 1.536 34.304 14.336 46.08l-197.12 197.12c-1.024 1.024-2.048 1.024-3.072 1.024l-260.096-19.456 757.248-501.76 23.04-10.752z" fill="#82fbfd" p-id="7830"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596076708594" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9385" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M595.626667 93.013333l412.586666 731.306667c38.826667 69.12-7.893333 157.013333-83.626666 157.013333H99.413333c-75.733333 0-122.666667-87.893333-83.626666-157.013333L428.586667 93.013333a94.506667 94.506667 0 0 1 167.04 0zM512 256a42.666667 42.666667 0 1 0 0 85.333333 42.666667 42.666667 0 0 0 0-85.333333z m0 128a42.666667 42.666667 0 0 0-42.666667 42.666667l9.386667 384a33.28 33.28 0 0 0 66.56 0L554.666667 426.666667v-2.133334a42.666667 42.666667 0 0 0-42.666667-40.533333z" p-id="9386" fill="#d81e06"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596074167823" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4010" width="48" height="48" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M508.704 473.247C404.101 473.247 319 388.146 319 283.543S404.101 93.84 508.704 93.84c104.604 0 189.704 85.101 189.704 189.704s-85.1 189.703-189.704 189.703z m0-347.332c-86.917 0-157.629 70.712-157.629 157.629s70.712 157.629 157.629 157.629c86.917 0 157.629-70.712 157.629-157.629s-70.711-157.629-157.629-157.629zM197.553 803.802l0.001-0.905" fill="#db7254" p-id="4011"></path><path d="M213.591 804.004l-32.075-0.077c0.227-95.165 34.575-184.657 96.718-251.993 30.343-32.878 65.691-58.704 105.061-76.76 40.867-18.743 84.278-28.246 129.028-28.246 86.248 0 167.884 35.698 229.871 100.517l-23.181 22.169c-55.878-58.431-129.281-90.61-206.689-90.61-164.295 0-298.305 145.795-298.733 325z" fill="#db7254" p-id="4012"></path><path d="M522.715 804.828h-35.69l-64.702-98.641c-3.796-5.765-6.423-10.108-7.883-13.027h-0.438c0.583 5.547 0.876 14.013 0.876 25.399v86.269h-33.391V647.836h38.099l62.293 95.574a226.326 226.326 0 0 1 7.883 12.809h0.438c-0.585-3.648-0.876-10.838-0.876-21.567v-86.816h33.391v156.992zM652.777 804.828h-94.152V647.836h90.538v28.792h-55.177v34.924h51.346v28.684h-51.346v35.908h58.791v28.684zM883.338 647.836l-41.492 156.992h-39.193l-26.056-100.721c-1.388-5.255-2.228-11.129-2.518-17.626h-0.437c-0.658 7.153-1.607 13.027-2.847 17.626l-26.713 100.721h-40.835l-41.274-156.992h38.647l22.114 104.551c0.947 4.453 1.642 10.438 2.08 17.955h0.657c0.291-5.619 1.35-11.749 3.175-18.392l28.465-104.114h37.879l25.727 105.427c0.948 3.87 1.788 9.489 2.518 16.86h0.437c0.291-5.766 1.058-11.605 2.299-17.517l21.677-104.771h35.69z" fill="#db7254" p-id="4013"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596074307961" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5047" width="48" height="48" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M508.704 473.247C404.101 473.247 319 388.146 319 283.543S404.101 93.84 508.704 93.84c104.604 0 189.704 85.101 189.704 189.704s-85.1 189.703-189.704 189.703z m0-347.332c-86.917 0-157.629 70.712-157.629 157.629s70.712 157.629 157.629 157.629c86.917 0 157.629-70.712 157.629-157.629s-70.711-157.629-157.629-157.629zM197.553 803.802l0.001-0.905" fill="#4e99d7" p-id="5048"></path><path d="M213.591 804.004l-32.075-0.077c0.227-95.165 34.575-184.657 96.718-251.993 30.343-32.878 65.691-58.704 105.061-76.76 40.867-18.743 84.278-28.246 129.028-28.246 86.248 0 167.884 35.698 229.871 100.517l-23.181 22.169c-55.878-58.431-129.281-90.61-206.689-90.61-164.295 0-298.305 145.795-298.733 325z" fill="#4e99d7" p-id="5049"></path><path d="M462.207 809.643c-23.053 0-41.838-7.503-56.357-22.51-14.521-15.005-21.78-34.559-21.78-58.658 0-25.446 7.371-46.029 22.116-61.746 14.744-15.718 34.278-23.576 58.603-23.576 22.976 0 41.556 7.521 55.74 22.565 14.183 15.044 21.274 34.878 21.274 59.501 0 25.298-7.354 45.692-22.061 61.185-14.706 15.492-33.886 23.239-57.535 23.239z m1.571-135.281c-12.725 0-22.829 4.771-30.312 14.313-7.485 9.543-11.227 22.173-11.227 37.89 0 15.942 3.742 28.555 11.227 37.834 7.483 9.281 17.289 13.921 29.414 13.921 12.499 0 22.415-4.508 29.75-13.528 7.334-9.018 11.002-21.535 11.002-37.553 0-16.688-3.556-29.675-10.665-38.956-7.111-9.279-16.84-13.921-29.189-13.921zM664.397 806.836h-95.876V645.847h36.263v131.575h59.613v29.414zM686.064 806.836V645.847h57.031c57.181 0 85.771 26.158 85.771 78.474 0 25.074-7.803 45.095-23.407 60.063-15.605 14.97-36.394 22.453-62.364 22.453h-57.031z m36.263-131.463v102.049h17.962c15.718 0 28.048-4.715 36.992-14.146 8.942-9.43 13.415-22.265 13.415-38.507 0-15.342-4.435-27.41-13.303-36.206-8.869-8.793-21.313-13.19-37.329-13.19h-17.737z" fill="#4e99d7" p-id="5050"></path></svg>
\ No newline at end of file
<template>
<svg class="svg-icon" aria-hidden="true">
<use :xlink:href="iconName" />
{{iconClass}}
</svg>
</template>
<script>
export default {
name: 'SvgIcon',
props: {
iconClass: {
type: String,
required: true
}
},
computed: {
iconName() {
return `#icon-${this.iconClass}`
}
}
}
</script>
<style scoped>
.svg-icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
...@@ -3,32 +3,40 @@ import cAction from '@action' ...@@ -3,32 +3,40 @@ import cAction from '@action'
import { Message } from 'element-ui' import { Message } from 'element-ui'
export default class Before { export default class Before {
constructor (opt) { constructor(opt) {
this.opt = opt || {} this.opt = opt || {}
} }
async update (to, from, next) { async update(to, from, next) {
if (to.name === 'studentHelp' || to.name === 'teacherHelp') { const isLogin = await this.isLogin()
next() if (to.meta && to.meta.userRole) {
} else if (to.name !== 'login-normal' && to.name !== 'codeLogin' && to.name !== 'forgetPwd') { // 所有登录页 不进行登录校验
const isLogin = await this.isLogin()
if (isLogin) { if (isLogin) {
next() next()
} else { } else {
next({ path: '/login/index?rd=' + encodeURIComponent(to.fullPath) }) // 需要传参并再传回来 next({ path: '/apply/for' })
} }
} else {
next()
} }
} }
/* 获取用户信息 */ /* 获取用户信息 */
isLogin () { isLogin() {
if (window.G.UserInfo) return true if (window.G.UserInfo && Object.keys(window.G.UserInfo.data).length > 0) {
return cAction.Test.getInfo().then(res => {
window.G.UserInfo = res
return true return true
}).catch(res => { }
Message({ type: 'error', message: res.message }) return cAction.Test.getInfo()
return false .then(res => {
}) if (res.code === 0) {
window.G.UserInfo = res
return true
} else {
return false
}
})
.catch(res => {
Message({ type: 'error', message: res.message })
return false
})
} }
} }
<template>
<div class="buttonList">
<el-button
v-for="(item, index) in list"
:key="index"
:type="item.type"
:size="item.size"
:style="{width: item.width}"
:plain="item.plain"
@click="buttnClick(item)"
>{{item.title}}</el-button>
</div>
</template>
<script>
export default {
name: 'buttonList',
props: {
list: {
type: Array,
default: []
}
},
methods: {
buttnClick(item) {
this.$emit('buttnClick', item)
}
}
}
</script>
<template>
<el-form
:model="formConfig.ruleForm"
:rules="rules(formConfig.rules)"
ref="ruleForm"
class="zd-form"
:validate-on-rule-change="false"
:label-position="formConfig.ruleFormlabel"
:label-width="formConfig.labelWidth"
:inline-message="true"
:size="formConfig.size"
key="ruleForm"
>
<div class="form-body">
<el-form-item
v-for="(filter, index) in formConfig.filters"
:key="filter.querykey"
:label="filter.label"
:prop="filter.querykey"
>
<component
:is="filter.type"
:querykey="filter.querykey"
:key="index"
:size="filter.size"
:ruleForm="formConfig.ruleForm"
:isSendDisable="isSendDisable"
:width="filter.width"
:placeholder="filter.placeholder"
:defaultValue="setValue(filter)"
@input="(value, key, keys) => filterChange(filter, value, key, keys)"
/>
</el-form-item>
<el-form-item>
<slot name="submit"></slot>
</el-form-item>
</div>
</el-form>
</template>
<script>
import PageInput from '@/components/input.vue'
import PagePasInput from '@/components/pasInput.vue'
import PageSendCode from '@/components/sendCode.vue'
export default {
props: {
formConfig: {
type: Object
},
defaultValue: {
type: Object,
default: () => {}
}
},
data() {
this.checkAccount = (rule, value, callback) => {
/* 手机格式 */
if (/^1[3-9]\d{9}$/.test(value)) {
this.isSendDisable = false
callback()
} else {
this.isSendDisable = true
callback(new Error('请输入正确格式的手机号'))
}
}
return {
isSendDisable: true
}
},
components: {
PagePasInput,
PageInput,
PageSendCode
},
methods: {
rules(rules) {
const rule = JSON.parse(JSON.stringify(rules))
if (rules.account) {
rule.account.push({ validator: this.checkAccount, trigger: 'change' })
}
return rule
},
filterChange(filter, value, key, keys = null) {
const newValue = value
this.formConfig.ruleForm[key] = newValue
this.$emit('on-action', this.formConfig.ruleForm)
},
typeValue() {
this.formConfig.ruleForm = Object.assign({}, this.defaultValue)
},
setValue(filter) {
if (!this.defaultValue) return
const filterData = {
startKey: this.defaultValue[filter.startKey],
endKey: this.defaultValue[filter.endKey],
querykey: this.defaultValue[filter.querykey]
}
this.formConfig.ruleForm[filter.querykey] = filterData.querykey
return this.formConfig.ruleForm[filter.querykey]
},
submit() {
return new Promise(resolve => {
this.$refs.ruleForm.validate(valid => {
resolve(valid)
})
})
},
clear() {
this.$refs.ruleForm.clearValidate()
}
},
mounted() {
this.typeValue()
}
}
</script>
<style lang="scss" scoped>
.form-body {
padding: 0px 20px;
}
</style>
<template>
<el-input
v-model="input"
:placeholder="$attrs.placeholder"
clearable
:size="$attrs.size"
:style="{ width: width }"
></el-input>
</template>
<script>
export default {
name: 'PageInput',
data() {
return {}
},
props: {
defaultValue: {
default: ''
},
width: {
type: String,
default: '80%'
}
},
computed: {
input: {
get() {
return this.defaultValue
},
set(val) {
this.$emit('input', val, this.$attrs.querykey)
}
}
},
inheritAttrs: false,
mounted() {}
}
</script>
<template>
<div class="layout-register">
<div class="layout-register-header">
<span class="font-size-18">{{headerTitle}}</span>
<span class="border"></span>
</div>
<div class="layout-register-body">
<div class="layout-register-left">
<slot name="left"></slot>
</div>
<div class="layout-register-right">
<slot name="right"></slot>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'layout-register',
props: {
headerTitle: {
type: String,
default: '新用户注册'
}
}
}
</script>
<style lang="scss" scoped>
.layout-register {
.layout-register-header {
padding: 20px 0px;
color: rgba(156, 0, 0, 1);
.border {
width: 100%;
height: 2px;
display: inline-block;
background: rgba(156, 0, 0, 1);
}
}
.layout-register-body {
overflow: hidden;
width: 100%;
position: relative;
.layout-register-left {
position: fixed;
width: 190px;
overflow: hidden;
background: #fff;
border-radius: 5px;
min-height: 480px;
}
.layout-register-right {
transform: translate(210px);
width: calc(100% - 210px);
background: #fff;
border-radius: 5px;
min-height: 600px;
}
}
}
</style>
<template>
<div
class="homepage_message"
:style="{'min-height': leavheight + 'px', backgroundImage:'url(' + imgUrlBg + ')' }"
>
<div class="homepage_message-main">
<h3>
<span>留下您的信息</span>
</h3>
<h5>紫荆教育学位顾问为您提供专业的服务</h5>
<div class="homepage_message_body">
<div class="body_img">
<img :src="imgUrl" alt :style="imgUrl.indexOf('mes1') != -1 ? 'width:472px' : ''"/>
</div>
<div class="body_input">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="0px"
class="demo-ruleForm"
>
<el-form-item prop="name">
<el-input v-model="ruleForm.name" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item prop="phone">
<el-input v-model="ruleForm.phone" placeholder="手机"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" :loading="isLoading" @click="submit">提交</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</template>
<script>
import cAction from '@action'
export default {
name: 'leavex',
props: {
imgUrl: {},
leavheight: {
type: Number
},
imgUrlBg: {}
},
data() {
var checkPhone = (rule, value, callback) => {
var reg = /^1[345789]\d{9}$/
if (!reg.test(value)) {
callback(new Error('请输入11位手机号!'))
} else {
callback()
}
}
return {
ruleForm: {
name: '',
phone: '',
channel_num: 10040
},
isLoading: false,
rules: {
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
phone: [{ required: true, validator: checkPhone, trigger: 'blur' }]
}
}
},
methods: {
submit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
this.isLoading = true
cAction.Infos.postInfo(this.ruleForm)
.then(() => {
this.$alert('提交成功', '信息', {
confirmButtonText: '确定',
type: 'success'
})
this.isLoading = false
})
.catch(e => {
this.isLoading = false
console.log(e)
})
} else {
this.isLoading = false
return false
}
})
}
}
}
</script>
<style lang="scss" scoped>
.homepage_message {
width: 100%;
position: relative;
background-repeat: no-repeat;
background-size: cover;
display: flex;
justify-content: center;
.homepage_message-main {
width: 80%;
margin: 0 auto;
h3 {
margin-top: 80px;
text-align: center;
color: rgba(255, 255, 255, 1);
font-size: 40px;
font-family: PingFangSC-Medium, PingFang SC;
span {
display: inline-block;
position: relative;
&::before {
content: '';
position: absolute;
bottom: -4px;
height: 3px;
background: #ffffff;
width: 100%;
}
}
}
h5 {
padding-top: 24px;
font-size: 18px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
opacity: 0.6;
color: rgba(255, 255, 255, 1);
text-align: center;
}
.homepage_message_body {
padding: 63px 0px 0px 0px;
display: flex;
width: 100%;
.body_img {
flex: 1;
padding: 0px 30px;
}
.body_input {
flex: 1;
padding: 0px 30px;
.demo-ruleForm {
display: flex;
justify-content: space-between;
flex-direction: column;
height: 100%;
}
.el-input {
max-width: 324px;
}
::v-deep .el-input__inner {
border: 0px;
background: transparent;
border-bottom: 2px solid #fff;
border-radius: 0px;
padding: 0px;
color: #fff;
}
::v-deep .el-button {
width: 132px;
height: 54px;
border-radius: 4px;
.el-icon-loading {
color: #fff !important;
}
}
}
}
}
}
</style>
<template>
<div class="homepage_footer">
<div class="fo-bg"></div>
<div class="homepage_footer_body">
<div class="footer_lj fot">
<h4>
<span>学校官网</span>
</h4>
<a href="https://www.ciis.edu" target="_blank"><span class="fo">加州整合大学官网</span></a>
</div>
<div class="footer_cx fot">
<h4>
<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>
</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>
</div>
<div class="footer_logo">
<img src="@/assets/images/logo.png" alt />
<img src="@/assets/images/logginred.png" alt />
</div>
</div>
</div>
</template>
<script>
export default {}
</script>
<style lang="scss" scoped>
.homepage_footer {
min-height: 460px;
display: flex;
align-items: center;
justify-content: center;
background-size: cover;
background: #fff;
width: 100%;
margin: 0 auto;
position: relative;
.fo-bg {
position: absolute;
height: 100%;
z-index: 6;
width: 100%;
background: url('~@/assets/images/fotbk.png') no-repeat center center;
}
.homepage_footer_body {
width: 80%;
display: flex;
justify-content: space-between;
.fot {
display: flex;
z-index: 7;
flex-direction: column;
h4 {
font-size: 18px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(34, 34, 34, 1);
margin-bottom: 14px;
position: relative;
&::before {
content: '';
position: absolute;
bottom: -4px;
height: 3px;
background: #ccccccff;
width: 100%;
max-width: 140px;
}
span {
display: inline-block;
position: relative;
&::before {
content: '';
position: absolute;
bottom: -4px;
height: 3px;
background: rgba(175, 27, 64, 1);
width: 100%;
}
}
}
span {
font-size: 18px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: rgba(34, 34, 34, 1);
}
a {
padding: 20px 0px;
}
}
.footer_logo {
z-index: 7;
display: flex;
align-items: baseline;
flex-direction: column;
justify-content: space-around;
}
}
}
</style>
<template>
<div class="page-header">
<span class="font-size-14">{{title.name}}</span>
<span class="ts-bord"></span>
<div class="page-back" @click="goback" v-if="title.backName">
<i class="el-icon-arrow-left font-size-14"></i>
<span class="font-size-14">{{title.backName}}</span>
</div>
</div>
</template>
<script>
export default {
name: 'page-header',
props: {
title: {
type: Object
}
},
methods: {
goback() {
this.$emit('goback')
}
}
}
</script>
<style lang="scss" scoped>
.page-header {
padding: 20px;
display: flex;
position: relative;
margin-bottom: 10px;
.ts-bord {
position: absolute;
bottom: 10px;
height: 2px;
left: 20px;
right: 20px;
background: #ccccccff;
}
.font-size-14 {
margin-right: auto;
color: #222222ff;
}
.page-back {
cursor: pointer;
display: inline-flex;
align-items: center;
justify-items: center;
i,
span {
color: #57acffff;
}
}
}
</style>
<template>
<el-input
v-model="input"
:placeholder="$attrs.placeholder"
clearable
type="password"
autocomplete="off"
:size="$attrs.size"
:style="{ width: width }"
></el-input>
</template>
<script>
export default {
name: 'pasInput',
data() {
return {}
},
props: {
defaultValue: {
default: ''
},
width: {
type: String,
default: '80%'
}
},
computed: {
input: {
get() {
return this.defaultValue
},
set(val) {
this.$emit('input', val, this.$attrs.querykey)
}
}
},
inheritAttrs: false,
mounted() {}
}
</script>
<template>
<el-input
v-model="input"
:disabled="isSendDisable"
type="text"
placeholder="短信验证码"
:style="{ width: width }"
>
<el-button
slot="suffix"
size="mini"
:disabled="isSendDisable || isSendCode"
@click="sendCode"
>{{sendBtnText}}</el-button>
</el-input>
</template>
<script>
import Login from '@/pages/login/components/action/index.js'
export default {
name: 'sendCode',
props: {
defaultValue: {
default: ''
},
width: {
type: String,
default: '80%'
},
isSendDisable: {
type: Boolean,
default: true
},
ruleForm: {}
},
data() {
return {
isSendCode: false,
sendBtnText: '发送验证码',
phone: null
}
},
computed: {
input: {
get() {
return this.defaultValue
},
set(val) {
this.$emit('input', val, this.$attrs.querykey)
}
}
},
watch: {
ruleForm(form) {
this.phone = form.account
}
},
methods: {
clearTime() {
this.isSendCode = true
this.sendBtnText = '发送验证码'
clearInterval(this.timeInterval)
},
sendCode() {
if (!this.isSendCode) {
const params = {
account: this.phone,
service: 'https://cu.ezijing.com'
}
Login.sendCode(params)
.then(res => {
if (res.code === 0) {
let time = 60
this.isSendCode = true
this.sendBtnText = '60s后重发'
this.timeInterval = setInterval(() => {
if (time-- > 0) {
this.sendBtnText = time + 's后重发'
} else {
this.isSendCode = false
this.sendBtnText = '发送验证码'
clearInterval(this.timeInterval)
}
}, 1000)
} else {
this.$message.error(res.msg)
}
})
.catch(e => {})
}
}
},
beforeDestroy() {
/* 清空倒计时 */ this.clearTime()
}
}
</script>
<style>
</style>
<template>
<div class="slide-body">
<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>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'slide-list',
props: {
list: {
type: Array
},
active: {
type: Number,
default: 0
}
}
}
</script>
<style lang="scss" scoped>
.slide-body {
padding: 20px 0px;
.bg-ye {
background: #fff4eeff;
.slide-list-title {
font-weight: 600;
color: #af1b40ff;
}
}
.slide-list {
cursor: pointer;
height: 44px;
line-height: 44px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
padding-right: 30px;
.slide-list-title {
display: inline-flex;
align-items: center;
justify-content: center;
.font-size-25 {
padding-right: 10px;
}
.font-size-14 {
padding-top: 3px;
}
}
.sl {
position: absolute;
left: 0px;
height: 100%;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
width: 3px;
background: #af1b40ff;
}
}
}
</style>
import Vue from 'vue'
Vue.directive('scroll-top', {
componentUpdated: function(el, binding) {
console.log(1)
let allowScroll = false
let goalOffset = 0
let completeCall = null
let divisor = 5
if (typeof binding.value === 'boolean') {
allowScroll = binding.value
}
if (binding.value && typeof binding.value === 'object') {
allowScroll = binding.value.allowScroll || false
goalOffset = binding.value.offset || 0
completeCall = binding.value.complete
divisor = binding.value.divisor || 5
}
const element = el.$el ? el.$el : el
if (allowScroll === true) {
if (element.scrollTop === goalOffset) {
if (completeCall) {
completeCall()
}
return
}
let direction = 'up'
if (goalOffset > element.scrollTop) {
direction = 'up'
} else {
direction = 'down'
}
let offsetDiff = Math.abs(goalOffset - element.scrollTop)
const timer = setInterval(() => {
const ispeed = Math.ceil(offsetDiff / divisor)
offsetDiff = offsetDiff - ispeed
if (direction === 'up') {
element.scrollTop = element.scrollTop + ispeed
} else {
element.scrollTop = element.scrollTop - ispeed
}
if (element.scrollTop === goalOffset) {
clearInterval(timer)
if (completeCall) {
completeCall()
}
}
}, 16)
}
}
})
import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon/svgicon.vue'
// register globally
Vue.component('svg-icon', SvgIcon)
const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)
<svg t="1595689248459" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1794" width="200" height="200"><path d="M822.5 652.2L655.7 484.5c10.7-30.1 16.2-61.7 16.2-94 0-154.3-124.9-279.8-278.4-279.8-38.2 0-75.4 7.7-110.5 23l-16.6 7.2s0.1 0 0.1 0.1c-1.6 0.7-3.1 1.7-4.3 3-5.5 5.5-5.5 14.5 0 20.1 0.1 0.1-0.1 0.1 0 0.2L418 321l-93.8 94.2-152.7-153.5c-0.2 0-0.5 0-0.8-0.3-6.5-6.5-17-6.5-23.4 0-1.8 1.8-3.1 3.9-3.9 6.1-0.1 0.2-0.2 0.1-0.3 0.1l-5.2 12c-15.2 35.2-22.9 72.6-22.9 111 0 154.3 124.9 279.8 278.4 279.8 32.1 0 63.5-5.5 93.5-16.3l166.8 167.7c22.5 22.6 52.5 35.1 84.4 35.1 31.8 0 61.8-12.5 84.4-35.1C869 775 869 699 822.5 652.2z m-37.4 131.9c-12.5 12.6-29.2 19.5-46.9 19.5s-34.4-6.9-46.9-19.5L499.4 591.3l-16.5 7.2c-28.4 12.4-58.5 18.6-89.4 18.6-124.3 0-225.4-101.6-225.4-226.5 0-17.4 1.9-34.4 5.8-51.1l140.2 140.9c5.9 4.7 14 4.8 19.9 0.3l147.4-148.1c0.1-0.1-0.1-0.1 0-0.2 6-6 6.2-15.5 1-22L342.6 169.9c16.6-3.9 33.6-5.8 50.9-5.8 124.3 0 225.4 101.6 225.4 226.5 0 31.1-6.2 61.3-18.5 89.8l-7.1 16.6L785 689.9c25.9 26 25.9 68.2 0.1 94.2z" p-id="1795"></path></svg>
\ No newline at end of file
<svg t="1598603711890" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1794" width="48" height="48"><path d="M857.002494 319.156194M843.258344 840.825751c-4.865186-36.488894-15.568595-71.639862-31.866968-104.601497-3.162371-6.446371-6.568001-12.771113-10.095261-18.974225 0 0 0 0 0 0-15.446965-26.150374-34.42119-50.354674-56.436156-72.126381l0 0c-4.743556-4.743556-9.730372-9.243853-14.838817-13.74415-36.245635-31.745338-78.207863-55.341489-122.845944-69.693788 8.027557-4.500297 15.933484-9.487112 23.474522-15.082076 8.514075-6.324742 16.663262-13.257632 24.325929-20.920299 40.259413-40.259413 62.517639-93.776458 62.517639-150.820763s-22.136596-110.561349-62.517639-150.820763c-39.529635-39.529635-91.952013-61.666231-147.658392-62.396009-0.851408 0-1.824445 0-2.675852 0-0.851408 0-1.824445 0-2.675852 0-55.828008 0.851408-108.128756 22.866374-147.658392 62.396009-40.259413 40.259413-62.517639 93.776458-62.517639 150.820763s22.136596 110.561349 62.517639 150.820763c7.662668 7.662668 15.811854 14.717187 24.325929 20.920299 7.541038 5.594964 15.325336 10.581779 23.474522 15.082076-44.638081 14.352298-86.600309 37.94845-122.845944 69.693788-5.108445 4.500297-10.095261 9.000594-14.838817 13.74415-22.136596 21.650077-40.989191 45.976007-56.436156 72.126381-3.52726 6.203112-6.93289 12.527854-10.095261 18.974225-16.176743 32.961634-26.880152 68.112602-31.866968 104.601497-1.581185 11.676446 6.568001 22.379855 18.244447 23.961041 0.973037 0.12163 1.946074 0.243259 2.919112 0.243259 0.851408 0 1.702815 0 2.554223-0.12163 8.392446-1.824445 15.203706-8.757335 16.541632-17.757928 9.852001-67.504454 41.962228-128.805796 88.181494-175.389951 54.854971-55.463119 129.535574-90.249198 210.17603-90.370828l0.486519 0c80.518826 0.243259 154.956171 35.029338 209.689512 90.370828 46.219266 46.705785 78.329493 108.007127 88.181494 175.389951 1.337926 9.000594 8.149186 15.933484 16.541632 17.757928 0 0 0 0 0 0 0.851408 0.12163 1.702815 0.12163 2.554223 0.12163 0.973037 0 1.946074-0.12163 2.919112-0.243259C836.568714 863.327236 844.83953 852.502197 843.258344 840.825751L843.258344 840.825751zM504.154888 545.508968c-0.486519 0-0.851408 0-1.337926 0-79.545789-0.608148-150.577503-55.828008-169.916617-130.022093-0.243259-0.851408-0.486519-1.581185-0.608148-2.432593-3.040741-12.284594-4.621927-25.055707-4.621927-38.07008 0-13.136002 1.581185-26.028745 4.621927-38.434969 0.243259-0.851408 0.364889-1.702815 0.608148-2.432593 19.460744-76.01853 91.100606-136.468464 171.254543-136.468464l0.973037 0c80.153938 0 151.7938 60.449935 171.254543 136.468464 0.243259 0.851408 0.486519 1.702815 0.608148 2.432593 3.040741 12.527854 4.621927 25.420596 4.621927 38.434969 0 13.136002-1.581185 25.785485-4.621927 38.07008-0.243259 0.851408-0.364889 1.581185-0.608148 2.432593-19.339114 74.194085-90.370828 129.413945-169.916617 130.022093C505.614444 545.508968 504.884666 545.508968 504.154888 545.508968L504.154888 545.508968zM504.154888 545.508968" p-id="1795"></path></svg>
\ No newline at end of file
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh-cn"> <html lang="zh-cn">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta content="origin" name="referrer"> <meta content="origin" name="referrer" />
<!-- 如果只是想html禁用缓存,使用以下三行 --> <!-- 如果只是想html禁用缓存,使用以下三行 -->
<!-- 经过验证,发现有时不一定有用,不如 wmp项目中login/is-login跳转,会自动产生 from the disk --> <!-- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> -->
<!-- 总结:彻底解决 index.html 不加缓存 请使用 `nginx上配置 no-cache` --> <!-- <meta http-equiv="Pragma" content="no-cache" /> -->
<!-- 直接访问 图片、JS、CSS等资源不会出现(from the disk),只有在html中,访问资源才会出现`强缓存`。 --> <!-- <meta http-equiv="Expires" content="0" /> -->
<!-- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> --> <title>康博斯威尔大学蒙台梭利教育硕士</title>
<!-- <meta http-equiv="Pragma" content="no-cache" /> --> <meta
<!-- <meta http-equiv="Expires" content="0" /> --> name="viewport"
<title>标题</title> id="viewport"
<meta name="viewport" id="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no"> content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no"
</head> />
<body> </head>
<div id="app"></div> <body>
<!-- es5 兼容 新方法 --> <div id="app"></div>
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-shim.min.js"></script> <!-- es5 兼容 新方法 -->
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-sham.min.js"></script> <script
<!-- 三方插件引入 --> type="text/javascript"
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/ckeditor/ckeditor.js"></script> src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-shim.min.js"
<!-- common --> ></script>
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/base64.js"></script> <script
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/md5.js"></script> type="text/javascript"
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/jQuery-2.1.4.min.js"></script> src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-sham.min.js"
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/runtime.js"></script> ></script>
<!--[if lt IE 9]> <!-- 三方插件引入 -->
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script> <script
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script> type="text/javascript"
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script> src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/ckeditor/ckeditor.js"
<![endif]--> ></script>
</body> <!-- <script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/debug.addIndicators.min.js"></script> -->
<!-- common -->
<script
type="text/javascript"
src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/base64.js"
></script>
<script
type="text/javascript"
src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/md5.js"
></script>
<script
type="text/javascript"
src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/jQuery-2.1.4.min.js"
></script>
<script
type="text/javascript"
src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/runtime.js"
></script>
<!--[if lt IE 9]>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script>
<![endif]-->
</body>
</html> </html>
<template>
<component :is="type" v-bind="linkProps(to)">
<slot />
</component>
</template>
<script>
import { isExternal } from '@/utils/validate'
export default {
props: {
to: {
type: String,
required: true
}
},
computed: {
isExternal() {
return isExternal(this.to)
},
type() {
if (this.isExternal) {
return 'a'
}
return 'router-link'
}
},
methods: {
linkProps(to) {
if (this.isExternal) {
return {
href: to,
target: '_blank',
rel: 'noopener'
}
}
return {
to: to
}
}
}
}
</script>
<template>
<div
class="slider"
:class="{'ts-slider': navigation && (tempRoute.meta && !tempRoute.meta.details), 'bg_fff': tempRoute.meta && tempRoute.meta.details}"
>
<div class="slider-body">
<div class="slider-icon" v-show="tempRoute.meta && !tempRoute.meta.details">
<el-image
class="logo-new-1"
v-if="navigation"
src="https://zws-imgs-pub.ezijing.com/static/public/118a89f2d923fcce7079577f62cd9f88.png"
></el-image>
<el-image class="logo-new-2" v-else :src="require('@/assets/images/logofff.png')"></el-image>
</div>
<div class="slider-icon" v-show="tempRoute.meta && tempRoute.meta.details">
<el-image
class="logo-new-1"
src="https://zws-imgs-pub.ezijing.com/static/public/118a89f2d923fcce7079577f62cd9f88.png"
></el-image>
</div>
<div class="slider-banner">
<div v-for="(item, index) in sidebar" :key="index" class="tab-item">
<div v-if="!item.hidden">
<template
v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow"
>
<app-link
v-if="onlyOneChild.meta"
:to="resolvePath(onlyOneChild.path, item.path)"
class="app-link"
>
<span class="tab-link">{{onlyOneChild.meta.title}}</span>
</app-link>
</template>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import AppLink from './Link.vue'
import path from 'path'
import { isExternal } from '@/utils/validate'
import { dyHeight } from '@/pages/homepage/mixins/index.js'
export default {
mixins: [dyHeight],
components: {
AppLink
},
data() {
this.onlyOneChild = null
return {
tempRoute: {}
}
},
watch: {
$route() {
this.infoRouer()
}
},
computed: {
sidebar() {
return this.$router.options.routes
}
},
methods: {
hasOneShowingChild(children = [], parent) {
const showingChildren = children.filter(item => {
if (item.hidden) {
return false
} else {
this.onlyOneChild = item
return true
}
})
if (showingChildren.length === 1) {
return true
}
if (showingChildren.length === 0) {
this.onlyOneChild = { ...parent, path: '', noShowingChildren: true }
return true
}
return false
},
resolvePath(routePath, basePath) {
if (isExternal(routePath)) {
return routePath
}
if (isExternal(basePath)) {
return basePath
}
return path.resolve(basePath, routePath)
},
infoRouer() {
this.tempRoute = Object.assign({}, this.$route)
}
},
mounted() {
this.infoRouer()
}
}
</script>
<style lang="scss" scoped>
.logo-new-2{
width: 217px;
}
.logo-new-1{
width: 221px;
}
.slider {
height: 80px;
transition: 0.5s;
background-color: rgba(0, 0, 0, 0.3);
.slider-body {
width: 80%;
display: flex;
margin: 0 auto;
height: 100%;
justify-content: space-between;
.slider-icon {
flex: 1;
.el-image {
top: 50%;
transform: translateY(-50%);
}
}
.slider-banner {
display: flex;
flex: 2;
.tab-item {
flex: 1;
text-align: center;
display: inline-flex;
align-items: center;
justify-content: flex-end;
.app-link {
color: #fff;
&.router-link-active .tab-link {
color: #af1b40ff !important;
}
}
.tab-link {
font-size: 16px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
cursor: pointer;
}
}
}
}
}
.ts-slider {
height: 60px;
background: #fff;
.slider-body {
.slider-banner {
.tab-item {
.tab-link {
color: #222222;
}
}
}
}
}
.bg_fff {
background: #fff;
.slider-body {
.slider-banner {
.tab-item {
.tab-link {
color: #222222;
}
}
}
}
}
</style>
<template>
<div class="tab">
<span v-for="(item, index) in listData" :key="index" @click="details(item)">
{{item.created_time | formatDate(item.created_time)}}
{{item.title}}
</span>
</div>
</template>
<script>
import cAction from '@action'
export default {
name: 'tab',
data() {
return {
isloading: false,
listData: [],
quiuse: {
page: 1,
per_page: 1,
project_id: 1005
}
}
},
filters: {
formatDate(data) {
const date = new Date(data.replace(/-/g, '/'))
let m = date.getMonth() + 1
m = m < 10 ? '0' + m : m
let d = date.getDate()
d = d < 10 ? '0' + d : d
return m + '.' + d + ''
}
},
methods: {
details(item) {
this.$router.push({
name: 'details-recent-news',
params: { id: item.id }
})
},
setDate() {
this.isloading = true
cAction.News.newsList(this.quiuse)
.then(data => {
this.listData = data.map(k => {
k.hover = false
return k
})
this.isloading = false
})
.catch(e => {
this.isloading = false
console.log(e)
})
}
},
created() {
this.setDate()
}
}
</script>
<style lang="scss" scoped>
.tab {
height: 40px;
background: #af1b40ff;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #fff;
display: flex;
align-items: center;
font-size: 14px;
justify-content: center;
span {
cursor: pointer;
}
}
</style>
<template>
<div class="layout">
<div class="container">
<div class="header">
<Tab />
<Slider />
</div>
<div class="main">
<router-view></router-view>
</div>
</div>
</div>
</template>
<script>
import Tab from './components/tab.vue'
import Slider from './components/slider.vue'
export default {
name: 'layout',
components: {
Tab,
Slider
}
}
</script>
<style lang="scss" scoped>
.layout {
height: 100%;
width: 100%;
.container {
height: 100%;
position: relative;
.header {
position: fixed;
top: 0px;
width: 100%;
padding: 0px;
z-index: 10;
}
.main {
position: relative;
margin-top: 40px;
padding: 0px;
width: 100%;
height: 100%;
}
}
}
</style>
import Vue from 'vue' // 引入vue框架 import Vue from 'vue' // 引入vue框架
import VueRouter from 'vue-router' // 使用 vue-router import router from './router'
import createRouter from './router' // router定义
import VueI18n from 'vue-i18n' // 使用 国际化 import VueI18n from 'vue-i18n' // 使用 国际化
import createI18n from './assets/languages' // 国际化定义 import createI18n from './assets/languages' // 国际化定义
...@@ -9,23 +8,26 @@ import './style.scss' // 公共样式 ...@@ -9,23 +8,26 @@ import './style.scss' // 公共样式
import MetaInfo from 'vue-meta-info' import MetaInfo from 'vue-meta-info'
import Element from 'element-ui' import Element from 'element-ui'
import modules from './modules' import modules from './modules'
import createBefore from './components/beforeEnter' import createBefore from './components/beforeEnter'
import store from './store'
import VueScrollmagic from 'vue-scrollmagic'
import './assets/css/reset.css'
import './assets/css/animate.min.css'
import VueLazyComponent from '@xunlei/vue-lazy-component'
import './icons/index.js'
Vue.use(VueLazyComponent)
/* 兼容处理 start */ /* 兼容处理 start */
/* 处理低版本浏览器支持axios finally问题 */ /* 处理低版本浏览器支持axios finally问题 */
require('promise.prototype.finally').shim() require('promise.prototype.finally').shim()
/* 兼容处理 end */ /* 兼容处理 end */
Vue.use(VueRouter)
const router = createRouter()
Vue.use(VueI18n) Vue.use(VueI18n)
const i18n = createI18n() const i18n = createI18n()
Vue.use(MetaInfo) Vue.use(MetaInfo)
Vue.use(Element, { i18n: (key, value) => i18n.t(key, value) }) Vue.use(Element, { i18n: (key, value) => i18n.t(key, value) })
Vue.use(modules, { i18n }) Vue.use(modules, { i18n })
Vue.use(VueScrollmagic)
/* 设置全局变量 */ /* 设置全局变量 */
window.G = Vue.prototype.$GLOBAL = { window.G = Vue.prototype.$GLOBAL = {
...@@ -40,9 +42,15 @@ Vue.prototype.VueEvent = new Vue() ...@@ -40,9 +42,15 @@ Vue.prototype.VueEvent = new Vue()
/* 创建实例之前,通过导航守卫,处理部分逻辑,如:是否直接进入系统 */ /* 创建实例之前,通过导航守卫,处理部分逻辑,如:是否直接进入系统 */
const before = createBefore() const before = createBefore()
/* 导航守卫 */ /* 导航守卫 */
router.beforeEach((to, from, next) => { router.beforeEach(async (to, from, next) => {
await store.dispatch('generateRoutes')
before.update(to, from, next) before.update(to, from, next)
next() next()
}) })
window.G.$instance_vue = new Vue({ router, i18n, render: (h) => h(App) }).$mount('#app') window.G.$instance_vue = new Vue({
router,
store,
i18n,
render: h => h(App)
}).$mount('#app')
...@@ -4,5 +4,10 @@ export default class LoginModuleAPI extends BaseAPI { ...@@ -4,5 +4,10 @@ export default class LoginModuleAPI extends BaseAPI {
/** /**
* 测试模块获取接口 * 测试模块获取接口
*/ */
getTestInfo = () => this.get('/user_center/get_user_info', {}, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) getTestInfo = () =>
this.get(
'/passport/account/get-user-info',
{},
{ headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
)
} }
<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-for'
})
},
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="contact-banner" :style="{height: heightdy + 'px'}">
<div class="contact-main">
<span class="font-size-24">ezijing</span>
<span class="font-size-40 befo">BEIJING</span>
<span class="font-size-40">清控紫荆(北京)教育科技股份有限公司</span>
<span class="font-size-18">地址:北京市海淀区中关村东路1号院3号楼(清华科技园创业大厦)8层</span>
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<leavex
:imgUrl="require('@/assets/images/mes1.png')"
:imgUrlBg="require('@/assets/images/mesbk.png')"
:leavheight=" heightdy - 60"
/>
</vue-lazy-component>
<vue-lazy-component>
<page-footer />
</vue-lazy-component>
</div>
</template>
<script>
import Leavex from '@/components/leavex/index.vue'
import PageFooter from '@/components/page-footer/index.vue'
import { dyHeight } from '@/pages/homepage/mixins/index.js'
export default {
name: 'contact-us',
mixins: [dyHeight],
components: {
Leavex,
PageFooter
}
}
</script>
<style lang="scss" scoped>
.contact-banner {
width: 100%;
position: relative;
background: url('~@/assets/images/wm.png') no-repeat center center;
background-size: cover;
display: flex;
justify-content: center;
.contact-main {
height: 100%;
width: 80%;
display: flex;
flex-direction: column;
justify-content: center;
color: #fff;
span {
padding: 5px;
}
.befo {
position: relative;
margin-bottom: 10px;
&::before {
content: '';
position: absolute;
bottom: 2px;
height: 3px;
background: #fff;
width: 13%;
}
}
}
}
</style>
<template>
<div class="details-margin-top-120 details-news layout_com_page">
<div class="layout_com_page_banner">
<div class="details-news-body">
<div class="details-news-body-title">
<span class="font-size-30">{{dataNews.title}}</span>
<div class="padd-10">
<span class="font-size-24">{{dataNews.created_time | formatDate}}</span>
<span
class="font-size-24 color-to"
>{{dataNews.created_time | formatDate(dataNews.created_time, true)}}</span>
</div>
<span class="border-2px"></span>
</div>
<div class="news_con_eidt">
<div class="news_con_left">
<div
class="news-video"
v-loading="isloading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
v-html="dataNews.content"
></div>
</div>
</div>
<div class="news_con_eidt_right">
<div class="fixbox butt">
<div class="back" @click="goback">
<i class="el-icon-arrow-left"></i>
<span>返回报名系统</span>
</div>
<button @click="applyConsult">申请咨询</button>
<button @click="many">了解更多</button>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import cAction from '@action'
export default {
name: 'details-recent-news',
data() {
return {
tempRoute: {},
dataNews: {},
isloading: true
}
},
filters: {
formatDate(data, state = null) {
if (!data) return
const date = new Date(data.replace(/-/g, '/'))
const y = date.getFullYear()
let m = date.getMonth() + 1
m = m < 10 ? '0' + m : m
let d = date.getDate()
d = d < 10 ? '0' + d : d
if (state) {
return y
}
return m + '.' + d + '/'
}
},
methods: {
many() {
this.$router.push({
name: 'major-set'
})
},
applyConsult() {
this.$router.push({
name: 'home-page'
})
},
setDate() {
this.isloading = true
cAction.News.news(this.tempRoute.params.id)
.then(data => {
this.dataNews = Object.assign({}, data)
this.isloading = false
})
.catch(e => {
this.isloading = false
console.log(e)
})
},
goback() {
this.$router.push({
name: 'recent-news'
})
}
},
created() {
this.tempRoute = Object.assign({}, this.$route)
this.setDate()
}
}
</script>
<style lang="scss" scoped>
.details-news {
background: #fff;
min-height: 1000px;
height: auto;
.layout_com_page_banner {
height: 100%;
.details-news-body {
width: 80%;
height: 100%;
.details-news-body-title {
display: flex;
margin-top: 50px;
flex-direction: column;
.padd-10 {
padding: 15px 0px;
}
.color-to {
color: #666666ff;
}
.border-2px {
height: 2px;
width: 100%;
display: inline;
background: #ccccccff;
}
}
}
.news_con_eidt_right {
width: 340px;
float: right;
margin-left: -340px;
position: relative;
z-index: 5;
.fixbox {
position: fixed;
top: 38%;
.back {
font-size: 14px;
cursor: pointer;
color: #57acffff;
padding: 20px 0px;
position: relative;
margin-bottom: 20px;
border-top: 1px dotted #c0c0c0;
border-bottom: 1px dotted #c0c0c0;
display: flex;
align-items: center;
justify-content: center;
}
}
.butt {
display: flex;
flex-direction: column;
button {
width: 132px;
height: 54px;
cursor: pointer;
border-radius: 4px;
margin: 20px 50px;
border: 2px solid rgba(175, 27, 64, 1);
color: #af1b40ff;
background: #fff;
&:hover {
background: rgba(175, 27, 64, 1);
color: #fff;
}
}
}
}
.news_con_eidt {
margin-top: 30px;
width: 100%;
float: left;
.news_con_left {
padding-right: 380px;
}
.news-video {
color: rgba(34, 34, 34, 1);
font-weight: 400;
font-size: 18px;
letter-spacing: 2px;
::v-deep img {
transition: all 0.5s;
border: 0;
display: inline-block;
max-width: 100%;
}
}
}
}
}
::v-deep .news-video p {
margin: 10px 0;
font-family: PingFangSC-Regular, PingFang SC;
}
::v-deep .news-video img {
transition: all 0.5s;
border: 0;
display: inline-block;
max-width: 100%;
}
</style>
{
"list": [
{
"key": 0,
"icon": "user",
"label": "忘记密码",
"title": "忘记密码",
"goBackName": "返回报名系统"
}
],
"0": {
"size": "medium",
"header": {
"name": "忘记密码",
"backName": "返回报名系统"
},
"ruleForm": {
"account": "",
"code": "",
"password": "",
"passwordR": ""
},
"ruleFormlabel": "left",
"labelWidth": "90px",
"rules": {
"account": [
{ "required": true, "message": "请填写手机号!", "trigger": "change" }
],
"code": [
{ "required": true, "message": "请填写验证码!", "trigger": "change" }
],
"password": [
{ "required": true, "message": "请填写密码!", "trigger": "change" }
],
"passwordR": [
{ "required": true, "message": "请再次填写密码!", "trigger": "change" }
]
},
"filters": [
{
"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"
},
{
"type": "PagePasInput",
"size": "medium",
"label": "确认密码",
"width": "270px",
"placeholder": "确认 密码",
"querykey": "passwordR"
}
],
"button": [
{
"title": "保存",
"size": "medium",
"event": "keep",
"type": "primary",
"width": "148px",
"disabled": false,
"loading": false
}
]
}
}
<template>
<div class="details-margin-top-120 register">
<div class="register-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: 'forgetPsw',
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-for'
})
},
transferKeep(item) {
this.$refs.form.submit().then(state => {
if (state) {
Login.resetPwd(FilterJson[this.active].ruleForm)
.then(res => {
if (res.code === 0) {
this.$message({
message: '修改密码成功',
type: 'success'
})
this.$router.push({
name: 'apply-for'
})
} else {
this.$message.error(res.msg)
}
})
.catch(e => {
console.log(e)
})
} else {
item.loading = false
}
})
}
}
}
</script>
<style lang="scss" scoped>
.register {
height: 100%;
width: 100%;
.register-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="video-box">
<video
x5-playsinline=""
webkit-playsinline=""
ref="video"
id="myAudio"
style="width: 100%;height: 100%; object-fit: fill;"
src="https://zws-imgs-pub.ezijing.com/static/public/6dbc952a8c3ea2239b8926f1706cbdaa.mp4"
playsinline
></video>
<div class="video-img" v-if="isShowPlay"></div>
<div class="video-img-pop" v-if="isShowPlay"></div>
</div>
<div class="more">
<div class="more-image">
<div class="more-many" @click="many">了解更多</div>
<div class="more-many ts-bu-stop" @click="stop" v-show="!isShowPlay">
<span>学校视频</span>
<img :src="require('@/assets/images/stop.png')" />
</div>
<div class="more-many ts-bu" @click="isShowPlayClick" v-show="isShowPlay">
<span>学校视频</span>
<img :src="require('@/assets/images/play.png')" />
</div>
</div>
<div class="more-title">
<h5>应用心理学硕士</h5>
<h3>加州整合大学</h3>
</div>
</div>
</div>
</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="cap">
<div class="cap-image" ref="cap">
<img
:src="require('@/assets/images/mz.png')"
alt
:class="{'cap-image-hover': hoverCap}"
/>
</div>
<div class="cap-title">
<div class="cap-h3">
<span class="red">学校</span>
<span class="red">介绍</span>
</div>
</div>
<div class="cap-main" ref="counter">
<span>加州整合大学(CaliforniaInstituteofIntegralStudies)始创于1968年,是一所专注于心理学相关专业的非营利性研究型大学。学校位于美国加州湾区核心——旧金山,坐落在Twitter、Uber、Airbnb和市政府、收容所中间,是链接财富与道德、未来与传统的界限和平衡所在。</span>
</div>
<ul class="cap-item-box">
<li>
<div class="title">学校组合</div>
<div class="txt">加州整合大学是全美整合教育研究的创始者和中心,由4个学院共26个专业构成,涵盖了本科、硕士和博士的教学和研究工作</div>
</li>
<li>
<div class="title">学校特色</div>
<div class="txt">绝大多数项目均系围绕心理学理论和临床的细分方向进行专业设置,几十年间,孕育了大批政界、商界、文艺界、学术界的杰出人才。</div>
</li>
<li>
<div class="title">学术影响</div>
<div class="txt">加州整合大学连续15年蝉联美国加州心理咨询师资格考试通过率第1名,每年约有500名专业心理咨询师在这里持证。</div>
</li>
</ul>
<!-- <div class="cap-xx animate__animated animate__fadeInUp animate__delay-0.2s">
<span>在肯塔基、加利福尼亚、亚利桑那、伊利诺伊和佛罗里达等地共有10个校区。其中主校区坐落于美国“蓝草之州”—肯塔基州(Kentucky)康博斯威尔市,占地面积约2465亩,承担本科、硕士和博士的教学和研究工作。在中国已经与武汉大学、华中科技大学、西南财经大学、延边大学、陕西师范大学等40余所大学建立了合作关系。</span>
</div> -->
<!-- <div class="cap-many animate__animated animate__fadeInUp animate__delay-0.2s">
<div class="cap-many-body">
<div
v-for="(item, index) in capList"
:key="index"
:class="['cap-many-img',item.class]"
>
<img :src="item.img" />
<span class="cap-many-padd">
{{itemValue(item.value)}}
<small>{{item.label}}</small>
</span>
<span class="cap-many-yt">{{item.small}}</span>
</div>
</div>
</div> -->
<div class="cap-more">
<el-button type="primary" size="medium" @click="many">了解更多</el-button>
<el-button type="primary" size="medium" @click="applyConsult">申请咨询</el-button>
</div>
</div>
</div>
</div>
</vue-lazy-component>
<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}]"
>
<div class="homepage-son">
<div class="title" ref="wrapper_title">
<span class="animate__animated animate__flipInY">加州整合大学权威认证</span>
</div>
<div class="ul-wrapper">
<div class="li-wrapper aos-init aos-animatea" ref="wrapper_li_01">
<div class="div-item">
<img src="@/assets/images/tir3.png" alt />
<span>中国教育部承认院校</span>
</div>
<div class="div-item">
<img src="@/assets/images/tir1.png" alt />
<span>美国西部院校协会大学委员会认证</span>
</div>
</div>
<!-- <div class="wrapper-center">
<img src="@/assets/images/logofff.png" alt />
</div> -->
<div class="li-wrapper aos-init aos-animateb rz-new-mar" ref="wrapper_li_02">
<div class="div-item">
<img src="@/assets/images/tir2.png" alt />
<span>2020年旧金山最佳在线学位项目 排名第3</span>
<!-- <span>连续 24 年上榜《美国新闻》全美最佳大学指南</span> -->
</div>
<div class="div-item">
<img src="@/assets/images/tir4.png" alt />
<span>2020年心理学在线博士项目 全美排名第14</span>
</div>
</div>
</div>
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<div class="homepage_h_join">
<div class="join_bg"></div>
<div class="text wrap">
<div class="cobo-text">
<div class="cobo-title">
<span>加州整合大学</span>
<span>整合理念</span>
</div>
<el-button @click="applyConsult">申请咨询</el-button>
</div>
<div class="cobo-text">
<h4 class="">——东西方文化的整合</h4>
<h4 class="">——心理学与其他学科之间的整合</h4>
<h4 class="">——个体身体、头脑、心灵、精神面向的整合</h4>
<h4 class="">——心理科学内部理论和临床,以及多种治疗流派的整合</h4>
<!-- <h4 class="no_mar">的学习环境,为学生打造梦想的摇篮,塑造谦卑且具使命感</h4>
<h4>的领导典范,培养具有卓越学术能力的专业人才。</h4>
<div class="cobo-size">
<span
class="cobo-min"
>To foster academic excellence through pre-professional certificates,</span>
<span
class="cobo-min"
>associates, baccalaureate, masters, and doctoral programs through</span>
<span
class="cobo-min"
>traditional, technical and online systems.To provide an environment for</span>
<span
class="cobo-min"
>student success. To uphold the dignity of all persons and value diverse</span>
<span class="cobo-min">perspectives.To model servant leadership through effective</span>
<span class="cobo-min">stewardship of resources.</span>
</div> -->
</div>
</div>
</div>
</vue-lazy-component>
<div ref="leavex">
<leavex
:imgUrl="require('@/assets/images/mes1.png')"
:imgUrlBg="require('@/assets/images/mesbk.png')"
:leavheight=" heightdy - 60"
/>
</div>
<vue-lazy-component>
<page-footer />
</vue-lazy-component>
</div>
</template>
<script>
import Leavex from '@/components/leavex/index.vue'
import PageFooter from '@/components/page-footer/index.vue'
import { dyHeight } from './mixins/index.js'
import TWEEN from 'tween.js'
export default {
name: 'homepage',
mixins: [dyHeight],
components: {
Leavex,
PageFooter
},
data() {
return {
// capList: [
// {
// class: 'cap-many-one',
// img: require('@/assets/images/icon1.png'),
// value: 'animatedNum1',
// label: '个国家',
// small: '生源来自'
// },
// {
// class: 'cap-many-two',
// img: require('@/assets/images/icon2.png'),
// value: 'animatedNum2',
// label: '个',
// small: '学校专业'
// },
// {
// class: 'cap-many-three',
// img: require('@/assets/images/icon3.png'),
// value: 'animatedNum3',
// label: '+ 名',
// small: '全职教员'
// },
// {
// class: 'cap-many-four',
// img: require('@/assets/images/icon4.png'),
// value: 'animatedNum4',
// label: '万+ 名',
// small: '在校学生'
// }
// ],
input: '',
num1: 0,
isShowPlay: true,
animatedNum1: 0,
num2: 0,
animatedNum2: 0,
num3: 0,
animatedNum3: 0,
num4: 0,
animatedNum4: 0,
hoverCap: false,
hoverWrapperTitle: false,
hoverWrapperLi01: false,
hoverWrapperLi02: false
}
},
watch: {
num1: function (newValue, oldValue) {
var vm = this
function animate(time) {
window.requestAnimationFrame(animate)
TWEEN.update(time)
}
new TWEEN.Tween({ tweeningNumber: oldValue })
.easing(TWEEN.Easing.Quadratic.Out)
.to({ tweeningNumber: newValue }, 2000)
.onUpdate(function () {
vm.animatedNum1 = this.tweeningNumber.toFixed(0)
})
.start()
animate()
},
num2: function (newValue, oldValue) {
var vm = this
function animate(time) {
window.requestAnimationFrame(animate)
TWEEN.update(time)
}
new TWEEN.Tween({ tweeningNumber: oldValue })
.easing(TWEEN.Easing.Quadratic.Out)
.to({ tweeningNumber: newValue }, 2000)
.onUpdate(function () {
vm.animatedNum2 = this.tweeningNumber.toFixed(0)
})
.start()
animate()
},
num3: function (newValue, oldValue) {
var vm = this
function animate(time) {
window.requestAnimationFrame(animate)
TWEEN.update(time)
}
new TWEEN.Tween({ tweeningNumber: oldValue })
.easing(TWEEN.Easing.Quadratic.Out)
.to({ tweeningNumber: newValue }, 2000)
.onUpdate(function () {
vm.animatedNum3 = this.tweeningNumber.toFixed(0)
})
.start()
animate()
},
num4: function (newValue, oldValue) {
var vm = this
function animate(time) {
window.requestAnimationFrame(animate)
TWEEN.update(time)
}
new TWEEN.Tween({ tweeningNumber: oldValue })
.easing(TWEEN.Easing.Quadratic.Out)
.to({ tweeningNumber: newValue }, 2000)
.onUpdate(function () {
vm.animatedNum4 =
Math.round((this.tweeningNumber.toFixed(0) / 10000) * 100) / 100
})
.start()
animate()
}
},
methods: {
itemValue(key) {
return this[key]
},
dyScroll(present, scrollTop) {
if (this.$refs.cap && !this.hoverCap) {
const topcap = this.getElementTop(this.$refs.cap)
this.hoverCap = !!(present > topcap + 100)
}
if (this.$refs.wrapper_title && !this.hoverWrapperTitle) {
const topcap = this.getElementTop(this.$refs.wrapper_title)
this.hoverWrapperTitle = !!(present > topcap + 100)
}
if (this.$refs.wrapper_li_01 && !this.hoverWrapperLi01) {
const topcap = this.getElementTop(this.$refs.wrapper_li_01)
this.hoverWrapperLi01 = !!(present > topcap + 100)
}
if (this.$refs.wrapper_li_02 && !this.hoverWrapperLi02) {
const topcap = this.getElementTop(this.$refs.wrapper_li_02)
this.hoverWrapperLi02 = !!(present > topcap + 100)
}
},
setAnimatedNum() {
this.num1 = 52
this.num2 = 110
this.num3 = 700
this.num4 = 12000
},
isShowPlayClick() {
this.isShowPlay = false
this.$refs.video.play()
this.$refs.video.onended = () => {
this.isShowPlay = true
}
},
stop() {
this.isShowPlay = !this.isShowPlay
this.$refs.video.pause()
},
handleScroll() {
this.setAnimatedNum()
},
many() {
this.$router.push({
name: 'major-set'
})
},
applyConsult(state) {
if (!state) {
this.goAssignBlock('leavex', 50)
} else {
setTimeout(() => {
this.goAssignBlock('leavex', 50)
}, 500)
}
},
goAssignBlock(el, speed) {
const windowH = window.innerHeight
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
let currentTop = scrollTop
let requestId
function step() {
if (scrollTop < top) {
if (currentTop <= top) {
window.scrollTo(0, currentTop)
requestId = window.requestAnimationFrame(step)
} else {
window.cancelAnimationFrame(requestId)
}
currentTop += speed
} else {
if (top <= currentTop) {
window.scrollTo(0, currentTop - speed)
requestId = window.requestAnimationFrame(step)
} else {
window.cancelAnimationFrame(requestId)
}
currentTop -= speed
}
}
window.requestAnimationFrame(step)
}
},
beforeRouteEnter(to, from, next) {
if (from.name === 'details-recent-news') {
next(vm => vm.applyConsult(true))
} else {
next()
}
}
}
</script>
<style lang="scss" scoped>
.color-fff{
background: #fff;
}
.homepage-banner {
width: 100%;
position: relative;
background: url('~@/assets/images/home.png') no-repeat center center;
background-size: cover;
display: flex;
justify-content: center;
.video-box {
z-index: 2;
width: 100%;
position: relative;
height: 100%;
video {
display: inline-block;
vertical-align: baseline;
}
.video-img {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
z-index: 3;
background: url('~@/assets/images/home.png') no-repeat;
background-size: 100% 100%;
cursor: pointer;
}
.video-img-pop{
position: absolute;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.3);
z-index: 4;
}
}
.more {
width: 80%;
z-index: 3;
display: flex;
justify-content: space-between;
margin: 0 auto;
align-items: flex-end;
position: absolute;
bottom: 30%;
.more-image {
height: 100%;
display: flex;
.more-many {
min-height: 54px;
width: 132px;
display: inline-flex;
align-items: center;
justify-content: center;
margin-right: 40px;
color: #fff;
font-size: 18px;
border: 1px solid;
border-radius: 5px;
cursor: pointer;
color: rgba(255, 255, 255, 1);
font-family: PingFangSC-Regular, PingFang SC;
}
.ts-bu {
width: 138px;
background: #af1b40ff;
border: 0px;
span {
padding-right: 10px;
}
}
.ts-bu-stop {
span {
padding-right: 10px;
}
}
.video-play {
cursor: pointer;
}
}
}
.more-title {
h5 {
font-size: 20px;
font-family: SourceHanSansSC-Medium, SourceHanSansSC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
text-align: right;
padding-right: 5px;
}
h3 {
font-size: 42px;
font-family: SourceHanSansSC-Medium, SourceHanSansSC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
}
}
}
.homepage-main {
width: 100%;
position: relative;
overflow: hidden;
background: url(https://zws-imgs-pub.ezijing.com/static/public/bc30fb498f7a7280bb822f22a20ccdeb.png)
no-repeat center center;
background-size: cover;
display: flex;
justify-content: center;
.cap {
width: 100%;
margin: 0 auto;
padding: 40px 0px 40px 0px;
.cap-image {
display: flex;
align-items: center;
justify-content: center;
transition: all 0.9s;
img {
height: 100%;
width: 70%;
transition: all 0.9s;
}
}
.cap-image-hover {
width: 152px !important;
height: 60px !important;
}
.cap-title {
display: flex;
align-items: center;
justify-content: center;
padding: 30px 0px 34px 0px;
.cap-h3 {
display: flex;
font-size: 40px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(34, 34, 34, 1);
position: relative;
&::before {
content: '';
position: absolute;
bottom: -4px;
height: 3px;
background: #af1b40;
width: 100%;
}
.red {
color: #af1b40;
}
}
}
.cap-main {
display: flex;
flex-wrap: wrap;
width: 1000px;
margin: 0 auto;
span {
font-size: 18px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: rgba(34, 34, 34, 1);
}
}
.cap-many {
display: none;
padding: 40px 0px 0px 0px;
.cap-many-body {
display: flex;
width: 100%;
justify-content: center;
.cap-many-img {
display: flex;
flex-direction: column;
align-items: center;
min-width: 250px;
.cap-many-padd {
padding-top: 20px;
color: #af1b40;
display: inline-flex;
font-size: 50px;
align-items: baseline;
justify-content: center;
small {
padding-left: 5px;
font-size: 24px;
}
}
.cap-many-yt {
font-size: 24px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(34, 34, 34, 1);
letter-spacing: 10px;
display: inline-flex;
align-items: center;
justify-content: center;
}
}
}
}
.cap-xx {
display: none;
flex-wrap: wrap;
width: 80%;
padding-top: 30px;
margin: 0 auto;
span {
font-size: 18px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(102, 102, 102, 1);
}
}
.cap-more {
width: 80%;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
padding-top: 30px;
.el-button {
margin: 0px 52px;
padding: 19px 37px;
font-size: 18px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 1);
}
}
}
}
.study-show {
.cap-many,
.cap-xx {
display: flex !important;
}
}
.wrapper-show {
.aos-animatea {
transform: perspective(2500px) rotateY(0) !important;
}
}
.wrapper-show-title {
.title {
span {
display: inline-block !important;
}
}
}
.wrapper-show-a {
.aos-animateb {
transform: perspective(2500px) rotateY(0) !important;
}
}
.homepage-wrapper {
width: 100%;
position: relative;
background: url('~@/assets/images/tir.png') no-repeat center center;
background-size: cover;
display: flex;
justify-content: center;
padding-bottom: 30px;
.homepage-son {
width: 80%;
margin: 0 auto;
position: relative;
.title {
font-weight: 700;
margin: 80px 0 0 0;
height: 40px;
font-size: 40px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 40px;
position: relative;
text-align: center;
span {
display: none;
position: relative;
&::before {
content: '';
position: absolute;
bottom: -8px;
height: 3px;
background: #ffffff;
width: 100%;
}
}
}
.aos-init {
transition-duration: 1s;
backface-visibility: hidden;
transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
transition-property: transform;
transform: perspective(2500px) rotateY(100deg);
}
.ul-wrapper {
margin: 55px 0 0 0;
.li-wrapper {
display: flex;
justify-content: space-between;
.div-item {
display: flex;
align-items: center;
flex-direction: column;
img {
padding-bottom: 20px;
width: 410px;
}
span {
height: 33px;
font-size: 22px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 33px;
display: inline-block;
text-align: center;
min-width: 460px;
}
}
}
.wrapper-center {
margin: 0px 0px 34px 0px;
display: flex;
align-items: center;
justify-content: center;
}
}
}
}
.homepage_h_join {
position: relative;
padding: 100px 0;
overflow: hidden;
background: #202020;
z-index: 5;
.join_bg {
background: url('~@/assets/images/cfbk.png');
z-index: 1;
background-size: cover;
background-repeat: no-repeat;
background-position: center top;
position: absolute;
top: 0px;
left: 0px;
height: 260%;
width: 100%;
background-attachment: fixed;
}
.text {
position: relative;
z-index: 2;
.cobo-text {
flex: 1;
h4 {
width: 486px;
font-size: 22px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: rgba(255, 255, 255, 1);
display: flex;
flex-wrap: wrap;
padding-bottom: 11px;
}
.cobo-size {
display: flex;
flex-direction: column;
.cobo-min {
color: #ccccccff;
font-size: 14px;
display: inline-flex;
}
}
.cobo-title {
display: flex;
padding-bottom: 52px;
flex-direction: column;
span {
font-size: 40px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
}
}
::v-deep .el-button {
height: 54px;
color: #af1b40;
width: 132px;
}
}
}
.wrap {
width: 80%;
margin-left: auto;
display: flex;
justify-content: center;
align-items: center;
margin-right: auto;
}
}
::v-deep input::-webkit-input-placeholder {
font-size: 18px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 1);
}
::v-deep input::-moz-input-placeholder {
font-size: 18px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 1);
}
::v-deep input::-ms-input-placeholder {
font-size: 18px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 1);
}
.video-scr {
position: absolute;
top: 0px;
width: 100%;
height: 100%;
}
.no_mar {
padding-bottom: 5px !important;
}
.cap-item-box{
width: 1000px;
margin: 0 auto;
display: flex;
justify-content: space-between;
padding-top: 40px;
li{
position: relative;
width: 320px;
height: 254px;
background: url(https://zws-imgs-pub.ezijing.com/static/public/b51edd746a6a3bf1a85a97185b9177ee.png);
background-size: 100% 100%;
.title{
position: absolute;
top: 10px;
left: 30px;
color: #fff;
font-size: 18px;
}
.txt{
padding-top: 60px;
width: 260px;
margin: 0 auto;
font-size: 18px;
color: #AF1B40;
line-height: 30px;
}
}
}
.rz-new-mar{
margin-top: 60px;
}
</style>
export default {
data() {
return {
heightdy: '',
scrollTop: '',
navigation: false,
ones: true
}
},
methods: {
getElementTop(element) {
if (!element) return
var actualTop = element.offsetTop
var current = element.offsetParent
while (current !== null) {
actualTop += current.offsetTop
current = current.offsetParent
}
return actualTop
},
getHeight() {
const height = document.documentElement
? document.documentElement.clientHeight
: window.innerHeight
this.heightdy = height - 40
},
watchScroll() {
this.scrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop
if (this.scrollTop > 0) {
this.navigation = true
} else {
this.navigation = false
}
var present = window.innerHeight + this.scrollTop
var top = this.getElementTop(this.$refs.counter)
if (present > top + 150 && this.ones) {
this.ones = false
if (this.handleScroll) {
this.handleScroll()
}
}
if (this.dyScroll) {
this.dyScroll(present, this.scrollTop)
}
}
},
created() {
window.addEventListener('resize', this.getHeight)
this.getHeight()
},
mounted() {
this.watchScroll()
window.addEventListener('scroll', this.watchScroll, true)
},
destroyed() {
window.removeEventListener('resize', this.getHeight)
window.removeEventListener('scroll', this.watchScroll)
}
}
import dyHeight from './dyHeight.js'
export { dyHeight }
<template>
<el-form ref="setAccountform" :model="setAccount" :rules="accountRules">
<el-form-item prop="user">
<el-input
class="self-input"
v-model="setAccount.user"
type="text"
placeholder="账号"
@keyup.enter.native="onSubmitSetAccount"
>
<i slot="prefix" class="el-input__icon el-icon-self-character"></i>
</el-input>
</el-form-item>
<el-form-item prop="pwd" style="margin-bottom: 4px;">
<el-input
v-model="setAccount.pwd"
type="password"
placeholder="密码"
@keyup.enter.native="onSubmitSetAccount"
>
<i slot="prefix" class="el-input__icon el-icon-self-mima"></i>
</el-input>
</el-form-item>
<el-form-item prop="isRemember" style="margin-bottom: 0px; text-align: left;">
<el-checkbox v-model="setAccount.isRemember" label="记住我" name="type"></el-checkbox>
</el-form-item>
<el-form-item>
<el-button type="primary" class="login-btn" @click="onSubmitSetAccount">登录</el-button>
<el-button type="primary" class="login-btn" @click="regedit">注册</el-button>
</el-form-item>
<slot name="text"></slot>
</el-form>
</template>
<script>
import Login from './action/index.js'
export default {
name: 'NormalLogin',
componentName: 'NormalLogin',
props: {
attr: {
type: Object,
required: false,
default() {
return {}
}
},
query: {
type: Object,
required: false,
default() {
return {}
}
}
},
data() {
return {
setAccount: {},
accountRules: {
user: [
{
required: true,
message: '请输入账号',
trigger: 'blur'
}
],
pwd: [
{
required: true,
message: '请输入密码',
trigger: 'blur'
}
]
}
}
},
mounted() {},
methods: {
onSubmitSetAccount() {
this.$refs.setAccountform.validate(valid => {
if (valid) {
Login.userLogin({
password: this.setAccount.pwd,
account: this.setAccount.user,
RememberMe: this.setAccount.isRemember ? '1' : '2',
service: 'https://cu.ezijing.com'
})
.then(res => {
if (res.code !== 0) {
this.$message({
type: 'error',
message: res.msg
})
return
}
this.$router.push({
name: 'apply'
})
})
.catch(e => {
this.$message({
type: 'error',
message: e.message
})
})
} else {
this.$message.error('请输入')
return false
}
})
},
regedit() {
this.$router.push({
name: 'register'
})
}
}
}
</script>
<style lang="scss" scoped>
.login-btn {
margin-top: 0;
width: 45%;
}
</style>
import BaseACTION from '@/action/base_action'
import { Login } from '../api'
export default class LoginAction extends BaseACTION {
/**
* 当前登录用户,检测是否该系统有权限
*/
getInfo () { return Login.getInfo().then(res => res) }
/**
* 调用登录接口
*/
userLogin (obj) {
return Login.userLogin(obj).then(res => {
if (res && res.url === undefined) {
res.url = webConf.others.url || ''
}
return res
})
}
/**
* 调用验证码登录
*/
codeLogin (obj) {
return Login.userLogin(obj).then(res => {
if (res && res.url === undefined) {
res.url = webConf.others.url || ''
}
return res
})
}
/* 调用退出登录接口 */
outLogin () { return Login.outLogin().then(res => res) }
/**
* 调用获取验证码
*/
sendCode (obj) { return Login.sendCode(obj).then(res => res) }
/**
* 调用发送重置密码验证码
*/
sendResetPwdCode (obj) { return Login.sendResetPwdCode(obj).then(res => res) }
/**
* 调用重置密码验证码确认
*/
validateCode (obj) { return Login.validateCode(obj).then(res => res) }
/**
* 注册
*/
register(obj) { return Login.register(obj).then(res => res) }
/**
* 调用重置密码
*/
resetPwd (obj) { return Login.resetPwd(obj).then(res => res) }
/**
* 清空cookies
*/
clearCookies (obj) { return Login.clearCookies(obj).then(res => res) }
}
import LoginAction from './LoginAction.js'
const Login = new LoginAction()
export default Login
import LoginAPI from './login_api'
const Login = new LoginAPI(webConf)
export {
Login
}
import BaseAPI from '@/api/base_api'
export default class LoginAPI extends BaseAPI {
/**
* 调用登录接口
* @param {[string]} obj.login_name 用户名
* @param {[string]} obj.password 密码 md5加密
* @param {[string]} obj.service 传当前域名
*/
userLogin = (obj = {}) => this.post('/passport/rest/login', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 调用退出登录
*/
outLogin = () => this.get('/passport/rest/logout', {}, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 当前登录用户,检测是否该系统有权限
*/
getInfo = () => this.get('/passport/account/get-user-info', {}, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 发送验证码
* @param {[string]} obj.mobile 手机号
* @param {[string]} obj.service 传当前域名
*/
sendCode = (obj = {}) => this.post('/usercenter/user/send-code', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 验证码登录
* @param {[string]} obj.mobile 手机号
* @param {[string]} obj.code 验证码
* @param {[string]} obj.service 传当前域名
*/
codeLogin = (obj = {}) => this.post('/passport/rest/login', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 发送重置密码验证码
* @param {[string]} obj.contact 手机号/邮箱
* @param {[string]} obj.source_type 值为 3
* @param {[string]} obj.service 传当前域名
*/
sendResetPwdCode = (obj = {}) => this.post('/usercenter/user/send-code', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 重置密码验证码确认
* @param {[string]} obj.contact 手机号/邮箱
* @param {[string]} obj.code 验证码
* @param {[string]} obj.service 传当前域名
*/
validateCode = (obj = {}) => this.post('/passport/user_center/validate_code', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 重置密码
* @param {[string]} obj.contact 手机号/邮箱
* @param {[string]} obj.code 验证码
* @param {[string]} obj.new_password 新的密码
* @param {[string]} obj.service 传当前域名
*/
resetPwd = (obj = {}) => this.post('/usercenter/user/update-pwd', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 个人信息 - 修改密码
* @param {[string]} obj.old_password 验证码
* @param {[string]} obj.new_password 新的密码
* @param {[string]} obj.service 传当前域名
*/
updatePwd = (obj = {}) => this.post('/usercenter/user/change-pwd-by-cookie', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/**
* 清空所有cookies
*/
clearCookies = (obj = {}) => this.post('https://learn-pbcsf.ezijing.com/api/clear/cookie', obj, { headers: { 'Content-Type': 'multipart/form-data' } })
register = (obj = {}) => this.post('/usercenter/user/register', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
}
<template>
<div class="p-con">
<div class="main">
<div class="bg"></div>
<div class="content">
<div class="title">
<span class="icon"></span>
<p>报名系统</p>
</div>
<div class="login">
<normal-login>
<div class="text" slot="text">
<span class="forget-pwd">
<div class="router-link-class" @click="dialogMsg">忘记密码</div>
</span>
</div>
</normal-login>
</div>
</div>
</div>
</div>
</template>
<script>
import NormalLogin from './components/NormalLogin.vue'
export default {
components: {
NormalLogin
},
methods: {
dialogMsg() {
this.$router.push({
name: 'forgetPsw'
})
}
}
}
</script>
<style lang="scss" scoped>
.p-con {
position: relative;
width: 100%;
height: 100%;
background: #fff;
}
/* 头部 */
.header {
max-width: 1000px;
padding: 15px 0;
margin: 0 auto;
}
.logo {
height: 40px;
margin-left: 20px;
background: url('~@/assets/images/logo.png') no-repeat;
background-size: contain;
}
/* 底部 */
/* 中间部分 */
.main {
position: relative;
}
.main .bg {
height: 360px;
background: url('~@/assets/images/login_bg.png') no-repeat center bottom;
background-size: cover;
}
.main .content {
max-width: 700px;
min-width: 320px;
position: relative;
margin: -200px auto 0;
}
.p-con .router-link-class {
color: #999;
text-decoration: none;
}
.p-con .main .content .login {
background-color: #fff;
box-sizing: border-box;
}
.p-con .main .content .text {
margin-top: -16px;
color: #999;
font-size: 16px;
line-height: 1.5;
overflow: hidden;
}
.p-con .main .content .text .code-login {
float: left;
cursor: pointer;
}
.p-con .main .content .text .forget-pwd {
float: right;
cursor: pointer;
}
.login-footer {
margin-top: 20px;
text-align: center;
padding: 10px;
color: #898989;
font-size: 12px;
line-height: 1.5;
}
/* pc */
@media (min-width: 700px) {
.main .logo {
display: none;
}
.main .content {
display: flex;
box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.3);
}
.main .title {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 260px;
background-color: #bb133e;
color: #fff;
}
.main .title .icon {
background: url('~@/assets/images/logofff.png') no-repeat center center;
background-size: contain;
width: 166px;
height: 40px;
margin-bottom: 30px;
}
.main .title p {
font-size: 20px;
line-height: 28px;
color: #fff;
margin: 0;
}
.main .login {
flex: 1;
min-height: 300px;
padding: 44px 80px 0;
}
}
/* mobile */
@media (max-width: 699px) {
.header {
// display: none;
::v-deep.tap-language-switch {
right: 0;
}
}
.main .bg {
height: 215px;
background: url('~@/assets/images/bg-mobile.png') no-repeat center bottom;
background-size: auto 100%;
}
.main .logo {
height: 30px;
margin-bottom: 15px;
}
.main .content {
margin: -180px 20px 0;
}
.main .title {
display: flex;
justify-content: center;
padding: 10px;
box-sizing: border-box;
}
.main .title p {
font-size: 20px;
line-height: 28px;
color: #fff;
margin: 0;
}
.main .login {
padding: 15px 20px;
box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.3);
}
}
</style>
{
"1": [
{
"class": "li wow bounceInLeft animated vi delay1 duration2",
"class2": "li2 wow bounceInLeft animated vi delay1 duration2 animated",
"span": "Integral Knowing and Critical Discourse",
"span1": "整合心理学与批判性思考",
"li1stateLeft": false,
"li1stateRight": false,
"name": "li1stateLeft",
"ref": "li01",
"top1": "57px",
"right1": "277px",
"top2": "40px",
"right2": "340px"
},
{
"class": "li wow bounceInLeft animated vi delay3 duration2",
"class2": "li2 wow bounceInLeft animated vi delay3 duration2 animated",
"span": "The Self as Inquiry",
"span1": "自我探究",
"li1stateLeft": false,
"li1stateRight": false,
"name": "li1stateRight",
"ref": "li02",
"top1": "152px",
"right1": "362px",
"top2": "145px",
"right2": "230px"
},
{
"class": "li wow bounceInLeft animated vi delay5 duration2",
"class2": "li2 wow bounceInLeft animated vi delay5 duration2 animated",
"span": "Couples as Inquiry",
"span1": "伴侣探究",
"li1stateLeft": false,
"li1stateRight": false,
"name": "li1stateLeft",
"ref": "li03",
"top1": "249px",
"right1": "414px",
"top2": "233px",
"right2": "471px"
},
{
"class": "li wow bounceInLeft animated vi delay7 duration2",
"class2": "li2 wow bounceInLeft animated vi delay7 duration2 animated",
"span": "Families as Inquiry",
"span1": "家庭探究",
"name": "li1stateRight",
"li1stateLeft": false,
"li1stateRight": false,
"ref": "li04",
"top1": "366px",
"right1": "448px",
"top2": "355px",
"right2": "320px"
},
{
"class": "li wow bounceInLeft animated vi delay9 duration2",
"class2": "li2 wow bounceInLeft animated vi delay9 duration2 animated",
"span": "Trauma",
"span1": "创伤",
"li1stateLeft": false,
"li1stateRight": false,
"name": "li1stateLeft",
"ref": "li05",
"top1": "481px",
"right1": "486px",
"top2": "467px",
"right2": "546px"
},
{
"class": "li wow bounceInLeft animated delay11 vi duration2",
"class2": "li2 wow bounceInLeft animated vi delay11 duration2 animated",
"span": "Sexuality",
"span1": "性的探究",
"li1stateLeft": false,
"name": "li1stateRight",
"li1stateRight": false,
"ref": "li06",
"top1": "606px",
"right1": "562px",
"top2": "595px",
"right2": "440px"
}
],
"2": [
{
"class": "li wow bounceInLeft animated vi delay1 duration2",
"class2": "li2 wow bounceInLeft animated vi delay1 duration2 animated",
"span": "Ethical Practice",
"span1": "伦理实践",
"li1stateLeft": false,
"li1stateRight": false,
"name": "li1stateLeft",
"ref": "li01",
"top1": "57px",
"right1": "277px",
"top2": "40px",
"right2": "340px"
},
{
"class": "li wow bounceInLeft animated vi delay3 duration2",
"class2": "li2 wow bounceInLeft animated vi delay3 duration2 animated",
"span": "Coaching Skills 1",
"span1": "教练技能1",
"li1stateLeft": false,
"li1stateRight": false,
"name": "li1stateRight",
"ref": "li02",
"top1": "152px",
"right1": "362px",
"top2": "145px",
"right2": "230px"
},
{
"class": "li wow bounceInLeft animated vi delay5 duration2",
"class2": "li2 wow bounceInLeft animated vi delay5 duration2 animated",
"span": "Leadership",
"span1": "领导力",
"li1stateLeft": false,
"li1stateRight": false,
"name": "li1stateLeft",
"ref": "li03",
"top1": "249px",
"right1": "414px",
"top2": "233px",
"right2": "471px"
},
{
"class": "li wow bounceInLeft animated vi delay7 duration2",
"class2": "li2 wow bounceInLeft animated vi delay7 duration2 animated",
"span": "Coaching Skills 2",
"span1": "教练技能2",
"name": "li1stateRight",
"li1stateLeft": false,
"li1stateRight": false,
"ref": "li04",
"top1": "366px",
"right1": "448px",
"top2": "355px",
"right2": "320px"
},
{
"class": "li wow bounceInLeft animated vi delay9 duration2",
"class2": "li2 wow bounceInLeft animated vi delay9 duration2 animated",
"span": "Group Process",
"span1": "团体动力",
"li1stateLeft": false,
"li1stateRight": false,
"name": "li1stateLeft",
"ref": "li05",
"top1": "481px",
"right1": "486px",
"top2": "467px",
"right2": "546px"
},
{
"class": "li wow bounceInLeft animated delay11 vi duration2",
"class2": "li2 wow bounceInLeft animated vi delay11 duration2 animated",
"span": "Capstone Project",
"span1": "顶点课程",
"li1stateLeft": false,
"name": "li1stateRight",
"li1stateRight": false,
"ref": "li06",
"top1": "606px",
"right1": "562px",
"top2": "595px",
"right2": "440px"
}
]
}
<template>
<div class="layout_com_page">
<vue-lazy-component>
<div class="layout_com_page_banner" :style="{height: heightdy + 'px'}">
<div
class="major-banner"
v-for="(item, index) in bannerList"
:key="index"
@mouseenter="outStyle(item, index)"
:class="{'min-wd': item.minWidth, 'blacker': !item.bgShow}"
:style="{ backgroundImage:'url(' + item.img + ')' }"
>
<div class="major-banner-main">
<span>{{item.title}}</span>
<span class="pad">{{item.label}}</span>
</div>
<div class="major-banner-bg" v-if="item.bgShow"></div>
</div>
<div class="major-banner-title">
<span>加州整合大学</span>
<span class="font-size-40">
应用心理学硕士
<!-- <small>-</small>蒙台梭利教育硕士 -->
</span>
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<div class="layout_com_page_banner major_padd back_fff">
<div class="major-dl">
<div
class="major-dl1"
ref="dl1"
:class="{'animate__animated animate__fadeInUp show-flex':houseShowbt}"
>
<div class="major-dl1-title">
<span>排名第1</span>
<span class="dl1_span">2020年加州最佳心理咨询学院</span>
</div>
<img :src="require('@/assets/images/major-set/dl1.png')" alt />
</div>
<div class="major-dl1 major-dl2" ref="dl2" :class="{'show-flex': houseShowbt}">
<div
class="major-dl2-image dl2"
:class="{'animate__animated animate__fadeInUp delay3':houseShowbt}"
>
<img :src="require('@/assets/images/major-set/dl2.png')" alt />
<span>全美第4</span>
<span class="font-size-24">2020年临床心理咨询专业排名</span>
</div>
<div
class="major-dl2-image dl3 padd-left-40 ts-ma"
:class="{'animate__animated animate__fadeInTopRight animate__delay-1.5s show-flex':houseShowbt}"
>
<img :src="require('@/assets/images/major-set/dl3.png')" alt />
<div class="dl2-span">
<span>加州第1</span>
<span class="font-size-24">2020年临床心理</span>
<span class="font-size-24">咨询专业排名</span>
</div>
</div>
</div>
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<div class='pics'>
<div class='left'>
<img src="@/assets/images/major-set/left.png" alt="">
</div>
<div class='mid'>
<div class='p1' >
<div class="txt">CIIS终身教授、与马斯洛等人共同创建后人本心理学 斯坦·葛罗夫</div>
<img src="@/assets/images/major-set/mid-1.png" alt="">
</div>
<div class='p2'>
<div class="txt top-n">正念之父 乔·卡巴金</div>
<img src="@/assets/images/major-set/mid-2.png" alt="">
</div>
<div class='p3'>
<div class="txt">《狂喜之后》《踏上心灵幽静》作者、正念导师 杰克·康菲尔德</div>
<img src="@/assets/images/major-set/mid-3.png" alt="">
</div>
<div class='p7'>
<div class="txt2">国内外心理界大咖联袂推荐</div>
<img src="@/assets/images/major-set/mid-7.png" alt="">
</div>
<div class='p4'>
<div class="txt">澳门城市大学教授、华南师范大学教授 申荷永</div>
<img src="@/assets/images/major-set/mid-4.png" alt="">
</div>
<div class='p5'>
<div class="txt">华语世界深具影响力个人成长作家、《遇见未知的自己》作者 张德芬</div>
<img src="@/assets/images/major-set/mid-5.png" alt="">
</div>
<div class='p6'>
<div class="txt top-n">壹心理创始人 黄伟强</div>
<img src="@/assets/images/major-set/mid-6.png" alt="">
</div>
</div>
<div class='right'>
<div>
<img src="@/assets/images/major-set/right-1.png" alt="">
</div>
<div>
<img src="@/assets/images/major-set/right-2.png" alt="">
</div>
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<div class="layout_com_page_banner major-kc-bg" :style="{'height': 700 + 'px'}">
<div class="major-kc-left">
<button @mouseover="buhover(1)" :class="{'hover-bt': course === 1}">第一学年</button>
<button @mouseover="buhover(2)" :class="{'hover-bt': course === 2}">第二学年</button>
</div>
<div class="major-kc-right">
<div class="major-kc-svg">
<img :src="require('@/assets/images/major-set/xl1.png')" alt />
</div>
<ul class="ul-1">
<li
v-for="(item, index) in FilterJson[course]"
:class="[{'show_anima_li_left': item.li1stateLeft, 'show_anima_li_right': item.li1stateRight}, item.class]"
:key="index"
:ref="item.ref"
:style="{top: item.top1, right: item.right1}"
>
<div class="div-son"></div>
</li>
</ul>
<ul class="ul-2">
<li
v-for="(item, index) in FilterJson[course]"
:class="[{'show_anima_li_left': item.li1stateLeft, 'show_anima_li_right': item.li1stateRight}, item.class2]"
:key="index"
:style="{top: item.top2, right: item.right2}"
>
<span class="yw">{{item.span}}</span>
<span>{{item.span1}}</span>
</li>
</ul>
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<div class="layout_com_page_banner major-kc-sy" :style="{'min-height':700 + 'px'}">
<div class="sy-body">
<div
class="sy-banner"
v-for="(item, index) in timeList"
:key="index"
:class="{'blacker-sy': !item.bgShow}"
@mouseenter="outsyStyle(item, index)"
>
<div class="sy-banner-bg sy-banner-header">
<img :src="require('@/assets/images/major-set/blxbjh.png')" />
<span class="sy-banner-bg-layout">{{item.name}}</span>
</div>
<div class="sy-banner-bg sy-banner-main">
<img :src="item.img" />
<div class="sy-banner-bg-layout">
<span class="font-size-18">{{item.title}}</span>
<span class="font-size-18">{{item.title1}}</span>
<span class="font-size-18">{{item.title2}}</span>
<span class="font-size-18">{{item.title3}}</span>
<span class="font-size-18">{{item.title4}}</span>
<span class="font-size-18">{{item.title5}}</span>
</div>
<div class="sy-banner-bg-00" v-if="!item.bgShow"></div>
</div>
</div>
</div>
<div class="sy-footer">
<img :src="require('@/assets/images/major-set/su.png')" />
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<div class="layout_com_page_banner major-kc-wm" :style="{'min-height':700 + 'px'}">
<h3>
<span>师资介绍</span>
</h3>
<div class="major-kc-wm-body" @mouseover="mouseOver" @mouseleave="mouseLeave">
<swiper ref="mySwiper" :options="swiperOptions">
<template v-for="(item, index) in wmList">
<swiper-slide :key="index">
<div class="major-kc-wm-list">
<div class="list-img">
<img :src="item.img" />
</div>
<div class="list-body">
<span class="font-size-18 nowrap title">{{item.title}}</span>
<span class="font-size-14 wm-red zs">{{item.label}}</span>
<template v-for="(sItem, sIndex) in item.main">
<span :key="sIndex+'-'+index" class="font-size-14 mian-txt">{{sItem}}</span>
</template>
</div>
</div>
</swiper-slide>
</template>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
<!-- <div class="major-kc-wm-list" v-for="(item, index) in wmList" :key="index">
<div class="list-img">
<img :src="item.img" />
</div>
<div class="list-body">
<span class="font-size-18 nowrap title">{{item.title}}</span>
<span class="font-size-14 wm-red zs">{{item.label}}</span>
<template v-for="(sItem, sIndex) in item.main">
<span :key="sIndex+'-'+index" class="font-size-14 mian-txt">{{sItem}}</span>
</template>
</div>
</div> -->
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<div class="layout_com_page_banner major-kc-wm bg2" :style="{'min-height':700 + 'px'}">
<h3>
<span>师资介绍</span>
</h3>
<div class="major-kc-wm-body" @mouseover="mouseOver2" @mouseleave="mouseLeave2">
<swiper ref="mySwiper2" :options="swiperOptions">
<template v-for="(item, index) in wmList2">
<swiper-slide :key="index">
<div class="major-kc-wm-list">
<div class="list-img">
<img :src="item.img" />
</div>
<div class="list-body">
<span class="font-size-18 nowrap title">{{item.title}}</span>
<span class="font-size-14 wm-red zs">{{item.label}}</span>
<template v-for="(sItem, sIndex) in item.main">
<span :key="sIndex+'-'+index" class="font-size-14 mian-txt">{{sItem}}</span>
</template>
</div>
</div>
</swiper-slide>
</template>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
<!-- <div class="major-kc-wm-list" v-for="(item, index) in wmList" :key="index">
<div class="list-img">
<img :src="item.img" />
</div>
<div class="list-body">
<span class="font-size-18 nowrap title">{{item.title}}</span>
<span class="font-size-14 wm-red zs">{{item.label}}</span>
<template v-for="(sItem, sIndex) in item.main">
<span :key="sIndex+'-'+index" class="font-size-14 mian-txt">{{sItem}}</span>
</template>
</div>
</div> -->
</div>
</div>
</vue-lazy-component>
<!-- <vue-lazy-component>
<swiper ref="mySwiper" :options="swiperOptions">
<swiper-slide>Slide 1</swiper-slide>
<swiper-slide>Slide 2</swiper-slide>
<swiper-slide>Slide 3</swiper-slide>
<swiper-slide>Slide 4</swiper-slide>
<swiper-slide>Slide 5</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
</vue-lazy-component> -->
<vue-lazy-component>
<div ref="leavex">
<leavex
:imgUrl="require('@/assets/images/mes1.png')"
:imgUrlBg="require('@/assets/images/major-set/mz.png')"
:leavheight=" heightdy - 60"
/>
</div>
</vue-lazy-component>
<vue-lazy-component>
<page-footer />
</vue-lazy-component>
</div>
</template>
<script>
import Leavex from '@/components/leavex/index.vue'
import PageFooter from '@/components/page-footer/index.vue'
import FilterJson from './filterType.json'
import { dyHeight } from '@/pages/homepage/mixins/index.js'
import Vue from 'vue'
import { Swiper, SwiperSlide, directive } from 'vue-awesome-swiper'
import 'swiper/css/swiper.css'
export default {
name: 'major-set',
mixins: [dyHeight],
components: {
Swiper,
SwiperSlide,
Leavex,
PageFooter
},
directives: {
swiper: directive
},
computed: {
swiper() {
return this.$refs.mySwiper.$swiper
},
swiper2() {
return this.$refs.mySwiper2.$swiper
}
},
data() {
return {
swiperOptions: {
observer: true,
autoHeight: true,
slidesPerView: 3,
// paginationClickable: true,
spaceBetween: 0,
freeMode: true,
// autoplay: {
// delay: 2000
// },
pagination: {
el: '.swiper-pagination',
clickable: true,
type: 'bullets'
}
},
FilterJson,
course: 1,
wmList2: [
{
img: require('@/assets/images/wm/wm_21.png'),
title: '钟思嘉',
label: '博士',
main: [
'美国俄勒冈大学哲学博士(教育心理学与咨询心理学)',
'现任浙江师范大学教师教育学院特聘专家',
'曾任台湾政治大学心理系教授、博士生导师,心理系主任、理学院院长台湾辅导与咨询学会理事长、心理学会理事'
]
},
{
img: require('@/assets/images/wm/wm_22.png'),
title: '方刚',
label: '博士',
main: [
'著名性学家,性与性别学者专家',
'北京林业大学性与性别研究所所长',
'中国白丝带志愿者网络召集人',
'湾树德科技大学人类性学研究所兼职教授',
'世界华人性学家协会执委,中国性学会理事'
]
},
{
img: require('@/assets/images/wm/wm_23.png'),
title: '许育光',
label: '博士',
main: [
'美国马里兰大学(UMD) 咨商与人事服务学系博士后',
'彰化师范大学辅导与咨商博士',
'台湾清华大学教育心理与咨商学系教授兼任系主任',
'辅导季刊主编(华人地区创刊 56 年之咨商辅导经典学术期刊) ',
'台湾学校心理与咨商辅导协会发起专家暨理事长'
]
},
{
img: require('@/assets/images/wm/wm_24.png'),
title: '张沛超',
label: '博士',
main: [
'武汉大学心理学硕士、哲学博士',
'香港精神分析学会会员、副主席',
'武汉大学现代心理学研究中心 特约研究员',
'中国心理卫生协会会员 精神分析专委会委员 青年工作委员会委员'
]
},
{
img: require('@/assets/images/wm/wm_25.png'),
title: '臧寅垠',
label: '博士候选人',
main: [
'北京大学心理与认知科学学院研究员、博士生导师',
'英国诺丁汉大学医学院应用心理学博士',
'英国心理学会特许心理学家',
'曾于美国宾夕法尼亚大学医学院精神病学系从事临床心理学研究工作 '
]
},
{
img: require('@/assets/images/wm/wm_26.png'),
title: '陈华',
label: 'Eadie Chen',
main: [
'哥伦比亚大学心理学硕士',
'哈佛大学公共管理硕士',
'北京大学传播学中国人民大学政治学双学士',
'ICF认证教练'
]
}
],
wmList: [
{
img: require('@/assets/images/wm/wm_01.png'),
title: 'Nicolle Zapien',
label: '博士',
main: [
'CIIS人类性学博士专业 教授',
'国际教练学会ICF 认证教练',
'哈佛大学教育学院硕士、塞布鲁克大学临床心理学博士',
'临床心理学研究、教学以及治疗领域拥有十余年丰富经验'
]
},
{
img: require('@/assets/images/wm/wm_02.png'),
title: 'Luna Yue Ren',
label: '博士候选人',
main: [
'CIIS中国项目办公室负责人',
'中国社会心理学会下属整合心理学专业委员会委员',
'加州整合大学东西方心理学专业博士候选人',
'拥有十年以上政府及跨国公司人力资源测评及咨询经验'
]
},
{
img: require('@/assets/images/wm/wm_03.png'),
title: 'Glenn Hartelius',
label: '博士',
main: [
'CIIS整合与后人本主义心理学博士项目创始人、系主任',
'《国际整合与后人本主义心理学专业手册》编纂人',
'《国际整合与后人本主义心理学》专业学术期刊主编',
'2019年复旦大学中国首届整合心理学大会开幕致辞嘉宾'
]
},
{
img: require('@/assets/images/wm/wm_04.png'),
title: 'Rachael Vaughan',
label: '执业心理咨询师',
main: [
'CIIS整合心理咨询专业 核心教授',
'加州认证执业MFT临床心理咨询师',
'英国爱丁堡大学语言学硕士、加州太平洋研究所精神分析学硕士',
'出生于香港,成长于英国,求学于法国美国,擅长多文化视角的整合教学,身为荣格学派治疗师,兼具女性主义和后现代理论视角'
]
},
{
img: require('@/assets/images/wm/wm_05.png'),
title: 'Michelle Marzullo',
label: '博士',
main: [
'CIIS人类性学博士专业系主任',
'美国国家性心理与性教育协会常任委员',
'人类学研究博士',
'曾多年担任安永国际特约顾问,为多家财富前100的机构和企业提供管理咨询服务'
]
},
{
img: require('@/assets/images/wm/wm_06.png'),
title: 'Daniela Loenig',
label: '执业心理咨询师',
main: [
'CIIS临床心理咨询专业 核心教授',
'加州认证执业MFT临床心理咨询师',
'美国性教育与心理健康委员会认证成员',
'出生成长于欧洲,求学执业于美国,现与家人长驻瑞士,在自身经验实证中发展了对临床理论与治疗的体悟'
]
},
{
img: require('@/assets/images/wm/wm_07.png'),
title: 'Meg Jordan',
label: '博士',
main: [
'CIIS整合健康研究专业 系主任',
'临床医学人类学专家',
'全美医药及健康教练联盟主席',
'哈佛大学医学院阿尔海默研究中心高级顾问',
'作家,出版多本整合健康教练领域书籍'
]
},
{
img: require('@/assets/images/wm/wm_08.png'),
title: 'Courtenay Crouch',
label: '博士',
main: [
'CIIS整合心理博士专业 讲师',
'杜克大学硕士、CIIS整合与后人本主义心理学博士',
'美国国家心理学会 APA 国际心理学分会主管',
'《整合心理学》《人本心理学与现象学》等国际学术期刊评委'
]
},
{
img: require('@/assets/images/wm/wm_09.png'),
title: 'Clark Hsu, MFT',
label: '博士候选人',
main: [
'CIIS表达艺术临床心理咨询专业 副教授',
'加州认证执业MFT 临床心理咨询师',
'国际表达艺术治疗协会认证治疗师',
'CIIS东西方心理学博士候选人'
]
}
],
bannerList: [
{
img: require('@/assets/images/major-set/ma01.png'),
bgShow: true
},
{
img: require('@/assets/images/major-set/ma02.png'),
bgShow: true
},
{
img: require('@/assets/images/major-set/ma03.png'),
bgShow: true,
title: '应用心理学是心理学中迅速发展的一个重要学科分支。应用心理学研究心理学基本原理在各种实际领域的应用,包括工业、工程、组织管理、市场消费、社会生活、医疗保健、体育运动以及军事、司法、环境等各个领域,通过运用心理学的原则及理论来解决领域内的实际问题。随着经济、科技、社会和文化迅速发展,应用心理学有着日益广阔的前景。'
// label:
// ' 一百多年来,蒙台梭利教育法经由美国上流社会的推崇,进而风靡全球,得到世界各地教育界的认同和推崇。全球蒙氏幼儿园28000所,而康博斯威尔大学是为数不多的拥有蒙台梭利专业学位教育的高等学府。'
},
{
img: require('@/assets/images/major-set/ma04.png'),
bgShow: true,
minWidth: true
}
],
timeList: [
{
name: '授课形式',
title: '中文授课',
title1: '简洁易操作的',
title2: '多媒体交互平台',
title3: '线下实践+工作坊',
title4: '赴美研学',
img: require('@/assets/images/major-set/bxl1.png'),
bgShow: true
},
{
name: '上课时间',
title: '按照教学周发布课程',
title1: '可灵活掌握学习时间',
title2: '可反复观看和查阅',
img: require('@/assets/images/major-set/bxl2.png'),
bgShow: true
},
{
name: '学位授予',
title: '保证出勤',
title1: '撰写论文并合格',
title2: '修满全部学分',
title3: '授予硕士学位',
img: require('@/assets/images/major-set/bxl3.png'),
bgShow: true
},
{
name: '毕业典礼',
title: '在国内或赴美',
title1: '参加毕业典礼',
title2: '与各国学子欢聚一堂',
img: require('@/assets/images/major-set/bxl4.png'),
bgShow: true
}
],
houseShowbt: false,
li1state: false,
neutralityI: 0,
dowUp: false,
presentts: 0,
scrollTopts: 0,
ones: true
}
},
methods: {
mouseOver() {
this.swiper.autoplay.stop()
},
mouseLeave() {
this.swiper.autoplay.start()
},
mouseOver2() {
this.swiper2.autoplay.stop()
},
mouseLeave2() {
this.swiper2.autoplay.start()
},
dyScroll(present, scrollTop) {
this.presentts = present
this.scrollTopts = scrollTop
const scroll = scrollTop - this.neutralityI
this.neutralityI = scrollTop
scroll < 0 ? (this.dowUp = false) : (this.dowUp = true)
if (this.dowUp) {
if (this.$refs.dl2) {
if (!this.houseShowbt) {
const topdl2 = this.getElementTop(this.$refs.dl2)
this.houseShowbt = !!(present > topdl2 + 100)
}
FilterJson[this.course].forEach(l => {
if (this.$refs[l.ref][0]) {
const topLi = this.getElementTop(this.$refs[l.ref][0])
if (present > topLi + 20) {
if (!l[l.name]) {
l[l.name] = true
}
}
}
})
}
}
if (!scrollTop && this.ones) {
this.ones = false
FilterJson[this.course].forEach(l => {
l[l.name] = false
})
}
},
buhover(number) {
this.course = number
this.dyScroll(this.presentts, this.scrollTopts)
},
outStyle(item, index) {
this.bannerList.forEach((l, ind) => {
index === ind ? Vue.set(l, 'bgShow', false) : Vue.set(l, 'bgShow', true)
})
},
outsyStyle(item, index) {
this.timeList.forEach((l, ind) => {
index === ind ? Vue.set(l, 'bgShow', false) : Vue.set(l, 'bgShow', true)
})
}
},
mounted() {
this.bannerList[2].bgShow = false
}
}
</script>
<style lang="scss" scoped>
.major-banner-title {
position: absolute;
bottom: 30%;
left: 14.5%;
display: flex;
flex-direction: column;
span {
font-size: 18px;
font-family: SourceHanSansSC-Medium, SourceHanSansSC;
font-weight: 500;
display: flex;
color: rgba(255, 255, 255, 1);
small {
display: flex;
font-size: 25px;
font-weight: bold;
align-items: center;
}
}
}
.major_padd {
padding-bottom: 0px;
// overflow: hidden;
}
.major-banner {
height: 100%;
background-size: cover;
background-repeat: no-repeat;
background-position: center top;
flex: 2;
position: relative;
display: flex;
align-items: center;
justify-content: center;
.major-banner-main {
font-size: 18px;
font-family: PingFangSC-Semibold, PingFang SC;
color: rgba(255, 255, 255, 1);
padding: 0px 20px;
display: flex;
z-index: 3;
flex-direction: column;
span {
line-height: 1.5;
}
.pad {
padding-top: 20px;
}
}
.major-banner-bg {
height: 100%;
position: absolute;
width: 100%;
opacity: 0.6;
background: rgba(0, 0, 0, 1);
}
.major-banner-bg-ff {
height: 100%;
position: absolute;
width: 100%;
background-color: rgb(249 249 249 / 68%);
}
}
.major-dl {
display: flex;
flex-direction: column;
justify-content: center;
padding: 30px 0px;
padding-top: 60px;
position: relative;
.major-dl1 {
display: none;
.major-dl1-title {
display: flex;
flex-direction: column;
justify-content: center;
font-size: 40px;
padding-right: 10px;
padding-top: 40px;
justify-content: flex-start;
font-family: PingFangSC-Regular, PingFang SC;
span {
font-weight: 600;
color: rgba(34, 34, 34, 1);
}
.dl1_span {
font-size: 24px;
font-weight: 400;
color: rgba(34, 34, 34, 1);
}
}
.major-dl2-image {
display: flex;
color: #222222ff;
flex-direction: column;
font-weight: 600;
position: relative;
font-size: 40px;
img {
padding-bottom: 18px;
width: 100%;
}
.font-size-30 {
font-weight: 400;
color: rgba(34, 34, 34, 1);
}
}
.ts-ma {
position: absolute;
top: 0px;
right: -40px;
display: flex;
flex-direction: inherit;
.dl2-span {
display: flex;
flex-direction: column;
padding-left: 10px;
white-space: nowrap;
}
}
.padd-left-40 {
top: 240px;
}
}
}
.major-dl2 {
position: relative;
margin-top: -220px;
left: -64px;
margin-bottom: 100px;
}
.blacker {
.major-banner-main {
color: #000000ff;
}
}
.min-wd {
flex: 1;
}
.major-finish {
width: 100%;
height: 100%;
.finsih-b-main {
display: flex;
height: 100%;
.finsih-b-main-size {
position: relative;
overflow: hidden;
flex: 1;
height: 50%;
img {
height: 100%;
width: 100%;
}
}
}
}
.finish-a {
flex: 1;
img {
overflow: hidden;
}
.finish-as {
overflow: hidden;
}
}
.finish-b {
// flex: 2;
width: 100%;
display: flex;
flex-direction: column;
.finsih-b-b {
display: flex;
width: 100%;
height: 40%;
div {
width: 30%;
img {
height: 100%;
width: 100%;
}
}
.ts-width {
width: 40%;
}
}
.finish-b-a {
display: flex;
height: 60%;
.finish-b-a-size {
width: 70%;
display: inline-flex;
position: relative;
overflow: hidden;
.rs-img {
width: 100%;
}
}
.finsih-b-main {
display: flex;
flex-direction: column;
width: 30%;
}
}
.finsih-b-main-a {
flex: 1;
}
.center_post {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: inline-flex;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: rgba(255, 255, 255, 1);
width: 100%;
align-items: center;
flex-direction: column;
}
}
.major_banner {
overflow: hidden;
img {
transition: all 0.5s;
&:hover {
cursor: pointer;
transform: scale(1.1);
}
}
}
.major-kc-bg {
background: url('~@/assets/images/major-set/xbg.png') no-repeat center center;
background-size: cover;
.major-kc-left {
display: flex;
flex-direction: column;
flex: 1;
align-items: center;
justify-content: center;
height: initial;
button {
width: 270px;
height: 84px;
line-height: 84px;
color: rgba(175, 27, 64, 1);
background: #fff;
border-radius: 4px;
cursor: pointer;
margin: 30px 0px;
border: 2px solid rgba(175, 27, 64, 1);
font-size: 22px;
}
.hover-bt {
background-color: #af1b40ff;
color: #fff;
}
}
.major-kc-right {
width: 847px;
height: initial;
position: relative;
.major-kc-svg {
width: 512px;
height: 100%;
position: absolute;
right: 200px;
top: 0;
img {
width: 100%;
height: 100%;
}
}
.ul-1 {
margin: 0;
padding: 0;
list-style: none;
padding-inline-start: 0 !important;
.li {
width: 30px;
height: 30px;
background: rgba(175, 27, 64, 0.5);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
visibility: hidden;
animation-name: none;
.div-son {
width: 20px;
height: 20px;
background: #af1b40ff;
border-radius: 50%;
}
}
.show_anima_li_left {
visibility: visible;
animation-name: bounceInLeft;
}
.show_anima_li_right {
visibility: visible;
animation-name: bounceInRight;
}
}
.ul-2 {
margin: 0;
padding: 0;
list-style: none;
padding-inline-start: 0 !important;
.li2 {
font-size: 18px;
font-weight: 500;
color: #222222ff;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
align-items: flex-end;
position: absolute;
visibility: hidden;
animation-name: none;
.yw {
color: #222222ff;
font-size: 12px;
padding-bottom: 10px;
}
span{
width: 100%;
}
}
.show_anima_li_left {
visibility: visible;
animation-name: bounceInLeft;
span{
text-align: right;
}
}
.show_anima_li_right {
visibility: visible;
animation-name: bounceInRight;
}
.bounceInRight {
align-items: baseline;
}
}
}
}
.major-kc-sy {
background: url('~@/assets/images/major-set/blxbj.png') no-repeat center
center;
background-size: cover;
position: relative;
flex-direction: column;
align-items: center;
.sy-body {
width: 80%;
margin: 0 auto;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
.sy-banner {
padding: 10px;
.sy-banner-bg {
position: relative;
display: flex;
justify-content: center;
.sy-banner-bg-layout {
position: absolute;
top: 50%;
z-index: 3;
left: 50%;
transform: translate(-50%, -50%);
font-size: 25px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
text-align: center;
.font-size-18 {
font-weight: 400;
display: inline-flex;
white-space: nowrap;
}
}
}
}
.blacker-sy {
.sy-banner-main {
position: relative;
.sy-banner-bg-00 {
transition: all 0.8s;
background: rgba(0, 0, 0, 0.5);
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
border-radius: 15px;
}
}
}
}
.sy-footer {
padding: 40px 0px 10px 0px;
}
}
.swiper-container{
padding-top: 70px;
padding-bottom: 40px;
}
.major-kc-wm {
background: url('~@/assets/images/wm/wmbg.png') no-repeat center top;
background-size: cover;
position: relative;
align-items: center;
flex-wrap: wrap;
&.bg2{
background: url('~@/assets/images/wm/wmbg2.png') no-repeat center top;
background-size: cover;
}
h3 {
width: 100%;
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: 500;
font-size: 40px;
color: rgba(255, 255, 255, 1);
margin-top: 30px;
span {
position: relative;
&::before {
content: '';
position: absolute;
bottom: -8px;
width: 100%;
height: 3px;
background: #ffffff;
}
}
}
.major-kc-wm-body {
width: 80%;
display: flex;
justify-content: center;
h3 {
color: #ffffffff;
}
.major-kc-wm-list {
display: flex;
flex-direction: column;
position: relative;
padding: 20px 30px;
margin: 0 auto;
width: 300px;
.list-img {
z-index: 3;
position: relative;
position: absolute;
left: 50%;
background: #fff;
border-radius: 50%;
top: 7%;
overflow: hidden;
transform: translate(-50%, -50%);
img {
transition: all 0.5s;
transform: scale(0.9);
cursor: pointer;
&:hover {
transform: scale(1);
}
}
}
.list-body {
display: flex;
position: relative;
// align-items: center;
flex-direction: column;
background: #fff;
border-radius: 26px;
width: 300px;
padding: 100px 0px 30px 0px;
min-height: 250px;
.max-width-180 {
max-width: 180px;
}
span {
// padding: 5px 0px;
padding: 5px 15px 0 40px;
color: #222222ff;
line-height: 20px;
}
.mian-txt{
position: relative;
&::before{
content:'';
position: absolute;
left: 22px;
top: 10px;
// -webkit-transform: translateX(-50%);
width: 8px;
height: 8px;
border: 2px solid #AF1B40;
border-radius: 50%;
}
}
.title{
padding: 0;
display: block;
width: 100%;
text-align: center;
}
.zs{
padding: 5px 0 0 0;
display: block;
width: 100%;
text-align: center;
}
&::before {
content: '';
position: absolute;
height: 90%;
width: 90%;
top: 5%;
left: 50%;
-webkit-transform: translateX(-50%);
border: 1px solid rgba(151, 151, 151, 1);
border-radius: 26px;
border-style: dashed;
}
}
}
}
}
.show-flex {
display: flex !important;
}
.post_rl {
overflow: hidden;
}
.wm-red {
color: #8e2742ff !important;
}
.nowrap {
white-space: nowrap;
}
.pics {
width: 100%;
font-size: 0;
}
.pics img {
display: inline-block;
width: 100%;
transition: all 0.5s;
}
.pics img:hover{
cursor: pointer;
transform: scale(1.1);
}
.pics .mid div{
position: relative;
display: inline-block;
width: 100%;
overflow: hidden;
.txt{
position: absolute;
bottom: 10px;
left: 50%;
-webkit-transform: translateX(-50%);
font-size: 18px;
color: #fff;
width: 90%;
text-align: center;
z-index: 999999;
&.top-n{
bottom: 23px;
}
}
.txt2{
text-align: center;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
font-size: 40px;
color: #fff;
z-index: 999999;
}
}
.pics .left {
display: inline-block;
width: 14.2857%;
overflow: hidden;
}
.pics .right {
display: inline-block;
width: 14.2857%;
overflow: hidden;
}
.pics .right div{
overflow: hidden;
}
.pics .mid {
display: inline-block;
width: 71.4286%;
}
.pics .mid .p1 {
width: 30.5%;
}
.pics .mid .p2 {
width: 41%;
}
.pics .mid .p3 {
width: 28.5%;
}
.pics .mid .p4 {
width: 39.7%;
}
.pics .mid .p5 {
width: 30.3%;
}
.pics .mid .p6 {
width: 30%;
}
.pics .mid .p7 {
width: 100%;
}
.right img {
width: 100%;
}
.major-kc-wm-body{
::v-deep .swiper-container{
.swiper-pagination-bullet{
opacity:1;
background: #fff;
}
.swiper-pagination-bullet-active{
background: #FF8340;
}
}
}
// .major-kc-wm-body >>> .swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet{
// opacity:1;
// background: #fff;
// }
</style>
<template>
<div class="layout_com_page">
<vue-lazy-component>
<div class="layout_com_page_banner recent-news-header" :style="{height: 364 + 'px'}">
<span>最新动态</span>
</div>
</vue-lazy-component>
<vue-lazy-component>
<div class="recent-news-body">
<div
v-loading="isloading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
class="recent-news-body-list"
v-for="(item, index) in listData"
:key="index"
@click="details(item)"
@mouseover="item.hover = true"
@mouseleave="item.hover = false"
: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>
</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>
</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>
</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>
</div>
</div>
</div>
<div class="list-down">
<span @click="manyList" v-if="!showMany">查看更多</span>
<span @click="manyList" v-else>暂无更多</span>
<img @click="manyList" :src="require('@/assets/images/apply-for/bg_down.png')" />
</div>
</div>
</vue-lazy-component>
<vue-lazy-component>
<page-footer />
</vue-lazy-component>
</div>
</template>
<script>
import PageFooter from '@/components/page-footer/index.vue'
import cAction from '@action'
export default {
name: 'recent-news',
components: {
PageFooter
},
filters: {
formatDate(data, state = null) {
const date = new Date(data.replace(/-/g, '/'))
const y = date.getFullYear()
let m = date.getMonth() + 1
m = m < 10 ? '0' + m : m
let d = date.getDate()
d = d < 10 ? '0' + d : d
if (state) {
return y
}
return m + '.' + d + '/'
}
},
data() {
return {
listData: [],
showMany: false,
quiuse: {
page: 1,
per_page: 4,
project_id: 1005
}
}
},
methods: {
details(item) {
this.$router.push({
name: 'details-recent-news',
params: { id: item.id }
})
},
manyList() {
this.quiuse.per_page += 8
this.setDate()
},
setDate() {
this.isloading = true
cAction.News.newsList(this.quiuse)
.then(data => {
if (this.listData.length === data.length) {
this.showMany = true
this.isloading = false
return
}
this.listData = data.map(k => {
k.hover = false
return k
})
this.showMany = false
this.isloading = false
})
.catch(e => {
this.isloading = false
console.log(e)
})
}
},
created() {
this.setDate()
}
}
</script>
<style lang="scss" scoped>
.recent-news-header {
width: 100%;
position: relative;
background: url('~@/assets/images/apply-for/hear.png') no-repeat center center;
background-size: cover;
display: flex;
justify-content: center;
span {
position: absolute;
font-size: 40px;
font-family: Helvetica;
color: rgba(255, 255, 255, 1);
top: 50%;
cursor: pointer;
left: 50%;
transform: translate(-50%, -50%);
}
}
.recent-news-body {
width: 100%;
.recent-news-body-list {
min-height: 388px;
display: flex;
min-height: 388px;
cursor: pointer;
align-items: center;
justify-content: center;
width: 100%;
padding: 0 50px;
box-sizing: border-box;
background: #fff;
.list {
display: flex;
.list-title,
.list-time {
display: flex;
flex-direction: column;
max-width: 400px;
span {
padding: 2px 0px;
}
.font-size-30 {
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(34, 34, 34, 1);
max-width: 400px;
}
.font-size-15 {
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666ff;
}
}
.list-time {
align-items: flex-end;
}
img {
height: 308px;
width: 510px;
padding: 0px 20px;
}
}
}
.list-down {
display: flex;
align-items: center;
justify-content: center;
background: #fff;
color: #af1b40ff;
padding: 20px;
span {
padding: 0px 20px;
cursor: pointer;
}
img {
cursor: pointer;
}
}
.riht-bg {
background: rgba(241, 241, 241, 1);
}
.hover-bg {
background: #a61a3dff;
transition: 0.5s;
span {
color: #fff !important;
}
}
}
</style>
<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>
{
"list": [
{
"key": 0,
"icon": "user",
"label": "新用户注册",
"title": "新用户注册",
"goBackName": "返回报名系统"
}
],
"0": {
"size": "medium",
"header": {
"name": "新用户注册",
"backName": "返回报名系统"
},
"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 register">
<div class="register-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: 'register',
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-for'
})
},
transferKeep(item) {
this.$refs.form.submit().then(state => {
if (state) {
Login.register(FilterJson[this.active].ruleForm)
.then(res => {
if (res.code === 0) {
this.$message({
message: '注册成功',
type: 'success'
})
this.$router.push({
name: 'apply-for'
})
} else {
this.$message.error(res.msg)
}
})
.catch(e => {
console.log(e)
})
} else {
item.loading = false
}
})
}
}
}
</script>
<style lang="scss" scoped>
.register {
height: 100%;
width: 100%;
.register-body {
width: 80%;
margin: 0 auto;
}
}
</style>
import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
import routes from './routes' import { constantRoutes } from './routes.js'
Vue.use(Router)
export default () => { const createRouter = () =>
return new Router({ new Router({
routes, mode: 'history',
mode: 'history', // 还有一个 hash 默认 fallback: true,
fallback: true, // 浏览器不支持 history时,自动改成 hash方式 scrollBehavior: () => ({ y: 0 }),
scrollBehavior (to, from, savedPosition) { // 每次打开,滚动到 最顶端 routes: constantRoutes
return { x: 0, y: 0 }
}
}) })
} const router = createRouter()
export default router
import Layout from '@/layout/index.vue'
export const constantRoutes = [
{
path: '/redirect',
component: Layout,
hidden: true,
children: [
{
path: '/redirect/:path(.*)',
component: () => import('@/pages/redirect/index.vue')
}
]
},
{
path: '/',
component: Layout,
redirect: '/home-page',
children: [
{
path: 'home-page',
component: () => import('@/pages/homepage/index.vue'),
meta: {
title: '首页'
},
name: 'home-page'
}
]
},
{
path: '/major-set',
component: Layout,
children: [
{
path: 'index',
component: () => import('@/pages/major-set/index.vue'),
meta: {
title: '专业设置'
},
name: 'major-set'
}
]
},
{
path: '/apply',
component: Layout,
children: [
{
path: 'for',
component: () => import('@/pages/apply-for/index.vue'),
meta: {
details: true,
title: '报名申请'
},
name: 'apply-for'
},
{
path: 'for/register',
hidden: true,
component: () => import('@/pages/register/index.vue'),
meta: {
title: '注册',
details: true
},
name: 'register'
},
{
path: 'for/forgetPsw',
hidden: true,
component: () => import('@/pages/forgetPsw/index.vue'),
meta: {
title: '忘记密码',
details: true
},
name: 'forgetPsw'
},
{
path: 'for/apply',
hidden: true,
component: () => import('@/pages/apply/index.vue'),
meta: {
title: '在线报名',
details: true,
userRole: true
},
name: 'apply'
},
{
path: 'for/login',
hidden: true,
component: () => import('@/pages/login/index.vue'),
meta: {
title: '登录',
details: true
},
name: 'login'
}
]
},
{
path: '/recent',
component: Layout,
children: [
{
path: 'news',
component: () => import('@/pages/recent-news/index.vue'),
meta: {
title: '最新动态'
},
name: 'recent-news'
},
{
path: 'news/:id',
meta: {
title: '最新动态',
details: true
},
hidden: true,
name: 'details-recent-news',
component: () => import('@/pages/details-news/index.vue')
}
]
},
{
path: '/contact',
component: Layout,
children: [
{
path: 'us',
component: () => import('@/pages/contact-us/index.vue'),
meta: {
title: '联系我们'
},
name: 'contact-us'
}
]
}
export default [ // { path: '*', redirect: '/404', hidden: true }
{ path: '/', redirect: '/test' },
/* 测试页面 */
{ path: '/test', name: 'test', component: () => import('../pages/test.vue') },
/* 如果所有页面都没找到 - 指向 */
{ path: '*', component: () => import('@/components/errorPages/404.vue') }
] ]
export default {
constantRoutes
}
import Vue from 'vue'
import Vuex from 'vuex'
import { constantRoutes } from '@/router/routes.js'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
sidebar: []
},
getters: {
getSidebar: state => state.sidebar
},
mutations: {
SET_ROUTES: (state, routes) => {
state.sidebar = routes
}
},
actions: {
generateRoutes({ commit }) {
return new Promise(resolve => {
commit('SET_ROUTES', constantRoutes)
resolve(constantRoutes)
})
}
}
})
html, body { html,
body {
font-size: 14px; // 防止html根元素 影响本身DOM元素字体大小继承 font-size: 14px; // 防止html根元素 影响本身DOM元素字体大小继承
padding: 0; padding: 0;
margin: 0; margin: 0;
...@@ -8,49 +9,202 @@ html, body { ...@@ -8,49 +9,202 @@ html, body {
} }
/* 统一字体样式 */ /* 统一字体样式 */
* { * {
font-family: font-family: 'Source Han Sans CN', 'PingFang SC', -apple-system,
"Source Han Sans CN", 'Microsoft YaHei', 'Helvetica', 'Arial', Verdana, 'Hiragino Sans GB',
"PingFang SC", 'Wenquanyi Micro Hei', sans-serif;
-apple-system,
"Microsoft YaHei",
"Helvetica",
"Arial",
Verdana,
"Hiragino Sans GB",
"Wenquanyi Micro Hei",
sans-serif;
} }
/* Extra small devices (portrait phones, less than 576px) */ /* Extra small devices (portrait phones, less than 576px) */
@media (max-width: 575px) {} @media (max-width: 575px) {
}
/* Small devices (landscape phones, 576px and up) */ /* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) and (max-width: 767px) {} @media (min-width: 576px) and (max-width: 767px) {
}
/* Medium devices (tablets, 768px and up) */ /* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) and (max-width: 991px) {} @media (min-width: 768px) and (max-width: 991px) {
}
/* Large devices (desktops, 992px and up) */ /* Large devices (desktops, 992px and up) */
@media (min-width: 992px) and (max-width: 1199px) {} @media (min-width: 992px) and (max-width: 1199px) {
}
/* Extra large devices (large desktops, 1200px and up) */ /* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {} @media (min-width: 1200px) {
}
/* 改变主题色变量 */ /* 改变主题色变量 */
$--color-primary: #b80037; $--color-primary: #b80037;
/* 改变 icon 字体路径变量,必需 */ /* 改变 icon 字体路径变量,必需 */
$--font-path: '~element-ui/lib/theme-chalk/fonts'; $--font-path: '~element-ui/lib/theme-chalk/fonts';
/* 引入element-ui对应scss文件,重新编译 */ /* 引入element-ui对应scss文件,重新编译 */
@import "~element-ui/packages/theme-chalk/src/index"; @import '~element-ui/packages/theme-chalk/src/index';
/* 引入隐藏显示样式 */ /* 引入隐藏显示样式 */
@import "~element-ui/lib/theme-chalk/display.css"; @import '~element-ui/lib/theme-chalk/display.css';
/* 引入三方 自定义图标库,方法 vue -> 第三方 自建图标库 中有 */ /* 引入三方 自定义图标库,方法 vue -> 第三方 自建图标库 中有 */
@import "~@/assets/font-icons/iconfont.css"; @import '~@/assets/font-icons/iconfont.css';
[class^="el-icon-self-"], [class*="el-icon-self-"] { [class^='el-icon-self-'],
font-family: "selfAllIcon" !important; [class*='el-icon-self-'] {
font-family: 'selfAllIcon' !important;
font-size: 16px; font-size: 16px;
font-style: normal; font-style: normal;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
.layout_com_page {
height: 100%;
width: 100%;
.layout_com_page_banner {
width: 100%;
position: relative;
background-size: cover;
display: flex;
justify-content: center;
}
}
.font-size-40 {
font-size: 40px !important;
}
.back_fff {
background: #fff;
}
.padd_lr_40 {
padding: 40px 0px;
}
.font-size-30 {
font-size: 30px;
}
.padd-left-40 {
padding-left: 40px;
}
.font-size-28 {
font-size: 28px;
}
.font-size-18 {
font-size: 18px !important;
}
.font-size-15 {
font-size: 15px;
}
.font-size-16 {
font-size: 16px;
}
.font-size-24 {
font-size: 24px;
}
.font-size-14 {
font-size: 14px;
}
.font-size-25 {
font-size: 25px;
}
.post_rl {
position: relative;
width: 100%;
}
.duration2 {
animation-duration: 2s;
}
.animated {
animation-duration: 0.5s;
animation-fill-mode: both;
}
.delay7 {
animation-delay: 0.7s;
}
.delay1 {
animation-delay: 0.1s;
}
.delay3 {
animation-delay: 0.3s;
}
.delay5 {
animation-delay: 0.5s;
}
.delay9 {
animation-delay: 0.9s;
}
.delay11 {
animation-delay: 1.1s;
}
.delay13 {
animation-delay: 1.3s;
}
.bounceInRight {
animation-name: bounceInRight;
}
.bounceInLeft {
animation-name: bounceInLeft;
}
.vi {
visibility: visible;
}
@keyframes bounceInRight {
0%,
100%,
60%,
75%,
90% {
transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}
0% {
opacity: 0;
transform: translate3d(3000px, 0, 0);
}
60% {
opacity: 1;
transform: translate3d(-25px, 0, 0);
}
75% {
transform: translate3d(10px, 0, 0);
}
90% {
transform: translate3d(-5px, 0, 0);
}
100% {
transform: none;
}
}
@keyframes bounceInLeft {
0%,
100%,
60%,
75%,
90% {
transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}
0% {
opacity: 0;
transform: translate3d(-3000px, 0, 0);
}
60% {
opacity: 1;
transform: translate3d(25px, 0, 0);
}
75% {
transform: translate3d(-10px, 0, 0);
}
90% {
transform: translate3d(5px, 0, 0);
}
100% {
transform: none;
}
}
.details-margin-top-120 {
margin-top: 120px;
}
.cf:before {
content: '';
display: table;
}
.cf:after {
content: '';
display: table;
clear: both;
}
export function isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path)
}
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAgddAmdjWL+4JUXvmiR/lr9cbdoctEGLwdLpnIrRlL/oVKubZ
TrASed5pA2kHKUbbV9i64iNIzn668ziytivudRiuGL4wBTPdtlpkSty9ij0ZHZXe
23oWQ73fV3FNROp3ekLmIYHqo2ep5hhfq1A4Sey7IM1Z0A9OF6MV7Tgqm+8a6Fy4
eNbgx99f0n7nquGjYZ3RcnU0j6xzfQhOqOYmhk4flQqSx6Mb6sSmWM7V4/h/554L
QyJNV3ngNfT3ZFmAmhIZt7n+o3svzIqwghiZSj0K9jyE7zbSZjVUBEQztFUcfYgP
ZQfZFFsdgIkFSvR3cXIpIiN8oPf8xK6naApOXwIDAQABAoIBAHKlKKJvZvgdO1ca
ir1rT7jKu7IVu4GritvWtzhahrotHEGsYhZru3SmIJ1lQHB+4zAW6zS/qQrDtbkK
yCm4cq4sI5UvYWFGoa7g84tyi12jgyiva37ptv0Li0g/f9WpHePzbBYMC61K3CaS
QO8YPwtvHu/gwjvHN9IBK1wxatYRriAfR6CF2+pfZXhlq3nprc0z9YypExLg2Swa
ML1uQGLObDHAFKheVFYOgWOncMbG5eXNV9mdfzoUuc+mkENDtynQUTzI2ZM4OZFr
uMjto7y4RLFu463Rg0ijg2MXL4FbygzclaePNL7YBS6wed0Z8cE26FvbG5vM//Qc
qYK+WBECgYEA0FdJ7tPzgBvn4VsvBBdA8gmmFmmD/TJxehrxAwn/x0QkcZa6ngxJ
ScgcicJ2OSM049zId35KA4OV7aGUC6QKdG6JbL00Wqg9xWbsHiiB9XzV1iDghTug
35cDWhRN8SnMgBhQ85l5ps8NJuLS/fqLBK0/yeE54mkWKqvD4JS39KcCgYEAn4rl
Uc4PQ/xkgCKCTOCIYmzvDUuZcS0pA0MU/uJ/aQIwaJFanIehczs6Wg/Gb0YhKx0h
cMDuvZYY2XjbCic8eDNE7ED0hUHBAa8VAQZwS22ds/qNoooCO5UcHPRevenb/dIk
oKQTrI+4e5izQtuV3YLJMeH5Ba9bUP45iaZDt4kCgYEAnBGnmrc/46oD7HdoIwJg
bm/38TYd3+CXzUa9YO9uohFT05t8NMUzaYf0iOYZtfe/uSo9KfZ672L1P0wZIRdD
lbDwVXru6zK5A1V0b6scn49iiMOcLXJbsuLnaeVn9c7AGP0eNz2zOdhFG+oy8Htt
BJXcARktSYQ7TL/bPjNqEmUCgYB54o8XVCltcyEEk1igitkm+LoYmiz7vdibWWBs
6XUVMErzWDi1ZRj/A7ysmWisEhO88GBf18WMqWMKob4Vn6we2GxLYcRtGbLuKmgN
hHG97lyQ51XVW0IhauUzaa4HwOYEn8rDvxYYuyPhqOMqrL9tn0E+DrlEkpdc5Rvo
AVGyoQKBgGYvAeoKrdkfLUUnvRBIju9/bg5H6t1MY8lYi4WEnL+aPn056LV43LU9
+gF7+S7f8Er6WiJCCb7laYeDyC5adqnF/fI//4iNsarid86blirXfJMSfTG+GkZM
OEBHd/sX0IbRUt6MCxiG3Znmdpny3/MG4CegPMtdohQktQEAS2yJ
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFiDCCBHCgAwIBAgIQAepAKb4wAxmrtof7BwPQSDANBgkqhkiG9w0BAQsFADBu
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
RFYgVExTIENBIC0gRzEwHhcNMTkxMTA4MDAwMDAwWhcNMjAxMTA3MTIwMDAwWjAa
MRgwFgYDVQQDEw9kZXYuZXppamluZy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCB10CZ2NYv7glRe+aJH+Wv1xt2hy0QYvB0umcitGUv+hUq5tlO
sBJ53mkDaQcpRttX2LriI0jOfrrzOLK2K+51GK4YvjAFM922WmRK3L2KPRkdld7b
ehZDvd9XcU1E6nd6QuYhgeqjZ6nmGF+rUDhJ7LsgzVnQD04XoxXtOCqb7xroXLh4
1uDH31/Sfueq4aNhndFydTSPrHN9CE6o5iaGTh+VCpLHoxvqxKZYztXj+H/nngtD
Ik1XeeA19PdkWYCaEhm3uf6jey/MirCCGJlKPQr2PITvNtJmNVQERDO0VRx9iA9l
B9kUWx2AiQVK9HdxcikiI3yg9/zErqdoCk5fAgMBAAGjggJ0MIICcDAfBgNVHSME
GDAWgBRVdE+yck/1YLpQ0dfmUVyaAYca1zAdBgNVHQ4EFgQU28ndXe6qIDlhPWX5
+gzJoRhaQQowGgYDVR0RBBMwEYIPZGV2LmV6aWppbmcuY29tMA4GA1UdDwEB/wQE
AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwTAYDVR0gBEUwQzA3
BglghkgBhv1sAQIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQu
Y29tL0NQUzAIBgZngQwBAgEwgYAGCCsGAQUFBwEBBHQwcjAkBggrBgEFBQcwAYYY
aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEoGCCsGAQUFBzAChj5odHRwOi8vY2Fj
ZXJ0cy5kaWdpY2VydC5jb20vRW5jcnlwdGlvbkV2ZXJ5d2hlcmVEVlRMU0NBLUcx
LmNydDAJBgNVHRMEAjAAMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYApLkJkLQY
WBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BAAAAFuSnTaJgAABAMARzBFAiEAtYCW
PLYE6pylBOsB1MmETgxGpYrG64Osn/XXyJlh+/UCIEnttMCBvNif4hpJfAQibP/Q
bJ9w0VYC59hi8Tmcf/mfAHcAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFx
RVgAAAFuSnTZSQAABAMASDBGAiEAsMgDWdSJ5d2jiXoNyxJ5FY7+3PET59vgvxi9
Eev9MwECIQC3sfR8sRWxJg82xH7lIA9sN87p7fLmr+KyhnuAK+2bcjANBgkqhkiG
9w0BAQsFAAOCAQEAOXMhz5dapVgYoLe23i+rEbBeO648c3cAO11qubqE0b5ie2bY
4DuatptwiLA47xfSVbFF0Y44cPL1b0zHe+Ki9TpcFP+TQ/+cPD2bPrqovI2uh8Qi
1RU7baLoYO9t7NxaPXh9RtRLUufJHas7HcWtLw/nPvVi+SuhgiiPytWdVM64dIPz
+nP9YY6wZhp4S/vNw5T7LARaw28xrEPzgCzWoXBUDyLB1slU3A2Uu+vl4lilcVeF
B/hl/75PWIdlxeRsD2V4TGCg796eL1BTVYEh7+mjvvaft+1/jwofKtGxg34YZHfl
6M22MuuP1pLviPZEE4ZlPXvltUV/Qq47LvZkTg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc
oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo
lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj
pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h
yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n
wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M
pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf
BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B
SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW
M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV
4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
-----END CERTIFICATE-----
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论