yujialong 2 years ago
parent a8911002e9
commit 68a6508565
  1. 2
      src/components/menuTree/index.vue
  2. 2
      src/i18n/index.js
  3. 4
      src/layouts/footer/index.vue
  4. 22
      src/layouts/header/index.vue
  5. 4
      src/layouts/home/index.vue
  6. 4
      src/layouts/navbar/index.vue
  7. 32
      src/mixins/page/index.js
  8. 6
      src/pages/article/index.vue
  9. 0
      src/pages/deviceIntroBeam/index.vue
  10. 0
      src/pages/deviceIntroLayout/index.vue
  11. 0
      src/pages/deviceIntroLinear/index.vue
  12. 27
      src/pages/home/index.vue
  13. 4
      src/pages/news/index.vue
  14. 16
      src/pages/publish/show.vue
  15. 15
      src/pages/science/index.vue
  16. 127
      src/pages/sfel/index.vue
  17. 20
      src/pages/talent/index.vue
  18. 15
      src/pages/userSharing/index.vue
  19. 23
      src/router/modules/device.js
  20. 14
      src/router/modules/deviceIntroBeam.js
  21. 14
      src/router/modules/deviceIntroLayout.js
  22. 14
      src/router/modules/deviceIntroLinear.js
  23. 0
      src/router/modules/overviewLocation.js
  24. 14
      src/router/modules/overviewTrailer.js
  25. 2
      src/setting.js
  26. 22
      src/styles/page/page.scss

@ -1,7 +1,7 @@
<template>
<div class="menu-child">
<template v-for="item in this.menuList">
<el-submenu :popper-class="$route.path === '/home' ? 'home-menu-popup' : ''" :class="{active: $route.query.id == item.id}" :key="item.id" :index="String(item.id)" :id="item.id" v-if="item.children && item.children.length">
<el-submenu :popper-class="$route.path === '/home' || $route.path === '/sfel' ? 'home-menu-popup' : ''" :class="{active: $route.query.id == item.id}" :key="item.id" :index="String(item.id)" :id="item.id" v-if="item.children && item.children.length">
<template slot="title">
<span slot="title" :id="item.id">{{item.columnName}}</span>
</template>

@ -11,7 +11,7 @@ export const messages = {
views: '浏览',
download: '下载',
attachmentDownload: '附件下载',
editor: '编辑',
edit: '编辑',
auditor: '审核',
comingSoon: '即将召开',
alreadyHeld: '已经召开',

@ -61,7 +61,7 @@ export default {
mixins: [mixins],
data() {
return {
showContactPath: ['/news'],
showContactPath: ['/news', '/sfel'],
columns: [],
};
},
@ -122,7 +122,7 @@ export default {
}
.contact {
position: relative;
padding: 0 0 106px 0;
padding: 0 0 73px 0;
background: url(../../assets/images/map.png) 0 0/cover no-repeat;
.inner {
width: 1082px;

@ -28,7 +28,7 @@ import navbar from '../navbar'
export default {
data() {
return {
isHome: this.$route.path === '/home',
isHome: this.$route.path === '/home' || this.$route.path === '/sfel',
showSearch: false,
title: '',
searchTimer: null
@ -39,7 +39,7 @@ export default {
},
watch: {
'$route'() {
this.isHome = this.$route.path === '/home'
this.isHome = this.$route.path === '/home' || this.$route.path === '/sfel'
},
},
beforeDestroy () {
@ -58,7 +58,7 @@ export default {
},
// (home)
handleScroll () {
if (this.$route.path === '/home') {
if (this.$route.path === '/home' || this.$route.path === '/sfel') {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
if (this.isHome == scrollTop > 907) {
this.isHome = !(scrollTop > 907)
@ -75,20 +75,8 @@ export default {
//
toggleLang() {
let id = +(this.$route.query.siteId || this.$store.state.content.site)
// id1/2 3/4 5/6
if (id == 1) {
id = 2
} else if (id == 2) {
id = 1
} else if (id == 3) {
id = 4
} else if (id == 4) {
id = 3
} else if (id == 5) {
id = 6
} else if (id == 6) {
id = 5
}
// id61/2 3/4 5/6
id % 2 ? id++ : id--
location.href = this.$router.resolve(`/column?siteId=${id}`).href
location.reload()
},

@ -20,7 +20,7 @@ import { mapMutations } from 'vuex'
export default {
data() {
return {
isHome: this.$route.path === '/home',
isHome: this.$route.path === '/home' || this.$route.path === '/sfel',
enSite: [1, 4, 6] // id
};
},
@ -30,7 +30,7 @@ export default {
},
watch: {
'$route'() {
this.isHome = this.$route.path === '/home'
this.isHome = this.$route.path === '/home' || this.$route.path === '/sfel'
}
},
mounted() {

@ -37,7 +37,7 @@ export default {
this.getColumn()
this.setSite(siteId)
}
this.isHome = this.$route.path === '/home'
this.isHome = this.$route.path === '/home' || this.$route.path === '/sfel'
this.handleColor()
},
isHome() {
@ -52,7 +52,7 @@ export default {
...mapMutations('content', [
'setSite'
]),
//
//
getColumn() {
this.$post(this.api.listWithTreeMenuVisible, {
siteId: this.$route.query.siteId || this.site,

@ -14,6 +14,38 @@ export default {
this.getInfo()
},
methods: {
// 点击栏目回调
columnTo(to) {
const { typeId } = to
// 跳转链接
if (typeId === 2) {
let href = to.linkAddress
const cType = to.connectionType
if (cType !== 2) { // 非站外链接
const ids = href.split('-') // 栏目文章是用-分割的,栏目是必选,文章不是必选。选择了文章则跳转到文章页,否则跳转到栏目页
// 站点id:站内链接取当前站点,其他站点链接取siteSelection
const site = cType === 1 ?
(this.$route.query.siteId || this.site) :
to.siteSelection
if (ids[1]) { // 文章
href = '/article?articleId=' + ids[1]
} else { // 栏目
const columnIds = ids[0].split(',')
href = '/column?id=' + columnIds[columnIds.length - 1]
}
href = this.$router.resolve(href + '&siteId=' + site).href
}
// 是否新窗口打开
if (to.isOpen) {
window.open(href)
} else {
location.href = href
}
} else if (typeId !== 4 || (typeId === 4 && !to.children.length)) {
// 常规栏目跳转到column页,长页栏目直接获取path
this.$router.push(`/${typeId === 3 ? to.path : 'column'}?id=${to.id}&siteId=${this.$route.query.siteId || this.site}`).catch(err => {})
}
},
// 打开链接
async openLink(item) {
const { link } = item

@ -8,7 +8,7 @@
<div class="article">
<div class="left">
<h2>{{ form.title }}</h2>
<div class="meta">{{ form.source && form.source + ' | ' }} {{ form.author && form.author + ' | ' }} {{ form.totalBrowsing }} {{$t('column.views')}} | {{ form.createTime }}</div>
<div class="meta">{{ form.source && form.source + ' | ' }} {{ form.author && form.author + ' | ' }} {{ form.totalBrowsing }} {{$t('column.views')}} | {{ form.releaseTime }}</div>
<div class="meta">{{ form.edit && $t('column.edit') + ':' + form.edit }} {{ form.audit && ' | ' + $t('column.auditor') + ':' + form.audit }} {{ form.label && ' | ' + $t('column.label') + ':' + form.label }}</div>
<p class="brief">{{ form.summary }}</p>
<div class="des" v-html="form.mainBody"></div>
@ -29,7 +29,7 @@
<ul class="list">
<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.createTime }}</span>
<span class="date">{{ item.releaseTime }}</span>
</li>
</ul>
@ -37,7 +37,7 @@
<ul class="list">
<li v-for="(item, i) in news" :key="i" :title="item.title" @click="toArtice(item)">
<p class="text">{{ item.title }}</p>
<span class="date">{{ item.createTime }}</span>
<span class="date">{{ item.releaseTime }}</span>
</li>
</ul>
</div>

@ -86,20 +86,20 @@
<h2 class="glance wow fadeInUp">{{ modules[9].form.title }}</h2>
<ul class="stat">
<li class="wow fadeInRight" data-wow-delay="0.2s">
<p class="num">{{ modules[10].form.title }}</p>
<!-- <animate-number from="0" to="2000" duration="1000" /> -->
<!-- <p class="num">{{ modules[10].form.title }}</p> -->
<animate-number class="num" ref="num1" from="0" to="5000" duration="3000" />
<p class="text">{{ modules[10].form.des }}</p>
</li>
<li class="wow fadeInRight" data-wow-delay="0.4s">
<p class="num">{{ modules[11].form.title }}</p>
<animate-number class="num" ref="num2" from="0" :to="modules[11].form.title" duration="3000" />
<p class="text">{{ modules[11].form.des }}</p>
</li>
<li class="wow fadeInRight" data-wow-delay="0.6s">
<p class="num">{{ modules[12].form.title }}</p>
<animate-number class="num" ref="num3" from="0" :to="modules[12].form.title" duration="3000" />
<p class="text">{{ modules[12].form.des }}</p>
</li>
<li class="wow fadeInRight" data-wow-delay="0.9s">
<p class="num">{{ modules[13].form.title }}</p>
<animate-number class="num" ref="num4" from="0" :to="modules[13].form.title" duration="3500" />
<p class="text">{{ modules[13].form.des }}</p>
</li>
<li class="wow fadeInRight" data-wow-delay="1.2s">
@ -125,11 +125,16 @@ export default {
mixins: [mixins],
data() {
return {
articles: []
articles: [],
}
},
beforeDestroy () {
//
window.removeEventListener('scroll', this.handleScroll)
},
mounted() {
new WOW().init()
window.addEventListener('scroll', this.handleScroll)
},
methods: {
//
@ -154,6 +159,16 @@ export default {
}
}).catch(err => {})
},
//
handleScroll () {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
if (scrollTop > 6350) {
window.removeEventListener('scroll', this.handleScroll) //
for (let i = 1; i < 5; i++) {
this.$refs['num' + i].start()
}
}
}
}
};
</script>

@ -17,7 +17,7 @@
</template>
</ul>
<div class="block">{{curColumn}}
<div class="block">
<div class="inner" v-if="modules[1].list[curColumn].articles && modules[1].list[curColumn].articles.length">
<div class="news-banner wow fadeInDown" data-wow-delay="0.5s" @click="toArtice(curArticle, modules[1].list[curColumn])">
<img width="50%" height="410" :src="curArticle.titleImg" alt="" onerror="javascript:this.src='./images/3.png';">
@ -398,12 +398,14 @@ export default {
color: #666;
}
.des {
height: 60px;
margin: 10px 0;
font-size: 20px;
font-family: SFProDisplay;
font-weight: 500;
color: #333;
line-height: 28px;
-webkit-line-clamp: 2;
}
.arrow {
width: 36px;

@ -15,8 +15,20 @@
<div class="right">
<img class="pic" src="@/assets/images/publish3.png" alt="">
<div class="texts">
<p class="name">出版年份</p>
<p class="val">{{ form.publicationYear }}</p>
<template v-if="form.periodicalName">
<p class="name">刊物名称</p>
<p class="val">{{ form.periodicalName }}</p>
</template>
<div class="flex">
<div v-if="form.reel" class="m-r-40">
<p class="name"></p>
<p class="val">{{ form.reel }}</p>
</div>
<div v-if="form.documentNumber">
<p class="name">文献号</p>
<p class="val">{{ form.documentNumber }}</p>
</div>
</div>
<p class="name">出版物类型</p>
<p class="val">{{ form.publicationTypeId && publicationTypes.find(e => e.id == form.publicationTypeId).name }}</p>
<p class="name">DOI</p>

@ -1,15 +1,12 @@
<template>
<div class="wrap">
<el-carousel height="480px" :interval="6000" :arrow="(modules[0] && modules[0].list.filter(e => e.isEnable).length > 1) ? 'hover' : 'never'" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<div :class="['banner-item', {'cursor-pointer': isLink(item.link.linkName)}]" @click="openLink(item)">
<img :src="item.pic" alt="">
<p class="banner-name">{{ item.title }}</p>
<div class="single-banner">
<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">{{ modules[0].form.des }}</p>
</div>
</div>
</el-carousel-item>
</template>
</el-carousel>
<div class="block">
<div class="inner">

@ -1,6 +1,6 @@
<template>
<div class="wrap">
<el-carousel height="480px" :interval="6000" :arrow="(modules[0] && modules[0].list.filter(e => e.isEnable).length > 1) ? 'hover' : 'never'" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<el-carousel height="991px" :interval="6000" :arrow="(modules[0] && modules[0].list.filter(e => e.isEnable).length > 1) ? 'hover' : 'never'" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<img :class="[{'cursor-pointer': isLink(item.link.linkName)}]" width="100%" height="959" :src="item.pic" alt="" @click="openLink(item)">
@ -8,14 +8,14 @@
</template>
</el-carousel>
<div class="block banner-block">
<div class="block banner-block" id="part1">
<div class="inner">
<div class="title wow fadeInUp">
<h5>
{{ modules[1].form.title }}
<span class="sub">{{ modules[1].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<span class="more" @click="toAll(modules[2].form)">MORE</span>
</div>
<template v-if="articles.length">
<div class="sfel-banner wow fadeInDown" data-wow-delay="0.5s" @click="toArtice(curArticle, modules[2].form)">
@ -25,9 +25,9 @@
<div class="right">
<h6>{{ curArticle.title }}</h6>
<div class="des" v-html="curArticle.mainBody"></div>
<p class="meta">{{ curArticle.createTime }} {{ curArticle.author && ' | ' + curArticle.author }}</p>
<p class="meta">{{ curArticle.releaseTime }} {{ curArticle.author && ' | ' + curArticle.author }}</p>
<ul class="inds">
<li v-for="i in articles.length > 2 ? 3 : articles.length" :key="i" :class="{active: curInd == i - 1}" @click.stop="switchCarousel(i - 1)"></li>
<li v-for="i in articles.length > 3 ? 4 : articles.length" :key="i" :class="{active: curInd == i - 1}" @click.stop="switchCarousel(i - 1)"></li>
</ul>
</div>
</div>
@ -37,7 +37,7 @@
<li v-if="i > 3 && i < 7" :key="i" class="wow fadeInDown" :data-wow-delay="(0.1 * i).toFixed(1) + 's'">
<img class="pic" :src="item.titleImg" alt="">
<div class="texts">
<p class="meta">{{ item.createTime }} {{ item.author && ' | ' + item.author }}</p>
<p class="meta">{{ item.releaseTime }} {{ item.classificationName && ' | ' + item.classificationName }}</p>
<div class="des">{{ item.title }}</div>
<img class="arrow" src="@/assets/images/arrow.png" alt="" @click="toArtice(item, modules[2].form)">
</div>
@ -48,18 +48,18 @@
</div>
</div>
<div class="block notice">
<div class="block notice" id="part2">
<div class="inner lg">
<div class="title wow fadeInUp">
<h5>
{{ modules[3].form.title }}
<span class="sub">{{ modules[3].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<span class="more" @click="toAll(modules[4].form)">MORE</span>
</div>
<div class="shop-shows" v-if="articles1.length">
<div class="left wow fadeInLeft" data-wow-delay="0.5s">
<el-carousel height="432px">
<el-carousel height="405px">
<template v-for="(item, i) in articles1">
<el-carousel-item v-if="i < 4" :key="i">
<div class="item">
@ -72,22 +72,22 @@
<div v-if="articles1.length > 4" class="cards" style="margin-top: 18px;">
<h6>{{ articles1[4].title }}</h6>
<div class="sum">{{ articles1[4].mainBody }}</div>
<p class="date">{{ articles1[4].createTime }}</p>
<p class="date">{{ articles1[4].releaseTime }}</p>
</div>
<div class="card-wrap">
<div v-if="articles1.length > 5" class="cards" style="margin-right: 18px">
<h6>{{ articles1[5].title }}</h6>
<p class="date">{{ articles1[5].createTime }}</p>
<p class="date">{{ articles1[5].releaseTime }}</p>
</div>
<div v-if="articles1.length > 6" class="cards">
<h6>{{ articles1[6].title }}</h6>
<p class="date">{{ articles1[6].createTime }}</p>
<p class="date">{{ articles1[6].releaseTime }}</p>
</div>
</div>
</div>
<div v-if="articles1.length > 7" class="right wow fadeInRight" data-wow-delay="0.5s">
<ul class="card-list">
<template v-for="(item, i) in articles">
<template v-for="(item, i) in articles1">
<li v-if="i > 6 && i < 10" :key="i">
<img class="pic" :src="item.titleImg" alt="">
<div class="texts">
@ -106,14 +106,14 @@
</div>
</div>
<div class="block conference">
<div class="block conference" id="part3">
<div class="inner lg">
<div class="title wow fadeInUp">
<h5>
{{ modules[5].form.title }}
<span class="sub">{{ modules[5].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<span class="more" @click="toAll(modules[6].form)">MORE</span>
</div>
<div class="shows" v-if="articles2.length">
<div class="left wow fadeInLeft" data-wow-delay="0.5s" @click="toArtice(articles2[0], modules[6].form)">
@ -126,18 +126,18 @@
<img class="pic" :src="item.titleImg" alt="">
<div class="texts">
<h6>{{ item.title }}</h6>
<p class="sum">{{ item.summary }}</p>
<p class="sum">{{ item.mainBody }}</p>
<p v-if="item.keynoteSpeaker" class="text">
<img class="icon" src="@/assets/images/mine.png" alt="">
{{ item.keynoteSpeaker }}
</p>
<p v-if="item.activityStartTime" class="text">
<img class="icon" src="@/assets/images/time.png" alt="">
Time: {{ item.activityStartTime + ' ~ ' + item.activityEndTime }}
会议时间: {{ item.activityStartTime + ' ~ ' + item.activityEndTime }}
</p>
<p v-if="item.onlineLocation" class="text">
<img class="icon" src="@/assets/images/online.png" alt="">
Address: {{ item.onlineLocation }}
<p v-if="item.offlineLocation" class="text">
<img class="icon" src="@/assets/images/location.png" alt="">
{{ item.offlineLocation }}
</p>
</div>
</li>
@ -147,14 +147,14 @@
</div>
</div>
<div class="block media">
<div class="block media" id="part4">
<div class="inner">
<div class="title wow fadeInUp">
<h5>
{{ modules[7].form.title }}
<span class="sub">{{ modules[7].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<span class="more" @click="toAll(modules[8].form)">MORE</span>
</div>
<div v-if="articles3.length" class="media-wrap">
<div class="left">
@ -190,14 +190,14 @@
</div>
</div>
<div class="block news">
<div class="block news" id="part5">
<div class="inner">
<div class="title wow fadeInUp">
<h5>
{{ modules[9].form.title }}
<span class="sub">{{ modules[9].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<span class="more" @click="toAll(modules[10].form)">MORE</span>
</div>
<ul class="news">
<li v-for="(item, i) in modules[10].list" :key="i" class="wow fadeInDown" :data-wow-delay="(0.2 * i).toFixed(1) + 's'" :class="{'cursor-pointer': item.link.linkName !== '无'}" @click="openLink(item)">
@ -211,21 +211,21 @@
</div>
</div>
<div class="block program">
<div class="block program" id="part6">
<div class="inner">
<div class="title wow fadeInUp">
<h5>
{{ modules[11].form.subTitle }}
{{ modules[11].form.title }}
<span class="sub">{{ modules[11].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<span class="more" @click="toAll(modules[12].form)">MORE</span>
</div>
<template v-if="articles4.length">
<div class="slide">
<div class="texts">
<h6>{{ articles4[0].title }}</h6>
<div class="des">{{ articles4[0].title }}</div>
<div class="meta">发表日期{{ articles4[0].createTime }} &emsp;浏览量{{ articles4[0].totalBrowsing }}</div>
<div class="des">{{ articles4[0].mainBody }}</div>
<div class="meta">发表日期{{ articles4[0].releaseTime }} &emsp;浏览量{{ articles4[0].totalBrowsing }}</div>
</div>
<div class="img-wrap">
<img class="pic" :src="articles4[0].titleImg" alt="">
@ -235,7 +235,7 @@
<template v-for="(item, i) in articles3">
<li v-if="i && i < 4" :key="i" class="wow fadeInDown" :data-wow-delay="(0.1 * i).toFixed(1) + 's'">
<div class="des">{{ item.title }}</div>
<p class="date">{{ item.createTime }}</p>
<p class="date">{{ item.releaseTime }}</p>
</li>
</template>
</ul>
@ -248,7 +248,7 @@
<img src="@/assets/images/logo.png" alt="">
</div>
<ul class="nav">
<li v-for="(item, i) in columns" :key="i" class="column">{{ item.columnName }}</li>
<li v-for="(item, i) in navs" :key="i" class="column" @click="toAnchor(item)">{{ item.name }}</li>
</ul>
</div>
</div>
@ -263,7 +263,7 @@ export default {
mixins: [mixins],
data() {
return {
columns: [],
navs: [],
articles: [],
articles1: [],
articles2: [],
@ -321,6 +321,17 @@ export default {
}).catch(err => {})
}
//
const navs = []
let id = 0
json.forEach((e, i) => {
if (i % 2 && e.form.title) navs.push({
id: ++id,
name: e.form.title
})
})
this.navs = navs
this.modules = json
this.carouselInterval()
}
@ -342,6 +353,11 @@ export default {
this.curArticle = this.articles[this.curInd] || {}
}
},
//
toAnchor(e) {
const el = document.querySelector(`#part${e.id}`)
el && el.scrollIntoView()
}
}
};
</script>
@ -457,6 +473,7 @@ export default {
box-shadow: 0px 0px 20px 0px rgba(176,176,176,0.21);
border-radius: 6px;
transition: .3s;
background-color: #fff;
&:hover {
transform: scale(1.05);
}
@ -466,7 +483,7 @@ export default {
}
.pic {
width: 100%;
height: 240px;
height: 259px;
}
.texts {
padding: 40px 30px;
@ -476,12 +493,14 @@ export default {
color: #666;
}
.des {
height: 60px;
margin: 10px 0;
font-size: 20px;
font-family: SFProDisplay;
font-weight: 500;
color: #333;
line-height: 28px;
-webkit-line-clamp: 2;
}
.arrow {
width: 36px;
@ -544,7 +563,7 @@ export default {
.sum {
font-size: 14px;
color: #6D7C8E;
@include mul-ellipsis(2);
@include ellipsis;
}
.date {
margin-top: 24px;
@ -570,7 +589,7 @@ export default {
li {
display: flex;
align-items: center;
padding: 24px;
padding: 20px;
margin-bottom: 18px;
background-color: #fff;
transition: .3s;
@ -579,8 +598,8 @@ export default {
}
}
.pic {
width: 116px;
height: 85px;
width: 124px;
height: 92px;
margin-right: 28px;
}
.texts {
@ -593,6 +612,7 @@ export default {
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #1583FF;
@include ellipsis;
}
.des {
font-size: 16px;
@ -638,7 +658,7 @@ export default {
.left {
position: relative;
width: 688px;
height: 688px;
height: 690px;
margin-right: 20px;
cursor: pointer;
overflow: hidden;
@ -686,16 +706,20 @@ export default {
height: 188px;
margin-right: 36px;
}
.texts {
width: 530px;
}
h6 {
margin-bottom: 10px;
font-size: 20px;
color: #333;
@include mul-ellipsis(2);
@include ellipsis;
}
.sum {
margin-bottom: 15px;
font-size: 16px;
color: #666;
@include mul-ellipsis(2);
@include ellipsis;
}
.text {
display: flex;
@ -753,6 +777,7 @@ export default {
background: #fff;
box-shadow: 0px 0px 30px 0px rgba(48,48,48,0.08);
li {
height: 78px;
margin-bottom: 41px;
transition: .5s;
&:last-child {
@ -770,10 +795,12 @@ export default {
color: #272727;
line-height: 20px;
text-shadow: 0px 0px 30px rgba(48,48,48,0.08);
@include ellipsis;
}
.des {
font-size: 14px;
color: #666;
-webkit-line-clamp: 2;
}
}
}
@ -801,11 +828,13 @@ export default {
color: #272727;
line-height: 39px;
text-shadow: 0px 0px 30px rgba(48,48,48,0.08);
@include ellipsis;
}
.des {
margin-top: 16px;
font-size: 16px;
color: #666;
-webkit-line-clamp: 2;
}
&:hover {
background: #005388;
@ -913,6 +942,7 @@ export default {
display: flex;
li {
width: calc((100% - 44px) / 3);
height: 204px;
padding: 36px 22px;
margin-right: 14px;
background: url(../../assets/images/sfel/7.png) 0 0/cover no-repeat;
@ -929,6 +959,7 @@ export default {
}
}
.des {
height: 90px;
margin-bottom: 30px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
@ -944,21 +975,22 @@ export default {
}
}
.tools {
position: absolute;
top: 600px;
z-index: 10;
position: fixed;
top: 200px;
left: 0;
width: 226px;
width: 180px;
text-align: center;
.logo {
padding: 44px 0;
padding: 15px 0;
background: #0C60BE;
box-shadow: 0px 0px 20px 0px rgba(184,191,200,0.3);
}
.nav {
li {
padding: 0 10px;
font-size: 24px;
line-height: 83px;
font-size: 16px;
line-height: 50px;
color: #fff;
background-color: #1D1D1D;
cursor: pointer;
@ -966,6 +998,9 @@ export default {
&.active {
background-color: #1583FF;
}
&:hover {
background-color: #1583FF;
}
}
}
}

@ -1,15 +1,12 @@
<template>
<div class="wrap">
<el-carousel height="480px" :interval="6000" :arrow="(modules[0] && modules[0].list.filter(e => e.isEnable).length > 1) ? 'hover' : 'never'" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<div :class="['banner-item', {'cursor-pointer': isLink(item.link.linkName)}]" @click="openLink(item)">
<img :src="item.pic" alt="">
<p class="banner-name">{{ item.title }}</p>
<div class="single-banner">
<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">{{ modules[0].form.des }}</p>
</div>
</div>
</el-carousel-item>
</template>
</el-carousel>
<div class="block talent">
<div class="inner">
@ -41,7 +38,7 @@
<el-carousel-item v-if="item.isEnable" :key="i">
<div class="item" @click="openLink(item)">
<img :src="item.pic" alt="">
<p class="text">{{ item.des }}</p>
<p class="text">{{ item.title }}</p>
</div>
</el-carousel-item>
</template>
@ -170,6 +167,7 @@ export default {
.des {
font-size: 18px;
line-height: 33px;
-webkit-line-clamp: 8;
}
}
.style {
@ -192,7 +190,7 @@ export default {
}
.text {
position: absolute;
bottom: 45px;
bottom: 0;
left: 0;
width: 100%;
padding: 0 30px;

@ -1,15 +1,12 @@
<template>
<div class="wrap">
<el-carousel height="480px" :interval="6000" :arrow="(modules[0] && modules[0].list.filter(e => e.isEnable).length > 1) ? 'hover' : 'never'" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<div :class="['banner-item', {'cursor-pointer': isLink(item.link.linkName)}]" @click="openLink(item)">
<img :src="item.pic" alt="">
<p class="banner-name">{{ item.title }}</p>
<div class="single-banner">
<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">{{ modules[0].form.des }}</p>
</div>
</div>
</el-carousel-item>
</template>
</el-carousel>
<div class="block share">
<div class="inner">

@ -1,23 +0,0 @@
import BasicLayout from '@/layouts/home'
const name = 'device'
export default {
path: `/${name}`,
component: BasicLayout,
children: [
{
path: `beam`,
component: () => import(`@/pages/${name}/beam`),
meta: { title: '' }
},
{
path: `layout`,
component: () => import(`@/pages/${name}/layout`),
meta: { title: '' }
},
{
path: `super`,
component: () => import(`@/pages/${name}/super`),
meta: { title: '' }
}
]
};

@ -0,0 +1,14 @@
import BasicLayout from '@/layouts/home'
const name = 'deviceIntroBeam'
export default {
path: `/${name}`,
component: BasicLayout,
children: [
{
name,
path: `/${name}`,
component: () => import(`@/pages/${name}`),
meta: { title: '' }
}
]
};

@ -0,0 +1,14 @@
import BasicLayout from '@/layouts/home'
const name = 'deviceIntroLayout'
export default {
path: `/${name}`,
component: BasicLayout,
children: [
{
name,
path: `/${name}`,
component: () => import(`@/pages/${name}`),
meta: { title: '' }
}
]
};

@ -0,0 +1,14 @@
import BasicLayout from '@/layouts/home'
const name = 'deviceIntroLinear'
export default {
path: `/${name}`,
component: BasicLayout,
children: [
{
name,
path: `/${name}`,
component: () => import(`@/pages/${name}`),
meta: { title: '' }
}
]
};

@ -0,0 +1,14 @@
import BasicLayout from '@/layouts/home'
const name = 'survey'
export default {
path: `/${name}`,
component: BasicLayout,
children: [
{
name,
path: `/${name}`,
component: () => import(`@/pages/${name}`),
meta: { title: '' }
}
]
};

@ -4,7 +4,7 @@
const isDev = process.env.NODE_ENV === 'development' // 开发环境
let host = `${location.origin}/`
if (isDev) {
host = 'http://192.168.31.51:10000/'
host = 'http://192.168.31.151:10000/'
}
const Setting = {

@ -61,6 +61,28 @@
cursor: pointer;
}
}
.single-banner {
position: relative;
color: #fff;
.banner-img {
width: 100%;
height: 480px;
}
.texts {
position: absolute;
top: 160px;
left: 267px;
}
.banner-title {
margin-bottom: 19px;
font-size: 48px;
font-family: PingFangSC-Medium, PingFang SC;
}
.banner-des {
font-size: 24px;
font-family: PingFangSC-Medium, PingFang SC;
}
}
.des {
@include mul-ellipsis(3);
}

Loading…
Cancel
Save