科普之窗等

mobile
yujialong 2 years ago
parent 0f29651c22
commit a9d0fe6177
  1. BIN
      src/assets/images/science/1.png
  2. BIN
      src/assets/images/science/2.png
  3. BIN
      src/assets/images/science/3.png
  4. BIN
      src/assets/images/talent-bg.png
  5. 153
      src/pages/science/index.vue
  6. 265
      src/pages/talent/index.vue
  7. 14
      src/router/modules/science.js
  8. 14
      src/router/modules/talent.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 989 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

@ -0,0 +1,153 @@
<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': item.link.linkName !== '无'}]" @click="openLink(item)">
<img :src="item.pic" alt="">
<p class="banner-name">{{ item.title }}</p>
</div>
</el-carousel-item>
</template>
</el-carousel>
<div class="block">
<div class="inner">
<div class="item">
<img src="@/assets/images/science/1.png" alt="">
<div class="texts">
<h6>为什么要建设S³FEL</h6>
<div class="des">2006世界上第一台软X射线自由电子激光诞生于德国汉堡同步加速器实验室 2009世界第一台硬X 射线自由电子线性相干光源 成功出光 LCLS可提供更高亮度和更好横向相干性的XFEL脉冲</div>
</div>
</div>
<div class="item">
<img src="@/assets/images/science/2.png" alt="">
<div class="texts">
<h6>X射线是什么</h6>
<div class="des">光源是人类文明发展的助推器从火光到激光每次光源的发展创新都有效推动了科学技术的发展显著改变了人类认识世界的方式并引起了人类社会的广泛变革先进光源是人类探测物质分子原子和壳和工具</div>
</div>
</div>
<div class="item">
<img src="@/assets/images/science/3.png" alt="">
<div class="texts">
<h6>X射线自由电子激光</h6>
<div class="des">FEL是一种以真空中相对论电子束为工作介质在周期变化磁场中以受激辐射方式放大电磁波的新型强相干光源FEL的装置通常由加速器波荡器和光束线站三部分组成的波长连续可调可覆盖极紫外</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import mixins from '@/mixins/page'
import Setting from '@/setting'
import Util from '@/libs/util'
import Breadcrumb from '@/components/breadcrumb'
import WOW from 'wow.js'
export default {
mixins: [mixins],
data() {
return {
routes: []
}
},
components: {
Breadcrumb
},
mounted() {
new WOW().init()
this.getColumn()
},
methods: {
//
getInfo() {
// /
this.$post(`${this.api[this.preview ? 'getRedisCache' : 'findPage']}?columnId=${this.id}`).then(({ data }) => {
if (data.length) {
// state1theEditedJson稿0jsonBeforeEditing
const json = JSON.parse(this.preview ?
data :
data[data.length - 1][data[data.length - 1].state ? 'theEditedJson' : 'jsonBeforeEditing'])
this.modules = json
console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json)
}
}).catch(err => {})
},
// id
getParent(data, id) {
for (const e of data) {
if (e.id == id) {
this.routes.push({
name: e.columnName,
query: {
id: e.id
}
})
break
} else if (e.children.length) {
this.routes.push({
name: e.columnName,
query: {
id: e.id
}
})
this.getParent(e.children, id)
}
}
},
//
getColumn() {
this.$post(`${this.api.oneLevelChecksThemAll}?id=${this.id}`).then(({ data }) => {
this.getParent(data, this.id)
}).catch(err => {})
},
}
};
</script>
<style lang="scss" scoped>
@import url(../../plugins/wow/animate.css);
@import "../../styles/page/page.scss";
.inner {
width: 1200px;
}
.item {
position: relative;
margin-bottom: 58px;
img {
width: 100%;
height: 508px;
}
&:nth-child(2) .texts {
color: #fff;
background: #33B3C1;
}
&:nth-child(3) .texts {
color: #fff;
background: #E47C22;
}
&:nth-child(even) .texts {
left: auto;
right: -28px;
}
.texts {
position: absolute;
top: 79px;
left: -28px;
width: 532px;
padding: 70px 38px;
color: #333;
background: #FFF6E9;
}
h6 {
margin-bottom: 14px;
font-size: 36px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
}
.des {
font-size: 18px;
}
}
</style>

@ -0,0 +1,265 @@
<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': item.link.linkName !== '无'}]" @click="openLink(item)">
<img :src="item.pic" alt="">
<p class="banner-name">{{ item.title }}</p>
</div>
</el-carousel-item>
</template>
</el-carousel>
<div class="block talent">
<div class="inner">
<div class="item">
<img src="@/assets/images/about/12.png" alt="">
<div class="texts">
<h6>人才队伍</h6>
<div class="des">S³FEL已拥有一支高学历高素质高技术水平高执行力并勇于创新的工程技术团队团队结构合理包含研究人员工程技术人员和管理人员等多种核心技术人才
S³FEL正大力引进国内外高端创新人才和团队成长为竞争力和影响力卓越的世界一流科学大装置 </div>
</div>
</div>
<div class="item">
<img src="@/assets/images/about/12.png" alt="">
<div class="texts">
<h6>人才需求</h6>
<div class="des">S³FEL是集世界一流深圳特色的标志性稀缺性先进性于一体的自由电子激光重大科研平台S3FEL的建设将紧密围绕高水平建设综合性国家科学中心的战略目标面向国民经济主战场和世界科技前沿汇聚全球高端创新资源依托先行示范区政策产业资本市场和技术等优势
S³FEL将服务于集成电路生物医药先进材料和先进制造等大湾区高新技术产业以及产业核心关键技术发展相关的物理化学生物材料医学等多学科前沿基础研究
S³FEL欢迎物理学光学工程机械工程动力工程及工程热物理仪器科学与技术电气工程电子科学与技术控制科学与工程信息与通信工程计算机科学与技术材料科学与工程化学生物学力学测绘科学与技术等各专业人才的加入共享发展新机遇共创湾区大未来</div>
</div>
</div>
</div>
</div>
<div class="style">
<h6>人物风采</h6>
<ul class="members">
<li>
<el-carousel :interval="4000" type="card" height="510px">
<el-carousel-item>
<div class="item">
<img src="@/assets/images/about/12.png" alt="">
<p class="text">这是描述</p>
</div>
</el-carousel-item>
<el-carousel-item>
<div class="item">
<img src="@/assets/images/about/12.png" alt="">
<p class="text">这是描述</p>
</div>
</el-carousel-item>
<el-carousel-item>
<div class="item">
<img src="@/assets/images/about/12.png" alt="">
<p class="text">这是描述</p>
</div>
</el-carousel-item>
</el-carousel>
</li>
</ul>
</div>
<div class="block intro">
<div class="inner">
<div class="item">
<img src="@/assets/images/about/12.png" alt="">
<div class="texts">
<p class="type">校园招聘</p>
<h6>在校生/毕业生</h6>
<div class="des">S³FEL已拥有一支高学历高素质高技术水平高执行力并勇于创新的工程技术团队团队结构合理包含研究人员工程技术人员和管理人员等多种核心技术人才 S³FEL正大力引进国内外高端创新人才和团队成长为竞争力和影响力卓越的世界一流科学大装置</div>
<el-button type="primary">查看更多</el-button>
</div>
</div>
<div class="item">
<img src="@/assets/images/about/12.png" alt="">
<div class="texts">
<p class="type">校园招聘</p>
<h6>在校生/毕业生</h6>
<div class="des">S³FEL已拥有一支高学历高素质高技术水平高执行力并勇于创新的工程技术团队团队结构合理包含研究人员工程技术人员和管理人员等多种核心技术人才 S³FEL正大力引进国内外高端创新人才和团队成长为竞争力和影响力卓越的世界一流科学大装置</div>
<el-button type="primary">查看更多</el-button>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import mixins from '@/mixins/page'
import Setting from '@/setting'
import Util from '@/libs/util'
import Breadcrumb from '@/components/breadcrumb'
import WOW from 'wow.js'
export default {
mixins: [mixins],
data() {
return {
routes: []
}
},
components: {
Breadcrumb
},
mounted() {
new WOW().init()
this.getColumn()
},
methods: {
//
getInfo() {
// /
this.$post(`${this.api[this.preview ? 'getRedisCache' : 'findPage']}?columnId=${this.id}`).then(({ data }) => {
if (data.length) {
// state1theEditedJson稿0jsonBeforeEditing
const json = JSON.parse(this.preview ?
data :
data[data.length - 1][data[data.length - 1].state ? 'theEditedJson' : 'jsonBeforeEditing'])
this.modules = json
console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json)
}
}).catch(err => {})
},
// id
getParent(data, id) {
for (const e of data) {
if (e.id == id) {
this.routes.push({
name: e.columnName,
query: {
id: e.id
}
})
break
} else if (e.children.length) {
this.routes.push({
name: e.columnName,
query: {
id: e.id
}
})
this.getParent(e.children, id)
}
}
},
//
getColumn() {
this.$post(`${this.api.oneLevelChecksThemAll}?id=${this.id}`).then(({ data }) => {
this.getParent(data, this.id)
}).catch(err => {})
},
}
};
</script>
<style lang="scss" scoped>
@import url(../../plugins/wow/animate.css);
@import "../../styles/page/page.scss";
.wrap {
background: #F8F9FB;
}
.talent {
.inner {
width: 1504px;
}
.item {
display: flex;
justify-content: space-between;
padding: 42px;
margin-bottom: 36px;
background: #fff;
&:nth-child(even) {
flex-direction: row-reverse;
.texts {
padding-left: 0;
}
}
}
.pic {
width: 602px;
height: 465px;
}
.texts {
padding: 98px 72px 30px 80px;
}
h6 {
margin-bottom: 24px;
font-size: 50px;
font-family: PingFangSC-Light, PingFang SC;
font-weight: 300;
color: #333333;
}
.des {
font-size: 18px;
color: #333;
line-height: 33px;
}
}
.style {
h6 {
margin-bottom: 59px;
font-size: 48px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
text-align: center;
color: #333333;
}
.item {
position: relative;
}
img {
width: 100%;
height: 100%;
}
.text {
position: absolute;
bottom: 45px;
left: 0;
width: 100%;
padding: 0 30px;
line-height: 68px;
font-size: 24px;
color: #fff;
background: rgba(0,0,0,0.38);
}
}
.intro {
.inner {
width: 1504px;
}
.item {
display: flex;
align-items: center;
margin-bottom: 36px;
background: #fff;
&:nth-child(even) {
flex-direction: row-reverse;
}
}
.pic {
width: 848px;
height: 505px;
}
.texts {
padding: 0 58px;
}
.type {
font-size: 18px;
color: #333;
}
h6 {
margin: 20px 0;
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
}
.des {
margin-bottom: 30px;
font-size: 16px;
color: #333;
line-height: 30px;
}
}
</style>

@ -0,0 +1,14 @@
import BasicLayout from '@/layouts/home'
const name = 'science'
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 = 'talent'
export default {
path: `/${name}`,
component: BasicLayout,
children: [
{
name,
path: `/${name}`,
component: () => import(`@/pages/${name}`),
meta: { title: '' }
}
]
};
Loading…
Cancel
Save