yujialong 1 year ago
parent f89cc9b2a9
commit 2edf4cf9f0
  1. BIN
      src/assets/images/mall1.png
  2. 4
      src/components/rightColumns/index.vue
  3. 16
      src/pages/article/index.vue
  4. 10
      src/pages/column/index.vue
  5. 40
      src/pages/contactUs/index.vue
  6. 35
      src/pages/devHistory/index.vue
  7. 65
      src/pages/governance/index.vue
  8. 95
      src/pages/lightSources/index.vue
  9. 32
      src/pages/mission/index.vue
  10. 207
      src/pages/org/index.vue
  11. 42
      src/pages/publish/show.vue
  12. 135
      src/pages/scientific/index.vue
  13. 2
      src/pages/talentCentre/index.vue
  14. 20
      src/styles/page/page.scss

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

@ -1,5 +1,5 @@
<template>
<div class="right party">
<div :class="['right', {party}]">
<el-tree class="column"
ref="column"
:data="columns"
@ -37,7 +37,7 @@
import Util from '@/libs/util'
import mixins from '@/mixins/article'
export default {
props: {},
props: ['party'],
mixins: [mixins],
data () {
return {

@ -30,7 +30,8 @@
</ul>
</div>
</div>
<RightColumns ref="right" />
<RightColumns ref="right"
:party="isParty" />
</div>
</div>
</div>
@ -47,11 +48,12 @@ export default {
data () {
return {
id: this.$route.query.articleId,
columnId: +this.$route.query.id,
loaded: false,
routes: [],
columnId: '',
form: {},
columnBanner: '',
isParty: 0
}
},
components: {
@ -65,7 +67,7 @@ export default {
}
},
mounted () {
this.getColumnInfo()
},
methods: {
//
@ -110,6 +112,14 @@ export default {
// +1
this.$post(`${this.api.articlePreview}?contentId=${this.id}`).then(({ data }) => { }).catch(err => { })
},
//
getColumnInfo () {
this.columnId && this.$post(`${this.api.findColumn}?id=${this.columnId}`)
.then(({ data }) => {
if (data.detailStyleId == 69) this.isParty = 1
})
.catch((res) => { });
},
// banner
getBanner (data) {
for (const e of data) {

@ -1,7 +1,6 @@
<template>
<div class="party"
v-show="loaded"
:class="['wrap', { activity: info.listStyleId === 15 }]">
<div v-show="loaded"
:class="['wrap', { activity: info.listStyleId === 15, party: info.listStyleId === 68 }]">
<div class="banner">
<img width="100%"
height="280"
@ -1026,6 +1025,11 @@ export default {
flex-grow: 1;
}
}
.overDetail {
.texts {
width: 70%;
}
}
li {
display: flex;
justify-content: space-between;

@ -1,4 +1,5 @@
<template>
<!-- 联系我们 -->
<div class="wrap">
<div class="single-banner">
<img class="banner-img"
@ -15,35 +16,45 @@
:data.sync="routes" />
<div class="contact">
<div class="fields">
<h6>Contact us</h6>
<p class="text">发圣诞节快乐副驾驶打卡了分速度快了父级圣诞快乐</p>
<p class="text">发圣诞节快乐副驾驶打卡了分速度快了父级圣诞快乐</p>
<p class="text">发圣诞节快乐副驾驶打卡了分速度快了父级圣诞快乐</p>
<h6>{{ modules[1].form.title }}</h6>
<p class="text">{{ modules[1].form.address }}</p>
<p class="text">{{ modules[1].form.phone }}</p>
<p class="text">{{ modules[1].form.email }}</p>
</div>
<img src="http://10.10.11.7/images/contactUs/2.png"
<img :src="modules[2].form.pic"
alt=""
class="pic">
<el-table :data="list"
<el-table :data="modules[3].list"
class="patent-table"
ref="table"
stripe
header-align="center">
<el-table-column prop="title"
<el-table-column prop="dep"
label="部门"
align="center"
min-width="250"></el-table-column>
<el-table-column prop="publishingHouse"
<el-table-column prop="contacts"
label="联系人"
align="center"
min-width="100"></el-table-column>
<el-table-column prop="writersAndEditors"
<el-table-column prop="phone"
label="电话"
align="center"
min-width="150"></el-table-column>
<el-table-column prop="publicationYear"
<el-table-column prop="email"
label="邮箱"
align="center"
min-width="150"></el-table-column>
min-width="150">
<template slot-scope="scope">
<div class="flex j-center a-center">
<img class="m-r-5"
src="@/assets/images/mall1.png"
alt="">
{{ scope.row.email }}
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
@ -180,4 +191,11 @@ export default {
margin: 2rem 0 1.5rem;
}
}
/deep/.patent-table {
thead tr,
thead th {
color: #fff;
background-color: #1583ff;
}
}
</style>

@ -1,7 +1,9 @@
<template>
<div class="wrap">
<div class="single-banner">
<img class="banner-img" :src="modules[0].form.pic" alt="" />
<img class="banner-img"
:src="modules[0].form.pic"
alt="" />
<div class="texts">
<h6 class="banner-title">{{ modules[0].form.title }}</h6>
</div>
@ -11,10 +13,13 @@
<div class="inner">
<h6>{{ modules[1].form.title }}</h6>
<p class="en">{{ modules[1].form.subTitle }}</p>
<div class="text" v-html="modules[1].form.des"></div>
<div class="text"
v-html="modules[1].form.des"></div>
<h6 style="font-size: 1.6rem">{{ modules[2].form.title }}</h6>
<p class="en" style="margin-top: -15px;font-size: 1.6rem">{{ modules[2].form.subTitle }}</p>
<div class="text" v-html="modules[2].form.des"></div>
<p class="en"
style="margin-top: -15px;font-size: 1.6rem">{{ modules[2].form.subTitle }}</p>
<div class="text"
v-html="modules[2].form.des"></div>
</div>
</div>
</div>
@ -25,17 +30,17 @@ import mixins from "@/mixins/page";
import WOW from "wow.js";
export default {
mixins: [mixins],
data() {
data () {
return {
};
},
mounted() {
mounted () {
new WOW().init();
},
methods: {
//
getInfo() {
getInfo () {
// /
this.$post(
`${this.api[this.preview ? "getRedisCache" : "findPage"]}?columnId=${this.id}`
@ -54,7 +59,7 @@ export default {
console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json);
}
})
.catch((err) => {});
.catch((err) => { });
},
},
};
@ -62,8 +67,11 @@ export default {
<style lang="scss" scoped>
@import url(../../plugins/wow/animate.css);
@import "../../styles/page/page.scss";
@import '../../styles/page/page.scss';
.history {
.inner {
width: 1000px;
}
h6 {
position: relative;
font-size: 2.2rem;
@ -76,7 +84,7 @@ export default {
font-size: 2.2rem;
font-family: PingFangSC-Light, PingFang SC;
font-weight: 300;
color: #E3E3E3;
color: #e3e3e3;
}
.text {
max-width: 1200px;
@ -84,4 +92,11 @@ export default {
overflow: auto;
}
}
@media (max-width: 1000px) {
.history {
.inner {
width: 90%;
}
}
}
</style>

@ -1,7 +1,9 @@
<template>
<div class="wrap">
<div class="single-banner">
<img class="banner-img" :src="modules[0].form.pic" alt="" />
<img class="banner-img"
:src="modules[0].form.pic"
alt="" />
<div class="texts">
<h6 class="banner-title">{{ modules[0].form.title }}</h6>
</div>
@ -9,29 +11,42 @@
<div class="block history gray">
<div class="inner">
<div class="texts wow fadeInDown" data-wow-delay="0.5s">
<div class="texts wow fadeInDown"
data-wow-delay="0.5s">
<div class="left">
<h2>{{ modules[1].form.title }}</h2>
<div class="text" v-html="modules[1].form.des"></div>
<div class="text"
v-html="modules[1].form.des"></div>
</div>
<img class="bg" width="562" height="506" :src="modules[1].form.pic" alt="">
<img class="bg"
width="562"
height="506"
:src="modules[1].form.pic"
alt="">
</div>
</div>
</div>
<div class="cards">
<ul>
<li v-for="(item, i) in modules[2].list" :key="i">{{ item.title }}</li>
<li v-for="(item, i) in modules[2].list"
:key="i"
:class="{active: curYear == i}"
@click="depClick(i)">{{ item.title }}</li>
</ul>
</div>
<div class="block committee gray">
<div class="inner">
<div v-if="modules[2].list[curYear].list[0]"
class="inner">
<div class="left">
<h2>{{ modules[3].form.title }}</h2>
<div class="text" v-html="modules[3].form.des"></div>
<h2>{{ modules[2].list[curYear].list[0].title }}</h2>
<div class="text"
v-html="modules[2].list[curYear].list[0].des"></div>
</div>
<img class="pic" :src="modules[3].form.pic" alt="">
<img class="pic"
:src="modules[2].list[curYear].list[0].pic"
alt="">
</div>
</div>
</div>
@ -42,17 +57,17 @@ import mixins from "@/mixins/page";
import WOW from "wow.js";
export default {
mixins: [mixins],
data() {
data () {
return {
curYear: 0,
};
},
mounted() {
mounted () {
new WOW().init();
},
methods: {
//
getInfo() {
getInfo () {
// /
this.$post(
`${this.api[this.preview ? "getRedisCache" : "findPage"]}?columnId=${this.id}`
@ -71,15 +86,19 @@ export default {
console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json);
}
})
.catch((err) => {});
.catch((err) => { });
},
//
depClick (i) {
this.curYear = i
}
},
};
</script>
<style lang="scss" scoped>
@import url(../../plugins/wow/animate.css);
@import "../../styles/page/page.scss";
@import '../../styles/page/page.scss';
.history {
h2 {
padding-bottom: 15px;
@ -91,7 +110,7 @@ export default {
width: 65px;
height: 3px;
margin-top: 20px;
background: #0280F1;
background: #0280f1;
}
}
.texts {
@ -101,7 +120,7 @@ export default {
margin-top: 20px;
background-color: #fff;
border-radius: 100px 0px 0px 0px;
transition: .3s;
transition: 0.3s;
&:hover {
transform: scale(1.05);
}
@ -131,14 +150,14 @@ export default {
margin: 0 auto;
}
li {
width: 260px;
width: 368px;
margin: 0 30px 50px 0;
line-height: 84px;
font-size: 1.2rem;
color: #333;
text-align: center;
@include ellipsis();
background: url(http://10.10.11.7/images/governance/3.png) 0 0/cover no-repeat;
background: url(http://10.10.11.7/images/governance/3.png) 0 0 / cover no-repeat;
cursor: pointer;
&:nth-child(2) {
background-image: url(http://10.10.11.7/images/governance/4.png);
@ -158,9 +177,13 @@ export default {
&:nth-child(8) {
background-image: url(http://10.10.11.7/images/governance/6.png);
}
&:hover {
&:nth-child(3n) {
margin-right: 0;
}
&:hover,
&.active {
color: #fff;
background: #0D84F2;
background: #0d84f2;
}
}
}

@ -10,7 +10,7 @@
</div>
</div>
<!-- <div class="block gray">
<div class="block gray">
<div class="inner">
<h2 class="b-title wow fadeInUp">{{ modules[1].form.title }}</h2>
<p class="intro wow fadeInUp"
@ -24,18 +24,84 @@
alt=""
@click="openLink(modules[1].form)">
</div>
</div> -->
</div>
<div class="block sources">
<div class="inner">
<ul class="tabs wow fadeInLeft">
<template v-for="(item, i) in tabs">
<li :class="{active: item.id == active}"
<li v-for="(item, i) in tabs"
:class="{active: item.id == active}"
:key="i"
@click="tabChange(item)">{{ item.name }}</li>
</template>
</ul>
<table v-if="!active"
class="table">
<thead>
<tr>
<th>序号</th>
<th>光源名称</th>
<th>国家</th>
<th>电子束能量GeV</th>
<th>储存环周长(m)</th>
<th>实验站数量</th>
<th>代际</th>
<th>建成/改造时间</th>
<th>发射度(nm.rad)</th>
<th>状态</th>
</tr>
</thead>
<tr v-for="(item, i) in modules[2].list"
:key="i">
<td>{{ item.name }}</td>
<td>{{ item.country }}</td>
<td>{{ item.gev }}</td>
<td>{{ item.storage }}</td>
<td>{{ item.stations }}</td>
<td>{{ item.intergenerational }}</td>
<td>{{ item.time }}</td>
<td>{{ item.name }}</td>
<td>{{ item.emittance }}</td>
<td>{{ item.status }}</td>
</tr>
</table>
<table v-else
class="table">
<thead>
<tr>
<th>序号</th>
<th>光源名称</th>
<th>国家</th>
<th>地点</th>
<th>加速器技术</th>
<th>能量/GeV</th>
<th>波长范围/nm</th>
<th>重复频率/Hz Repetition rate</th>
<th>设施长度/m Overall length</th>
<th>线站数量</th>
<th>出光时间</th>
</tr>
</thead>
<template v-if="modules[3].list.length">
<tr v-for="(item, i) in modules[3].list"
:key="i">
<td>{{ item.name }}</td>
<td>{{ item.country }}</td>
<td>{{ item.address }}</td>
<td>{{ item.accelerator }}</td>
<td>{{ item.gev }}</td>
<td>{{ item.wavelength }}</td>
<td>{{ item.repetitive }}</td>
<td>{{ item.facility }}</td>
<td>{{ item.stations }}</td>
<td>{{ item.status }}</td>
<td>{{ item.time }}</td>
</tr>
</template>
<tr v-else>
<td class="none"
colspan="11">暂无数据</td>
</tr>
</table>
</div>
</div>
</div>
@ -81,6 +147,10 @@ export default {
}
}).catch(err => { })
},
// tab
tabChange ({ id }) {
this.active = id
},
}
};
</script>
@ -88,7 +158,6 @@ export default {
<style lang="scss" scoped>
@import url(../../plugins/wow/animate.css);
@import '../../styles/page/page.scss';
.block {
padding: 3.15rem 0;
.inner {
@ -113,5 +182,17 @@ export default {
}
.tabs {
justify-content: flex-start;
box-shadow: none;
}
.table {
width: 100%;
margin-top: 20px;
border-collapse: collapse;
th,
td {
padding: 10px 10px;
font-size: 0.9rem;
text-align: left;
}
}
</style>

@ -16,11 +16,11 @@
data-wow-delay="0.5s"
:class="{ 'cursor-pointer': isLink(modules[1].form.link.linkName) }"
@click="openLink(modules[1].form)">
<img src="http://10.10.11.7/images/mission/2.png"
<img :src="modules[1].form.pic"
alt="" />
<div class="texts">
<h6>{{ modules[1].form.title }}</h6>
<div class="des"
<div class="text"
v-html="modules[1].form.des"></div>
</div>
</div>
@ -28,11 +28,11 @@
data-wow-delay="0.8s"
:class="{ 'cursor-pointer': isLink(modules[2].form.link.linkName) }"
@click="openLink(modules[2].form)">
<img src="http://10.10.11.7/images/mission/3.png"
<img :src="modules[2].form.pic"
alt="" />
<div class="texts rightText">
<h6>{{ modules[2].form.title }}</h6>
<div class="des"
<div class="text"
v-html="modules[2].form.des"></div>
</div>
</div>
@ -53,7 +53,7 @@
class="pic">
<div class="texts">
<h6>{{ item.title }}</h6>
<div class="des"
<div class="text"
v-html="item.des"></div>
</div>
</li>
@ -115,27 +115,20 @@ export default {
.item {
position: relative;
margin-bottom: 58px;
&:hover {
.texts {
color: #fff;
transform: scale(1.05);
background: #32b6e9 !important;
}
}
img {
width: 90%;
width: 100%;
height: 400px;
}
&:nth-child(2) .texts {
left: auto;
right: 0;
right: -36px;
color: #fff;
background: rgba(40, 179, 255, 0.34);
background: rgba(40, 179, 255, 0.54);
}
.texts {
position: absolute;
top: 79px;
left: -28px;
left: -34px;
width: 532px;
padding: 70px 38px;
color: #333;
@ -148,7 +141,7 @@ export default {
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
}
.des {
.text {
font-size: 1rem;
}
}
@ -186,7 +179,7 @@ export default {
color: #272727;
@include ellipsis();
}
.des {
.text {
font-size: 1rem;
color: #666;
line-height: 1.5;
@ -208,9 +201,6 @@ export default {
width: 85%;
box-sizing: border-box;
left: 12px;
.des {
-webkit-line-clamp: inherit;
}
}
}
}

@ -1,7 +1,9 @@
<template>
<div class="wrap p-b-30">
<div class="single-banner single-banner-overview">
<img class="banner-img" :src="modules[0].form.pic" alt="">
<img class="banner-img"
:src="modules[0].form.pic"
alt="">
<div class="texts">
<h6 class="banner-title">{{ modules[0].form.title }}</h6>
</div>
@ -10,12 +12,17 @@
<div class="org">
<div class="left">
<h6>{{ modules[1].form.title }}</h6>
<p class="text" v-html="modules[1].form.des"></p>
<p class="text"
v-html="modules[1].form.des"></p>
</div>
<img class="pic" src="http://10.10.11.7/images/overviewSetup/1.png" alt="">
<img class="pic"
src="http://10.10.11.7/images/overviewSetup/1.png"
alt="">
</div>
<div class="lg-bg">
<img width="100%" :src="modules[2].form.pic" alt="">
<img width="100%"
:src="modules[2].form.pic"
alt="">
</div>
</div>
</template>
@ -25,17 +32,17 @@ import mixins from '@/mixins/page'
import WOW from 'wow.js'
export default {
mixins: [mixins],
data() {
data () {
return {
}
},
mounted() {
mounted () {
new WOW().init()
},
methods: {
//
getInfo() {
getInfo () {
// /
this.$post(
`${this.api[this.preview ? "getRedisCache" : "findPage"]}?columnId=${this.id}`
@ -54,7 +61,7 @@ export default {
console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json);
}
})
.catch((err) => {});
.catch((err) => { });
},
}
};
@ -62,7 +69,7 @@ export default {
<style lang="scss" scoped>
@import url(../../plugins/wow/animate.css);
@import "../../styles/page/page.scss";
@import '../../styles/page/page.scss';
.org {
display: flex;
justify-content: space-between;
@ -70,7 +77,7 @@ export default {
width: 1294px;
padding: 9px 86px 29px 116px;
margin: 0 auto 50px;
background: #FCFCFC;
background: #fcfcfc;
border-radius: 160px;
.left {
width: 705px;
@ -96,132 +103,10 @@ export default {
width: 65%;
margin: 0 auto;
}
@media (max-width: 1200px) {
.org{
@media (max-width: 1300px) {
.org {
width: 100%;
padding:15px;
flex-direction: column;
.pic {
width: 100%;
}
.left{
width: 100%;
}
}
}
@media (min-width: 280px) and (max-width: 1200px) {
.single-banner {
.banner-img {
height: 15rem;
}
.texts{
top: 8rem !important;
left: 22rem !important;
}
}
}
@media (max-width: 320px) {
.single-banner {
.banner-img {
height: auto;
}
.texts {
bottom: 0 !important;
left: 1rem !important;
top: auto !important;
.banner-title {
font-size: 1.5rem;
}
}
}
.org{
.pic {
width: 80%;
height: auto;
}
}
}
@media (min-width: 320px) and (max-width: 375px) {
.single-banner {
.banner-img {
height: auto;
}
.texts {
bottom: 0 !important;
left: 1rem !important;
top: auto !important;
.banner-title {
font-size: 1.5rem;
}
}
}
.org{
.pic {
width: 80%;
height: auto;
}
}
}
@media (min-width: 375px) and (max-width: 480px) {
.single-banner {
.banner-img {
height: auto;
}
.texts {
bottom: 0 !important;
left: 1rem !important;
top: auto !important;
.banner-title {
font-size: 1.5rem;
}
}
}
.org{
.pic {
width: 80%;
height: auto;
}
}
}
@media (min-width: 480px) and (max-width: 640px) {
.single-banner {
.banner-img {
height: auto;
}
.texts {
bottom: 0 !important;
left: 1rem !important;
top: auto !important;
.banner-title {
font-size: 1.5rem;
}
}
}
.org{
.pic {
width: 80%;
height: auto;
}
}
}
@media (min-width: 640px) and (max-width: 768px) {
.single-banner {
.banner-img {
height: auto;
}
.texts {
bottom: 0 !important;
left: 1rem !important;
top: auto !important;
.banner-title {
font-size: 1.5rem;
}
}
}
.org{
flex-direction: row;
padding: 15px;
.left {
width: 60%;
}
@ -230,54 +115,18 @@ export default {
height: auto;
}
}
}
@media (min-width: 768px) and (max-width: 980px) {
.single-banner {
.banner-img {
height: auto;
}
.texts {
bottom: 0 !important;
left: 1rem !important;
top: auto !important;
.banner-title {
font-size: 1.5rem;
}
}
}
.org{
flex-direction: row;
.left {
width: 60%;
}
.pic {
width: 30%;
height: auto;
}
.lg-bg {
width: 85%;
}
}
@media (min-width: 980px) and (max-width: 1200px) {
.single-banner {
.banner-img {
height: auto;
}
.texts {
bottom: 0 !important;
left: 1rem !important;
top: auto !important;
.banner-title {
font-size: 1.5rem;
}
}
@media (max-width: 980px) {
.org {
flex-direction: column;
.pic {
width: 100%;
}
.org{
flex-direction: row;
.left {
width: 60%;
}
.pic {
width: 30%;
height: auto;
width: 100%;
}
}
}

@ -1,7 +1,8 @@
<template>
<div class="wrap">
<div class="content">
<Breadcrumb ref="breadcrumb" :data.sync="routes"/>
<Breadcrumb ref="breadcrumb"
:data.sync="routes" />
<div class="article">
<div class="left">
<h2>{{ form.title }}</h2>
@ -15,12 +16,15 @@
</template>
<p class="name">{{ $t('column.introduce') }}</p>
<div class="flex">
<div class="des" v-html="form.mainBody"></div>
<div class="des"
v-html="form.mainBody"></div>
<!-- <img v-if="form.titleImg" width="222" height="222" :src="form.titleImg" alt=""> -->
</div>
</div>
<div class="right">
<img class="pic" src="@/assets/images/publish3.png" alt="">
<img class="pic"
src="@/assets/images/publish3.png"
alt="">
<div class="texts">
<template v-if="form.periodicalName">
<p class="name">{{ $t('column.publicationName') }}</p>
@ -29,7 +33,8 @@
<p class="name">{{ $t('column.yearOfPublication') }}</p>
<p class="val">{{ form.publicationYear }}{{ $t('column.year') }}</p>
<div class="flex">
<div v-if="form.reel" class="m-r-20">
<div v-if="form.reel"
class="m-r-20">
<p class="name">{{ $t('column.rollUp') }}</p>
<p class="val">{{ form.reel }}</p>
</div>
@ -49,7 +54,10 @@
<p class="l-title">{{$t('column.hot')}}</p>
<ul class="list">
<li v-for="(item, i) in hots" :key="i" :title="item.title" @click="toArtice(item)">
<li v-for="(item, i) in hots"
:key="i"
:title="item.title"
@click="toArtice(item)">
<p class="text">{{ item.title }}</p>
<span class="date">{{ item.releaseTime }}</span>
</li>
@ -57,7 +65,9 @@
<p class="l-title">{{$t('column.latestNews')}}</p>
<ul class="list">
<li v-for="(item, i) in news" :key="i" @click="toArtice(item)">
<li v-for="(item, i) in news"
:key="i"
@click="toArtice(item)">
<p class="text">{{ item.title }}</p>
<span class="date">{{ item.releaseTime }}</span>
</li>
@ -77,7 +87,7 @@ import mixins from '@/mixins/article'
import ColumnConst from '@/const/column'
export default {
mixins: [mixins],
data() {
data () {
return {
id: this.$route.query.articleId,
publicationTypes: ColumnConst.publicationTypes,
@ -93,18 +103,18 @@ export default {
Breadcrumb
},
watch: {
'$route'() {
'$route' () {
this.id = this.$route.query.id
this.getInfo()
}
},
mounted() {
mounted () {
this.getInfo()
this.getArticle()
},
methods: {
//
getInfo() {
getInfo () {
this.$post(`${this.api.findArticle}?id=${this.id}`).then(({ data }) => {
//
const { columnName, path, id } = this.$route.query
@ -127,13 +137,13 @@ export default {
this.getBanner(this.columns)
this.form.bannerImg = this.columnBanner || require('@/assets/images/article-banner.png')
}
}).catch(err => {})
}).catch(err => { })
// +1
// this.$post(`${this.api.articlePreview}?contentId=${this.id}`).then(({ data }) => {}).catch(err => {})
},
// banner
getBanner(data) {
getBanner (data) {
for (const e of data) {
if (e.columnBanner) this.columnBanner = e.columnBanner
if (e.id == this.columnId) {
@ -144,10 +154,10 @@ export default {
}
},
//
getArticle() {
getArticle () {
this.$post(`${this.api.hotContent}?siteId=${this.$route.query.siteId || this.$store.state.content.site}`).then(({ data }) => {
this.hots = Util.removeTag(data)
}).catch(err => {})
}).catch(err => { })
this.$post(this.api.newlyPublishedArticles, {
@ -157,7 +167,7 @@ export default {
siteId: this.$route.query.siteId || this.$store.state.content.site
}).then(({ data }) => {
this.news = Util.removeTag(data.records)
}).catch(res => {})
}).catch(res => { })
},
}
};
@ -235,7 +245,7 @@ export default {
margin-bottom: 20px;
li {
padding: 16px 0;
border-bottom: 1px solid #D8D8D8;
border-bottom: 1px solid #d8d8d8;
}
.text {
margin-bottom: 5px;

@ -1,76 +1,68 @@
<template>
<div class="wrap">
<div class="single-banner">
<img class="banner-img" :src="modules[0].form.pic" alt="" />
<img class="banner-img"
:src="modules[0].form.pic"
alt="" />
<div class="texts">
<h6 class="banner-title">{{ modules[0].form.title }}</h6>
<p class="banner-des des">{{ modules[0].form.des }}</p>
</div>
</div>
<div class="block gray" style="padding: 2rem 0;">
<div class="block gray"
style="padding: 2rem 0;">
<div class="inner">
<Breadcrumb ref="breadcrumb" :data.sync="routes"/>
<Breadcrumb ref="breadcrumb"
:data.sync="routes" />
<ul class="items">
<li>
<img class="pic" :src="modules[1].form.pic" alt="">
<img class="pic"
:src="modules[1].form.pic"
alt="">
<div class="texts">
<h6>{{ modules[1].form.title }}</h6>
<div class="text" v-html="modules[1].form.des"></div>
<img src="@/assets/images/arrow.png" alt="" :class="{'arrow': isLink(modules[1].form.link.linkName)}" @click="openLink(modules[1].form)">
<div class="text"
v-html="modules[1].form.des"></div>
<img src="@/assets/images/arrow.png"
alt=""
:class="{'arrow': isLink(modules[1].form.link.linkName)}"
@click="openLink(modules[1].form)">
</div>
</li>
<li>
<img class="pic" :src="modules[2].form.pic" alt="">
<img class="pic"
:src="modules[2].form.pic"
alt="">
<div class="texts">
<h6>{{ modules[2].form.title }}</h6>
<div class="text" v-html="modules[2].form.des"></div>
<img src="@/assets/images/arrow.png" alt="" :class="{'arrow': isLink(modules[2].form.link.linkName)}" @click="openLink(modules[2].form)">
<div class="text"
v-html="modules[2].form.des"></div>
<img src="@/assets/images/arrow.png"
alt=""
:class="{'arrow': isLink(modules[2].form.link.linkName)}"
@click="openLink(modules[2].form)">
</div>
</li>
</ul>
</div>
</div>
<div class="block program">
<div class="inner">
<div class="title wow fadeInUp">
<h5>
{{ modules[3].form.title }}
<span class="sub">{{ modules[3].form.subTitle }}</span>
</h5>
<span class="more" @click="toAll(modules[4].form)">MORE</span>
</div>
<template v-if="articles.length">
<div class="slide" @click="toArtice(articles[0], modules[4].form)">
<div class="texts">
<h6>{{ articles[0].title }}</h6>
<div class="des">{{ articles[0].mainBody }}</div>
<div class="meta">发表日期{{ articles[0].releaseTime }} &emsp;浏览量{{ articles[0].totalBrowsing }}</div>
</div>
<div class="img-wrap">
<img class="pic" :src="articles[0].titleImg" alt="">
</div>
</div>
<ul class="list">
<template v-for="(item, i) in articles">
<li v-if="i && i < 4" :key="i" class="wow fadeInDown" :data-wow-delay="(0.1 * i).toFixed(1) + 's'" @click="toArtice(item, modules[4].form)">
<div class="des">{{ item.title }}</div>
<p class="date">{{ item.releaseTime }}</p>
</li>
</template>
</ul>
</template>
</div>
</div>
<div class="about">
<div class="inner">
<div class="texts">
<div class="title wow fadeInUp" data-wow-delay="0.7s">{{ modules[5].form.title }}</div>
<div class="des wow fadeInDown" data-wow-delay="1s" v-html="modules[5].form.des"></div>
<div class="title wow fadeInUp"
data-wow-delay="0.7s">{{ modules[3].form.title }}</div>
<div class="des wow fadeInDown"
data-wow-delay="1s"
v-html="modules[3].form.des"></div>
<img class="m-t-10"
width="42"
src="@/assets/images/arrow-white.png"
alt=""
:class="{'arrow': isLink(modules[3].form.link.linkName)}"
@click="openLink(modules[3].form)">
</div>
<img src="@/assets/images/arrow-white.png" alt="" :class="{'arrow': isLink(modules[5].form.link.linkName)}" @click="openLink(modules[5].form)">
</div>
</div>
</div>
@ -83,22 +75,21 @@ import Breadcrumb from '@/components/breadcrumb'
import Util from '@/libs/util'
export default {
mixins: [mixins],
data() {
data () {
return {
routes: [],
articles: []
};
},
components: {
Breadcrumb
},
mounted() {
mounted () {
new WOW().init();
this.getColumn()
},
methods: {
//
getInfo() {
getInfo () {
// /
this.$post(
`${this.api[this.preview ? "getRedisCache" : "findPage"]}?columnId=${this.id}`
@ -115,20 +106,12 @@ export default {
);
this.modules = json;
console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json);
//
if (json[4].form.column.length) {
const { column, articleNum } = json[4].form
this.$post(`${this.api.queryArticlesByColumnType}?columnId=${column[column.length - 1]}`).then(({ data }) => {
this.articles = Util.removeTag(data.slice(0, articleNum || 7))
}).catch(err => {})
}
}
})
.catch((err) => {});
.catch((err) => { });
},
// id
getParent(data, id) {
getParent (data, id) {
for (const e of data) {
if (e.id == id) {
this.routes.push({
@ -150,10 +133,10 @@ export default {
}
},
//
getColumn() {
getColumn () {
this.$post(`${this.api.oneLevelChecksThemAll}?id=${this.id}&isSort=1&siteId=${this.site}`).then(({ data }) => {
this.getParent(data, this.id)
}).catch(err => {})
}).catch(err => { })
},
},
};
@ -161,7 +144,7 @@ export default {
<style lang="scss" scoped>
@import url(../../plugins/wow/animate.css);
@import "../../styles/page/page.scss";
@import '../../styles/page/page.scss';
.items {
margin-top: 2rem;
li {
@ -185,9 +168,9 @@ export default {
width: 500px;
padding: 30px;
color: #333;
background-color: rgba(255, 255, 255, .85);
background-color: rgba(255, 255, 255, 0.85);
border-radius: 0px 0px 100px 0px;
border-top: 4px solid #0280F1;
border-top: 4px solid #0280f1;
}
h6 {
font-size: 1.2rem;
@ -221,16 +204,16 @@ export default {
font-weight: 500;
color: #333333;
line-height: 1;
border-left: 6px solid #2B96EF;
border-left: 6px solid #2b96ef;
}
.sub {
font-size: 1.1rem;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #AFB7BF;
color: #afb7bf;
}
.more {
font-size: .8rem;
font-size: 0.8rem;
color: #666;
cursor: pointer;
}
@ -243,7 +226,7 @@ export default {
.texts {
width: 51%;
padding: 56px;
background: #FBFBFB;
background: #fbfbfb;
h6 {
font-size: 1.3rem;
font-family: PingFangSC-Medium, PingFang SC;
@ -257,7 +240,7 @@ export default {
line-height: 32px;
}
.meta {
font-size: .9rem;
font-size: 0.9rem;
color: #666;
}
}
@ -269,7 +252,7 @@ export default {
.pic {
width: 100%;
height: 100%;
transition: .5s;
transition: 0.5s;
}
&:hover {
.pic {
@ -285,7 +268,7 @@ export default {
margin-right: 14px;
background: url(../../assets/images/sfel/7.png) no-repeat center;
background-size: 100% 100%;
transition: .5s;
transition: 0.5s;
cursor: pointer;
&:nth-child(2) {
background-image: url(../../assets/images/sfel/8.png);
@ -304,13 +287,13 @@ export default {
font-size: 1rem;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFFFFF;
color: #ffffff;
line-height: 30px;
}
.date {
font-size: .9rem;
font-size: 0.9rem;
font-family: LaoSangamMN;
color: #FFFFFF;
color: #ffffff;
}
}
}
@ -325,11 +308,11 @@ export default {
.texts {
padding: 2.375rem 3.75rem;
color: #fff;
background: rgba(111, 69, 36, .56);
background: rgba(111, 69, 36, 0.56);
border-radius: 17px;
transition: .3s;
transition: 0.3s;
&:hover {
background: rgba(239, 126, 10, .56);
background: rgba(239, 126, 10, 0.56);
transform: translateY(10px);
}
}

@ -26,6 +26,7 @@
<div class="text"
v-html="modules[2].form.des"></div>
<img v-if="isLink(modules[2].form.link.linkName)"
class="arrow"
src="@/assets/images/arrow.png"
alt=""
@click="openLink(modules[2].form)">
@ -41,6 +42,7 @@
<div class="text"
v-html="modules[3].form.des"></div>
<img v-if="isLink(modules[3].form.link.linkName)"
class="arrow"
src="@/assets/images/arrow.png"
alt=""
@click="openLink(modules[3].form)">

@ -74,7 +74,7 @@
left: 267px;
}
&.single-banner-overview .texts {
top: 332px;
top: 250px;
left: 278px;
}
.banner-title {
@ -171,9 +171,14 @@
}
}
}
.tabs {
li {
font-size: 0.8rem;
}
}
}
@media (min-width: 768px) and (max-width: 980px) {
@media (max-width: 980px) {
.wrap {
.single-banner {
.banner-img {
@ -186,7 +191,7 @@
}
}
}
@media (min-width: 640px) and (max-width: 768px) {
@media (max-width: 768px) {
.wrap {
.single-banner {
.banner-img {
@ -198,8 +203,15 @@
}
}
}
.tabs {
li {
padding: 1rem 10px;
margin: 0;
}
}
}
@media (min-width: 480px) and (max-width: 640px) {
@media (max-width: 640px) {
.wrap {
.single-banner {
.banner-img {

Loading…
Cancel
Save