yujialong 1 year ago
parent f1197e03d1
commit 3612e6d8e9
  1. 2
      src/mixins/article/index.js
  2. 2
      src/pages/article/index.vue
  3. 475
      src/pages/column/index.vue
  4. 35
      src/pages/iasf/index.vue
  5. 17
      src/pages/lightSources/index.vue
  6. 15
      src/pages/mission/index.vue
  7. 4
      src/pages/researchTeam/index.vue
  8. 1
      src/pages/speech/index.vue

@ -86,7 +86,7 @@ export default {
location.href = href location.href = href
} }
} else { } else {
this.$router.push(`/article?articleId=${item.id}&site=${this.site}&id=${item.columnId}`) this.$router.push(`/article?articleId=${item.id}&siteId=${this.site}&id=${item.columnId}`)
} }
} }
} }

@ -13,7 +13,7 @@
<div class="left"> <div class="left">
<template v-if="!isPeople"> <template v-if="!isPeople">
<h2>{{ form.title }}</h2> <h2>{{ form.title }}</h2>
<div class="meta">{{ form.source && form.source + ' | ' }} {{ form.author && form.author + ' | ' }} {{ form.totalBrowsing }} {{$t('column.views')}} | {{ form.releaseTime }}</div> <div class="meta">{{ form.source && form.source + ' | ' }} {{ form.author && form.author + ' | ' }} {{ 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> <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>
</template> </template>
<p v-if="form.summary" <p v-if="form.summary"

@ -134,240 +134,248 @@
</span> </span>
</el-tree> </el-tree>
<template v-if="info.listStyleId === 12"> <template v-if="articles.length">
<div class="article-wrap"> <template v-if="info.listStyleId === 12">
<ul class="articles"> <div class="article-wrap">
<li v-for="(item, i) in articles" <ul class="articles">
:key="i" <li v-for="(item, i) in articles"
:class="{'news-notice': info.listStyleId === 55}" :key="i"
class="readDetail" :class="{'news-notice': info.listStyleId === 55}"
@click="toArtice(item)"> class="readDetail"
<template v-if="info.listStyleId === 55"> @click="toArtice(item)">
<div class="releaseTime"> <template v-if="info.listStyleId === 55">
<p class="d">{{ item.date }}</p> <div class="releaseTime">
<p class="m">{{ item.month }}</p> <p class="d">{{ item.date }}</p>
</div> <p class="m">{{ item.month }}</p>
<div class="news-title">{{ item.title }}</div> </div>
</template> <div class="news-title">{{ item.title }}</div>
<template v-else> </template>
<img class="pic" <template v-else>
:src="item.titleImg" <img class="pic"
alt="" :src="item.titleImg"
onerror="javascript:this.src='./images/1.png';" /> alt=""
<div class="texts"> onerror="javascript:this.src='./images/1.png';" />
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15) && item.classificationName" <div class="texts">
class="type"> <p v-if="(item.listStyleId === 10 || item.listStyleId === 15) && item.classificationName"
{{ item.classificationName }} class="type">
</p> {{ item.classificationName }}
<h6 class="titleDes">{{ item.title }}</h6> </p>
<template v-if="item.listStyleId === 11 || item.listStyleId == 12"> <h6 class="titleDes">{{ item.title }}</h6>
<span class="meta">{{ item.releaseTime }}</span> <template v-if="item.listStyleId === 11 || item.listStyleId == 12">
<div class="des" <span class="meta">{{ item.releaseTime }}</span>
v-html="item.mainBody"></div> <div class="des"
</template> v-html="item.mainBody"></div>
<span v-if="item.listStyleId === 10 " </template>
class="meta">{{ item.releaseTime }} {{ item.labelName && ' | ' + <span v-if="item.listStyleId === 10 "
class="meta">{{ item.releaseTime }} {{ item.labelName && ' | ' +
item.labelName }}</span> item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16"> <template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" <div v-if="item.keynoteSpeaker"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/mine.png" src="@/assets/images/mine.png"
alt="" /> {{ item.keynoteSpeaker }} alt="" /> {{ item.keynoteSpeaker }}
</div> </div>
<div v-if="item.activityStartTime" <div v-if="item.activityStartTime"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/time.png" src="@/assets/images/time.png"
alt="" /> alt="" />
{{ item.activityStartTime + ' ~ ' + item.activityEndTime }} {{ item.activityStartTime + ' ~ ' + item.activityEndTime }}
</div> </div>
<div v-if="item.offlineLocation" <div v-if="item.offlineLocation"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/location.png" src="@/assets/images/location.png"
alt="" /> {{ item.offlineLocation }} alt="" /> {{ item.offlineLocation }}
</div> </div>
<div v-if="item.onlineLocation" <div v-if="item.onlineLocation"
class="meta"> class="meta">
<img class="icon" <img class="icon"
src="@/assets/images/online.png" src="@/assets/images/online.png"
alt="" /> {{ item.onlineLocation }} alt="" /> {{ item.onlineLocation }}
</div> </div>
</template> </template>
<el-button type="primary" <el-button type="primary"
class="readDetailBtn">{{ $t('column.readDetail') }}</el-button> class="readDetailBtn">{{ $t('column.readDetail') }}</el-button>
</div> </div>
</template> </template>
</li> </li>
</ul> </ul>
<div v-if="articles.length" <div v-if="articles.length"
class="pagination"> class="pagination">
<el-pagination background <el-pagination background
@current-change="currentChange" @current-change="currentChange"
:current-page="page" :current-page="page"
layout="total, prev, pager, next" layout="total, prev, pager, next"
:total="total"></el-pagination> :total="total"></el-pagination>
</div>
</div> </div>
</div> </template>
</template> <template v-else-if="info.listStyleId === 11 || info.listStyleId === 15 || info.listStyleId === 10">
<template v-else-if="info.listStyleId === 11 || info.listStyleId === 15 || info.listStyleId === 10"> <div class="article-wrap">
<div class="article-wrap"> <ul class="articles">
<ul class="articles"> <li v-for="(item, i) in articles"
<li v-for="(item, i) in articles" :key="i"
:key="i" :class="{'news-notice': info.listStyleId === 55}"
:class="{'news-notice': info.listStyleId === 55}" @click="toArtice(item)">
@click="toArtice(item)"> <template v-if="info.listStyleId === 55">
<template v-if="info.listStyleId === 55"> <div class="releaseTime">
<div class="releaseTime"> <p class="d">{{ item.date }}</p>
<p class="d">{{ item.date }}</p> <p class="m">{{ item.month }}</p>
<p class="m">{{ item.month }}</p> </div>
</div> <div class="news-title">{{ item.title }}</div>
<div class="news-title">{{ item.title }}</div> </template>
</template> <template v-else>
<template v-else> <div class="texts leftBox">
<div class="texts leftBox"> <p v-if="(item.listStyleId === 10 || item.listStyleId === 15|| item.listStyleId === 11) && item.classificationName"
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15|| item.listStyleId === 11) && item.classificationName" class="type">
class="type"> {{ item.classificationName }}
{{ item.classificationName }} </p>
</p> <h6 class="titleDes">{{ item.title }}</h6>
<h6 class="titleDes">{{ item.title }}</h6> <template v-if="item.listStyleId === 11 || item.listStyleId == 12">
<template v-if="item.listStyleId === 11 || item.listStyleId == 12"> <span class="meta">{{ item.releaseTime }}
<span class="meta">{{ item.releaseTime }} <template v-if="item.labelName != ''">
<template v-if="item.labelName != ''"> | {{ item.labelName }}
| {{ item.labelName }} </template>
</template> </span>
</span> </template>
</template> <span v-if="item.listStyleId === 10 "
<span v-if="item.listStyleId === 10 " class="meta">{{ item.releaseTime }} {{ item.labelName && ' | ' +
class="meta">{{ item.releaseTime }} {{ item.labelName && ' | ' +
item.labelName }}</span> item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16"> <template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" <div v-if="item.keynoteSpeaker"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/mine.png" src="@/assets/images/mine.png"
alt="" /> {{ item.keynoteSpeaker }} alt="" /> {{ item.keynoteSpeaker }}
</div> </div>
<div v-if="item.activityStartTime" <div v-if="item.activityStartTime"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/time.png" src="@/assets/images/time.png"
alt="" /> alt="" />
{{ item.activityStartTime + ' ~ ' + item.activityEndTime }} {{ item.activityStartTime + ' ~ ' + item.activityEndTime }}
</div> </div>
<div v-if="item.offlineLocation" <div v-if="item.offlineLocation"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/location.png" src="@/assets/images/location.png"
alt="" /> {{ item.offlineLocation }} alt="" /> {{ item.offlineLocation }}
</div> </div>
<div v-if="item.onlineLocation" <div v-if="item.onlineLocation"
class="meta"> class="meta">
<img class="icon" <img class="icon"
src="@/assets/images/online.png" src="@/assets/images/online.png"
alt="" /> {{ item.onlineLocation }} alt="" /> {{ item.onlineLocation }}
</div> </div>
</template> </template>
</div> </div>
<img class="pic" <img class="pic"
:src="item.titleImg" :src="item.titleImg"
alt="" alt=""
onerror="javascript:this.src='./images/1.png';" /> onerror="javascript:this.src='./images/1.png';" />
</template> </template>
</li> </li>
</ul> </ul>
<div v-if="articles.length" <div v-if="articles.length"
class="pagination"> class="pagination">
<el-pagination background <el-pagination background
@current-change="currentChange" @current-change="currentChange"
:current-page="page" :current-page="page"
layout="total, prev, pager, next" layout="total, prev, pager, next"
:total="total"></el-pagination> :total="total"></el-pagination>
</div>
</div> </div>
</div> </template>
</template> <template v-else>
<template v-else> <div class="article-wrap">
<div class="article-wrap"> <ul class="articles">
<ul class="articles"> <li v-for="(item, i) in articles"
<li v-for="(item, i) in articles" :key="i"
:key="i" :class="{'news-notice': info.listStyleId === 55, 'org': info.listStyleId === 68}"
:class="{'news-notice': info.listStyleId === 55, 'org': info.listStyleId === 68}" class="overDetail"
class="overDetail" @click="toArtice(item)">
@click="toArtice(item)"> <template v-if="info.listStyleId === 55">
<template v-if="info.listStyleId === 55"> <div class="releaseTime">
<div class="releaseTime"> <p class="d">{{ item.date }}</p>
<p class="d">{{ item.date }}</p> <p class="m">{{ item.month }}</p>
<p class="m">{{ item.month }}</p> </div>
</div> <div class="news-title">{{ item.title }}</div>
<div class="news-title">{{ item.title }}</div> </template>
</template> <template v-else>
<template v-else> <img class="pic"
<img class="pic" :src="item.titleImg"
:src="item.titleImg" alt=""
alt="" onerror="javascript:this.src='./images/1.png';" />
onerror="javascript:this.src='./images/1.png';" /> <div class="texts">
<div class="texts"> <p v-if="(item.listStyleId === 10 || item.listStyleId === 15) && item.classificationName"
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15) && item.classificationName" class="type">
class="type"> {{ item.classificationName }}
{{ item.classificationName }} </p>
</p> <h6 class="titleDes">{{ item.title }}</h6>
<h6 class="titleDes">{{ item.title }}</h6> <template v-if="item.listStyleId === 11 || item.listStyleId == 12 || item.listStyleId == 68">
<template v-if="item.listStyleId === 11 || item.listStyleId == 12 || item.listStyleId == 68"> <span class="meta">{{ item.releaseTime }}</span>
<span class="meta">{{ item.releaseTime }}</span> <div class="des"
<div class="des" v-html="item.mainBody"></div>
v-html="item.mainBody"></div> </template>
</template> <span v-if="item.listStyleId === 10 "
<span v-if="item.listStyleId === 10 " class="meta">{{ item.releaseTime }} {{ item.labelName && ' | ' +
class="meta">{{ item.releaseTime }} {{ item.labelName && ' | ' +
item.labelName }}</span> item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16"> <template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" <div v-if="item.keynoteSpeaker"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/mine.png" src="@/assets/images/mine.png"
alt="" /> {{ item.keynoteSpeaker }} alt="" /> {{ item.keynoteSpeaker }}
</div> </div>
<div v-if="item.activityStartTime" <div v-if="item.activityStartTime"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/time.png" src="@/assets/images/time.png"
alt="" /> alt="" />
{{ item.activityStartTime + ' ~ ' + item.activityEndTime }} {{ item.activityStartTime + ' ~ ' + item.activityEndTime }}
</div> </div>
<div v-if="item.offlineLocation" <div v-if="item.offlineLocation"
class="meta m-b-10"> class="meta m-b-10">
<img class="icon" <img class="icon"
src="@/assets/images/location.png" src="@/assets/images/location.png"
alt="" /> {{ item.offlineLocation }} alt="" /> {{ item.offlineLocation }}
</div> </div>
<div v-if="item.onlineLocation" <div v-if="item.onlineLocation"
class="meta"> class="meta">
<img class="icon" <img class="icon"
src="@/assets/images/online.png" src="@/assets/images/online.png"
alt="" /> {{ item.onlineLocation }} alt="" /> {{ item.onlineLocation }}
</div> </div>
</template> </template>
<el-button v-if="item.listStyleId === 15 || item.listStyleId == 68" <el-button v-if="item.listStyleId === 15 || item.listStyleId == 68"
type="primary" type="primary"
class="readDetailBtn">{{ $t('column.readDetail') }}</el-button> class="readDetailBtn">{{ $t('column.readDetail') }}</el-button>
</div> </div>
</template> </template>
</li> </li>
</ul> </ul>
<div v-if="articles.length" <div v-if="articles.length"
class="pagination"> class="pagination">
<el-pagination background <el-pagination background
@current-change="currentChange" @current-change="currentChange"
:current-page="page" :current-page="page"
layout="total, prev, pager, next" layout="total, prev, pager, next"
:total="total"></el-pagination> :total="total"></el-pagination>
</div>
</div> </div>
</div> </template>
</template> </template>
<div v-else
class="none">
<img src="@/assets/images/none.png"
alt="">
<p class="text">暂无更多信息敬请期待</p>
</div>
</div> </div>
</div> </div>
<div class="right"> <div class="right">
@ -1195,6 +1203,19 @@ export default {
background-color: $partyTheme !important; background-color: $partyTheme !important;
} }
} }
.none {
display: inline-flex;
flex-direction: column;
justify-content: center;
align-items: center;
flex: 1;
text-align: center;
.text {
margin-top: 20px;
font-size: 0.9rem;
color: #333;
}
}
@media (max-width: 1200px) { @media (max-width: 1200px) {
.banner { .banner {
height: 15rem !important; height: 15rem !important;

@ -250,7 +250,8 @@
</div> </div>
<img :src="modules[12].form.pic" <img :src="modules[12].form.pic"
alt="" alt=""
class="pic"> class="pic wow fadeInRight"
data-wow-delay="0.5s">
</div> </div>
</div> </div>
</div> </div>
@ -275,14 +276,11 @@
</div> </div>
<ul class="tools"> <ul class="tools">
<li v-for="(item, i) in modules[19].list" <template v-for="(item, i) in modules[19].list">
:key="i" <li v-if="item.isEnable"
@click="toLink(item, i)"> :key="i"
<!-- <img :src="'http://10.10.11.7/images/iasf/icon' + (i < 4 ? i + 1 : 1) + '.png'" @click="toLink(item, i)">{{ item.title }}</li>
alt="" </template>
class="icon"> -->
{{ item.title }}
</li>
</ul> </ul>
</div> </div>
</template> </template>
@ -373,15 +371,15 @@ export default {
clearInterval(this.timer) clearInterval(this.timer)
this.timer = setInterval(() => { this.timer = setInterval(() => {
this.curInd1++ this.curInd1++
if (this.curInd1 > 3) this.curInd1 = 0 if (this.curInd1 > this.articles1.length - 1) this.curInd1 = 0
if (this.articles1[this.curInd1]) this.curArticle1 = this.articles1[this.curInd1] || {} if (this.articles1[this.curInd1]) this.curArticle1 = this.articles1[this.curInd1] || {}
this.curInd2++ this.curInd2++
if (this.curInd2 > 3) this.curInd2 = 0 if (this.curInd2 > this.articles2.length - 1) this.curInd2 = 0
if (this.articles2[this.curInd2]) this.curArticle2 = this.articles2[this.curInd2] || {} if (this.articles2[this.curInd2]) this.curArticle2 = this.articles2[this.curInd2] || {}
this.curInd3++ this.curInd3++
if (this.curInd3 > 3) this.curInd3 = 0 if (this.curInd3 > this.articles3.length - 1) this.curInd3 = 0
if (this.articles3[this.curInd3]) this.curArticle3 = this.articles3[this.curInd3] || {} if (this.articles3[this.curInd3]) this.curArticle3 = this.articles3[this.curInd3] || {}
}, 5000) }, 5000)
}, },
@ -717,27 +715,26 @@ export default {
.action { .action {
position: absolute; position: absolute;
bottom: 20px; bottom: 20px;
right: 20px; left: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 14px; font-size: 14px;
color: rgba(255, 255, 255, 0.65); color: rgba(255, 255, 255, 0.65);
transform: translateX(-50%);
} }
.inds { .inds {
display: inline-flex; display: inline-flex;
margin: 0 5px; margin: 0 15px;
li { li {
width: 10px; width: 10px;
height: 10px; height: 10px;
margin-right: 6px; margin-right: 6px;
background: rgba(255, 255, 255, 0.65); background: rgba(255, 255, 255, 1);
border-radius: 50%; border-radius: 50%;
transition: 0.2s; transition: 0.2s;
cursor: pointer; cursor: pointer;
&.active { &.active {
width: 20px; background: #1583ff;
background: rgba(255, 255, 255, 0.3);
border-radius: 5px;
} }
&:last-child { &:last-child {
margin-right: 0; margin-right: 0;
@ -745,6 +742,8 @@ export default {
} }
} }
.dir { .dir {
font-size: 1.2rem;
color: #fff;
line-height: 1; line-height: 1;
cursor: pointer; cursor: pointer;
} }

@ -15,14 +15,20 @@
<h2 class="b-title wow fadeInUp">{{ modules[1].form.title }}</h2> <h2 class="b-title wow fadeInUp">{{ modules[1].form.title }}</h2>
<p class="intro wow fadeInUp" <p class="intro wow fadeInUp"
data-wow-delay="0.8s">{{ modules[1].form.des }}</p> data-wow-delay="0.8s">{{ modules[1].form.des }}</p>
<img class="block-pic br wow fadeInLeft" <el-image class="block-pic br wow fadeInLeft"
data-wow-delay="0.8s"
style="width: 100%; height: 536px"
:src="modules[1].form.pic"
:preview-src-list="[modules[1].form.pic]">
</el-image>
<!-- <img class="block-pic br wow fadeInLeft"
data-wow-delay="0.8s" data-wow-delay="0.8s"
:class="{'cursor-pointer': isLink(modules[1].form.link.linkName)}" :class="{'cursor-pointer': isLink(modules[1].form.link.linkName)}"
width="100%" width="100%"
height="536" height="536"
:src="modules[1].form.pic" :src="modules[1].form.pic"
alt="" alt=""
@click="openLink(modules[1].form)"> @click="openLink(modules[1].form)"> -->
</div> </div>
</div> </div>
@ -101,6 +107,7 @@
colspan="11">暂无数据</td> colspan="11">暂无数据</td>
</tr> </tr>
</table> </table>
<div class="copyright">全球先进光源页面所刊载内容包括图片文字数据源自相关设施官方网站宣传手册以及国际原子能机构IAEA网站公开数据由深圳综合粒子设施研究院及中国科学学与科技政策研究会科技基础设施专业委员会共同汇总整理而来相关内容供访问者学习研究如需转载或引用须声明内容来源</div>
</div> </div>
</div> </div>
</div> </div>
@ -198,6 +205,12 @@ export default {
text-align: left; text-align: left;
} }
} }
.copyright {
margin-top: 10px;
font-size: 0.7rem;
line-height: 1.6;
color: #8d8d8d;
}
@media (max-width: 1200px) { @media (max-width: 1200px) {
.table-wrap { .table-wrap {
width: 100%; width: 100%;

@ -120,22 +120,23 @@ export default {
width: 100%; width: 100%;
height: 400px; height: 400px;
} }
&:nth-child(2) .texts {
left: auto;
right: -36px;
color: #fff;
background: rgba(40, 179, 255, 0.54);
}
.texts { .texts {
position: absolute; position: absolute;
top: 79px; top: 79px;
left: -34px; left: -34px;
width: 532px; width: 532px;
padding: 70px 38px; padding: 70px 38px 70px 55px;
color: #333; color: #333;
background: rgba(255, 241, 231, 0.84); background: rgba(255, 241, 231, 0.84);
transition: 0.5s; transition: 0.5s;
} }
&:nth-child(2) .texts {
left: auto;
right: -36px;
padding-left: 38px;
color: #fff;
background: rgba(40, 179, 255, 0.54);
}
h6 { h6 {
margin-bottom: 14px; margin-bottom: 14px;
font-size: 2rem; font-size: 2rem;

@ -108,7 +108,7 @@ export default {
console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json) console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json)
// //
const { column, articleNum } = json[1].form const { column } = json[1].form
if (column.length) { if (column.length) {
this.$post(`${this.api.queryArticlesByColumnType}?columnId=${column[column.length - 1]}`).then(({ data }) => { this.$post(`${this.api.queryArticlesByColumnType}?columnId=${column[column.length - 1]}`).then(({ data }) => {
const articles = Util.removeTag(data) const articles = Util.removeTag(data)
@ -131,7 +131,7 @@ export default {
list.forEach(e => { list.forEach(e => {
e.sortTitle = pinyin(e.title, { toneType: 'none' })[0].toUpperCase() e.sortTitle = pinyin(e.title, { toneType: 'none' })[0].toUpperCase()
}) })
this.letters = ['全部', ...this.letters.filter(e => list.find(n => n.sortTitle == e))]
return list.sort((a, b) => a.sortTitle.charCodeAt(0) - b.sortTitle.charCodeAt(0)) return list.sort((a, b) => a.sortTitle.charCodeAt(0) - b.sortTitle.charCodeAt(0))
}, },
// //

@ -21,7 +21,6 @@
<div class="text" <div class="text"
v-html="modules[1].form.des"></div> v-html="modules[1].form.des"></div>
<div class="sign"> <div class="sign">
签名
<img :src="modules[2].form.pic" <img :src="modules[2].form.pic"
alt=""> alt="">
</div> </div>

Loading…
Cancel
Save