修改编辑工作台
This commit is contained in:
662
src/components/common/Sidebar copy.vue
Normal file
662
src/components/common/Sidebar copy.vue
Normal file
@@ -0,0 +1,662 @@
|
|||||||
|
<template>
|
||||||
|
<div class="sidebar">
|
||||||
|
<el-menu
|
||||||
|
class="sidebar-el-menu"
|
||||||
|
:default-active="onRoutes"
|
||||||
|
:collapse="collapse"
|
||||||
|
background-color="#006699"
|
||||||
|
text-color="#fff"
|
||||||
|
active-text-color="#fff"
|
||||||
|
unique-opened
|
||||||
|
router
|
||||||
|
>
|
||||||
|
<template v-for="item in items">
|
||||||
|
<template v-if="item.subs">
|
||||||
|
<el-submenu :index="item.index" :key="item.index">
|
||||||
|
<template slot="title">
|
||||||
|
<i :class="item.icon"></i>
|
||||||
|
<span slot="title"> {{ item.title }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-for="subItem in item.subs">
|
||||||
|
<el-submenu v-if="subItem.subs" :index="subItem.index" :key="subItem.index">
|
||||||
|
<template slot="title">
|
||||||
|
{{ subItem.title }}
|
||||||
|
<!-- <el-badge is-dot :hidden="false">{{ subItem.title }}</el-badge> -->
|
||||||
|
</template>
|
||||||
|
<el-menu-item v-for="(threeItem, i) in subItem.subs" :key="i" :index="threeItem.index">
|
||||||
|
{{ threeItem.title }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
<el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }} </el-menu-item>
|
||||||
|
</template>
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-menu-item :index="item.index" :key="item.index">
|
||||||
|
<i :class="item.icon"></i>
|
||||||
|
<span slot="title"> {{ item.title }}</span>
|
||||||
|
</el-menu-item>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<!-- 审稿人 -->
|
||||||
|
<template v-if="this.user_cap.includes('reviewer')">
|
||||||
|
<el-submenu index="8">
|
||||||
|
<template slot="title"> <i class="el-icon-collection"></i> {{ $t('sidebar.rev_ewer') }} </template>
|
||||||
|
<el-menu-item index="peerewer">
|
||||||
|
{{ $t('sidebar.rev_ewer1') }}
|
||||||
|
</el-menu-item>
|
||||||
|
<el-menu-item index="perhistory">
|
||||||
|
{{ $t('sidebar.rev_ewer2') }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
<!-- 编委 -->
|
||||||
|
<template v-if="this.user_cap.includes(',board')">
|
||||||
|
<el-submenu index="7">
|
||||||
|
<template slot="title"> <i class="el-icon-notebook-1"></i> {{ $t('sidebar.edit_oria') }} </template>
|
||||||
|
<!-- <el-menu-item index="editorial">
|
||||||
|
{{ $t('sidebar.edit_oria1') }}
|
||||||
|
</el-menu-item> -->
|
||||||
|
<el-menu-item index="edithistory">
|
||||||
|
{{ $t('sidebar.edit_oria2') }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
<!-- 主编 -->
|
||||||
|
<template v-if="this.user_cap.includes('chief')">
|
||||||
|
<el-submenu index="6">
|
||||||
|
<template slot="title"> <i class="el-icon-document-copy"></i> {{ $t('sidebar.man_ing') }} </template>
|
||||||
|
<el-menu-item index="managing">
|
||||||
|
{{ $t('sidebar.man_ing1') }}
|
||||||
|
</el-menu-item>
|
||||||
|
<el-menu-item index="manarticle">
|
||||||
|
{{ $t('sidebar.man_ing2') }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
<!-- <el-menu-item index="documentView">
|
||||||
|
<i class="el-icon-document-copy"></i>
|
||||||
|
<span slot="title"> {{$t('sidebar.document')}}</span>
|
||||||
|
</el-menu-item> -->
|
||||||
|
<el-submenu index="10">
|
||||||
|
<template slot="title"> <i class="el-icon-data-analysis"></i> {{ $t('sidebar.analyp') }} </template>
|
||||||
|
<el-menu-item index="citationanalysis">
|
||||||
|
{{ $t('sidebar.analysis') }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
<!-- 青年编委 -->
|
||||||
|
<template v-if="this.user_cap.includes('yboard')">
|
||||||
|
<el-submenu index="9">
|
||||||
|
<template slot="title"> <i class="el-icon-copy-document"></i> {{ $t('sidebar.you_thed') }} </template>
|
||||||
|
<el-menu-item index="youthed">
|
||||||
|
{{ $t('sidebar.you_thed1') }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
<!-- 客座编辑 -->
|
||||||
|
<template v-if="this.user_cap.includes('special')">
|
||||||
|
<el-submenu index="11">
|
||||||
|
<template slot="title"> <i class="el-icon-box"></i> {{ $t('sidebar.guest') }} </template>
|
||||||
|
<el-menu-item index="guestArticleL">
|
||||||
|
{{ $t('sidebar.guest1') }}
|
||||||
|
</el-menu-item>
|
||||||
|
<!-- <el-menu-item index="guestReviewerL">
|
||||||
|
{{$t('sidebar.guest2')}}
|
||||||
|
</el-menu-item> -->
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
<!-- 超管:总经理+总监 -->
|
||||||
|
<template v-if="this.user_cap.includes('superadmin')">
|
||||||
|
<el-submenu index="12">
|
||||||
|
<template slot="title"> <i class="el-icon-s-operation"></i> {{ $t('sidebar.managingDirector') }} </template>
|
||||||
|
<!-- <el-menu-item index="youthed">
|
||||||
|
{{$t('sidebar.you_thed1')}}
|
||||||
|
</el-menu-item> -->
|
||||||
|
</el-submenu>
|
||||||
|
<el-submenu index="13">
|
||||||
|
<template slot="title"> <i class="el-icon-s-platform"></i> {{ $t('sidebar.chiefInspector') }} </template>
|
||||||
|
<el-menu-item index="editorialBoard">
|
||||||
|
{{ $t('sidebar.editorialBoard1') }}
|
||||||
|
</el-menu-item>
|
||||||
|
<el-menu-item index="superYoungScientistManagement">
|
||||||
|
{{ $t('sidebar.editorialBoard2') }}
|
||||||
|
</el-menu-item>
|
||||||
|
<el-menu-item index="superJournalsManagement">
|
||||||
|
{{ $t('sidebar.editorialBoard3') }}
|
||||||
|
</el-menu-item>
|
||||||
|
<el-menu-item index="journalArticleCount">
|
||||||
|
{{ $t('sidebar.journalArticleCount') }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
<!-- 主编/总监统计图 -->
|
||||||
|
<template v-if="this.userrole == 0">
|
||||||
|
<el-submenu index="8">
|
||||||
|
<template slot="title"> <i class="el-icon-data-analysis"></i> {{ $t('sidebar.analyp') }} </template>
|
||||||
|
<el-menu-item index="citationanalysis">
|
||||||
|
{{ $t('sidebar.analysis') }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
<!-- 分角色链接 -->
|
||||||
|
<template v-if="this.userrole == 0">
|
||||||
|
<el-menu-item>
|
||||||
|
<a href="http://boss.tmrjournals.com/#/publition?Act=123" target="_blank" style="color: #bfcbd9">
|
||||||
|
<i class="el-icon-d-arrow-right"></i> Boss System
|
||||||
|
</a>
|
||||||
|
</el-menu-item>
|
||||||
|
</template>
|
||||||
|
<!-- 编辑 -->
|
||||||
|
<template v-if="this.userrole == 1">
|
||||||
|
<el-submenu index="mailboxManagement">
|
||||||
|
<template slot="title"> <i class="el-icon-message"></i> {{ $t('sidebar.mailboxManagement') }} </template>
|
||||||
|
<el-menu-item index="mailboxManagement">
|
||||||
|
{{ $t('sidebar.mailboxManagement') }}
|
||||||
|
</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
<el-submenu index="tools">
|
||||||
|
<template slot="title"> <i class="el-icon-paperclip"></i> {{ $t('sidebar.tools') }} </template>
|
||||||
|
<el-menu-item index="RejectedArticles">
|
||||||
|
{{ $t('sidebar.ReArticles') }}
|
||||||
|
</el-menu-item>
|
||||||
|
<!-- <el-menu-item index="1" key="1"> -->
|
||||||
|
<a href="http://master.tmrjournals.com" target="_blank" class="linkBar"> Management System </a>
|
||||||
|
<!-- </el-menu-item> -->
|
||||||
|
<!-- <el-menu-item index="2" key="2"> -->
|
||||||
|
<a href="https://mail.mxhichina.com/alimail" target="_blank" class="linkBar"> Official mailbox </a>
|
||||||
|
<!-- </el-menu-item> -->
|
||||||
|
<!-- <el-menu-item index="3" key="3"> -->
|
||||||
|
<a href="https://www.grammarly.com" target="_blank" class="linkBar"> www.grammarly.com </a>
|
||||||
|
<!-- </el-menu-item> -->
|
||||||
|
<!-- <el-menu-item index="4" key="4"> -->
|
||||||
|
<a href="https://quillbot.com" target="_blank" class="linkBar"> quillbot.com </a>
|
||||||
|
<!-- </el-menu-item> -->
|
||||||
|
</el-submenu>
|
||||||
|
</template>
|
||||||
|
</el-menu>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import bus from '../common/bus';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
collapse: false,
|
||||||
|
userrole: localStorage.getItem('U_status'),
|
||||||
|
user_cap: localStorage.getItem('U_role'),
|
||||||
|
|
||||||
|
menuList:[
|
||||||
|
{
|
||||||
|
icon: 'el-icon-lx-home',
|
||||||
|
index: 'dashboard',
|
||||||
|
title: this.$t('sidebar.main')
|
||||||
|
},
|
||||||
|
],
|
||||||
|
items: [],
|
||||||
|
// 作者
|
||||||
|
author_items: [
|
||||||
|
{
|
||||||
|
icon: 'el-icon-lx-home',
|
||||||
|
index: 'dashboard',
|
||||||
|
title: this.$t('sidebar.main')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-lx-cascades',
|
||||||
|
index: '1',
|
||||||
|
title: this.$t('sidebar.author'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'articleList',
|
||||||
|
title: this.$t('sidebar.author1')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'articleDrafts',
|
||||||
|
title: this.$t('sidebar.author3')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'articleAdd',
|
||||||
|
title: this.$t('sidebar.author2')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// ,{
|
||||||
|
// icon: 'el-icon-notebook-2',
|
||||||
|
// index: 'authorApplyReviewer',
|
||||||
|
// title: this.$t('sidebar.authorApplyReviewer')
|
||||||
|
// }
|
||||||
|
],
|
||||||
|
// 编辑
|
||||||
|
editor_items: [
|
||||||
|
{
|
||||||
|
icon: 'el-icon-lx-home',
|
||||||
|
index: 'dashboard',
|
||||||
|
title: this.$t('sidebar.main')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-lx-copy',
|
||||||
|
index: 'articleListEditor',
|
||||||
|
title: this.$t('sidebar.editor1')
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// icon: 'el-icon-user',
|
||||||
|
// index: '3',
|
||||||
|
// title: this.$t('sidebar.userTalSys'),
|
||||||
|
// subs: [{
|
||||||
|
// index: 'partyList',
|
||||||
|
// title: this.$t('sidebar.userTalSys1')
|
||||||
|
// }
|
||||||
|
// , {
|
||||||
|
// index: 'partyDelete',
|
||||||
|
// title: this.$t('sidebar.userTalSys2')
|
||||||
|
// }, {
|
||||||
|
// index: 'editorBorder',
|
||||||
|
// title: this.$t('sidebar.userTalSys3')
|
||||||
|
// }, {
|
||||||
|
// index: 'reviewerApplyList',
|
||||||
|
// title: this.$t('sidebar.userTalSys4')
|
||||||
|
// }, {
|
||||||
|
// index: 'reviewerAuthorList',
|
||||||
|
// title: this.$t('sidebar.userTalSys5')
|
||||||
|
// }, {
|
||||||
|
// index: 'reviewerList',
|
||||||
|
// title: this.$t('sidebar.userTalSys6')
|
||||||
|
// }, {
|
||||||
|
// index: 'editApplyList',
|
||||||
|
// title: this.$t('sidebar.userTalSys7')
|
||||||
|
// }, {
|
||||||
|
// index: 'youthApplyList',
|
||||||
|
// title: this.$t('sidebar.userTalSys8')
|
||||||
|
// },
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
icon: 'el-icon-user',
|
||||||
|
index: '4',
|
||||||
|
title: this.$t('sidebar.userManSys'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
title: this.$t('sidebar.userManSys1'),
|
||||||
|
index: '41',
|
||||||
|
subs: [
|
||||||
|
// {
|
||||||
|
// index: 'partyListAct',
|
||||||
|
// title: this.$t('sidebar.userManSys11')
|
||||||
|
// },{
|
||||||
|
// index: 'partyListIna',
|
||||||
|
// title: this.$t('sidebar.userManSys12')
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
index: 'partyList',
|
||||||
|
title: this.$t('sidebar.userManSys14')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'partyListCorr',
|
||||||
|
title: this.$t('sidebar.userManSys15')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'partyListPot',
|
||||||
|
title: this.$t('sidebar.userManSys13')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// index: '',
|
||||||
|
// title: this.$t('sidebar.userManSys2')
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: this.$t('sidebar.userManSys3'),
|
||||||
|
index: '43',
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'reviewerList',
|
||||||
|
title: this.$t('sidebar.userManSys31')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'reviewerApplyList',
|
||||||
|
title: this.$t('sidebar.userManSys32')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'reviewerAuthorList',
|
||||||
|
title: this.$t('sidebar.userManSys33')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('sidebar.userManSys4'),
|
||||||
|
index: '44',
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'editorBorder',
|
||||||
|
title: this.$t('sidebar.userManSys41')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'editApplyList',
|
||||||
|
title: this.$t('sidebar.userManSys42')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('sidebar.userManSys5'),
|
||||||
|
index: '45',
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'youthList',
|
||||||
|
title: this.$t('sidebar.userManSys51')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'youthApplyList',
|
||||||
|
title: this.$t('sidebar.userManSys52')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'disseMRecord',
|
||||||
|
title: this.$t('sidebar.userManSys6')
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// index: 'disseMRecord',
|
||||||
|
// title: this.$t('sidebar.userManSys8')
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
index: 'Academic_Integrity_Committee_list',
|
||||||
|
title: this.$t('sidebar.userManSys8')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'Editors_Staff',
|
||||||
|
title: this.$t('sidebar.userManSys9')
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
index: 'partyDelete',
|
||||||
|
title: this.$t('sidebar.userManSys7')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-data-analysis',
|
||||||
|
index: 'citationanalysis',
|
||||||
|
title: this.$t('sidebar.datasis'),
|
||||||
|
subs: [
|
||||||
|
{ icon: 'el-icon-data-analysis', index: 'citationanalysis', title: this.$t('sidebar.analysis') },
|
||||||
|
{ icon: 'el-icon-data-analysis', index: 'evaluationsis', title: this.$t('sidebar.evaluationsis') }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-chat-line-square',
|
||||||
|
index: 'TMRGPT',
|
||||||
|
title: 'TMRGPT'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-connection',
|
||||||
|
index: '5',
|
||||||
|
title: this.$t('sidebar.journalManagement'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'Journal_Agreement',
|
||||||
|
title: this.$t('sidebar.userManSys11')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
//超级管理员
|
||||||
|
admin_items: [
|
||||||
|
{
|
||||||
|
icon: 'el-icon-lx-home',
|
||||||
|
index: 'dashboard',
|
||||||
|
title: this.$t('sidebar.main')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-connection',
|
||||||
|
index: '5',
|
||||||
|
title: this.$t('sidebar.chief'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'chiefeditor',
|
||||||
|
title: this.$t('sidebar.chief1')
|
||||||
|
}
|
||||||
|
// {
|
||||||
|
// index: 'chiefperiod',
|
||||||
|
// title: this.$t('sidebar.chief2')
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
icon: 'el-icon-user',
|
||||||
|
index: '2',
|
||||||
|
title: this.$t('sidebar.editormanage'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'editorList',
|
||||||
|
title: this.$t('sidebar.editormanage1')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'editorAdd',
|
||||||
|
title: this.$t('sidebar.editormanage2')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-notebook-1',
|
||||||
|
index: '3',
|
||||||
|
title: this.$t('sidebar.journal'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'journalList',
|
||||||
|
title: this.$t('sidebar.journal1')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'journalAdd',
|
||||||
|
title: this.$t('sidebar.journal2')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-search',
|
||||||
|
index: '4',
|
||||||
|
title: this.$t('sidebar.monitor'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'monitorManuscript',
|
||||||
|
title: this.$t('sidebar.monitor1')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-message',
|
||||||
|
index: '9',
|
||||||
|
title: this.$t('sidebar.email'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'mailtemplate',
|
||||||
|
title: this.$t('sidebar.email1')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-discount',
|
||||||
|
index: '6',
|
||||||
|
title: this.$t('sidebar.suggest'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'suggestList',
|
||||||
|
title: this.$t('sidebar.suggest1')
|
||||||
|
}
|
||||||
|
// {
|
||||||
|
// index: 'suggestSelect',
|
||||||
|
// title: this.$t('sidebar.suggest2')
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'el-icon-coordinate',
|
||||||
|
index: '7',
|
||||||
|
title: this.$t('sidebar.party'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'partyEditor',
|
||||||
|
title: this.$t('sidebar.party1')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'partyList',
|
||||||
|
title: this.$t('sidebar.party2')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 'partyDelete',
|
||||||
|
title: this.$t('sidebar.party3')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// 总监编委系统
|
||||||
|
icon: 'el-icon-s-opportunity',
|
||||||
|
index: '10',
|
||||||
|
title: this.$t('sidebar.editorialBoard'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
index: 'editorialBoard',
|
||||||
|
title: this.$t('sidebar.editorialBoard1')
|
||||||
|
}
|
||||||
|
// {
|
||||||
|
// index: 'partyList',
|
||||||
|
// title: this.$t('sidebar.party2')
|
||||||
|
// }, {
|
||||||
|
// index: 'partyDelete',
|
||||||
|
// title: this.$t('sidebar.party3')
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// ,{
|
||||||
|
// icon: 'el-icon-data-analysis',
|
||||||
|
// index: 'citationanalysis',
|
||||||
|
// title: this.$t('sidebar.analysis')
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// icon:'el-icon-user-solid',
|
||||||
|
// index:'4',
|
||||||
|
// title:this.$t('sidebar.reviewer'),
|
||||||
|
// subs:[
|
||||||
|
// {
|
||||||
|
// index:'adminImportReviewer',
|
||||||
|
// title:this.$t('sidebar.reviewerimport')
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// index:'adminImportreviewerError',
|
||||||
|
// title:this.$t('sidebar.reviewerimporterror')
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
onRoutes() {
|
||||||
|
return this.$route.path.replace('/', '');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (this.userrole == 2) {
|
||||||
|
//其余的身份(显示作者)
|
||||||
|
// if (this.user_cap.includes('chief')) { //主编
|
||||||
|
// this.items = this.chief_items;
|
||||||
|
// } else if (this.user_cap.includes('reviewer')) { //审稿人
|
||||||
|
// this.items = this.reviewer_items;
|
||||||
|
// } else if (this.user_cap.includes('yboard')) { //青年编委
|
||||||
|
// this.items = this.yboard_items;
|
||||||
|
// } else if (this.user_cap.includes(',board')) { //编委
|
||||||
|
// this.items = this.board_items;
|
||||||
|
// }
|
||||||
|
this.items = this.author_items;
|
||||||
|
} else if (this.userrole == 1) {
|
||||||
|
//编辑
|
||||||
|
this.items = this.editor_items;
|
||||||
|
this.getDate();
|
||||||
|
} else if (this.userrole == 0) {
|
||||||
|
//超级管理员
|
||||||
|
this.items = this.admin_items;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通过 Event Bus 进行组件间通信,来折叠侧边栏
|
||||||
|
bus.$on('collapse', (msg) => {
|
||||||
|
this.collapse = msg;
|
||||||
|
bus.$emit('collapse-content', msg);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 获取数据
|
||||||
|
getDate() {}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.sidebar {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 70px;
|
||||||
|
bottom: 0;
|
||||||
|
overflow-y: scroll;
|
||||||
|
/* -webkit-box-shadow: 0px 0px 25px 0px rgb(45 69 95 / 10%); */
|
||||||
|
-moz-box-shadow: 0px 0px 25px 0px rgba(45, 69, 95, 0.1);
|
||||||
|
box-shadow: 0px 0px 25px 0px rgb(45 69 95 / 10%);
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar::-webkit-scrollbar {
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-el-menu:not(.el-menu--collapse) {
|
||||||
|
width: 260px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar > ul {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* .sidebar ul li.el-menu-item.is-active::before {
|
||||||
|
background: #fff;
|
||||||
|
content: "";
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 3px;
|
||||||
|
} */
|
||||||
|
|
||||||
|
.sidebar ul li.el-menu-item.is-active {
|
||||||
|
background-color: rgba(0, 0, 0, 0.3) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-menu {
|
||||||
|
border-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-menu-item:hover {
|
||||||
|
/* color: #006699 !important;
|
||||||
|
background-color: #e3e9ef !important; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-submenu__title i {
|
||||||
|
color: #fff !important;
|
||||||
|
top: 55% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-menu-item i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.linkBar {
|
||||||
|
color: #fff;
|
||||||
|
display: block;
|
||||||
|
line-height: 50px;
|
||||||
|
padding: 0 0 0 40px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.linkBar:hover {
|
||||||
|
background: #00527a;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -23,10 +23,23 @@
|
|||||||
{{ subItem.title }}
|
{{ subItem.title }}
|
||||||
<!-- <el-badge is-dot :hidden="false">{{ subItem.title }}</el-badge> -->
|
<!-- <el-badge is-dot :hidden="false">{{ subItem.title }}</el-badge> -->
|
||||||
</template>
|
</template>
|
||||||
<el-menu-item v-for="(threeItem, i) in subItem.subs" :key="i" :index="threeItem.index">
|
|
||||||
|
<template v-for="(threeItem, i) in subItem.subs">
|
||||||
|
<el-submenu v-if="threeItem.subs" :index="threeItem.index" :key="threeItem.index">
|
||||||
|
<template slot="title">
|
||||||
{{ threeItem.title }}
|
{{ threeItem.title }}
|
||||||
|
<!-- <el-badge is-dot :hidden="false">{{ subItem.title }}</el-badge> -->
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<el-menu-item v-for="(fourItem, i) in threeItem.subs" :key="i" :index="fourItem.index">
|
||||||
|
{{ fourItem.title }}
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
</el-submenu>
|
</el-submenu>
|
||||||
|
<el-menu-item v-else :index="threeItem.index" :key="threeItem.index"
|
||||||
|
>{{ threeItem.title }}
|
||||||
|
</el-menu-item>
|
||||||
|
</template>
|
||||||
|
</el-submenu>
|
||||||
<el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }} </el-menu-item>
|
<el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }} </el-menu-item>
|
||||||
</template>
|
</template>
|
||||||
</el-submenu>
|
</el-submenu>
|
||||||
@@ -185,6 +198,10 @@ export default {
|
|||||||
collapse: false,
|
collapse: false,
|
||||||
userrole: localStorage.getItem('U_status'),
|
userrole: localStorage.getItem('U_status'),
|
||||||
user_cap: localStorage.getItem('U_role'),
|
user_cap: localStorage.getItem('U_role'),
|
||||||
|
|
||||||
|
menuList: [
|
||||||
|
|
||||||
|
],
|
||||||
items: [],
|
items: [],
|
||||||
// 作者
|
// 作者
|
||||||
author_items: [
|
author_items: [
|
||||||
@@ -223,13 +240,51 @@ export default {
|
|||||||
{
|
{
|
||||||
icon: 'el-icon-lx-home',
|
icon: 'el-icon-lx-home',
|
||||||
index: 'dashboard',
|
index: 'dashboard',
|
||||||
title: this.$t('sidebar.main')
|
title: this.$t('menu.main')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: 'el-icon-lx-copy',
|
icon: 'el-icon-lx-copy',
|
||||||
index: 'articleListEditor',
|
index: 'articleListEditor',
|
||||||
title: this.$t('sidebar.editor1')
|
title: this.$t('menu.PublicationSystem'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
//论文编辑系统
|
||||||
|
icon: 'el-icon-lx-copy',
|
||||||
|
index: 'articleListEditor',
|
||||||
|
title: this.$t('menu.PaperEditingSystem')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
//论文出版监督
|
||||||
|
icon: 'el-icon-lx-copy',
|
||||||
|
index: 'PaperPublicationSupervise',
|
||||||
|
title: this.$t('menu.PaperPublicationSupervise'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
//论文提交分析
|
||||||
|
icon: 'el-icon-lx-copy',
|
||||||
|
index: 'PaperSubmitanalysis',
|
||||||
|
title: this.$t('menu.PaperSubmitanalysis')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
//文章发表分析
|
||||||
|
icon: 'el-icon-lx-copy',
|
||||||
|
index: 'ArticlePublicationanalysis',
|
||||||
|
title: this.$t('menu.ArticlePublicationanalysis'),
|
||||||
|
subs: [
|
||||||
|
{
|
||||||
|
icon: 'el-icon-data-analysis',
|
||||||
|
index: 'paperArticleCount',
|
||||||
|
title: this.$t('menu.journalArticleCount')
|
||||||
|
},
|
||||||
|
{ icon: 'el-icon-data-analysis', index: 'citationanalysis', title: this.$t('menu.analysis') },
|
||||||
|
{ icon: 'el-icon-data-analysis', index: 'evaluationsis', title: this.$t('menu.evaluationsis') }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
// {
|
// {
|
||||||
// icon: 'el-icon-user',
|
// icon: 'el-icon-user',
|
||||||
// index: '3',
|
// index: '3',
|
||||||
@@ -365,15 +420,15 @@ export default {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
icon: 'el-icon-data-analysis',
|
// icon: 'el-icon-data-analysis',
|
||||||
index: 'citationanalysis',
|
// index: 'citationanalysis',
|
||||||
title: this.$t('sidebar.datasis'),
|
// title: this.$t('sidebar.datasis'),
|
||||||
subs: [
|
// subs: [
|
||||||
{ icon: 'el-icon-data-analysis', index: 'citationanalysis', title: this.$t('sidebar.analysis') },
|
// { icon: 'el-icon-data-analysis', index: 'citationanalysis', title: this.$t('sidebar.analysis') },
|
||||||
{ icon: 'el-icon-data-analysis', index: 'evaluationsis', title: this.$t('sidebar.evaluationsis') }
|
// { icon: 'el-icon-data-analysis', index: 'evaluationsis', title: this.$t('sidebar.evaluationsis') }
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
icon: 'el-icon-chat-line-square',
|
icon: 'el-icon-chat-line-square',
|
||||||
index: 'TMRGPT',
|
index: 'TMRGPT',
|
||||||
|
|||||||
@@ -23,6 +23,19 @@ const en = {
|
|||||||
reviewers: 'reviewer',
|
reviewers: 'reviewer',
|
||||||
admin: 'admin'
|
admin: 'admin'
|
||||||
},
|
},
|
||||||
|
menu: {
|
||||||
|
main: 'Personal Center',
|
||||||
|
PublicationSystem: 'Publication System',
|
||||||
|
PaperEditingSystem: 'Paper Editing System',
|
||||||
|
PaperPublicationSupervise: 'Paper Publication Supervise',
|
||||||
|
PaperSubmitanalysis: 'Paper Submit Analysis',
|
||||||
|
ArticlePublicationanalysis: 'Article Publication Analysis',
|
||||||
|
journalArticleCount: 'Article Count',
|
||||||
|
Promotionsystem: 'Promotion System',
|
||||||
|
Userdatabase: 'User Database',
|
||||||
|
analysis: 'Article Analysis',
|
||||||
|
evaluationsis: 'Article Distribution',
|
||||||
|
},
|
||||||
sidebar: {
|
sidebar: {
|
||||||
main: 'Personal Center',
|
main: 'Personal Center',
|
||||||
author: 'Author',
|
author: 'Author',
|
||||||
@@ -172,6 +185,9 @@ const en = {
|
|||||||
yearTitle: 'Total annual submission volume',
|
yearTitle: 'Total annual submission volume',
|
||||||
monthTitle: 'Monthly submission volume',
|
monthTitle: 'Monthly submission volume',
|
||||||
dataTitle: 'Submission volume',
|
dataTitle: 'Submission volume',
|
||||||
|
transferQuantity:'Transfer quantity',
|
||||||
|
info:'The following data is',
|
||||||
|
loading:'LOADING',
|
||||||
},
|
},
|
||||||
journalArticleTable: {
|
journalArticleTable: {
|
||||||
title: 'journal',
|
title: 'journal',
|
||||||
|
|||||||
@@ -23,6 +23,20 @@ const zh = {
|
|||||||
reviewers: '审稿人',
|
reviewers: '审稿人',
|
||||||
admin: '管理员'
|
admin: '管理员'
|
||||||
},
|
},
|
||||||
|
menu: {
|
||||||
|
main: '个人中心',
|
||||||
|
PublicationSystem: '出版系统',
|
||||||
|
PaperEditingSystem: '论文编辑系统',
|
||||||
|
PaperPublicationSupervise: '论文出版监督',
|
||||||
|
PaperSubmitanalysis: '论文提交分析',
|
||||||
|
ArticlePublicationanalysis: '文章发表分析',
|
||||||
|
|
||||||
|
journalArticleCount: '文章计数',
|
||||||
|
Promotionsystem: '推广管理',
|
||||||
|
Userdatabase: '用户数据库',
|
||||||
|
analysis: '文章分析',
|
||||||
|
evaluationsis: '文章分发',
|
||||||
|
},
|
||||||
sidebar: {
|
sidebar: {
|
||||||
main: '个人中心',
|
main: '个人中心',
|
||||||
author: '作者',
|
author: '作者',
|
||||||
@@ -169,7 +183,12 @@ const zh = {
|
|||||||
role4: '青年编委',
|
role4: '青年编委',
|
||||||
}, journalArticleCount: {
|
}, journalArticleCount: {
|
||||||
yearTitle: '年度总投稿量',
|
yearTitle: '年度总投稿量',
|
||||||
monthTitle: '月度投稿量', dataTitle: '投稿量',
|
monthTitle: '月度投稿量',
|
||||||
|
dataTitle: '投稿量',
|
||||||
|
transferQuantity: '转出量',
|
||||||
|
|
||||||
|
info:'以下数据为',
|
||||||
|
loading:'加载中',
|
||||||
},
|
},
|
||||||
journalArticleTable: {
|
journalArticleTable: {
|
||||||
title: '期刊',
|
title: '期刊',
|
||||||
|
|||||||
294
src/components/page/PaperSubmitanalysis.vue
Normal file
294
src/components/page/PaperSubmitanalysis.vue
Normal file
@@ -0,0 +1,294 @@
|
|||||||
|
<template>
|
||||||
|
<div class="container" style="padding-bottom: 50px; width: 100%; height: 100%" v-loading="loading" >
|
||||||
|
<div style="width: 100%; height: 38vh; margin-bottom: 2vh; position: relative">
|
||||||
|
<i class="el-icon-refresh refresh" @click="getCharts('year')"></i>
|
||||||
|
<div id="yearchart" style="width: 100%; height: 100%"></div>
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%; height: 44vh; position: relative; margin-bottom: 80px">
|
||||||
|
<i class="el-icon-refresh refresh" @click="getCharts('month')"></i>
|
||||||
|
<div id="monthchart" style="width: 100%; height: 100%"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
background-color: #f4f4f5;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #909399;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ $t('journalArticleCount.info') }} : {{ $t('journalArticleCount.dataTitle') }} /
|
||||||
|
{{ $t('journalArticleCount.transferQuantity') }}
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%; height: auto; margin-bottom: 20px">
|
||||||
|
<jAtableY type="year" ref="yearTableData"></jAtableY>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin-top: 50px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
background-color: #f4f4f5;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #909399;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ $t('journalArticleCount.info') }} : {{ $t('journalArticleCount.dataTitle') }} /
|
||||||
|
{{ $t('journalArticleCount.transferQuantity') }}
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%; height: auto; margin-bottom: 20px !important">
|
||||||
|
<jAtableM type="month" ref="monthTableData"></jAtableM>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const jAtableY = () => import('@/components/common/journalArticleTable');
|
||||||
|
const jAtableM = () => import('@/components/common/journalArticleTable');
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
jAtableY,
|
||||||
|
jAtableM
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.loading = true;
|
||||||
|
// this.loading = this.$loading({
|
||||||
|
// lock: true,
|
||||||
|
// text: 'Loading...',
|
||||||
|
// spinner: 'el-icon-loading',
|
||||||
|
// background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
// });
|
||||||
|
await this.getCharts('year');
|
||||||
|
await this.getCharts('month');
|
||||||
|
await this.getTableData();
|
||||||
|
|
||||||
|
this.$forceUpdate();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleRefresh() {},
|
||||||
|
async getEchartsData() {
|
||||||
|
await this.getCharts('year');
|
||||||
|
await this.getCharts('month');
|
||||||
|
this.$forceUpdate();
|
||||||
|
},
|
||||||
|
async getCharts(type) {
|
||||||
|
var optionsData = await this.getdata(type);
|
||||||
|
console.log('🚀 ~ getCharts ~ optionsData:', optionsData);
|
||||||
|
|
||||||
|
const chartBox = await this.$echarts.init(document.getElementById(`${type}chart`));
|
||||||
|
var option = {};
|
||||||
|
option = {
|
||||||
|
title: {
|
||||||
|
text: this.$t(`journalArticleCount.${type}Title`)
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
axisPointer: {
|
||||||
|
type: 'cross',
|
||||||
|
label: {
|
||||||
|
backgroundColor: '#6a7985'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// legend: {
|
||||||
|
// data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
|
||||||
|
// },
|
||||||
|
toolbox: {
|
||||||
|
// feature: {
|
||||||
|
// // dataZoom: {
|
||||||
|
// // yAxisIndex: 'none'
|
||||||
|
// // },
|
||||||
|
// restore: {},
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
dataZoom:
|
||||||
|
type == 'month'
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
show: true,
|
||||||
|
realtime: true,
|
||||||
|
start: 1,
|
||||||
|
end: 100,
|
||||||
|
xAxisIndex: [0, 1]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'inside',
|
||||||
|
realtime: true,
|
||||||
|
start: 1,
|
||||||
|
end: 100,
|
||||||
|
xAxisIndex: [0, 1]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
: [],
|
||||||
|
grid: {
|
||||||
|
left: '3%',
|
||||||
|
right: '4%',
|
||||||
|
bottom: type == 'month' ? '20%' : '4%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
xAxis: [
|
||||||
|
{
|
||||||
|
type: 'category',
|
||||||
|
axisLabel: {},
|
||||||
|
// axisLabel:
|
||||||
|
// type == 'year'
|
||||||
|
// ? {}
|
||||||
|
// : {
|
||||||
|
// interval: 0,
|
||||||
|
// rotate: 30
|
||||||
|
// },
|
||||||
|
boundaryGap: false,
|
||||||
|
data: optionsData.xAxisData
|
||||||
|
}
|
||||||
|
],
|
||||||
|
yAxis: [
|
||||||
|
{
|
||||||
|
type: 'value'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: this.$t(`journalArticleCount.dataTitle`),
|
||||||
|
type: 'line',
|
||||||
|
stack: 'Total',
|
||||||
|
areaStyle: {
|
||||||
|
opacity: 0.8,
|
||||||
|
color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||||||
|
{
|
||||||
|
offset: 0,
|
||||||
|
color: type == 'year' ? 'rgb(0, 221, 255)' : 'rgb(0, 102, 153)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
offset: 1,
|
||||||
|
color: type == 'month' ? 'rgb(77, 119, 255)' : 'rgb(1, 191, 236)'
|
||||||
|
}
|
||||||
|
])
|
||||||
|
},
|
||||||
|
smooth: true,
|
||||||
|
emphasis: {
|
||||||
|
focus: 'series'
|
||||||
|
},
|
||||||
|
data: optionsData.seriesData
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
chartBox.clear();
|
||||||
|
chartBox.setOption(option, true);
|
||||||
|
// 根据页面大小自动响应图表大小
|
||||||
|
window.addEventListener('resize', function () {
|
||||||
|
chartBox.resize();
|
||||||
|
});
|
||||||
|
this.$forceUpdate();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取文章列表数据
|
||||||
|
async getdata(type) {
|
||||||
|
var data = {};
|
||||||
|
var url = '';
|
||||||
|
if (type == 'month') {
|
||||||
|
url = '/api/Monitor/getArticleNumByMonth';
|
||||||
|
} else if (type == 'year') {
|
||||||
|
url = '/api/Monitor/getArticleNumByYear';
|
||||||
|
}
|
||||||
|
await this.$api
|
||||||
|
.post(url)
|
||||||
|
.then((res) => {
|
||||||
|
var that = this;
|
||||||
|
if (res.code == 0) {
|
||||||
|
console.log('🚀 ~ .then ~ res1998:' + type, res.data.articles);
|
||||||
|
var xAxisData = [];
|
||||||
|
var seriesData = [];
|
||||||
|
Object.entries(res.data.articles).forEach(([key, value]) => {
|
||||||
|
xAxisData.push(key);
|
||||||
|
seriesData.push(value);
|
||||||
|
|
||||||
|
data = { type: type, xAxisData: xAxisData, seriesData: seriesData };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
return data;
|
||||||
|
},
|
||||||
|
// 获取文章列表数据
|
||||||
|
async getTableData() {
|
||||||
|
this.$nextTick(async () => {
|
||||||
|
await this.getTableDataInfo('year');
|
||||||
|
await this.getTableDataInfo('month');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async getTableDataInfo(type) {
|
||||||
|
var that = this;
|
||||||
|
var data = {};
|
||||||
|
var timeData = [];
|
||||||
|
var tableData = [];
|
||||||
|
var url = '';
|
||||||
|
if (type == 'month') {
|
||||||
|
url = '/api/Monitor/getArticleNumByMonthForJournal';
|
||||||
|
} else if (type == 'year') {
|
||||||
|
url = '/api/Monitor/getArticleNumByYearForJournal';
|
||||||
|
}
|
||||||
|
await this.$api
|
||||||
|
.post(url)
|
||||||
|
.then(async (res) => {
|
||||||
|
var that = this;
|
||||||
|
if (res.code == 0) {
|
||||||
|
for (let i in res.data.data) {
|
||||||
|
tableData.push({ ...res.data.data[i].journal, ...res.data.data[i].articles });
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i in res.data.data[0].articles) {
|
||||||
|
timeData.push(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
data = { tableData: tableData, timeData: timeData };
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err, '989898');
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
console.log(data, type, '98999');
|
||||||
|
if (type == 'year') {
|
||||||
|
this.$refs.yearTableData.getTableInfo(type, data);
|
||||||
|
} else if (type == 'month') {
|
||||||
|
this.$refs.monthTableData.getTableInfo(type, data);
|
||||||
|
setTimeout(() => {
|
||||||
|
that.loading = false;
|
||||||
|
}, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.container {
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.refresh {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
right: 0px;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="crumbs">
|
<div class="crumbs">
|
||||||
<el-breadcrumb separator="/">
|
<el-breadcrumb separator="/">
|
||||||
<el-breadcrumb-item>
|
<el-breadcrumb-item>
|
||||||
<i class="el-icon-data-analysis"></i> Journal Evaluation System
|
<i class="el-icon-data-analysis"></i> {{ $route.meta.title }}
|
||||||
</el-breadcrumb-item>
|
</el-breadcrumb-item>
|
||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="crumbs">
|
<div class="crumbs">
|
||||||
<el-breadcrumb separator="/">
|
<el-breadcrumb separator="/">
|
||||||
<el-breadcrumb-item> <i class="el-icon-data-analysis"></i> Journal Evaluation Statistics </el-breadcrumb-item>
|
<el-breadcrumb-item> <i class="el-icon-data-analysis"></i> {{ $route.meta.title }}</el-breadcrumb-item>
|
||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -195,6 +195,8 @@ export default {
|
|||||||
// },
|
// },
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
||||||
|
|
||||||
this.getData();
|
this.getData();
|
||||||
// this.drawLine();
|
// this.drawLine();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="container" style="padding-bottom: 50px; width: 100%; height: auto">
|
<div class="container" style="padding-bottom: 50px; width: 100%; height: 100%" v-loading="loading" >
|
||||||
<div style="width: 100%; height: 38vh; margin-bottom: 2vh; position: relative">
|
<div style="width: 100%; height: 38vh; margin-bottom: 2vh; position: relative">
|
||||||
<i class="el-icon-refresh refresh" @click="getCharts('year')"></i>
|
<i class="el-icon-refresh refresh" @click="getCharts('year')"></i>
|
||||||
<div id="yearchart" style="width: 100%; height: 100%"></div>
|
<div id="yearchart" style="width: 100%; height: 100%"></div>
|
||||||
@@ -8,10 +8,41 @@
|
|||||||
<i class="el-icon-refresh refresh" @click="getCharts('month')"></i>
|
<i class="el-icon-refresh refresh" @click="getCharts('month')"></i>
|
||||||
<div id="monthchart" style="width: 100%; height: 100%"></div>
|
<div id="monthchart" style="width: 100%; height: 100%"></div>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%; height: auto; margin-bottom: 50px">
|
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
background-color: #f4f4f5;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #909399;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ $t('journalArticleCount.info') }} : {{ $t('journalArticleCount.dataTitle') }} /
|
||||||
|
{{ $t('journalArticleCount.transferQuantity') }}
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%; height: auto; margin-bottom: 20px">
|
||||||
<jAtableY type="year" ref="yearTableData"></jAtableY>
|
<jAtableY type="year" ref="yearTableData"></jAtableY>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%; height: auto; margin-bottom: 50px !important">
|
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin-top: 50px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
background-color: #f4f4f5;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #909399;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ $t('journalArticleCount.info') }} : {{ $t('journalArticleCount.dataTitle') }} /
|
||||||
|
{{ $t('journalArticleCount.transferQuantity') }}
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%; height: auto; margin-bottom: 20px !important">
|
||||||
<jAtableM type="month" ref="monthTableData"></jAtableM>
|
<jAtableM type="month" ref="monthTableData"></jAtableM>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -24,7 +55,7 @@ const jAtableM = () => import('@/components/common/journalArticleTable');
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: null
|
loading: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -32,12 +63,13 @@ export default {
|
|||||||
jAtableM
|
jAtableM
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
this.loading = this.$loading({
|
this.loading = true;
|
||||||
lock: true,
|
// this.loading = this.$loading({
|
||||||
text: 'Loading...',
|
// lock: true,
|
||||||
spinner: 'el-icon-loading',
|
// text: 'Loading...',
|
||||||
background: 'rgba(0, 0, 0, 0.7)'
|
// spinner: 'el-icon-loading',
|
||||||
});
|
// background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
// });
|
||||||
await this.getCharts('year');
|
await this.getCharts('year');
|
||||||
await this.getCharts('month');
|
await this.getCharts('month');
|
||||||
await this.getTableData();
|
await this.getTableData();
|
||||||
@@ -226,7 +258,7 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log(err);
|
console.log(err, '989898');
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
});
|
||||||
console.log(data, type, '98999');
|
console.log(data, type, '98999');
|
||||||
@@ -235,8 +267,8 @@ export default {
|
|||||||
} else if (type == 'month') {
|
} else if (type == 'month') {
|
||||||
this.$refs.monthTableData.getTableInfo(type, data);
|
this.$refs.monthTableData.getTableInfo(type, data);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
that.loading.close();
|
that.loading = false;
|
||||||
}, 100);
|
}, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
|||||||
237
src/components/page/paperArticleCount.vue
Normal file
237
src/components/page/paperArticleCount.vue
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
<template>
|
||||||
|
<div class="container" style="padding-bottom: 50px; width: 100%; height: 100%" v-loading="loading" >
|
||||||
|
<p style="color: #333;">暂未开启,敬请等待</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleRefresh() {},
|
||||||
|
async getEchartsData() {
|
||||||
|
await this.getCharts('year');
|
||||||
|
await this.getCharts('month');
|
||||||
|
this.$forceUpdate();
|
||||||
|
},
|
||||||
|
async getCharts(type) {
|
||||||
|
var optionsData = await this.getdata(type);
|
||||||
|
console.log('🚀 ~ getCharts ~ optionsData:', optionsData);
|
||||||
|
|
||||||
|
const chartBox = await this.$echarts.init(document.getElementById(`${type}chart`));
|
||||||
|
var option = {};
|
||||||
|
option = {
|
||||||
|
title: {
|
||||||
|
text: this.$t(`journalArticleCount.${type}Title`)
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
axisPointer: {
|
||||||
|
type: 'cross',
|
||||||
|
label: {
|
||||||
|
backgroundColor: '#6a7985'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// legend: {
|
||||||
|
// data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
|
||||||
|
// },
|
||||||
|
toolbox: {
|
||||||
|
// feature: {
|
||||||
|
// // dataZoom: {
|
||||||
|
// // yAxisIndex: 'none'
|
||||||
|
// // },
|
||||||
|
// restore: {},
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
dataZoom:
|
||||||
|
type == 'month'
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
show: true,
|
||||||
|
realtime: true,
|
||||||
|
start: 1,
|
||||||
|
end: 100,
|
||||||
|
xAxisIndex: [0, 1]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'inside',
|
||||||
|
realtime: true,
|
||||||
|
start: 1,
|
||||||
|
end: 100,
|
||||||
|
xAxisIndex: [0, 1]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
: [],
|
||||||
|
grid: {
|
||||||
|
left: '3%',
|
||||||
|
right: '4%',
|
||||||
|
bottom: type == 'month' ? '20%' : '4%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
xAxis: [
|
||||||
|
{
|
||||||
|
type: 'category',
|
||||||
|
axisLabel: {},
|
||||||
|
// axisLabel:
|
||||||
|
// type == 'year'
|
||||||
|
// ? {}
|
||||||
|
// : {
|
||||||
|
// interval: 0,
|
||||||
|
// rotate: 30
|
||||||
|
// },
|
||||||
|
boundaryGap: false,
|
||||||
|
data: optionsData.xAxisData
|
||||||
|
}
|
||||||
|
],
|
||||||
|
yAxis: [
|
||||||
|
{
|
||||||
|
type: 'value'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: this.$t(`journalArticleCount.dataTitle`),
|
||||||
|
type: 'line',
|
||||||
|
stack: 'Total',
|
||||||
|
areaStyle: {
|
||||||
|
opacity: 0.8,
|
||||||
|
color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||||||
|
{
|
||||||
|
offset: 0,
|
||||||
|
color: type == 'year' ? 'rgb(0, 221, 255)' : 'rgb(0, 102, 153)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
offset: 1,
|
||||||
|
color: type == 'month' ? 'rgb(77, 119, 255)' : 'rgb(1, 191, 236)'
|
||||||
|
}
|
||||||
|
])
|
||||||
|
},
|
||||||
|
smooth: true,
|
||||||
|
emphasis: {
|
||||||
|
focus: 'series'
|
||||||
|
},
|
||||||
|
data: optionsData.seriesData
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
chartBox.clear();
|
||||||
|
chartBox.setOption(option, true);
|
||||||
|
// 根据页面大小自动响应图表大小
|
||||||
|
window.addEventListener('resize', function () {
|
||||||
|
chartBox.resize();
|
||||||
|
});
|
||||||
|
this.$forceUpdate();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取文章列表数据
|
||||||
|
async getdata(type) {
|
||||||
|
var data = {};
|
||||||
|
var url = '';
|
||||||
|
if (type == 'month') {
|
||||||
|
url = '/api/Monitor/getArticleNumByMonth';
|
||||||
|
} else if (type == 'year') {
|
||||||
|
url = '/api/Monitor/getArticleNumByYear';
|
||||||
|
}
|
||||||
|
await this.$api
|
||||||
|
.post(url)
|
||||||
|
.then((res) => {
|
||||||
|
var that = this;
|
||||||
|
if (res.code == 0) {
|
||||||
|
console.log('🚀 ~ .then ~ res1998:' + type, res.data.articles);
|
||||||
|
var xAxisData = [];
|
||||||
|
var seriesData = [];
|
||||||
|
Object.entries(res.data.articles).forEach(([key, value]) => {
|
||||||
|
xAxisData.push(key);
|
||||||
|
seriesData.push(value);
|
||||||
|
|
||||||
|
data = { type: type, xAxisData: xAxisData, seriesData: seriesData };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
return data;
|
||||||
|
},
|
||||||
|
// 获取文章列表数据
|
||||||
|
async getTableData() {
|
||||||
|
this.$nextTick(async () => {
|
||||||
|
await this.getTableDataInfo('year');
|
||||||
|
await this.getTableDataInfo('month');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async getTableDataInfo(type) {
|
||||||
|
var that = this;
|
||||||
|
var data = {};
|
||||||
|
var timeData = [];
|
||||||
|
var tableData = [];
|
||||||
|
var url = '';
|
||||||
|
if (type == 'month') {
|
||||||
|
url = '/api/Monitor/getArticleNumByMonthForJournal';
|
||||||
|
} else if (type == 'year') {
|
||||||
|
url = '/api/Monitor/getArticleNumByYearForJournal';
|
||||||
|
}
|
||||||
|
await this.$api
|
||||||
|
.post(url)
|
||||||
|
.then(async (res) => {
|
||||||
|
var that = this;
|
||||||
|
if (res.code == 0) {
|
||||||
|
for (let i in res.data.data) {
|
||||||
|
tableData.push({ ...res.data.data[i].journal, ...res.data.data[i].articles });
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i in res.data.data[0].articles) {
|
||||||
|
timeData.push(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
data = { tableData: tableData, timeData: timeData };
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err, '989898');
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
console.log(data, type, '98999');
|
||||||
|
if (type == 'year') {
|
||||||
|
this.$refs.yearTableData.getTableInfo(type, data);
|
||||||
|
} else if (type == 'month') {
|
||||||
|
this.$refs.monthTableData.getTableInfo(type, data);
|
||||||
|
setTimeout(() => {
|
||||||
|
that.loading = false;
|
||||||
|
}, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.container {
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.refresh {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
right: 0px;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -45,7 +45,7 @@ export default new Router({
|
|||||||
component: () => import( /* webpackChunkName: "table" */
|
component: () => import( /* webpackChunkName: "table" */
|
||||||
'../components/page/articleListEditor.vue'),
|
'../components/page/articleListEditor.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Manuscript to be examined',
|
title: 'Paper Editing System',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -541,7 +541,7 @@ export default new Router({
|
|||||||
path: '/citationanalysis', //引用情况分析
|
path: '/citationanalysis', //引用情况分析
|
||||||
component: () => import('../components/page/analysis_report.vue'),
|
component: () => import('../components/page/analysis_report.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Citation Analysis Report'
|
title: 'Article analysis'
|
||||||
},
|
},
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
@@ -549,7 +549,7 @@ export default new Router({
|
|||||||
path: '/evaluationsis', //引用情况分析
|
path: '/evaluationsis', //引用情况分析
|
||||||
component: () => import('../components/page/evaluationsis_report.vue'),
|
component: () => import('../components/page/evaluationsis_report.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Journal Evaluation Statistics'
|
title: 'Article distribution'
|
||||||
},
|
},
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
@@ -1014,6 +1014,14 @@ export default new Router({
|
|||||||
title: 'Journals Management'
|
title: 'Journals Management'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name:'paper-article-count',
|
||||||
|
path: '/paperArticleCount', // 超管单期刊列表
|
||||||
|
component: () => import('../components/page/paperArticleCount'),
|
||||||
|
meta: {
|
||||||
|
title: 'Article Count'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name:'journal-Article-Count',
|
name:'journal-Article-Count',
|
||||||
path: '/journalArticleCount', // 超管单期刊列表
|
path: '/journalArticleCount', // 超管单期刊列表
|
||||||
@@ -1022,6 +1030,14 @@ export default new Router({
|
|||||||
title: 'Journal Article Count'
|
title: 'Journal Article Count'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name:'paper-submit-analysis',
|
||||||
|
path: '/PaperSubmitanalysis', // 超管单期刊列表
|
||||||
|
component: () => import('../components/page/PaperSubmitanalysis'),
|
||||||
|
meta: {
|
||||||
|
title: 'Paper Submit Analysis'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/404',
|
path: '/404',
|
||||||
component: () => import( /* webpackChunkName: "404" */
|
component: () => import( /* webpackChunkName: "404" */
|
||||||
|
|||||||
@@ -72,8 +72,9 @@ module.exports = {
|
|||||||
// target: 'https://www.tmrjournals.cn',
|
// target: 'https://www.tmrjournals.cn',
|
||||||
// target: 'http://www.tougao.com/public/index.php/',
|
// target: 'http://www.tougao.com/public/index.php/',
|
||||||
// target: 'http://www.tougao.com/',
|
// target: 'http://www.tougao.com/',
|
||||||
target: 'http://192.168.110.110/tougao/public/index.php/',
|
// target: 'http://192.168.110.110/tougao/public/index.php/',
|
||||||
// target: 'https://submission.tmrjournals.com/',//正式
|
// target: 'http://api.tmrjournals.com/public/index.php/',//正式
|
||||||
|
target: 'https://submission.tmrjournals.com/',//正式
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/api': ''
|
'^/api': ''
|
||||||
|
|||||||
Reference in New Issue
Block a user