修复研究院提出的问题

master
yujialong 5 months ago
parent 4eb372e784
commit 89ff070859
  1. 126
      src/components/rightColumns/index.vue
  2. 44
      src/mixins/page/index.js
  3. 63
      src/pages/article/index.vue
  4. 639
      src/pages/column/index.vue
  5. 2015
      src/pages/iasf/index.vue
  6. 6
      src/store/modules/content.js
  7. 26
      src/store/modules/layout.js

@ -1,44 +1,29 @@
<template>
<div :class="['right', {party}]">
<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>
<div :class="['right', { party }]">
<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>
<template v-if="site == 2">
<p class="l-title">{{ $t('column.latestNews') }}</p>
<ul class="list">
<li v-for="(item, i) in site2News"
:key="i"
:title="item.title"
@click="toArtice(item)">
<li v-for="(item, i) in site2News" :key="i" :title="item.title" @click="toArtice(item)">
<p class="text">{{ item.title }}</p>
<span class="date">{{ item.releaseTime }}</span>
</li>
</ul>
</template>
<template v-else>
<p class="l-title">{{$t('column.hot')}}</p>
<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>
</ul>
<p class="l-title">{{$t('column.latestNews')}}</p>
<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)">
<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>
@ -91,7 +76,7 @@ export default {
siteId: this.site,
columnIds: [411, 412, 413],
pageNum: 1,
pageSize: 8,
pageSize: 5,
})).then(({ data }) => {
this.site2News = Util.removeTag(data.records);
}).catch((res) => { });
@ -110,55 +95,66 @@ export default {
</script>
<style lang="scss" scoped>
.right {
width: 20%;
/deep/ .el-tree-node__label {
font-size: 0.78rem;
}
width: 20%;
/deep/ .el-tree-node__label {
font-size: 0.78rem;
}
}
.column {
width: 100%;
margin-bottom: 1.56rem;
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;
}
.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;
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;
}
}
.party {
.el-tree-node:focus > .el-tree-node__content,
/deep/.el-tree-node__content {
background-color: $lightPartyTheme;
}
/deep/.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
background-color: $partyTheme;
}
.el-tree-node:focus>.el-tree-node__content,
/deep/.el-tree-node__content {
background-color: $lightPartyTheme;
}
/deep/.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
background-color: $partyTheme;
}
}
</style>

@ -1,7 +1,7 @@
import Setting from '@/setting'
import Util from '@/libs/util'
export default {
data() {
data () {
return {
id: this.$route.query.id,
preview: this.$route.query.preview,
@ -10,25 +10,29 @@ export default {
}
},
computed: {
site() {
site () {
return this.$route.query.siteId || this.$store.state.content.site
}
},
mounted() {
mounted () {
this.getInfo && this.id && this.getColumnInfo()
},
methods: {
// 获取栏目详情
getColumnInfo () {
this.$post(this.api.findColumn, Util.rsa(this.id))
.then(({ data }) => {
// 栏目被禁用了,则不显示页面
data.menuVisible || this.getInfo()
})
.catch((res) => { });
.then(({ data }) => {
// 栏目被禁用了,则不显示页面
data.menuVisible || this.getInfo()
})
.catch((res) => { });
},
// 保存当前页面的滚动位置
saveScrollTop () {
this.$store.commit('content/setScrollTop', document.documentElement.scrollTop || document.body.scrollTop)
},
// 打开链接
async openLink(item) {
async openLink (item) {
const { link } = item
if (link.linkName === '无' || link.linkName === '') return false
let href = link.linkAddress
@ -62,33 +66,36 @@ export default {
href += '&siteId=' + link.site
if (!link.otherArticleId) href = this.$router.resolve(href).href
}
this.saveScrollTop()
// 如果是站内/站外链接,并且选择的是文章,则要获取当前长页名称传到文章详情里,面包屑点返回的时候需要返回到当前长页
if ((type === 1 && link.articleId) || (type === 3 && link.otherArticleId)) {
this.$post(this.api.findColumn, Util.rsa(this.id)).then(({ data }) => {
href = this.$router.resolve(href + '&id=' + this.id + '&columnName=' + data.columnName + '&path=' + this.$route.path.replace('/', '')).href
this.toHref(link.isOpen, href)
}).catch(res => {})
}).catch(res => { })
} else {
this.toHref(link.isOpen, href)
}
},
// 跳转地址
toHref(isOpen, href) {
toHref (isOpen, href) {
if (isOpen) {
var userAgent = navigator.userAgent;
var isSafari = /Safari/.test(userAgent) && !/Chrome/.test(userAgent);
if(isSafari) {
if (isSafari) {
window.location.href = href
}else {
} else {
window.open(href)
}
} else {
window.location.href = href
}
},
// 跳转文章页面
toArtice(item, form) {
toArtice (item, form) {
this.saveScrollTop()
if (item.articleTemplate === 24) { // 链接
let href = item.linkAddress
const cType = item.connectionType
@ -112,15 +119,16 @@ export default {
}
},
// 关联栏目的查看全部跳转
toAll(form) {
toAll (form) {
this.saveScrollTop()
this.$router.push(`/column?id=${form.column[form.column.length - 1]}&siteId=${form.site}`)
},
// 判断是否有添加链接
isLink(linkName) {
isLink (linkName) {
return linkName !== '无' && linkName !== ''
},
// 关联栏目专用,获取栏目标题
getColumnTitle(form) {
getColumnTitle (form) {
return form.columnTitle == 1 ? form.columnName : form.columnTitleCustom
}
}

@ -1,35 +1,38 @@
<template>
<div v-show="loaded" class="wrap">
<!-- 人物详情不展示banner -->
<div v-if="form.articleTemplate !== 23 && !isPeople" class="banner"
:style="{ backgroundImage: form.bannerImg ? ('url(' + form.bannerImg + ')') : '' }">
{{ form.columnName }}
</div>
<div class="content">
<Breadcrumb ref="breadcrumb" :data.sync="routes" />
<div class="article">
<div class="left">
<template v-if="!isPeople">
<h2>{{ form.title }}</h2>
<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>
</template>
<p v-if="form.summary" class="brief">{{ form.summary }}</p>
<div class="des" id="mainBody" v-html="form.mainBody"></div>
<div v-if="form.fileList && form.fileList.length" class="annex">
<h6>{{ $t('column.attachmentDownload') }}</h6>
<ul class="files">
<li v-for="(file, i) in form.fileList" :key="i">
<span class="name">{{ file.fileName }}</span>
<span class="download" @click="download(file)">{{ $t('column.download') }}</span>
</li>
</ul>
<div class="wrap">
<div v-show="loaded">
<!-- 人物详情不展示banner -->
<div v-if="form.articleTemplate !== 23 && !isPeople" class="banner"
:style="{ backgroundImage: form.bannerImg ? ('url(' + form.bannerImg + ')') : '' }">
{{ form.columnName }}
</div>
<div class="content">
<Breadcrumb ref="breadcrumb" :data.sync="routes" />
<div class="article">
<div class="left">
<template v-if="!isPeople">
<h2>{{ form.title }}</h2>
<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>
</template>
<p v-if="form.summary" class="brief">{{ form.summary }}</p>
<div class="des" id="mainBody" v-html="form.mainBody"></div>
<div v-if="form.fileList && form.fileList.length" class="annex">
<h6>{{ $t('column.attachmentDownload') }}</h6>
<ul class="files">
<li v-for="(file, i) in form.fileList" :key="i">
<span class="name">{{ file.fileName }}</span>
<span class="download" @click="download(file)">{{ $t('column.download') }}</span>
</li>
</ul>
</div>
</div>
<RightColumns ref="right" :party="isParty" />
</div>
<RightColumns ref="right" :party="isParty" />
</div>
</div>
</div>
@ -224,7 +227,7 @@ export default {
.brief {
padding-bottom: 1.5rem;
margin: 1rem 0;
font-size: 1.2rem;
font-size: 0.9rem;
line-height: 1.6;
color: #606060;
border-bottom: 1px solid #d8d8d8;

@ -1,348 +1,351 @@
<template>
<div v-show="loaded" v-loading="loading"
:class="['wrap', { activity: info.listStyleId === 15, party: info.listStyleId === 68 }]">
<div class="banner">
<img width="100%" height="280" :src="info.columnBanner" alt="" />
<div class="texts">
<p class="text">{{ info.columnName }}</p>
<p class="sub">{{ info.subtitle }}</p>
<div :class="['wrap', { activity: info.listStyleId === 15, party: info.listStyleId === 68 }]">
<div v-show="loaded" v-loading="loading">
<div class="banner">
<img width="100%" height="280" :src="info.columnBanner" alt="" />
<div class="texts">
<p class="text">{{ info.columnName }}</p>
<p class="sub">{{ info.subtitle }}</p>
</div>
</div>
</div>
<div class="column-wrap">
<div class="article">
<div class="left">
<!-- 文章侧边栏+搜索+新闻列表 -->
<div v-if="info.listStyleId === 10" class="forms">
<div class="item">
<span class="label">{{ $t('column.classification') }}</span>
<el-select v-model="form.classificationId" @change="filter">
<el-option :label="$t('column.all')" :value="null"></el-option>
<el-option v-for="item in classifications" :key="item.id" :label="item.classificationName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="item">
<span class="label">{{ $t('column.label') }}</span>
<el-select ref="search" v-model="lableId" multiple @change="filter">
<el-option v-for="item in labels" :key="item.id" :label="item.labelName" :value="item.id"> </el-option>
</el-select>
</div>
<div class="search">
<input type="text" :placeholder="$t('column.titlePlaceholder')" v-model="form.title" />
<div class="column-wrap">
<div class="article">
<div class="left">
<!-- 文章侧边栏+搜索+新闻列表 -->
<div v-if="info.listStyleId === 10" class="forms">
<div class="item">
<span class="label">{{ $t('column.classification') }}</span>
<el-select v-model="form.classificationId" @change="filter">
<el-option :label="$t('column.all')" :value="null"></el-option>
<el-option v-for="item in classifications" :key="item.id" :label="item.classificationName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="item">
<span class="label">{{ $t('column.label') }}</span>
<el-select ref="search" v-model="lableId" multiple @change="filter">
<el-option v-for="item in labels" :key="item.id" :label="item.labelName" :value="item.id">
</el-option>
</el-select>
</div>
<div class="search">
<input type="text" :placeholder="$t('column.titlePlaceholder')" v-model="form.title" />
<!-- <i class="icon">
<!-- <i class="icon">
<img src="@/assets/images/search-white.png" alt="" />
</i> -->
</div>
</div>
</div>
<!-- 侧导航+新闻列表(含文章概述) -->
<div v-if="info.listStyleId === 12" class="forms">
<div class="item">
<span class="label">{{ $t('column.classification') }}</span>
<el-select v-model="form.classificationId" @change="filter">
<el-option :label="$t('column.all')" :value="null"></el-option>
<el-option v-for="item in classifications" :key="item.id" :label="item.classificationName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="item">
<span class="label">{{ $t('column.label') }}</span>
<el-select ref="search" v-model="lableId" multiple @change="filter">
<el-option v-for="item in labels" :key="item.id" :label="item.labelName" :value="item.id"> </el-option>
</el-select>
</div>
<div class="search">
<input type="text" :placeholder="$t('column.titlePlaceholder')" v-model="form.title" />
<!-- <i class="icon">
<!-- 侧导航+新闻列表(含文章概述) -->
<div v-if="info.listStyleId === 12" class="forms">
<div class="item">
<span class="label">{{ $t('column.classification') }}</span>
<el-select v-model="form.classificationId" @change="filter">
<el-option :label="$t('column.all')" :value="null"></el-option>
<el-option v-for="item in classifications" :key="item.id" :label="item.classificationName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="item">
<span class="label">{{ $t('column.label') }}</span>
<el-select ref="search" v-model="lableId" multiple @change="filter">
<el-option v-for="item in labels" :key="item.id" :label="item.labelName" :value="item.id">
</el-option>
</el-select>
</div>
<div class="search">
<input type="text" :placeholder="$t('column.titlePlaceholder')" v-model="form.title" />
<!-- <i class="icon">
<img src="@/assets/images/search-white.png" alt="" />
</i> -->
</div>
</div>
</div>
<!-- 会议活动筛选+会议活动列表 -->
<div v-if="info.listStyleId === 15" class="forms">
<ul class="switch">
<li v-for="(item, i) in convokeTypes" :key="i" :class="{ active: item.id === form.convokeType }"
@click="switchChange(item)">
{{ item.name }}
</li>
</ul>
<div class="item">
<span class="label">{{ $t('column.classification') }}</span>
<el-select v-model="form.classificationId" @change="filter">
<el-option :label="$t('column.all')" :value="null"></el-option>
<el-option v-for="item in classifications" :key="item.id" :label="item.classificationName"
:value="item.id">
</el-option>
</el-select>
<!-- 会议活动筛选+会议活动列表 -->
<div v-if="info.listStyleId === 15" class="forms">
<ul class="switch">
<li v-for="(item, i) in convokeTypes" :key="i" :class="{ active: item.id === form.convokeType }"
@click="switchChange(item)">
{{ item.name }}
</li>
</ul>
<div class="item">
<span class="label">{{ $t('column.classification') }}</span>
<el-select v-model="form.classificationId" @change="filter">
<el-option :label="$t('column.all')" :value="null"></el-option>
<el-option v-for="item in classifications" :key="item.id" :label="item.classificationName"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
</div>
<div class="contents">
<el-tree
v-if="columns.length && columns.find(e => e.children.length) && !isFilter && showNav && info.listStyleId !== 15"
class="columns" ref="leftColumn" :data="columns" highlight-current :expand-on-click-node="false"
default-expand-all :props="defaultProps" node-key="id" icon-class="el-icon-arrow-down"
@node-click="(item) => columnClick(item, 1)" @current-change="(item) => columnClick(item, 1)">
<span class="custom-tree-node" slot-scope="{ node, data }" style="padding-left: 10px;">
<span :title="node.label">{{ node.label }}</span>
</span>
</el-tree>
<template v-if="articles.length && !loading">
<!-- 列表样式选的是列表详情则直接显示最新一篇文章的详情 -->
<div v-if="info.listStyleId === 73" class="detail">
<template v-if="article.articleTemplate != 72">
<h2>{{ article.title }}</h2>
<!-- <div class="meta">{{ article.source && article.source + ' | ' }} {{ article.author && article.author + ' | ' }} {{ article.releaseTime }}</div>
<div class="contents">
<el-tree
v-if="columns.length && columns.find(e => e.children.length) && !isFilter && showNav && info.listStyleId !== 15"
class="columns" ref="leftColumn" :data="columns" highlight-current :expand-on-click-node="false"
default-expand-all :props="defaultProps" node-key="id" icon-class="el-icon-arrow-down"
@node-click="(item) => columnClick(item, 1)" @current-change="(item) => columnClick(item, 1)">
<span class="custom-tree-node" slot-scope="{ node, data }" style="padding-left: 10px;">
<span :title="node.label">{{ node.label }}</span>
</span>
</el-tree>
<template v-if="articles.length && !loading">
<!-- 列表样式选的是列表详情则直接显示最新一篇文章的详情 -->
<div v-if="info.listStyleId === 73" class="detail">
<template v-if="article.articleTemplate != 72">
<h2>{{ article.title }}</h2>
<!-- <div class="meta">{{ article.source && article.source + ' | ' }} {{ article.author && article.author + ' | ' }} {{ article.releaseTime }}</div>
<div class="meta">{{ article.edit && $t('column.edit') + ':' + article.edit }} {{ article.audit && ' | ' + $t('column.auditor') + ':' + article.audit }} {{ article.label && ' | ' + $t('column.label') + ':' + article.label }}</div> -->
</template>
<p v-if="article.summary" class="brief">{{ article.summary }}</p>
<div class="des" v-html="article.mainBody"></div>
<div v-if="article.fileList && article.fileList.length" class="annex">
<h6>{{ $t('column.attachmentDownload') }}</h6>
<ul class="files">
<li v-for="(file, i) in article.fileList" :key="i">
<span class="name">{{ file.fileName }}</span>
<span class="download" @click="download(file)">{{ $t('column.download') }}</span>
</li>
</ul>
</div>
</div>
<template v-else>
<template v-if="info.listStyleId === 12">
<div class="article-wrap">
<ul class="articles">
<li v-for="(item, i) in articles" :key="i" :class="{ 'news-notice': info.listStyleId === 55 }"
class="readDetail" @click="toArtice(item)">
<template v-if="info.listStyleId === 55">
<div class="releaseTime">
<p class="d">{{ item.date }}</p>
<p class="m">{{ item.month }}</p>
</div>
<div class="news-title">{{ item.title }}</div>
</template>
<template v-else>
<img class="pic" :src="item.titleImg" alt=""
onerror="javascript:this.src='./images/1.png?id=1';" />
<div class="texts">
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15) && item.classificationName"
class="type">
{{ item.classificationName }}
</p>
<h6 class="titleDes">{{ item.title }}</h6>
<template v-if="item.listStyleId === 11 || item.listStyleId == 12">
<span class="meta">{{ item.releaseTime }}</span>
<div class="des" v-html="item.mainBody"></div>
</template>
<span v-if="item.listStyleId === 10" class="meta">{{ item.releaseTime }} {{ item.labelName
&& ' | ' +
item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" class="meta m-b-10">
<img class="icon" src="@/assets/images/mine.png" alt="" /> {{ item.keynoteSpeaker }}
</div>
<div v-if="item.activityStartTime" class="meta m-b-10">
<img class="icon" src="@/assets/images/time.png" alt="" />
{{ item.activityStartTime }}
</div>
<div v-if="item.offlineLocation" class="meta m-b-10">
<img class="icon" src="@/assets/images/location.png" alt="" /> {{ item.offlineLocation
}}
</div>
<div v-if="item.onlineLocation" class="meta">
<img class="icon" src="@/assets/images/online.png" alt="" /> {{ item.onlineLocation }}
</div>
</template>
<el-button type="primary" class="readDetailBtn">{{ $t('column.readDetail') }}</el-button>
</div>
</template>
</li>
</ul>
<div v-if="articles.length" class="pagination">
<el-pagination background @current-change="currentChange" :current-page="page"
:page-size="pageSize" layout="total, prev, pager, next" :total="total"></el-pagination>
</div>
</div>
</template>
<template v-else-if="info.listStyleId === 11 || info.listStyleId === 15 || info.listStyleId === 10">
<div class="article-wrap">
<ul class="articles">
<li v-for="(item, i) in articles" :key="i" :class="{ 'news-notice': info.listStyleId === 55 }"
@click="toArtice(item)">
<template v-if="info.listStyleId === 55">
<div class="releaseTime">
<p class="d">{{ item.date }}</p>
<p class="m">{{ item.month }}</p>
</div>
<div class="news-title">{{ item.title }}</div>
</template>
<template v-else>
<div class="texts leftBox">
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15 || item.listStyleId === 11) && item.classificationName"
class="type">
{{ item.classificationName }}
</p>
<h6 class="titleDes">{{ item.title }}</h6>
<template v-if="item.listStyleId === 11 || item.listStyleId == 12">
<span class="meta">{{ item.releaseTime }}
<template v-if="item.labelName != ''">
| {{ item.labelName }}
</template>
</span>
</template>
<span v-if="item.listStyleId === 10" class="meta">{{ item.releaseTime }} {{ item.labelName
&& ' | ' +
item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" class="meta m-b-10">
<img class="icon" src="@/assets/images/mine.png" alt="" /> {{ item.keynoteSpeaker }}
</div>
<div v-if="item.activityStartTime" class="meta m-b-10">
<img class="icon" src="@/assets/images/time.png" alt="" />
{{ item.activityStartTime }}
</div>
<div v-if="item.offlineLocation" class="meta m-b-10">
<img class="icon" src="@/assets/images/location.png" alt="" /> {{ item.offlineLocation
}}
</div>
<div v-if="item.onlineLocation" class="meta">
<img class="icon" src="@/assets/images/online.png" alt="" /> {{ item.onlineLocation }}
</div>
</template>
</div>
<img class="pic" :src="item.titleImg" alt=""
onerror="javascript:this.src='./images/1.png?id=1';" />
</template>
</template>
<p v-if="article.summary" class="brief">{{ article.summary }}</p>
<div class="des" v-html="article.mainBody"></div>
<div v-if="article.fileList && article.fileList.length" class="annex">
<h6>{{ $t('column.attachmentDownload') }}</h6>
<ul class="files">
<li v-for="(file, i) in article.fileList" :key="i">
<span class="name">{{ file.fileName }}</span>
<span class="download" @click="download(file)">{{ $t('column.download') }}</span>
</li>
</ul>
<div v-if="articles.length" class="pagination">
<el-pagination background @current-change="currentChange" :current-page="page"
:page-size="pageSize" layout="total, prev, pager, next" :total="total"></el-pagination>
</div>
</div>
</template>
</div>
<template v-else>
<div class="article-wrap">
<ul :class="['articles', { media: info.listStyleId === 74 }]">
<li v-for="(item, i) in articles" :key="i"
:class="{ 'news-notice': info.listStyleId === 55, 'org': info.listStyleId === 68 }"
class="overDetail" @click="toArtice(item)">
<template v-if="info.listStyleId === 55">
<div class="releaseTime">
<p class="d">{{ item.date }}</p>
<p class="m">{{ item.month }}</p>
</div>
<div class="news-title">{{ item.title }}</div>
</template>
<template v-else>
<img v-if="info.listStyleId !== 74" class="pic" :src="item.titleImg" alt=""
onerror="javascript:this.src='./images/1.png?id=1';" />
<template v-else-if="item.fileList">
<!-- <el-image class="media-pic"
<template v-if="info.listStyleId === 12">
<div class="article-wrap">
<ul class="articles">
<li v-for="(item, i) in articles" :key="i" :class="{ 'news-notice': info.listStyleId === 55 }"
class="readDetail" @click="toArtice(item)">
<template v-if="info.listStyleId === 55">
<div class="releaseTime">
<p class="d">{{ item.date }}</p>
<p class="m">{{ item.month }}</p>
</div>
<div class="news-title">{{ item.title }}</div>
</template>
<template v-else>
<img class="pic" :src="item.titleImg" alt=""
onerror="javascript:this.src='./images/1.png?id=1';" />
<div class="texts">
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15) && item.classificationName"
class="type">
{{ item.classificationName }}
</p>
<h6 class="titleDes">{{ item.title }}</h6>
<template v-if="item.listStyleId === 11 || item.listStyleId == 12">
<span class="meta">{{ item.releaseTime }}</span>
<div class="des" v-html="item.mainBody"></div>
</template>
<span v-if="item.listStyleId === 10" class="meta">{{ item.releaseTime }} {{ item.labelName
&& ' | ' +
item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" class="meta m-b-10">
<img class="icon" src="@/assets/images/mine.png" alt="" /> {{ item.keynoteSpeaker }}
</div>
<div v-if="item.activityStartTime" class="meta m-b-10">
<img class="icon" src="@/assets/images/time.png" alt="" />
{{ item.activityStartTime }}
</div>
<div v-if="item.offlineLocation" class="meta m-b-10">
<img class="icon" src="@/assets/images/location.png" alt="" /> {{ item.offlineLocation
}}
</div>
<div v-if="item.onlineLocation" class="meta">
<img class="icon" src="@/assets/images/online.png" alt="" /> {{ item.onlineLocation }}
</div>
</template>
<el-button type="primary" class="readDetailBtn">{{ $t('column.readDetail') }}</el-button>
</div>
</template>
</li>
</ul>
<div v-if="articles.length" class="pagination">
<el-pagination background @current-change="currentChange" :current-page="page"
:page-size="pageSize" layout="total, prev, pager, next" :total="total"></el-pagination>
</div>
</div>
</template>
<template v-else-if="info.listStyleId === 11 || info.listStyleId === 15 || info.listStyleId === 10">
<div class="article-wrap">
<ul class="articles">
<li v-for="(item, i) in articles" :key="i" :class="{ 'news-notice': info.listStyleId === 55 }"
@click="toArtice(item)">
<template v-if="info.listStyleId === 55">
<div class="releaseTime">
<p class="d">{{ item.date }}</p>
<p class="m">{{ item.month }}</p>
</div>
<div class="news-title">{{ item.title }}</div>
</template>
<template v-else>
<div class="texts leftBox">
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15 || item.listStyleId === 11) && item.classificationName"
class="type">
{{ item.classificationName }}
</p>
<h6 class="titleDes">{{ item.title }}</h6>
<template v-if="item.listStyleId === 11 || item.listStyleId == 12">
<span class="meta">{{ item.releaseTime }}
<template v-if="item.labelName != ''">
| {{ item.labelName }}
</template>
</span>
</template>
<span v-if="item.listStyleId === 10" class="meta">{{ item.releaseTime }} {{ item.labelName
&& ' | ' +
item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" class="meta m-b-10">
<img class="icon" src="@/assets/images/mine.png" alt="" /> {{ item.keynoteSpeaker }}
</div>
<div v-if="item.activityStartTime" class="meta m-b-10">
<img class="icon" src="@/assets/images/time.png" alt="" />
{{ item.activityStartTime }}
</div>
<div v-if="item.offlineLocation" class="meta m-b-10">
<img class="icon" src="@/assets/images/location.png" alt="" /> {{ item.offlineLocation
}}
</div>
<div v-if="item.onlineLocation" class="meta">
<img class="icon" src="@/assets/images/online.png" alt="" /> {{ item.onlineLocation }}
</div>
</template>
</div>
<img class="pic" :src="item.titleImg" alt=""
onerror="javascript:this.src='./images/1.png?id=1';" />
</template>
</li>
</ul>
<div v-if="articles.length" class="pagination">
<el-pagination background @current-change="currentChange" :current-page="page"
:page-size="pageSize" layout="total, prev, pager, next" :total="total"></el-pagination>
</div>
</div>
</template>
<template v-else>
<div class="article-wrap">
<ul :class="['articles', { media: info.listStyleId === 74 }]">
<li v-for="(item, i) in articles" :key="i"
:class="{ 'news-notice': info.listStyleId === 55, 'org': info.listStyleId === 68 }"
class="overDetail" @click="toArtice(item)">
<template v-if="info.listStyleId === 55">
<div class="releaseTime">
<p class="d">{{ item.date }}</p>
<p class="m">{{ item.month }}</p>
</div>
<div class="news-title">{{ item.title }}</div>
</template>
<template v-else>
<img v-if="info.listStyleId !== 74" class="pic" :src="item.titleImg" alt=""
onerror="javascript:this.src='./images/1.png?id=1';" />
<template v-else-if="item.fileList">
<!-- <el-image class="media-pic"
:style="{backgroundImage: 'url(https://new.iasf.ac.cn/iasf/sysFiles/preview/1706961813193707521)'}"
src="https://new.iasf.ac.cn/iasf/sysFiles/preview/1706961813193707521"
:preview-src-list="['https://new.iasf.ac.cn/iasf/sysFiles/preview/1706961813193707521']">
</el-image> -->
<video
v-if="Util.isVideo(item.fileList[0].fileName.substring(item.fileList[0].fileName.lastIndexOf('.') + 1))"
class="media-video" controls x5-playsinline x5-video-player-type="h5"
:poster="isIphone ? 'https://new.iasf.ac.cn/images/about/12.png' : ''" preload>
<source :src="item.fileList[0].filePath" type="video/mp4">
您的浏览器不支持 video 标签
</video>
<el-image v-else class="media-pic" :src="item.fileList[0].filePath"
:preview-src-list="[item.fileList[0].filePath]">
</el-image>
</template>
<div class="texts">
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15) && item.classificationName"
class="type">
{{ item.classificationName }}
</p>
<h6 class="titleDes" :title="item.title">{{ item.title }}</h6>
<template
v-if="item.listStyleId === 11 || item.listStyleId == 12 || item.listStyleId == 68">
<span class="meta">{{ item.releaseTime }}</span>
<div class="des" v-html="item.mainBody"></div>
</template>
<span v-if="item.listStyleId === 10" class="meta">{{ item.releaseTime }} {{ item.labelName
&& ' | ' +
item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" class="meta m-b-10">
<img class="icon" src="@/assets/images/mine.png" alt="" /> {{ item.keynoteSpeaker }}
</div>
<div v-if="item.activityStartTime" class="meta m-b-10">
<img class="icon" src="@/assets/images/time.png" alt="" />
{{ item.activityStartTime }}
</div>
<div v-if="item.offlineLocation" class="meta m-b-10">
<img class="icon" src="@/assets/images/location.png" alt="" /> {{ item.offlineLocation
}}
</div>
<div v-if="item.onlineLocation" class="meta">
<img class="icon" src="@/assets/images/online.png" alt="" /> {{ item.onlineLocation }}
</div>
<video
v-if="Util.isVideo(item.fileList[0].fileName.substring(item.fileList[0].fileName.lastIndexOf('.') + 1))"
class="media-video" controls x5-playsinline x5-video-player-type="h5"
:poster="isIphone ? 'https://new.iasf.ac.cn/images/about/12.png' : ''" preload>
<source :src="item.fileList[0].filePath" type="video/mp4">
您的浏览器不支持 video 标签
</video>
<el-image v-else class="media-pic" :src="item.fileList[0].filePath"
:preview-src-list="[item.fileList[0].filePath]">
</el-image>
</template>
<el-button v-if="item.listStyleId === 15 || item.listStyleId == 68" type="primary"
class="readDetailBtn">{{
$t('column.readDetail') }}</el-button>
</div>
</template>
</li>
</ul>
<div v-if="total > articles.length" class="pagination">
<el-pagination background @current-change="currentChange" :current-page="page"
:page-size="pageSize" layout="total, prev, pager, next" :total="total"></el-pagination>
<div class="texts">
<p v-if="(item.listStyleId === 10 || item.listStyleId === 15) && item.classificationName"
class="type">
{{ item.classificationName }}
</p>
<h6 class="titleDes" :title="item.title">{{ item.title }}</h6>
<template
v-if="item.listStyleId === 11 || item.listStyleId == 12 || item.listStyleId == 68">
<span class="meta">{{ item.releaseTime }}</span>
<div class="des" v-html="item.mainBody"></div>
</template>
<span v-if="item.listStyleId === 10" class="meta">{{ item.releaseTime }} {{ item.labelName
&& ' | ' +
item.labelName }}</span>
<template v-if="item.listStyleId === 15 || item.listStyleId === 16">
<div v-if="item.keynoteSpeaker" class="meta m-b-10">
<img class="icon" src="@/assets/images/mine.png" alt="" /> {{ item.keynoteSpeaker }}
</div>
<div v-if="item.activityStartTime" class="meta m-b-10">
<img class="icon" src="@/assets/images/time.png" alt="" />
{{ item.activityStartTime }}
</div>
<div v-if="item.offlineLocation" class="meta m-b-10">
<img class="icon" src="@/assets/images/location.png" alt="" /> {{ item.offlineLocation
}}
</div>
<div v-if="item.onlineLocation" class="meta">
<img class="icon" src="@/assets/images/online.png" alt="" /> {{ item.onlineLocation }}
</div>
</template>
<el-button v-if="item.listStyleId === 15 || item.listStyleId == 68" type="primary"
class="readDetailBtn">{{
$t('column.readDetail') }}</el-button>
</div>
</template>
</li>
</ul>
<div v-if="total > articles.length" class="pagination">
<el-pagination background @current-change="currentChange" :current-page="page"
:page-size="pageSize" layout="total, prev, pager, next" :total="total"></el-pagination>
</div>
</div>
</div>
</template>
</template>
</template>
</template>
<div v-else class="none">
<img src="@/assets/images/none.png" alt="">
<p class="text">{{ $t('column.comming') }}</p>
<div v-else class="none">
<img src="@/assets/images/none.png" alt="">
<p class="text">{{ $t('column.comming') }}</p>
</div>
</div>
</div>
<!-- <template v-if="info.listStyleId !== 73 && info.listStyleId !== 74"> -->
<template v-if="info.listStyleId !== 73 && info.listStyleId !== 74">
<div v-if="site == 2" class="right">
<p class="l-title">{{ $t('column.latestNews') }}</p>
<ul class="list">
<li v-for="(item, i) in site2News" :key="i" :title="item.title" @click="toArtice(item)">
<p class="text">{{ item.title }}</p>
<span class="date">{{ item.releaseTime }}</span>
</li>
</ul>
</div>
<!-- 选择了列表样式不用显示右侧部分 -->
<div v-else class="right">
<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>
<div v-else class="right"></div>
</div>
<!-- <template v-if="info.listStyleId !== 73 && info.listStyleId !== 74"> -->
<template v-if="info.listStyleId !== 73 && info.listStyleId !== 74">
<div v-if="site == 2" class="right">
<p class="l-title">{{ $t('column.latestNews') }}</p>
<ul class="list">
<li v-for="(item, i) in site2News" :key="i" :title="item.title" @click="toArtice(item)">
<p class="text">{{ item.title }}</p>
<span class="date">{{ item.releaseTime }}</span>
</li>
</ul>
</div>
<!-- 选择了列表样式不用显示右侧部分 -->
<div v-else class="right">
<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>
<div v-else class="right"></div>
</div>
</div>
</div>

File diff suppressed because it is too large Load Diff

@ -7,7 +7,8 @@ export default {
namespaced: true,
state: {
site: 2,
keyword: ''
keyword: '',
scrollTop: 0,
},
getters: {
site: state => {
@ -21,6 +22,9 @@ export default {
setKeyword: (state, keyword) => {
state.keyword = keyword
},
setScrollTop: (state, val) => {
state.scrollTop = val
},
},
actions: {

@ -3,20 +3,20 @@
* */
// 是否IE
function isIE() {
if (!!window.ActiveXObject || "ActiveXObject" in window) return true;
return false;
function isIE () {
if (!!window.ActiveXObject || "ActiveXObject" in window) return true;
return false;
}
export default {
namespaced: true,
state: {
isIE: isIE()
},
mutations: {
SET_IE: (state, val) => {
state.isIE = val;
}
},
actions: {}
namespaced: true,
state: {
isIE: isIE()
},
mutations: {
SET_IE: (state, val) => {
state.isIE = val;
}
},
actions: {}
};
Loading…
Cancel
Save