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

update

上级 90a3b277
<template>
<div>
<template v-if="item.news">
<a
:target="item.news.data.uri !== '' ? '_blank' : '_self'"
:href="item.news.data.uri !== '' ? item.news.data.uri : `${item.news.path}/${item.news.data.id}`">
<slot />
</a>
</template>
<template v-else>
<nuxt-link
:to="item.path">
<slot />
</nuxt-link>
</template>
</div>
</template>
<script>
export default {
props: { item: { type: Object } }
}
</script>
<template> <template>
<div class="news-item"> <div class="news-item">
<nuxt-link :to="`/about/news/${item.id}`"> <nuxt-link :to="`/about/news/${item.id}`">
<img :src="item.photo_uri" class="news-item-pic" v-if="item.photo_uri" /> <img :src="item.mobile_terminal_img_uri" class="news-item-pic" v-if="item.mobile_terminal_img_uri" />
<div class="news-item-content"> <div class="news-item-content">
<div class="news-item-content__date">{{ formatDate(item.created_time) }}</div> <div class="news-item-content__date">{{ formatDate(item.created_at) }}</div>
<div class="news-item-content__title">{{ item.title }}</div> <div class="news-item-content__title">{{ item.title }}</div>
<div class="news-item-content__text" v-if="item.summary">{{ item.summary }}</div> <div class="news-item-content__text" v-if="item.abstract">{{ item.abstract }}</div>
</div> </div>
</nuxt-link> </nuxt-link>
</div> </div>
...@@ -16,8 +16,9 @@ export default { ...@@ -16,8 +16,9 @@ export default {
props: { item: { type: Object } }, props: { item: { type: Object } },
methods: { methods: {
formatDate(value) { formatDate(value) {
const date = new Date(value.replace(/\-/g, '/')) // const date = new Date(value.replace(/\-/g, '/'))
return date.getFullYear() + '/' + date.getMonth() + 1 + '/' + date.getDate() // return date.getFullYear() + '/' + date.getMonth() + 1 + '/' + date.getDate()
return value.slice(0, value.indexOf(' '))
} }
} }
} }
......
...@@ -2,7 +2,14 @@ ...@@ -2,7 +2,14 @@
<van-swipe class="my-swipe" :autoplay="5000" indicator-color="white"> <van-swipe class="my-swipe" :autoplay="5000" indicator-color="white">
<template v-for="(item, index) in list"> <template v-for="(item, index) in list">
<van-swipe-item :key="index"> <van-swipe-item :key="index">
<nuxt-link :to="`/about/news/${item.id}`"><img :src="item.photo_uri" class="banner-img" /></nuxt-link> <template v-if="item.uri">
<a :href="item.uri" target="_blank">
<img :src="item.web_img_uri" class="banner-img" />
</a>
</template>
<template v-else>
<img :src="item.web_img_uri" class="banner-img" />
</template>
</van-swipe-item> </van-swipe-item>
</template> </template>
</van-swipe> </van-swipe>
...@@ -16,8 +23,10 @@ export default { ...@@ -16,8 +23,10 @@ export default {
} }
}, },
async fetch() { async fetch() {
const params = { page: 1, per_page: 5, type: 69, project_id: 1013 } const params = { project_id: process.env.projectId, type_tag: 'ad_banner' }
this.list = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => res) this.list = await this.$axios.get('/api/cms/api/v1/advertisements', { params }).then(res => {
return res.data.data
})
} }
} }
</script> </script>
......
...@@ -4,27 +4,29 @@ ...@@ -4,27 +4,29 @@
<template v-for="(item, index) in list"> <template v-for="(item, index) in list">
<van-swipe-item :key="index"> <van-swipe-item :key="index">
<div class="case"> <div class="case">
<nuxt-link :to="`/about/news/${item.id}?type=73`"> <new-link :item="{ news: { data: item, path: '/about/news' } }">
<img :src="item.photo_uri" class="case-pic" /> <img :src="item.web_img_uri" class="case-pic" />
<p class="case-title">{{ item.title }}</p> <p class="case-title">{{ item.title }}</p>
</nuxt-link> </new-link>
</div> </div>
</van-swipe-item> </van-swipe-item>
</template> </template>
</van-swipe> </van-swipe>
<!-- 、、阿萨德 -->
</card> </card>
</template> </template>
<script> <script>
import Card from '@/components/Card' import Card from '@/components/Card'
import NewLink from '@/components/NewLink'
export default { export default {
components: { Card }, components: { Card, NewLink },
data() { data() {
return { list: [] } return { list: [] }
}, },
async fetch() { async fetch() {
const params = { page: 1, per_page: 5, type: 73, project_id: 1013 } const params = { project_id: process.env.projectId, type_tag: 'service_case' }
this.list = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => res) this.list = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
} }
} }
</script> </script>
......
<template> <template>
<card title="公开课"> <card title="公开课">
<template #header-aside><nuxt-link to="/about/news?type=72">查看更多+</nuxt-link></template> <template #header-aside><nuxt-link to="/about/news?type=article_publish_class">查看更多+</nuxt-link></template>
<img src="/images/home_class_banner.png" class="class-banner" /> <new-link :item="{ news: { data: list.first, path: '/about/news' } }">
<img :src="list.first.web_img_uri" class="class-banner" />
</new-link>
<div class="list"> <div class="list">
<div class="list-item" v-for="(item, index) in list" :key="index"> <div class="list-item" v-for="(item, index) in list.list" :key="index">
<nuxt-link :to="`/about/news/${item.id}?type=72`"> <new-link :item="{ news: { data: item, path: '/about/news' } }">
<div class="list-item-hd"> <div class="list-item-hd">
<h3 class="list-item__title">{{ item.title }}</h3> <h3 class="list-item__title">{{ item.title }}</h3>
</div> </div>
<div class="list-item-bd"> <div class="list-item-bd">
<p class="list-item__content">{{ item.summary }}</p> <p class="list-item__content">{{ item.abstract }}</p>
</div> </div>
<div class="list-item-ft"> <div class="list-item-ft">
<span class="list-item__date">{{ formatDate(item.created_time) }}</span> <span class="list-item__date">{{ formatDate(item.created_at) }}</span>
<span class="list-item__view">{{ item.count || 36023 }}</span> <span class="list-item__view">{{ item.remarks || 36023 }}</span>
<span class="list-item__btn">免费学习</span> <span class="list-item__btn">免费学习</span>
</div> </div>
</nuxt-link> </new-link>
</div> </div>
</div> </div>
</card> </card>
</template> </template>
<script> <script>
import NewLink from '@/components/NewLink'
import Card from '@/components/Card' import Card from '@/components/Card'
export default { export default {
components: { Card }, components: { Card, NewLink },
data() { data() {
return { return {
list: [] data: []
} }
}, },
async fetch() { async fetch() {
const params = { page: 1, per_page: 2, type: 72, project_id: 1013 } const params = {
this.list = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => res) project_id: process.env.projectId, type_tag: 'article_publish_class', page: 1, limit: 4
}
await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => {
this.data = res.data.data || []
})
},
computed: {
list() {
const [first = {}, ...list] = this.data
return { first, list: list || [] }
}
}, },
methods: { methods: {
// 2020-01-22 // 2020-01-22
formatDate(value) { formatDate(value) {
const date = new Date(value.replace(/\-/g, '/')) return value.slice(0, value.indexOf(' '))
return date.getFullYear() + '-' + date.getMonth() + 1 + '-' + date.getDate()
} }
} }
} }
......
<template> <template>
<card title="项目公告"> <card title="项目公告">
<template #header-aside><nuxt-link to="/about/news?type=75">查看更多+</nuxt-link></template> <template #header-aside><nuxt-link to="/about/news?type=article_news">查看更多+</nuxt-link></template>
<div class="future"> <div class="future">
<div class="future-left">即将开始的<br />课程日期</div> <div class="future-left">即将开始的<br />课程日期</div>
<div class="future-right"> <div class="future-right">
...@@ -11,11 +11,11 @@ ...@@ -11,11 +11,11 @@
</div> </div>
</div> </div>
<div class="list"> <div class="list">
<nuxt-link :to="`/about/news/${item.id}?type=75`" v-for="(item, index) in list" :key="index"> <nuxt-link :to="`/about/news/${item.id}`" v-for="(item, index) in list" :key="index">
<div class="list-item"> <div class="list-item">
<div class="list-item__date"> <div class="list-item__date">
<p class="t1">{{ formatMD(item.created_time) }}</p> <p class="t1">{{ formatMD(item.created_at) }}</p>
<p class="t2">{{ formatYY(item.created_time) }}</p> <p class="t2">{{ formatYY(item.created_at) }}</p>
</div> </div>
<div class="list-item__title">{{ item.title }}</div> <div class="list-item__title">{{ item.title }}</div>
</div> </div>
...@@ -55,8 +55,8 @@ export default { ...@@ -55,8 +55,8 @@ export default {
} }
}, },
async fetch() { async fetch() {
const params = { page: 1, per_page: 2, type: 75, project_id: 1013 } const params = { project_id: process.env.projectId, type_tag: 'article_news', page: 1, limit: 3 }
this.list = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => res) this.list = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
} }
} }
</script> </script>
......
<template> <template>
<card title="校长寄语"> <card title="校长寄语">
<template #header-aside><nuxt-link to="/about/news?type=70">查看更多+</nuxt-link></template> <template #header-aside><nuxt-link to="/about/news?type=img_text_school">查看更多+</nuxt-link></template>
<van-swipe class="my-swipe" :autoplay="5000" :vertical="true" indicator-color="white"> <van-swipe class="my-swipe" :autoplay="5000" :vertical="true" indicator-color="white">
<template v-for="(item, index) in list"> <template v-for="(item, index) in list">
<van-swipe-item :key="index"> <van-swipe-item :key="index">
<nuxt-link :to="`/about/news/${item.id}?type=70`"><img :src="item.photo_uri" class="banner-img" /></nuxt-link> <new-link :item="{ news: { data: item, path: '/about/news' } }">
<img :src="item.web_img_uri" class="banner-img" />
</new-link>
</van-swipe-item> </van-swipe-item>
</template> </template>
</van-swipe> </van-swipe>
...@@ -13,14 +15,15 @@ ...@@ -13,14 +15,15 @@
<script> <script>
import Card from '@/components/Card' import Card from '@/components/Card'
import NewLink from '@/components/NewLink'
export default { export default {
components: { Card }, components: { Card, NewLink },
data() { data() {
return { list: [] } return { list: [] }
}, },
async fetch() { async fetch() {
const params = { page: 1, per_page: 5, type: 70, project_id: 1013 } const params = { project_id: process.env.projectId, type_tag: 'img_text_school' }
this.list = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => res) this.list = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
} }
} }
</script> </script>
......
...@@ -4,10 +4,10 @@ ...@@ -4,10 +4,10 @@
<swiper ref="mySwiper" :options="swiperOptions" class="my-swiper"> <swiper ref="mySwiper" :options="swiperOptions" class="my-swiper">
<template v-for="(item, index) in list"> <template v-for="(item, index) in list">
<swiper-slide :key="index"> <swiper-slide :key="index">
<nuxt-link :to="`/alumnus/${item.id}?type=71`"> <new-link :item="{ news: { data: item, path: '/about/news' } }">
<img :src="item.photo_uri" class="banner-img" /> <img :src="item.web_img_uri" class="banner-img" />
<p class="banner-title">{{ item.title }}</p> <p class="banner-title">{{ item.title }}</p>
</nuxt-link> </new-link>
</swiper-slide> </swiper-slide>
</template> </template>
</swiper> </swiper>
...@@ -15,9 +15,10 @@ ...@@ -15,9 +15,10 @@
</template> </template>
<script> <script>
import NewLink from '@/components/NewLink'
import Card from '@/components/Card' import Card from '@/components/Card'
export default { export default {
components: { Card }, components: { Card, NewLink },
data() { data() {
return { return {
swiperOptions: { swiperOptions: {
...@@ -32,8 +33,8 @@ export default { ...@@ -32,8 +33,8 @@ export default {
} }
}, },
async fetch() { async fetch() {
const params = { page: 1, per_page: 10, type: 71, project_id: 1013 } const params = { project_id: process.env.projectId, type_tag: 'article_alumni' }
this.list = await this.$axios.$get('/api/zws/v1/cms/news', { params }).then(res => res) this.list = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data )
} }
} }
</script> </script>
......
...@@ -6,6 +6,10 @@ if (process.env.NODE_ENV === 'production') { ...@@ -6,6 +6,10 @@ if (process.env.NODE_ENV === 'production') {
} }
export default { export default {
...config, ...config,
env: {
projectId: '6800242743894343680',
baseURL: 'https://project-api.ezijing.com'
},
axios: { axios: {
baseURL: 'https://project-api.ezijing.com' baseURL: 'https://project-api.ezijing.com'
}, },
...@@ -45,7 +49,7 @@ export default { ...@@ -45,7 +49,7 @@ export default {
css: ['vant/lib/index.css', 'swiper/css/swiper.css', '@/assets/css/base.css'], css: ['vant/lib/index.css', 'swiper/css/swiper.css', '@/assets/css/base.css'],
// 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/vant', { src: '@/plugins/swiper' }], plugins: ['@/plugins/axios', '@/plugins/vant', { src: '@/plugins/swiper' }],
// Auto import components: https://go.nuxtjs.dev/config-components // Auto import components: https://go.nuxtjs.dev/config-components
components: true, components: true,
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
<tab-nav active="3"></tab-nav> <tab-nav active="3"></tab-nav>
<div class="main-content news-detail"> <div class="main-content news-detail">
<div class="back" @click="back">&lt;返回</div> <div class="back" @click="back">&lt;返回</div>
<div class="date">{{ formatDate(data.created_time) }}</div> <!-- <div class="date">{{ formatDate(data.created_at) }}</div> -->
<div class="date">{{ data.created_at }}</div>
<h1 class="title">{{ data.title }}</h1> <h1 class="title">{{ data.title }}</h1>
<div v-html="data.content"></div> <div v-html="data.content"></div>
</div> </div>
...@@ -31,14 +32,12 @@ export default { ...@@ -31,14 +32,12 @@ export default {
return this.$route.params.id return this.$route.params.id
} }
}, },
async asyncData({ $axios, params, query }) { async fetch() {
// 新闻详情 // 新闻详情
const data = await $axios.$get(`/api/zws/v1/cms/news/${params.id}`).then(res => res) this.data = await this.$axios.get(`/api/cms/api/v1/article/${this.$route.params.id}/detail`).then(res => res.data)
// 相关推荐 // 相关推荐
const requestParams = { page: 1, per_page: 2, type: query.type || 74, project_id: 1013 } const params = { project_id: process.env.projectId, type_tag: 'article_news', page:1, limit: 3 }
const list = await $axios.$get('/api/zws/v1/cms/news', { params: requestParams }).then(res => res) this.list = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
return { data, list }
}, },
methods: { methods: {
formatDate(value) { formatDate(value) {
......
...@@ -19,10 +19,12 @@ export default { ...@@ -19,10 +19,12 @@ export default {
list: [] list: []
} }
}, },
async asyncData({ $axios, query }) { async fetch() {
const params = { page: 1, per_page: 100, type: query.type || 74, project_id: 1013 } const params = {
const list = await $axios.$get('/api/zws/v1/cms/news', { params }).then(res => res) project_id: process.env.projectId,
return { list } type_tag: this.$route.query.type || 'article_news'
}
this.list = await this.$axios.get('/api/cms/api/v1/articles', { params }).then(res => res.data.data)
} }
} }
</script> </script>
......
export default function({ $axios, redirect }) { import httpRequest from '@/utils/httpRequest'
$axios.onError(error => {
if (error.response.status === 500) { export default function({ redirect }, inject) {
redirect('/sorry') inject('axios', httpRequest)
}
})
} }
...@@ -14,9 +14,33 @@ const httpRequest = axios.create({ ...@@ -14,9 +14,33 @@ const httpRequest = axios.create({
// 请求拦截 // 请求拦截
httpRequest.interceptors.request.use( httpRequest.interceptors.request.use(
function(config) { function(config) {
if (config.headers['Content-Type'] === 'application/x-www-form-urlencoded') { const defaultParams = {
config.data = qs.stringify(config.data) timestamp: parseInt(Date.now() / 1000),
nonce: Math.random()
.toString(36)
.slice(-8)
} }
// 接口请求参数
let params = config.params || config.data
// 排序
function alphabeticalSort(a, b) {
return a.localeCompare(b)
}
params = Object.assign({}, defaultParams, params)
const str = qs.stringify(Object.assign({}, params, { salt: 'n7xAav2tSjn9Ysnr' }), { sort: alphabeticalSort })
const strs = qs.parse(str)
Object.keys(strs).map(item => {
strs[item] = Array.isArray(strs[item]) ? JSON.stringify(strs[item]) : strs[item]
})
params.signature = 'UG7wBenexQhiuD2wpCwuxkU0jqcj006d'
if (config.method === 'post') {
config.data = params
} else {
config.params = params
}
// if (config.headers['Content-Type'] === 'application/x-www-form-urlencoded') {
// config.data = qs.stringify(config.data)
// }
if (config.headers['Content-Type'] === 'multipart/form-data') { if (config.headers['Content-Type'] === 'multipart/form-data') {
const form = new window.FormData() const form = new window.FormData()
for (const key in config.data) { for (const key in config.data) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论