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

add i18n

上级 76c166fa
projectId=1001
newProjectId=6800243768751554560
baseURL=https://project-api.ezijing.com
loginURL=https://login.ezijing.com/auth
\ No newline at end of file
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
<div class="login"><a :href="loginURL">快速登录</a></div> <div class="login"><a :href="loginURL">快速登录</a></div>
<div class="register"><a :href="registerURL">注册</a></div> <div class="register"><a :href="registerURL">注册</a></div>
</div> </div>
<div class="language">
<span @click="switchLocale('zh-CN')">中文</span> / <span @click="switchLocale('en-US')">EN</span>
</div>
</div> </div>
</div> </div>
<div class="head-nav-content max-width-content"> <div class="head-nav-content max-width-content">
...@@ -38,6 +41,11 @@ export default { ...@@ -38,6 +41,11 @@ export default {
this.$store.dispatch('logout').then(() => { this.$store.dispatch('logout').then(() => {
this.$router.replace('/') this.$router.replace('/')
}) })
},
switchLocale(locale) {
this.$i18n.locale = locale
this.$cookies.set('lang', locale)
process.client && location.reload()
} }
}, },
computed: { computed: {
...@@ -45,14 +53,16 @@ export default { ...@@ -45,14 +53,16 @@ export default {
return this.$store.state.user || {} return this.$store.state.user || {}
}, },
loginURL() { loginURL() {
return `${process.env.loginURL}/login/index?redirect_uri=${encodeURIComponent( return process.client
location.origin + this.$route.fullPath ? `${process.env.loginURL}/login/index?redirect_uri=${encodeURIComponent(
)}` location.origin + this.$route.fullPath
)}`
: ''
}, },
registerURL() { registerURL() {
return `${process.env.loginURL}/register?redirect_uri=${encodeURIComponent( return process.client
location.origin + this.$route.fullPath ? `${process.env.loginURL}/register?redirect_uri=${encodeURIComponent(location.origin + this.$route.fullPath)}`
)}` : ''
} }
} }
} }
...@@ -86,9 +96,9 @@ li { ...@@ -86,9 +96,9 @@ li {
} }
.user { .user {
margin-left: auto; margin-left: auto;
font-size: 18px; font-size: 14px;
em { em {
font-size: 16px; font-size: 14px;
font-style: normal; font-style: normal;
padding: 0 14px; padding: 0 14px;
} }
...@@ -119,6 +129,12 @@ li { ...@@ -119,6 +129,12 @@ li {
border: 1px solid #eaeaea; border: 1px solid #eaeaea;
} }
} }
.language {
margin-left: 24px;
font-size: 14px;
color: #333;
cursor: pointer;
}
} }
} }
.max-width-content { .max-width-content {
......
...@@ -39,7 +39,7 @@ export default { ...@@ -39,7 +39,7 @@ export default {
} }
}, },
async fetch() { async fetch() {
const params = { project_id: process.env.projectId, type_tag: 'ad_banner' } const params = { project_id: process.env.newProjectId, type_tag: 'ad_banner' }
this.listData = await this.$axios.get('/api/cms/api/v1/advertisements', { params }).then(res => res.data.data) this.listData = await this.$axios.get('/api/cms/api/v1/advertisements', { params }).then(res => res.data.data)
}, },
computed: { computed: {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<m-title :data="titleParams" /> <m-title :data="titleParams" />
<div class="content-box" v-if="Object.keys(listData.first).length"> <div class="content-box" v-if="Object.keys(listData.first).length">
<div class="news-left"> <div class="news-left">
<app-link :item="{ news: { data: listData.first, path: '/news/hot' } }"> <app-link :item="{ news: { data: listData.first, path: '/news/hot' } }">
<img :src="listData.first.web_img_uri" alt="" /> <img :src="listData.first.web_img_uri" alt="" />
<div class="mantle-box"> <div class="mantle-box">
<div class="tit">{{ listData.first.title }}</div> <div class="tit">{{ listData.first.title }}</div>
...@@ -33,7 +33,7 @@ export default { ...@@ -33,7 +33,7 @@ export default {
AppLink AppLink
}, },
async fetch() { async fetch() {
const params = { project_id: process.env.projectId, type_tag: 'article_news_hot', page: 1, limit: 4 } const params = { project_id: process.env.newProjectId, type_tag: 'article_news_hot', page: 1, limit: 4 }
await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => { await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => {
this.data = res.data.data || [] this.data = res.data.data || []
}) })
......
...@@ -52,7 +52,7 @@ export default { ...@@ -52,7 +52,7 @@ export default {
} }
}, },
async fetch() { async fetch() {
const params = { project_id: process.env.projectId, type_tag: 'article_publish_class' } const params = { project_id: process.env.newProjectId, type_tag: 'article_publish_class' }
this.listData = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data) this.listData = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
}, },
computed: { computed: {
......
...@@ -99,7 +99,7 @@ export default { ...@@ -99,7 +99,7 @@ export default {
name: '', name: '',
phone: '', phone: '',
// channel: 19960, // channel: 19960,
project_id: process.env.projectId project_id: process.env.newProjectId
}, },
value: '', value: '',
titleParams: { titleParams: {
...@@ -125,7 +125,7 @@ export default { ...@@ -125,7 +125,7 @@ export default {
} }
}, },
async fetch() { async fetch() {
const params = { project_id: process.env.projectId, type_tag: 'kelley_alumni_share' } const params = { project_id: process.env.newProjectId, type_tag: 'kelley_alumni_share' }
this.listData = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data) this.listData = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
}, },
computed: { computed: {
......
...@@ -7,12 +7,14 @@ ...@@ -7,12 +7,14 @@
</div> </div>
<ul class="list-box"> <ul class="list-box">
<li v-for="(item, index) in listData" :key="index"> <li v-for="(item, index) in listData" :key="index">
<app-link :item="{ <app-link
news: { :item="{
data: item, news: {
path: '/news/hot' data: item,
} path: '/news/hot'
}"> }
}"
>
<img :src="item.web_img_uri" alt="" /> <img :src="item.web_img_uri" alt="" />
<div class="dec">{{ item.title }}</div> <div class="dec">{{ item.title }}</div>
</app-link> </app-link>
...@@ -36,7 +38,7 @@ export default { ...@@ -36,7 +38,7 @@ export default {
}, },
async fetch() { async fetch() {
const params = { const params = {
project_id: process.env.projectId, project_id: process.env.newProjectId,
type_tag: 'article_news_hot', type_tag: 'article_news_hot',
is_recommend: 1, is_recommend: 1,
page: 1, page: 1,
......
...@@ -21,18 +21,24 @@ ...@@ -21,18 +21,24 @@
enter-active-class="animated tada" enter-active-class="animated tada"
leave-active-class="animated bounceOutRight" leave-active-class="animated bounceOutRight"
> >
<div id="show-enroll" v-show="tabBtnActive" class="tab_cont" @mouseover="handleMsOver('')" @mouseout="handleMsOut"> <div
id="show-enroll"
v-show="tabBtnActive"
class="tab_cont"
@mouseover="handleMsOver('')"
@mouseout="handleMsOut"
>
<div class="enroll_cont" id="show-enroll-content" v-show="tabBtnTarget === 'enroll'"> <div class="enroll_cont" id="show-enroll-content" v-show="tabBtnTarget === 'enroll'">
<h5>报名咨询</h5> <h5>报名咨询</h5>
<p><el-input v-model="formInfo.name" placeholder="请输入您的姓名" size="small"></el-input></p> <p><el-input v-model="formInfo.name" placeholder="请输入您的姓名" size="small"></el-input></p>
<p><el-input v-model="formInfo.phone" placeholder="请输入您的电话" size="small"></el-input></p> <p><el-input v-model="formInfo.phone" placeholder="请输入您的电话" size="small"></el-input></p>
<!-- <p><el-input v-model="projectName" size="small" :readonly="true"></el-input></p> --> <!-- <p><el-input v-model="projectName" size="small" :readonly="true"></el-input></p> -->
<p> <p>
<select name="" id="" v-model="formInfo.projectId" disabled> <select name="" id="" v-model="formInfo.newProjectId" disabled>
<option :value="item.value" v-for="(item, index) in projectList" :key="index">{{ item.label }}</option> <option :value="item.value" v-for="(item, index) in projectList" :key="index">{{ item.label }}</option>
</select> </select>
<span class="icon el-icon-arrow-down"></span> <span class="icon el-icon-arrow-down"></span>
<!-- <el-select v-model="formInfo.projectId" placeholder="请选择" size="small"> <!-- <el-select v-model="formInfo.newProjectId" placeholder="请选择" size="small">
<el-option <el-option
v-for="item in projectList" v-for="item in projectList"
:key="item.value" :key="item.value"
...@@ -42,7 +48,10 @@ ...@@ -42,7 +48,10 @@
</el-select> --> </el-select> -->
</p> </p>
<p class="sendcode"> <p class="sendcode">
<el-input v-model="sendCode" placeholder="请输入验证码" size="small"></el-input><el-button class="btn" :disabled="isBtnDisabled" id="checkedCode" @click="getSendCode">获取验证码</el-button> <el-input v-model="sendCode" placeholder="请输入验证码" size="small"></el-input
><el-button class="btn" :disabled="isBtnDisabled" id="checkedCode" @click="getSendCode"
>获取验证码</el-button
>
</p> </p>
<p><el-button style="width: 100%" @click="submitEnroll">立即报名</el-button></p> <p><el-button style="width: 100%" @click="submitEnroll">立即报名</el-button></p>
</div> </div>
...@@ -68,15 +77,15 @@ export default { ...@@ -68,15 +77,15 @@ export default {
formInfo: { formInfo: {
name: '', name: '',
phone: '', phone: '',
projectId: '1001' newProjectId: '1001'
}, },
projectList: [ projectList: [
{label:'金融工商管理硕士', value: '1000'}, { label: '金融工商管理硕士', value: '1000' },
{label:'酒店及旅游业工商管理硕士', value: '1008'}, { label: '酒店及旅游业工商管理硕士', value: '1008' },
{label:'金融硕士', value: '1001'}, { label: '金融硕士', value: '1001' },
{label:'应用心理学硕士', value: '1006'}, { label: '应用心理学硕士', value: '1006' },
{label:'教育学硕士', value: '1005'}, { label: '教育学硕士', value: '1005' },
{label:'中国未来金融领袖计划', value: '1007'}, { label: '中国未来金融领袖计划', value: '1007' }
] ]
} }
}, },
...@@ -122,26 +131,25 @@ export default { ...@@ -122,26 +131,25 @@ export default {
enrollQuery() { enrollQuery() {
const params = { const params = {
channel: 19960, channel: 19960,
project_id: this.formInfo.projectId, project_id: this.formInfo.newProjectId,
name: this.formInfo.name, name: this.formInfo.name,
phone: this.formInfo.phone phone: this.formInfo.phone
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
postNes(params) postNes(params).then(res => {
.then(res => { if (res && res.status === 200 && res.error === 0) {
if (res && res.status === 200 && res.error === 0) { resolve({
resolve({ type: 'enroll',
type: 'enroll', state: 'success'
state: 'success' })
}) } else {
} else { reject({
reject({ type: 'enroll',
type: 'enroll', state: 'fail',
state: 'fail', msg: res.message || '报名提交失败'
msg: res.message || '报名提交失败' })
}) }
} })
})
}) })
}, },
getSendCode() { getSendCode() {
...@@ -166,7 +174,7 @@ export default { ...@@ -166,7 +174,7 @@ export default {
checkSendcode() { checkSendcode() {
const checkCodeParam = { const checkCodeParam = {
account: this.formInfo.phone, account: this.formInfo.phone,
code:this.sendCode code: this.sendCode
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
checkCode(checkCodeParam).then(res => { checkCode(checkCodeParam).then(res => {
...@@ -195,7 +203,7 @@ export default { ...@@ -195,7 +203,7 @@ export default {
if (count < 1) { if (count < 1) {
clearInterval(timer) clearInterval(timer)
this.isBtnDisabled = false this.isBtnDisabled = false
document.querySelector('#checkedCode').innerHTML = '获取验证码' document.querySelector('#checkedCode').innerHTML = '获取验证码'
} else { } else {
document.querySelector('#checkedCode').innerHTML = count + '秒后重发' document.querySelector('#checkedCode').innerHTML = count + '秒后重发'
} }
...@@ -210,7 +218,7 @@ export default { ...@@ -210,7 +218,7 @@ export default {
top: 50%; top: 50%;
right: 10px; right: 10px;
z-index: 2000; z-index: 2000;
transform:translateY(-50%); transform: translateY(-50%);
.tab_btns { .tab_btns {
width: 100px; width: 100px;
// height: 136px; // height: 136px;
...@@ -289,10 +297,10 @@ export default { ...@@ -289,10 +297,10 @@ export default {
line-height: 44px; line-height: 44px;
height: 44px; height: 44px;
} }
::v-deep.el-select{ ::v-deep.el-select {
width: 100%; width: 100%;
} }
select{ select {
width: 100%; width: 100%;
height: 44px; height: 44px;
border-radius: 5px; border-radius: 5px;
...@@ -304,11 +312,11 @@ export default { ...@@ -304,11 +312,11 @@ export default {
color: #606266; color: #606266;
padding: 0 12px; padding: 0 12px;
box-sizing: border-box; box-sizing: border-box;
appearance:none; appearance: none;
-moz-appearance:none; -moz-appearance: none;
-webkit-appearance:none; -webkit-appearance: none;
} }
.icon{ .icon {
position: absolute; position: absolute;
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
...@@ -317,8 +325,8 @@ export default { ...@@ -317,8 +325,8 @@ export default {
} }
::v-deep.el-button { ::v-deep.el-button {
background-color: #ff8e1a; background-color: #ff8e1a;
border:#ff8e1a 1px solid; border: #ff8e1a 1px solid;
color:rgba(255,255,255,.9); color: rgba(255, 255, 255, 0.9);
} }
} }
.sendcode { .sendcode {
...@@ -333,7 +341,7 @@ export default { ...@@ -333,7 +341,7 @@ export default {
padding: 12px 0; padding: 12px 0;
text-align: center; text-align: center;
} }
::v-deep.is-disabled{ ::v-deep.is-disabled {
color: #c0c4cc; color: #c0c4cc;
cursor: not-allowed; cursor: not-allowed;
background-image: none; background-image: none;
......
export default {
menu: {
about: 'About'
}
}
export default {
menu: {
about: '关于紫荆'
}
}
export default function(context) {
const UA = process.server ? context.req.headers['user-agent'] : navigator.userAgent
const isMobile = /iphone/i.test(UA) || (/android/i.test(UA) && /mobile/i.test(UA))
isMobile && context.redirect('https://h5.ezijing.com/')
}
export default function({ app }) {
const defaultLocale = app.i18n.fallbackLocale
const locale = app.$cookies.get('lang') || defaultLocale
app.i18n.locale = locale
}
...@@ -2,23 +2,11 @@ import path from 'path' ...@@ -2,23 +2,11 @@ import path from 'path'
import fs from 'fs' import fs from 'fs'
import routes from './router/routes' import routes from './router/routes'
let config = {} export default {
if (process.env.NODE_ENV === 'production') { ssr: false,
config = { env: process.env,
env: { server: { port: 2048, host: '0.0.0.0' },
projectId: '6800243768751554560', ...(process.env.NODE_ENV === 'development' && {
baseURL: 'https://project-api.ezijing.com',
loginURL: 'https://login.ezijing.com/auth'
},
server: { port: 2048, host: '0.0.0.0' }
}
} else {
config = {
env: {
projectId: '6800243768751554560',
baseURL: 'https://project-api.ezijing.com',
loginURL: 'https://login.ezijing.com/auth'
},
server: { server: {
host: 'dev.ezijing.com', host: 'dev.ezijing.com',
https: { https: {
...@@ -26,12 +14,7 @@ if (process.env.NODE_ENV === 'production') { ...@@ -26,12 +14,7 @@ if (process.env.NODE_ENV === 'production') {
cert: fs.readFileSync(path.resolve(__dirname, 'dev.ezijing.com.pem')) cert: fs.readFileSync(path.resolve(__dirname, 'dev.ezijing.com.pem'))
} }
} }
} }),
}
export default {
...config,
ssr: false,
// Global page headers: https://go.nuxtjs.dev/config-head // Global page headers: https://go.nuxtjs.dev/config-head
head: { head: {
title: '紫荆教育-在线MBA课程-MBA在线课程-专业金融在线教育品牌', title: '紫荆教育-在线MBA课程-MBA在线课程-专业金融在线教育品牌',
...@@ -66,6 +49,7 @@ export default { ...@@ -66,6 +49,7 @@ export default {
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
plugins: [ plugins: [
'@/plugins/i18n',
'@/plugins/router', '@/plugins/router',
'@/plugins/axios', '@/plugins/axios',
'@/plugins/element-ui', '@/plugins/element-ui',
...@@ -83,13 +67,14 @@ export default { ...@@ -83,13 +67,14 @@ export default {
buildModules: [], buildModules: [],
// Modules: https://go.nuxtjs.dev/config-modules // Modules: https://go.nuxtjs.dev/config-modules
modules: [], modules: ['cookie-universal-nuxt'],
// Build Configuration: https://go.nuxtjs.dev/config-build // Build Configuration: https://go.nuxtjs.dev/config-build
build: { build: {
transpile: [/^element-ui/] transpile: [/^element-ui/]
}, },
router: { router: {
extendRoutes: routes extendRoutes: routes,
middleware: ['device', 'i18n']
} }
} }
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@ezijing/vue-form": "^2.2.1", "@ezijing/vue-form": "^2.2.1",
"@ezijing/vue-passport": "^1.0.3",
"axios": "^0.21.1", "axios": "^0.21.1",
"cookie-universal-nuxt": "^2.1.4",
"core-js": "^3.9.1", "core-js": "^3.9.1",
"driver.js": "^0.9.8", "driver.js": "^0.9.8",
"element-ui": "^2.15.1", "element-ui": "^2.15.1",
...@@ -18,10 +18,10 @@ ...@@ -18,10 +18,10 @@
"qs": "^6.10.1", "qs": "^6.10.1",
"swiper": "^5.4.5", "swiper": "^5.4.5",
"viewerjs": "^1.9.0", "viewerjs": "^1.9.0",
"vue-awesome-swiper": "^4.1.1" "vue-awesome-swiper": "^4.1.1",
"vue-i18n": "^8.24.4"
}, },
"devDependencies": { "devDependencies": {
"@nuxtjs/proxy": "^2.1.0",
"sass": "^1.32.11", "sass": "^1.32.11",
"sass-loader": "^10.1.1" "sass-loader": "^10.1.1"
} }
...@@ -1030,25 +1030,6 @@ ...@@ -1030,25 +1030,6 @@
"follow-redirects": "^1.10.0" "follow-redirects": "^1.10.0"
} }
}, },
"node_modules/@ezijing/vue-passport": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@ezijing/vue-passport/-/vue-passport-1.0.3.tgz",
"integrity": "sha512-xUn45oMygUA3COIp0WOPeZMfJ77nr36qQ7Zyqh+VXYls3n1mpbnQEHQ0mmD8i2HfQLGbi9LmwiilvK0jXGlU3g==",
"dependencies": {
"axios": "^0.20.0",
"element-ui": "^2.13.2",
"md5": "^2.3.0"
}
},
"node_modules/@ezijing/vue-passport/node_modules/axios": {
"version": "0.20.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz",
"integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==",
"deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410",
"dependencies": {
"follow-redirects": "^1.10.0"
}
},
"node_modules/@nodelib/fs.scandir": { "node_modules/@nodelib/fs.scandir": {
"version": "2.1.4", "version": "2.1.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
...@@ -1977,15 +1958,6 @@ ...@@ -1977,15 +1958,6 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}, },
"node_modules/@nuxtjs/proxy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@nuxtjs/proxy/-/proxy-2.1.0.tgz",
"integrity": "sha512-/qtoeqXgZ4Mg6LRg/gDUZQrFpOlOdHrol/vQYMnKu3aN3bP90UfOUB3QSDghUUK7OISAJ0xp8Ld78aHyCTcKCQ==",
"dev": true,
"dependencies": {
"http-proxy-middleware": "^1.0.6"
}
},
"node_modules/@nuxtjs/youch": { "node_modules/@nuxtjs/youch": {
"version": "4.2.3", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/@nuxtjs/youch/-/youch-4.2.3.tgz", "resolved": "https://registry.npmjs.org/@nuxtjs/youch/-/youch-4.2.3.tgz",
...@@ -2006,20 +1978,16 @@ ...@@ -2006,20 +1978,16 @@
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
"integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA=="
}, },
"node_modules/@types/cookie": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz",
"integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow=="
},
"node_modules/@types/html-minifier-terser": { "node_modules/@types/html-minifier-terser": {
"version": "5.1.1", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
"integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==" "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA=="
}, },
"node_modules/@types/http-proxy": {
"version": "1.17.5",
"resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz",
"integrity": "sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/json-schema": { "node_modules/@types/json-schema": {
"version": "7.0.7", "version": "7.0.7",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
...@@ -3386,14 +3354,6 @@ ...@@ -3386,14 +3354,6 @@
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
}, },
"node_modules/charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
"engines": {
"node": "*"
}
},
"node_modules/chokidar": { "node_modules/chokidar": {
"version": "3.5.1", "version": "3.5.1",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
...@@ -3717,6 +3677,32 @@ ...@@ -3717,6 +3677,32 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/cookie-universal": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/cookie-universal/-/cookie-universal-2.1.4.tgz",
"integrity": "sha512-dwWXs7NGBzaBYDypu3jWH5M3NJW+zu5QdyJkFMHJvhLuyL4/eXG4105fwtTDwfIqyTunwVvQX4PHdtfPDS7URQ==",
"dependencies": {
"@types/cookie": "^0.3.3",
"cookie": "^0.4.0"
}
},
"node_modules/cookie-universal-nuxt": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/cookie-universal-nuxt/-/cookie-universal-nuxt-2.1.4.tgz",
"integrity": "sha512-xbn4Ozs9S0u2+0mQTZRwGlBL9MGNq8N4H6iGfprR5ufZFCS2hGef++3DBHSmHXZi30Wu3Q7RI/GkNMhz3cecmg==",
"dependencies": {
"@types/cookie": "^0.3.3",
"cookie-universal": "^2.1.4"
}
},
"node_modules/cookie-universal/node_modules/cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/copy-concurrently": { "node_modules/copy-concurrently": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
...@@ -3844,14 +3830,6 @@ ...@@ -3844,14 +3830,6 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/crypt": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
"engines": {
"node": "*"
}
},
"node_modules/crypto-browserify": { "node_modules/crypto-browserify": {
"version": "3.12.0", "version": "3.12.0",
"resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
...@@ -4729,12 +4707,6 @@ ...@@ -4729,12 +4707,6 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"dev": true
},
"node_modules/events": { "node_modules/events": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
...@@ -5874,36 +5846,6 @@ ...@@ -5874,36 +5846,6 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/http-proxy": {
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
"integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
"dependencies": {
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
"requires-port": "^1.0.0"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/http-proxy-middleware": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz",
"integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==",
"dev": true,
"dependencies": {
"@types/http-proxy": "^1.17.5",
"http-proxy": "^1.18.1",
"is-glob": "^4.0.1",
"is-plain-obj": "^3.0.0",
"micromatch": "^4.0.2"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/https-browserify": { "node_modules/https-browserify": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
...@@ -6381,18 +6323,6 @@ ...@@ -6381,18 +6323,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/is-plain-obj": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
"integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
"dev": true,
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-plain-object": { "node_modules/is-plain-object": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
...@@ -6781,16 +6711,6 @@ ...@@ -6781,16 +6711,6 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/md5": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
"dependencies": {
"charenc": "0.0.2",
"crypt": "0.0.2",
"is-buffer": "~1.1.6"
}
},
"node_modules/md5.js": { "node_modules/md5.js": {
"version": "1.3.5", "version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
...@@ -9533,12 +9453,6 @@ ...@@ -9533,12 +9453,6 @@
"node": ">=0.10" "node": ">=0.10"
} }
}, },
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
},
"node_modules/resize-observer-polyfill": { "node_modules/resize-observer-polyfill": {
"version": "1.5.1", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
...@@ -11359,6 +11273,11 @@ ...@@ -11359,6 +11273,11 @@
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog=="
}, },
"node_modules/vue-i18n": {
"version": "8.24.4",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.24.4.tgz",
"integrity": "sha512-RZE94WUAGxEiBAANxQ0pptbRwDkNKNSXl3fnJslpFOxVMF6UkUtMDSuYGuW2blDrVgweIXVpethOVkYoNNT9xw=="
},
"node_modules/vue-loader": { "node_modules/vue-loader": {
"version": "15.9.6", "version": "15.9.6",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz",
...@@ -13783,26 +13702,6 @@ ...@@ -13783,26 +13702,6 @@
} }
} }
}, },
"@ezijing/vue-passport": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@ezijing/vue-passport/-/vue-passport-1.0.3.tgz",
"integrity": "sha512-xUn45oMygUA3COIp0WOPeZMfJ77nr36qQ7Zyqh+VXYls3n1mpbnQEHQ0mmD8i2HfQLGbi9LmwiilvK0jXGlU3g==",
"requires": {
"axios": "^0.20.0",
"element-ui": "^2.13.2",
"md5": "^2.3.0"
},
"dependencies": {
"axios": {
"version": "0.20.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz",
"integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==",
"requires": {
"follow-redirects": "^1.10.0"
}
}
}
},
"@nodelib/fs.scandir": { "@nodelib/fs.scandir": {
"version": "2.1.4", "version": "2.1.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
...@@ -14583,15 +14482,6 @@ ...@@ -14583,15 +14482,6 @@
} }
} }
}, },
"@nuxtjs/proxy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@nuxtjs/proxy/-/proxy-2.1.0.tgz",
"integrity": "sha512-/qtoeqXgZ4Mg6LRg/gDUZQrFpOlOdHrol/vQYMnKu3aN3bP90UfOUB3QSDghUUK7OISAJ0xp8Ld78aHyCTcKCQ==",
"dev": true,
"requires": {
"http-proxy-middleware": "^1.0.6"
}
},
"@nuxtjs/youch": { "@nuxtjs/youch": {
"version": "4.2.3", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/@nuxtjs/youch/-/youch-4.2.3.tgz", "resolved": "https://registry.npmjs.org/@nuxtjs/youch/-/youch-4.2.3.tgz",
...@@ -14612,20 +14502,16 @@ ...@@ -14612,20 +14502,16 @@
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
"integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA=="
}, },
"@types/cookie": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz",
"integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow=="
},
"@types/html-minifier-terser": { "@types/html-minifier-terser": {
"version": "5.1.1", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
"integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==" "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA=="
}, },
"@types/http-proxy": {
"version": "1.17.5",
"resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz",
"integrity": "sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/json-schema": { "@types/json-schema": {
"version": "7.0.7", "version": "7.0.7",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
...@@ -15824,11 +15710,6 @@ ...@@ -15824,11 +15710,6 @@
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
}, },
"charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
},
"chokidar": { "chokidar": {
"version": "3.5.1", "version": "3.5.1",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
...@@ -16102,6 +15983,31 @@ ...@@ -16102,6 +15983,31 @@
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
}, },
"cookie-universal": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/cookie-universal/-/cookie-universal-2.1.4.tgz",
"integrity": "sha512-dwWXs7NGBzaBYDypu3jWH5M3NJW+zu5QdyJkFMHJvhLuyL4/eXG4105fwtTDwfIqyTunwVvQX4PHdtfPDS7URQ==",
"requires": {
"@types/cookie": "^0.3.3",
"cookie": "^0.4.0"
},
"dependencies": {
"cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
}
}
},
"cookie-universal-nuxt": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/cookie-universal-nuxt/-/cookie-universal-nuxt-2.1.4.tgz",
"integrity": "sha512-xbn4Ozs9S0u2+0mQTZRwGlBL9MGNq8N4H6iGfprR5ufZFCS2hGef++3DBHSmHXZi30Wu3Q7RI/GkNMhz3cecmg==",
"requires": {
"@types/cookie": "^0.3.3",
"cookie-universal": "^2.1.4"
}
},
"copy-concurrently": { "copy-concurrently": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
...@@ -16221,11 +16127,6 @@ ...@@ -16221,11 +16127,6 @@
"which": "^2.0.1" "which": "^2.0.1"
} }
}, },
"crypt": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
},
"crypto-browserify": { "crypto-browserify": {
"version": "3.12.0", "version": "3.12.0",
"resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
...@@ -16937,12 +16838,6 @@ ...@@ -16937,12 +16838,6 @@
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
}, },
"eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"dev": true
},
"events": { "events": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
...@@ -17886,30 +17781,6 @@ ...@@ -17886,30 +17781,6 @@
"toidentifier": "1.0.0" "toidentifier": "1.0.0"
} }
}, },
"http-proxy": {
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
"integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
"requires": {
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
"requires-port": "^1.0.0"
}
},
"http-proxy-middleware": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz",
"integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==",
"dev": true,
"requires": {
"@types/http-proxy": "^1.17.5",
"http-proxy": "^1.18.1",
"is-glob": "^4.0.1",
"is-plain-obj": "^3.0.0",
"micromatch": "^4.0.2"
}
},
"https-browserify": { "https-browserify": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
...@@ -18278,12 +18149,6 @@ ...@@ -18278,12 +18149,6 @@
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
}, },
"is-plain-obj": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
"integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
"dev": true
},
"is-plain-object": { "is-plain-object": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
...@@ -18595,16 +18460,6 @@ ...@@ -18595,16 +18460,6 @@
"object-visit": "^1.0.0" "object-visit": "^1.0.0"
} }
}, },
"md5": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
"requires": {
"charenc": "0.0.2",
"crypt": "0.0.2",
"is-buffer": "~1.1.6"
}
},
"md5.js": { "md5.js": {
"version": "1.3.5", "version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
...@@ -20891,12 +20746,6 @@ ...@@ -20891,12 +20746,6 @@
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
}, },
"requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
},
"resize-observer-polyfill": { "resize-observer-polyfill": {
"version": "1.5.1", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
...@@ -22400,6 +22249,11 @@ ...@@ -22400,6 +22249,11 @@
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog=="
}, },
"vue-i18n": {
"version": "8.24.4",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.24.4.tgz",
"integrity": "sha512-RZE94WUAGxEiBAANxQ0pptbRwDkNKNSXl3fnJslpFOxVMF6UkUtMDSuYGuW2blDrVgweIXVpethOVkYoNNT9xw=="
},
"vue-loader": { "vue-loader": {
"version": "15.9.6", "version": "15.9.6",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz",
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
"version": "1.0.0", "version": "1.0.0",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "nuxt --open", "dev": "nuxt --open --dotenv .env.dev",
"build": "nuxt build", "build": "nuxt build",
"start": "nuxt start", "start": "nuxt start",
"generate": "nuxt generate" "generate": "nuxt generate"
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
"dependencies": { "dependencies": {
"@ezijing/vue-form": "^2.2.1", "@ezijing/vue-form": "^2.2.1",
"axios": "^0.21.1", "axios": "^0.21.1",
"cookie-universal-nuxt": "^2.1.4",
"core-js": "^3.9.1", "core-js": "^3.9.1",
"driver.js": "^0.9.8", "driver.js": "^0.9.8",
"element-ui": "^2.15.1", "element-ui": "^2.15.1",
...@@ -19,7 +20,8 @@ ...@@ -19,7 +20,8 @@
"qs": "^6.10.1", "qs": "^6.10.1",
"swiper": "^5.4.5", "swiper": "^5.4.5",
"viewerjs": "^1.9.0", "viewerjs": "^1.9.0",
"vue-awesome-swiper": "^4.1.1" "vue-awesome-swiper": "^4.1.1",
"vue-i18n": "^8.24.4"
}, },
"devDependencies": { "devDependencies": {
"sass": "^1.32.11", "sass": "^1.32.11",
......
...@@ -15,7 +15,7 @@ export default { ...@@ -15,7 +15,7 @@ export default {
newsItem newsItem
}, },
async fetch() { async fetch() {
const params = { project_id: process.env.projectId, type_tag: 'kelley_alumni_share' } const params = { project_id: process.env.newProjectId, type_tag: 'kelley_alumni_share' }
this.newsList = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data) this.newsList = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
}, },
data() { data() {
......
...@@ -15,7 +15,7 @@ export default { ...@@ -15,7 +15,7 @@ export default {
newsItem newsItem
}, },
async fetch() { async fetch() {
const params = { project_id: process.env.projectId, type_tag: this.$route.query.type || 'article_news_hot' } const params = { project_id: process.env.newProjectId, type_tag: this.$route.query.type || 'article_news_hot' }
this.newsList = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data) this.newsList = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
}, },
data() { data() {
......
...@@ -16,7 +16,7 @@ export default { ...@@ -16,7 +16,7 @@ export default {
newsItem newsItem
}, },
async fetch() { async fetch() {
const params = { project_id: process.env.projectId, type_tag: 'kelley_interview' } const params = { project_id: process.env.newProjectId, type_tag: 'kelley_interview' }
this.newsList = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data) this.newsList = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
}, },
data() { data() {
......
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import zhCN from '@/langs/zh-CN'
import enUS from '@/langs/en-US'
Vue.use(VueI18n)
export default ({ app, store }) => {
app.i18n = new VueI18n({
locale: store.state.locale,
fallbackLocale: 'zh-CN',
messages: { 'zh-CN': zhCN, 'en-US': enUS }
})
}
...@@ -14,29 +14,31 @@ const httpRequest = axios.create({ ...@@ -14,29 +14,31 @@ const httpRequest = axios.create({
// 请求拦截 // 请求拦截
httpRequest.interceptors.request.use( httpRequest.interceptors.request.use(
function(config) { function(config) {
const defaultParams = { if (config.url.includes('/api/cms')) {
timestamp: parseInt(Date.now() / 1000), const defaultParams = {
nonce: Math.random() timestamp: parseInt(Date.now() / 1000),
.toString(36) nonce: Math.random()
.slice(-8) .toString(36)
} .slice(-8)
// 接口请求参数 }
let params = config.params || config.data // 接口请求参数
// 排序 let params = config.params || config.data
function alphabeticalSort(a, b) { // 排序
return a.localeCompare(b) function alphabeticalSort(a, b) {
} return a.localeCompare(b)
params = Object.assign({}, defaultParams, params) }
const str = qs.stringify(Object.assign({}, params, { salt: 'n7xAav2tSjn9Ysnr' }), { sort: alphabeticalSort }) params = Object.assign({}, defaultParams, params)
const strs = qs.parse(str) const str = qs.stringify(Object.assign({}, params, { salt: 'n7xAav2tSjn9Ysnr' }), { sort: alphabeticalSort })
Object.keys(strs).map(item => { const strs = qs.parse(str)
strs[item] = Array.isArray(strs[item]) ? JSON.stringify(strs[item]) : strs[item] Object.keys(strs).map(item => {
}) strs[item] = Array.isArray(strs[item]) ? JSON.stringify(strs[item]) : strs[item]
params.signature = 'UG7wBenexQhiuD2wpCwuxkU0jqcj006d' })
if (config.method === 'post') { params.signature = 'UG7wBenexQhiuD2wpCwuxkU0jqcj006d'
config.data = params if (config.method === 'post') {
} else { config.data = params
config.params = params } else {
config.params = params
}
} }
// if (config.headers['Content-Type'] === 'application/x-www-form-urlencoded') { // if (config.headers['Content-Type'] === 'application/x-www-form-urlencoded') {
// config.data = qs.stringify(config.data) // config.data = qs.stringify(config.data)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论