parent
297928c1fd
commit
640f460295
20 changed files with 3867 additions and 3553 deletions
@ -0,0 +1,133 @@ |
|||||||
|
<template> |
||||||
|
<div class="right"> |
||||||
|
<el-tree class="column" |
||||||
|
ref="column" |
||||||
|
:data="columns" |
||||||
|
highlight-current |
||||||
|
:expand-on-click-node="false" |
||||||
|
:props="defaultProps" |
||||||
|
node-key="id" |
||||||
|
@node-click="columnTo"></el-tree> |
||||||
|
|
||||||
|
<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)"> |
||||||
|
<p class="text">{{ item.title }}</p> |
||||||
|
<span class="date">{{ item.releaseTime }}</span> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
|
||||||
|
<p class="l-title">{{$t('column.latestNews')}}</p> |
||||||
|
<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.releaseTime }}</span> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import Util from '@/libs/util' |
||||||
|
import mixins from '@/mixins/article' |
||||||
|
export default { |
||||||
|
props: {}, |
||||||
|
mixins: [mixins], |
||||||
|
data () { |
||||||
|
return { |
||||||
|
columns: [], |
||||||
|
defaultProps: { |
||||||
|
value: 'id', |
||||||
|
label: 'columnName' |
||||||
|
}, |
||||||
|
news: [], |
||||||
|
hots: [] |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted () { |
||||||
|
this.getColumn() |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
// 资讯 |
||||||
|
getColumn () { |
||||||
|
this.$post(this.api.listWithTreeMenuVisible, { |
||||||
|
siteId: this.site, |
||||||
|
columnName: '', |
||||||
|
templateId: '', |
||||||
|
typeId: '', |
||||||
|
isSort: 1 |
||||||
|
}).then(({ data }) => { |
||||||
|
this.columns = data |
||||||
|
this.$parent.getInfo && this.$parent.getInfo() |
||||||
|
}).catch(err => { }) |
||||||
|
|
||||||
|
this.$post(`${this.api.hotContent}?siteId=${this.site}`).then(({ data }) => { |
||||||
|
this.hots = Util.removeTag(data) |
||||||
|
}).catch(err => { }) |
||||||
|
|
||||||
|
this.$post(this.api.newlyPublishedArticles, { |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 5, |
||||||
|
siteId: this.site |
||||||
|
}).then(({ data }) => { |
||||||
|
this.news = Util.removeTag(data.records) |
||||||
|
}).catch(res => { }) |
||||||
|
}, |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
<style lang="scss" scoped> |
||||||
|
.right { |
||||||
|
width: 20%; |
||||||
|
/deep/ .el-tree-node__label { |
||||||
|
font-size: 0.78rem; |
||||||
|
} |
||||||
|
} |
||||||
|
.column { |
||||||
|
width: 100%; |
||||||
|
margin-bottom: 1.56rem; |
||||||
|
|
||||||
|
.el-tree-node:focus > .el-tree-node__content { |
||||||
|
background-color: #e5edf8; |
||||||
|
} |
||||||
|
/deep/.el-tree-node__content { |
||||||
|
height: 2.75rem; |
||||||
|
background-color: #e5edf8; |
||||||
|
border-bottom: 2px solid #fff; |
||||||
|
} |
||||||
|
/deep/.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content { |
||||||
|
color: #fff; |
||||||
|
background-color: #0f5698; |
||||||
|
} |
||||||
|
} |
||||||
|
.list { |
||||||
|
margin-bottom: 20px; |
||||||
|
li { |
||||||
|
padding: 16px 0; |
||||||
|
border-bottom: 1px solid #d8d8d8; |
||||||
|
} |
||||||
|
.text { |
||||||
|
margin-bottom: 5px; |
||||||
|
font-size: 14px; |
||||||
|
cursor: pointer; |
||||||
|
&:hover { |
||||||
|
color: $main-color; |
||||||
|
} |
||||||
|
} |
||||||
|
.date { |
||||||
|
font-size: 12px; |
||||||
|
color: #999; |
||||||
|
} |
||||||
|
} |
||||||
|
@media (max-width: 1200px) { |
||||||
|
.right { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,183 @@ |
|||||||
|
<template> |
||||||
|
<div class="wrap"> |
||||||
|
<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> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="block"> |
||||||
|
<div class="inner"> |
||||||
|
<Breadcrumb ref="breadcrumb" |
||||||
|
: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> |
||||||
|
</div> |
||||||
|
<img src="http://10.10.11.7/images/contactUs/2.png" |
||||||
|
alt="" |
||||||
|
class="pic"> |
||||||
|
<el-table :data="list" |
||||||
|
class="patent-table" |
||||||
|
ref="table" |
||||||
|
stripe |
||||||
|
header-align="center"> |
||||||
|
<el-table-column prop="title" |
||||||
|
label="部门" |
||||||
|
align="center" |
||||||
|
min-width="250"></el-table-column> |
||||||
|
<el-table-column prop="publishingHouse" |
||||||
|
label="联系人" |
||||||
|
align="center" |
||||||
|
min-width="100"></el-table-column> |
||||||
|
<el-table-column prop="writersAndEditors" |
||||||
|
label="电话" |
||||||
|
align="center" |
||||||
|
min-width="150"></el-table-column> |
||||||
|
<el-table-column prop="publicationYear" |
||||||
|
label="邮箱" |
||||||
|
align="center" |
||||||
|
min-width="150"></el-table-column> |
||||||
|
</el-table> |
||||||
|
</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: [], |
||||||
|
list: [] |
||||||
|
}; |
||||||
|
}, |
||||||
|
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) { |
||||||
|
// state:已发布(1)则取theEditedJson,草稿(0)则取jsonBeforeEditing |
||||||
|
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}&isSort=1&siteId=${this.site}`).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'; |
||||||
|
|
||||||
|
.single-banner { |
||||||
|
.banner-img { |
||||||
|
height: 21.6rem; |
||||||
|
} |
||||||
|
.texts { |
||||||
|
h6 { |
||||||
|
font-size: 2.16rem; |
||||||
|
margin-bottom: 0.95rem; |
||||||
|
} |
||||||
|
.banner-des { |
||||||
|
font-size: 0.96rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.block { |
||||||
|
padding: 2rem 0; |
||||||
|
background: url(http://10.10.11.7/images/contactUs/3.png) 0 130px no-repeat, |
||||||
|
url(http://10.10.11.7/images/contactUs/4.png) bottom right no-repeat; |
||||||
|
background-color: #f7f8fa; |
||||||
|
} |
||||||
|
.inner { |
||||||
|
.contact { |
||||||
|
padding: 3rem 6rem; |
||||||
|
background-color: #fff; |
||||||
|
} |
||||||
|
.fields { |
||||||
|
position: relative; |
||||||
|
padding: 2rem; |
||||||
|
border: 4px solid #f9f9f9; |
||||||
|
h6 { |
||||||
|
position: absolute; |
||||||
|
top: -16px; |
||||||
|
left: 60px; |
||||||
|
font-size: 1.1rem; |
||||||
|
font-family: PingFangSC-Medium, PingFang SC; |
||||||
|
color: #333; |
||||||
|
background-color: #fff; |
||||||
|
} |
||||||
|
.text { |
||||||
|
font-size: 1rem; |
||||||
|
color: #333; |
||||||
|
line-height: 1.6; |
||||||
|
} |
||||||
|
} |
||||||
|
.pic { |
||||||
|
width: 100%; |
||||||
|
margin: 2rem 0 1.5rem; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,116 @@ |
|||||||
|
<template> |
||||||
|
<div class="wrap"> |
||||||
|
<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> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- <div class="block gray"> |
||||||
|
<div class="inner"> |
||||||
|
<h2 class="b-title wow fadeInUp">{{ modules[1].form.title }}</h2> |
||||||
|
<p class="intro wow fadeInUp" |
||||||
|
data-wow-delay="0.8s">{{ modules[1].form.des }}</p> |
||||||
|
<img class="block-pic br wow fadeInLeft" |
||||||
|
data-wow-delay="0.8s" |
||||||
|
:class="{'cursor-pointer': isLink(modules[1].form.link.linkName)}" |
||||||
|
width="100%" |
||||||
|
height="536" |
||||||
|
:src="modules[1].form.pic" |
||||||
|
alt="" |
||||||
|
@click="openLink(modules[1].form)"> |
||||||
|
</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}" |
||||||
|
:key="i" |
||||||
|
@click="tabChange(item)">{{ item.name }}</li> |
||||||
|
</template> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import mixins from '@/mixins/page' |
||||||
|
import Setting from '@/setting' |
||||||
|
import Util from '@/libs/util' |
||||||
|
import WOW from 'wow.js' |
||||||
|
export default { |
||||||
|
mixins: [mixins], |
||||||
|
data () { |
||||||
|
return { |
||||||
|
active: 0, |
||||||
|
tabs: [ |
||||||
|
{ |
||||||
|
id: 0, |
||||||
|
name: '同步辐射光源' |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 1, |
||||||
|
name: '自由电子激光' |
||||||
|
}, |
||||||
|
] |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted () { |
||||||
|
new WOW().init() |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
// 获取文章详情 |
||||||
|
getInfo () { |
||||||
|
// 预览/详情 |
||||||
|
this.$post(`${this.api[this.preview ? 'getRedisCache' : 'findPage']}?columnId=${this.id}`).then(({ data }) => { |
||||||
|
if (data.length) { |
||||||
|
// state:已发布(1)则取theEditedJson,草稿(0)则取jsonBeforeEditing |
||||||
|
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 => { }) |
||||||
|
}, |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
@import url(../../plugins/wow/animate.css); |
||||||
|
@import '../../styles/page/page.scss'; |
||||||
|
|
||||||
|
.block { |
||||||
|
padding: 3.15rem 0; |
||||||
|
.inner { |
||||||
|
.b-title { |
||||||
|
font-size: 2.25rem; |
||||||
|
margin-bottom: 2.25rem; |
||||||
|
} |
||||||
|
.intro { |
||||||
|
margin-bottom: 2.25rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.block-pic { |
||||||
|
transition: 0.3s; |
||||||
|
height: auto; |
||||||
|
&.br { |
||||||
|
border-radius: 270px; |
||||||
|
} |
||||||
|
&:hover { |
||||||
|
transform: scale(1.05); |
||||||
|
} |
||||||
|
} |
||||||
|
.tabs { |
||||||
|
justify-content: flex-start; |
||||||
|
} |
||||||
|
</style> |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,121 @@ |
|||||||
|
<template> |
||||||
|
<div class="wrap"> |
||||||
|
<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> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="block"> |
||||||
|
<div class="inner"> |
||||||
|
<img src="http://10.10.11.7/images/speech/3.png" |
||||||
|
alt="" |
||||||
|
class="pic"> |
||||||
|
<div class="texts"> |
||||||
|
<h6>院长致辞</h6> |
||||||
|
<p class="en">President Speech</p> |
||||||
|
<div class="text">各位朋友: |
||||||
|
加快实现高水平科技自立自强,是推动高质量发展的必由之路。当前,粤港澳大湾区正朝着建成具有全球影响力的科技和产业创新高地这一宏伟蓝图奋力前进。而在大科学时代,我们实现科学技术的前沿突破,在产业发展上取得颠覆式创新和持续性创新,从根本上解决气候变暖、重大疾病挑等人类可持续发展问题上,越来越离不开大科学装置的支持。 |
||||||
|
建设综合粒子设施,是深圳推进粤港澳大湾区、深圳先行示范区建设重大战略落地实施,以主阵地作为推进大湾区综合性国家科学中心建设的重要决策部署。项目的建成,不仅将成为支撑大湾区集成电路、生物医药、先进制造、新材料、新能源等众多产业领域创新发展的先进工具和强大平台,也将是面向国家重大需求和国际科学前沿,突破产业技术瓶颈、解决其相关根源性科学问题的大国重器。 |
||||||
|
综合粒子设施一期项目包括深圳产业光源和深圳自由电子激光,自2021年初深圳综合粒子设施研究院筹备建立以来,我们的首要任务便是全力推进两个项目的设计、立项、关键技术突破、核心设备研制等前期准备工作,为接下来工程建设及建成运行打下坚实基础。 |
||||||
|
面对重重挑战,我们坚信没有一座高山不可逾越。我们将牢记深圳市委市政府设立研究院的初心和期望,传承改革开放杀出一条血路的魄力,万众一心,迎难而上,不负众望建设好综合粒子设施,为全体深圳人民及合作伙伴交上一份优质答卷;我们将秉持开放合作的建设理念,面向国内外创新资源敞开共建、共享、共赢的合作大门,携手大湾区创新资源共同建设世界一流大科学装置;我们将坚持需求牵引的宗旨,探索在地方政府主导下,研究机构、高校、企业、金融机构共建重大科技基础设施的新途径,为粤港澳大湾区建设国际科技创新中心提供坚实支撑;我们还将进一步加强与港澳的创新融合,让科学进步之光,照亮大湾区高质量发展之路,点亮东方之珠璀璨的明天。</div> |
||||||
|
<div class="sign"> |
||||||
|
签名: |
||||||
|
<img src="http://10.10.11.7/images/speech/3.png" |
||||||
|
alt=""> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import mixins from "@/mixins/page"; |
||||||
|
import Setting from "@/setting"; |
||||||
|
import Util from "@/libs/util"; |
||||||
|
import WOW from "wow.js"; |
||||||
|
export default { |
||||||
|
mixins: [mixins], |
||||||
|
data () { |
||||||
|
return { |
||||||
|
|
||||||
|
}; |
||||||
|
}, |
||||||
|
mounted () { |
||||||
|
new WOW().init(); |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
// 获取文章详情 |
||||||
|
getInfo () { |
||||||
|
// 预览/详情 |
||||||
|
this.$post( |
||||||
|
`${this.api[this.preview ? "getRedisCache" : "findPage"]}?columnId=${this.id}` |
||||||
|
) |
||||||
|
.then(({ data }) => { |
||||||
|
if (data.length) { |
||||||
|
// state:已发布(1)则取theEditedJson,草稿(0)则取jsonBeforeEditing |
||||||
|
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) => { }); |
||||||
|
}, |
||||||
|
}, |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
@import url(../../plugins/wow/animate.css); |
||||||
|
@import '../../styles/page/page.scss'; |
||||||
|
.block { |
||||||
|
background: url(http://10.10.11.7/images/speech/2.png) no-repeat; |
||||||
|
} |
||||||
|
.inner { |
||||||
|
display: flex; |
||||||
|
align-items: flex-start; |
||||||
|
.pic { |
||||||
|
max-width: 480px; |
||||||
|
margin-top: 2rem; |
||||||
|
} |
||||||
|
.texts { |
||||||
|
margin-left: 113px; |
||||||
|
} |
||||||
|
h6 { |
||||||
|
position: relative; |
||||||
|
font-size: 2rem; |
||||||
|
font-family: PingFangSC-Medium, PingFang SC; |
||||||
|
font-weight: 600; |
||||||
|
color: #333; |
||||||
|
} |
||||||
|
.en { |
||||||
|
margin: -25px 0 40px; |
||||||
|
font-size: 2.2rem; |
||||||
|
font-family: PingFangSC-Semibold, PingFang SC; |
||||||
|
font-weight: 600; |
||||||
|
color: rgba(216, 216, 216, 0.34); |
||||||
|
} |
||||||
|
.text { |
||||||
|
font-size: 1rem; |
||||||
|
color: #333; |
||||||
|
line-height: 1.6; |
||||||
|
} |
||||||
|
.sign { |
||||||
|
margin-top: 20px; |
||||||
|
text-align: right; |
||||||
|
img { |
||||||
|
max-width: 150px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,300 @@ |
|||||||
|
<template> |
||||||
|
<div class="wrap"> |
||||||
|
<div class="single-banner single-banner-overview"> |
||||||
|
<img class="banner-img" |
||||||
|
:src="modules[0].form.pic" |
||||||
|
alt=""> |
||||||
|
<div class="texts"> |
||||||
|
<h6 class="banner-title">{{ modules[0].form.title }}</h6> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="content"> |
||||||
|
<div class="article"> |
||||||
|
<div class="left"> |
||||||
|
<h6 class="talent-title">{{ modules[1].form.title }}</h6> |
||||||
|
<div class="talent-text" |
||||||
|
v-html="modules[1].form.des"></div> |
||||||
|
<ul class="people"> |
||||||
|
<li :class="{ 'cursor-pointer': isLink(modules[8].form.link.linkName) }" |
||||||
|
@click="openLink(modules[8].form)"> |
||||||
|
<img class="pic" |
||||||
|
:src="modules[8].form.pic" |
||||||
|
alt=""> |
||||||
|
<div class="texts"> |
||||||
|
<h6>{{ modules[8].form.title }}</h6> |
||||||
|
<div class="line"></div> |
||||||
|
<div class="text">提供文字不超过两行,提供文字不超过两行提供文字不超过两行提供文字不超过两行提供文字不文字不超过两</div> |
||||||
|
<img src="@/assets/images/arrow.png" |
||||||
|
alt=""> |
||||||
|
</div> |
||||||
|
</li> |
||||||
|
<li :class="{ 'cursor-pointer': isLink(modules[8].form.link.linkName) }" |
||||||
|
@click="openLink(modules[8].form)"> |
||||||
|
<img class="pic" |
||||||
|
:src="modules[8].form.pic" |
||||||
|
alt=""> |
||||||
|
<div class="texts"> |
||||||
|
<h6>{{ modules[8].form.title }}</h6> |
||||||
|
<div class="line"></div> |
||||||
|
<div class="text">提供文字不超过两行,提供文字不超过两行提供文字不超过两行提供文字不超过两行提供文字不文字不超过两</div> |
||||||
|
<img src="@/assets/images/arrow.png" |
||||||
|
alt=""> |
||||||
|
</div> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
<div class="right"> |
||||||
|
<el-tree class="column" |
||||||
|
ref="column" |
||||||
|
:data="columns" |
||||||
|
highlight-current |
||||||
|
:expand-on-click-node="false" |
||||||
|
:props="defaultProps" |
||||||
|
node-key="id" |
||||||
|
@node-click="columnTo"></el-tree> |
||||||
|
|
||||||
|
<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)"> |
||||||
|
<p class="text">{{ item.title }}</p> |
||||||
|
<span class="date">{{ item.releaseTime }}</span> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
|
||||||
|
<p class="l-title">{{$t('column.latestNews')}}</p> |
||||||
|
<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.releaseTime }}</span> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import mixins from '@/mixins/page' |
||||||
|
import articleMixins from '@/mixins/article'; |
||||||
|
import Setting from '@/setting' |
||||||
|
import Util from '@/libs/util' |
||||||
|
import WOW from 'wow.js' |
||||||
|
export default { |
||||||
|
mixins: [mixins, articleMixins], |
||||||
|
data () { |
||||||
|
return { |
||||||
|
columnId: '', |
||||||
|
form: {}, |
||||||
|
columns: [], |
||||||
|
defaultProps: { |
||||||
|
value: 'id', |
||||||
|
label: 'columnName' |
||||||
|
}, |
||||||
|
news: [], |
||||||
|
hots: [] |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted () { |
||||||
|
this.getColumn() |
||||||
|
this.getArticle() |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
// 获取文章详情 |
||||||
|
getInfo () { |
||||||
|
// 预览/详情 |
||||||
|
this.$post(`${this.api[this.preview ? 'getRedisCache' : 'findPage']}?columnId=${this.id}`).then(({ data }) => { |
||||||
|
if (data.length) { |
||||||
|
// state:已发布(1)则取theEditedJson,草稿(0)则取jsonBeforeEditing |
||||||
|
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 => { }) |
||||||
|
}, |
||||||
|
// 资讯 |
||||||
|
getColumn () { |
||||||
|
this.$post(this.api.listWithTreeMenuVisible, { |
||||||
|
siteId: this.$route.query.siteId || this.$store.state.content.site, |
||||||
|
columnName: '', |
||||||
|
templateId: '', |
||||||
|
typeId: '', |
||||||
|
isSort: 1 |
||||||
|
}).then(({ data }) => { |
||||||
|
this.columns = data |
||||||
|
this.getInfo() |
||||||
|
}).catch(err => { }) |
||||||
|
|
||||||
|
this.$post(`${this.api.hotContent}?siteId=${this.$route.query.siteId || this.$store.state.content.site}`).then(({ data }) => { |
||||||
|
this.hots = Util.removeTag(data) |
||||||
|
}).catch(err => { }) |
||||||
|
}, |
||||||
|
// 最新资讯 |
||||||
|
getArticle () { |
||||||
|
this.$post(this.api.newlyPublishedArticles, { |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 5, |
||||||
|
siteId: this.$route.query.siteId || this.$store.state.content.site |
||||||
|
}).then(({ data }) => { |
||||||
|
this.news = Util.removeTag(data.records) |
||||||
|
}).catch(res => { }) |
||||||
|
}, |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
@import url(../../plugins/wow/animate.css); |
||||||
|
@import '../../styles/page/page.scss'; |
||||||
|
.wrap { |
||||||
|
background-color: #fff; |
||||||
|
} |
||||||
|
.content { |
||||||
|
width: 1400px; |
||||||
|
} |
||||||
|
.article { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
.left { |
||||||
|
width: 66%; |
||||||
|
.talent-title { |
||||||
|
padding-bottom: 10px; |
||||||
|
font-size: 1.2rem; |
||||||
|
color: #666; |
||||||
|
border-bottom: 1px solid #eaeef2; |
||||||
|
} |
||||||
|
.talent-text { |
||||||
|
margin: 20px 0; |
||||||
|
font-size: 1.1rem; |
||||||
|
color: #333; |
||||||
|
line-height: 28px; |
||||||
|
p { |
||||||
|
margin-bottom: 20px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.people { |
||||||
|
margin-top: 4rem; |
||||||
|
li { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
margin-bottom: 2rem; |
||||||
|
&:nth-child(even) { |
||||||
|
flex-direction: row-reverse; |
||||||
|
.texts { |
||||||
|
padding: 75px 83px 75px 40px; |
||||||
|
margin: 0 -50px 0 0; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.pic { |
||||||
|
width: 430px; |
||||||
|
height: 430px; |
||||||
|
} |
||||||
|
.texts { |
||||||
|
position: relative; |
||||||
|
width: 530px; |
||||||
|
height: 330px; |
||||||
|
padding: 75px 41px 75px 83px; |
||||||
|
margin-left: -50px; |
||||||
|
background-color: rgba(247, 247, 247, 0.72); |
||||||
|
} |
||||||
|
h6 { |
||||||
|
font-size: 1.2rem; |
||||||
|
|
||||||
|
font-family: PingFangSC-Semibold, PingFang SC; |
||||||
|
font-weight: 600; |
||||||
|
color: #333; |
||||||
|
} |
||||||
|
.line { |
||||||
|
width: 93px; |
||||||
|
height: 1px; |
||||||
|
margin: 1rem 0; |
||||||
|
background: #d8d8d8; |
||||||
|
} |
||||||
|
.text { |
||||||
|
font-size: 1rem; |
||||||
|
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC; |
||||||
|
color: #666; |
||||||
|
line-height: 1.6; |
||||||
|
} |
||||||
|
} |
||||||
|
.right { |
||||||
|
width: 20%; |
||||||
|
} |
||||||
|
.column { |
||||||
|
width: 100%; |
||||||
|
margin-bottom: 25px; |
||||||
|
} |
||||||
|
/deep/.el-tree-node__content { |
||||||
|
height: 44px; |
||||||
|
background-color: #e5edf8; |
||||||
|
border-bottom: 2px solid #fff; |
||||||
|
} |
||||||
|
/deep/.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content { |
||||||
|
color: #fff; |
||||||
|
background-color: #0f5698; |
||||||
|
} |
||||||
|
.list { |
||||||
|
margin-bottom: 20px; |
||||||
|
li { |
||||||
|
padding: 16px 0; |
||||||
|
border-bottom: 1px solid #d8d8d8; |
||||||
|
} |
||||||
|
.text { |
||||||
|
margin-bottom: 5px; |
||||||
|
font-size: 14px; |
||||||
|
cursor: pointer; |
||||||
|
&:hover { |
||||||
|
color: $main-color; |
||||||
|
} |
||||||
|
} |
||||||
|
.date { |
||||||
|
font-size: 12px; |
||||||
|
color: #999; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
@media (max-width: 1200px) { |
||||||
|
.content { |
||||||
|
.article { |
||||||
|
flex-direction: column; |
||||||
|
.left { |
||||||
|
width: 100%; |
||||||
|
.recruit { |
||||||
|
li { |
||||||
|
flex-direction: column; |
||||||
|
.pic { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
.texts { |
||||||
|
margin-top: 0.8rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.notice { |
||||||
|
flex-direction: column; |
||||||
|
li { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.right { |
||||||
|
width: 100%; |
||||||
|
.el-tree { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,14 @@ |
|||||||
|
import BasicLayout from '@/layouts/home' |
||||||
|
const name = 'contactUs' |
||||||
|
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 = 'lightSources' |
||||||
|
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 = 'speech' |
||||||
|
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 = 'talentCentre' |
||||||
|
export default { |
||||||
|
path: `/${name}`, |
||||||
|
component: BasicLayout, |
||||||
|
children: [ |
||||||
|
{ |
||||||
|
name, |
||||||
|
path: `/${name}`, |
||||||
|
component: () => import(`@/pages/${name}`), |
||||||
|
meta: { title: '' } |
||||||
|
} |
||||||
|
] |
||||||
|
}; |
Loading…
Reference in new issue