This commit is contained in:
xulu
2021-08-18 17:45:45 +08:00
parent e6b2a06061
commit a17aebd38c
34 changed files with 2449 additions and 1268 deletions

View File

@@ -7,8 +7,8 @@ import qs from 'qs'
// axios全局配置
axios.defaults.timeout = 10000 // 超时时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // 配置请求头
// axios.defaults.baseURL = 'http://www.tougao.com/'
axios.defaults.baseURL = '/'
axios.defaults.baseURL = 'http://www.tougao.com/'
// axios.defaults.baseURL = '/'
// 添加响应拦截器,统一处理服务器响应和异常
axios.interceptors.response.use(

View File

@@ -52,6 +52,11 @@ a {
border-radius: 5px;
}
.container_l {
border: 0 !important;
padding: 30px 0 !important;
}
.crumbs {
margin: 10px 0;
}
@@ -99,7 +104,7 @@ a {
width: 600px;
}
.addarticle-box{
.addarticle-box {
width: 800px;
}

BIN
src/assets/img/bit_bug.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -0,0 +1,77 @@
<template>
<div class="wrapper">
<v-head></v-head>
<!-- <v-sidebar></v-sidebar> -->
<div class="content-box_l">
<!-- <v-tags></v-tags> -->
<div class="content content_l">
<div>
<transition name="move" mode="out-in">
<keep-alive :include="tagsList">
<router-view></router-view>
</keep-alive>
</transition>
<el-backtop target=".content"></el-backtop>
</div>
</div>
</div>
</div>
</template>
<script>
import vHead from './Lead.vue';
// import vSidebar from './Sidebar.vue';
// import vTags from './Tags.vue';
// import bus from './bus';
export default {
data() {
return {
tagsList: []
};
},
components: {
vHead,
// vSidebar,
// vTags
},
created() {
// bus.$on('collapse-content', msg => {
// this.collapse = msg;
// });
// // 只有在标签页列表里的页面才使用keep-alive即关闭标签之后就不保存到内存中了。
// bus.$on('tags', msg => {
// let arr = [];
// for (let i = 0, len = msg.length; i < len; i++) {
// msg[i].name && arr.push(msg[i].name);
// }
// this.tagsList = arr;
// });
}
};
</script>
<style scoped>
.wrapper {
/* width: 1280px;
margin: 0 auto; */
}
.content-box_l {
margin-top: 0;
padding-bottom: 30px;
transition: left .3s ease-in-out;
background: #fff;
}
.content_l {
width: 100%;
height: 100%;
box-sizing: border-box;
}
.content_l>div {
width: 1280px;
margin: 0 auto;
padding: 10px 0;
}
</style>

View File

@@ -38,7 +38,7 @@
</el-tooltip>
</div>
<div class="user-avator" @click="skip_check()" v-else>
<el-tooltip class="item" effect="light" content="Connect to ORCID" placement="bottom-end">
<el-tooltip class="item" effect="light" content="Connect to ORCID" placement="bottom-end">
<img src="../../assets/img/orcno.png" />
</el-tooltip>
</div>
@@ -80,11 +80,11 @@ export default {
},
computed: {
username() {
let username = localStorage.getItem('ms_username');
let username = localStorage.getItem('U_name');
return username ? username : this.name;
},
userrole() {
let userrole = localStorage.getItem('ms_userrole');
let userrole = localStorage.getItem('U_status');
if (userrole == 1) {
return this.$t('total.author');
} else if (userrole == 2) {
@@ -100,8 +100,8 @@ export default {
// 用户名下拉菜单选择事件
handleCommand(command) {
if (command == 'loginout') {
localStorage.removeItem('ms_username');
localStorage.removeItem('ms_userrole');
localStorage.removeItem('U_name');
localStorage.removeItem('U_status');
this.$router.push('/login');
}
},
@@ -113,7 +113,7 @@ export default {
//判断orcid
initORCID() {
this.$api
.post('api/user/checkOrcid', { account: localStorage.getItem('ms_username') })
.post('api/user/checkOrcid', { account: localStorage.getItem('U_name') })
.then((res) => {
this.hasorcie = res.userinfo.orcid == '' ? false : true;
this.orcid = res.userinfo.orcid;

View File

@@ -0,0 +1,232 @@
<template>
<div class="header">
<div style="width: 1280px;margin: 0 auto;">
<div class="logo">
<img src="../../assets/img/bit_bug.png" alt="" style="width: 80px;margin-right: 10px;">
<span style="color:#1c66c0" v-if="this.link_path == '/managing'">{{$t('charact.role1')}}</span>
<span style="color:#e26a2d" v-if="this.link_path == '/editorial'">{{$t('charact.role2')}}</span>
<span style="color:#4640c4" v-if="this.link_path == '/peerewer'">{{$t('charact.role3')}}</span>
<span style="color:#cc3646" v-if="this.link_path == '/youthed'">{{$t('charact.role4')}}</span>
</div>
<div class="group">
TMR Group System
</div>
<div class="header-right">
<div class="header-user-con">
<!-- 中英文切换 -->
<el-dropdown class="egch_lagu" trigger="click" @command="chengelang">
<span class="el-dropdown-link">
language
<i class="el-icon-caret-bottom"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="en">english</el-dropdown-item>
<el-dropdown-item command="zh">中文简体</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- 用户名下拉菜单 -->
<el-dropdown class="user-name" trigger="click" @command="handleCommand">
<span class="el-dropdown-link">
Master
<!-- {{username}} -->
<i class="el-icon-caret-bottom"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="loginout">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- 期刊下拉菜单 -->
<el-dropdown class="link_jour" trigger="click" @command="handlejournal">
<span>
{{ this.cate_title }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu :default-active="onRoutes" router slot="dropdown">
<el-dropdown-item v-for="item in cate_jour" :command="item" :index="item.index">
<i :class="item.icon"></i>{{ item.title }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div>
</div>
</div>
<br clear="both">
</div>
</div>
</template>
<script>
import bus from '../common/bus';
export default {
data() {
return {
name: 'linxin',
cate_title: '',
link_path: '',
rostage_name: '',
cate_jour: [{
icon: 'el-icon-collection',
id: '1',
index: 'compiler',
title: 'Gastroenterology & Hepatology Research'
}, {
icon: 'el-icon-setting',
id: '2',
index: 'moniting',
title: 'Microenvironment & Microecology Research'
}, {
icon: 'el-icon-news',
id: '3',
index: 'quality',
title: '333'
}, {
icon: 'el-icon-suitcase-1',
id: '4',
index: 'wages',
title: '444'
}]
};
},
computed: {
username() {
let username = localStorage.getItem('U_name');
return username ? username : this.name;
},
onRoutes() {
0
return this.$route.path.replace('/', '');
}
},
created() {
this.getData();
},
methods: {
getData() {
this.cate_title = this.cate_jour[0].title
localStorage.setItem('journal_title', this.cate_jour[0].title);
localStorage.setItem('journal_id', this.cate_jour[0].id);
this.$router.push({
path: this.link_path,
query: {
jour_id: this.cate_jour[0].id
}
});
},
// 期刊下拉菜单点击
handlejournal(command) {
this.cate_title = command.title;
localStorage.setItem('journal_title', command.title);
localStorage.setItem('journal_id', command.id);
this.$router.push({
path: this.link_path,
query: {
jour_id: command.id
}
});
},
//切换语言
chengelang(commond) {
localStorage.setItem('langs', commond);
this.$router.go(0);
},
// 用户名下拉菜单选择事件
handleCommand(command) {
if (command == 'loginout') {
// 二次确认
this.$confirm('确定要退出登录', '提示', {
type: 'warning'
})
.then(() => {
this.$router.push('/login');
})
.catch(() => {});
}
}
},
mounted() {},
watch: {
$route: {
handler: function(route) {
this.link_path = route.path
},
immediate: true
}
}
};
</script>
<style scoped>
.header {
position: relative;
box-sizing: border-box;
width: 100%;
height: 70px;
font-size: 22px;
color: #333;
border-bottom: 3px solid #000;
background-color: #fff !important;
}
.header>div {}
.collapse-btn {
float: left;
padding: 0 21px;
cursor: pointer;
line-height: 70px;
}
.header .logo {
float: left;
/* width: 400px; */
line-height: 70px;
}
.header .logo i {
margin-right: 10px;
}
.header .group {
float: left;
width: 600px;
text-align: right;
line-height: 60px;
font-weight: bolder;
}
.header-right {
float: right;
padding-right: 20px;
}
.header-user-con {
display: flex;
height: 70px;
align-items: center;
}
.link_jour {
font-weight: bold;
align-items: center;
cursor: pointer;
}
.egch_lagu {
margin-right: 20px;
}
.user-name {
margin-right: 20px;
}
.el-dropdown-link {
color: #333;
cursor: pointer;
}
</style>

View File

@@ -55,7 +55,7 @@ export default {
data() {
return {
collapse: false,
userrole:localStorage.getItem('ms_userrole'),
userrole:localStorage.getItem('U_status'),
items:[],
author_items: [
{
@@ -77,18 +77,18 @@ export default {
title:this.$t('sidebar.author2')
}
]
},
{
icon: 'el-icon-user',
index: '2',
title: this.$t('sidebar.reviewerArticle'),
subs:[
{
index:'authorApplyReviewer',
title:this.$t('sidebar.authorApplyReviewer')
}
]
}
// {
// icon: 'el-icon-user',
// index: '2',
// title: this.$t('sidebar.reviewerArticle'),
// subs:[
// {
// index:'authorApplyReviewer',
// title:this.$t('sidebar.authorApplyReviewer')
// }
// ]
// }
],
editor_items:[
{
@@ -107,6 +107,21 @@ export default {
}
]
},
{
icon:'el-icon-paperclip',
index:'4',
title:this.$t('sidebar.editmber'),
subs:[
{
index:'editmbereditor',
title:this.$t('sidebar.editmber1')
},
{
index:'editmberperiod',
title:this.$t('sidebar.editmber2')
}
]
},
{
icon:'el-icon-s-custom',
index:'3',
@@ -248,15 +263,16 @@ export default {
}
},
created() {
if(this.userrole==1){
if(this.userrole==2){ //其余的身份(显示作者)
this.items = this.author_items;
}else if(this.userrole ==2){
}else if(this.userrole ==1){ //编辑
this.items = this.editor_items;
}else if(this.userrole=='admin'){
}else if(this.userrole==0){ //超级管理员
this.items = this.admin_items;
}else if(this.userrole=='reviewer'){
this.items = this.reviewer_items;
}
// else if(this.userrole=='reviewer'){
// this.items = this.reviewer_items;
// }
// 通过 Event Bus 进行组件间通信,来折叠侧边栏
bus.$on('collapse', msg => {
this.collapse = msg;

View File

@@ -2,68 +2,78 @@ const en = {
system: {
title: 'Submission System',
repassword:'Forgot your password?',
register:'Not registered yet? Register now.',
orcidlogin:'Login with your ORCID iD',
login:'Log in',
forgetpwd:'Find Your Password',
screen:'full screen',
noscreen:'Cancel full screen',
loyout:'Log out',
langbtn:'language',
label:'Label options',
labelother:'close other',
labelall:'close all'
repassword: 'Forgot your password?',
register: 'Not registered yet? Register now.',
orcidlogin: 'Login with your ORCID iD',
login: 'Log in',
forgetpwd: 'Find Your Password',
screen: 'full screen',
noscreen: 'Cancel full screen',
loyout: 'Log out',
langbtn: 'language',
label: 'Label options',
labelother: 'close other',
labelall: 'close all'
},
total:{
author:'author',
editor:'editor',
reviewers:'reviewer',
admin:'admin'
total: {
author: 'author',
editor: 'editor',
reviewers: 'reviewer',
admin: 'admin'
},
sidebar:{
main:'Home Page',
author:'Author',
author1:'My manuscript',
author2:'Submit manuscript',
editor:'Editor',
editor1:'Manuscript list',
editormanage:'Editor Management',
editormanage1:'Editor list',
editormanage2:'Add editor',
journal:'Journal Management',
journal1:'Journal list',
journal2:'Add journal',
reviewer:'Reviewer Management',
reviewer1:'Reviewer application list',
reviewer2:'Reviewer list',
reviewer3:'Reviewer import',
reviewer4:'Import error',
reviewerArticle:'Reviewer',
reviewerArticle1:'Manuscript list',
authorApplyReviewer:'Become reviewer',
reviewerimport:'Reviewer import',
reviewerimporterror:'import error',
monitor:'Monitor',
monitor1:'Manuscript situation',
chief:'Chief editor',
chief1:'Editor list',
chief2:'Journal list'
sidebar: {
main: 'Home Page',
author: 'Author',
author1: 'My manuscript',
author2: 'Submit manuscript',
editor: 'Editor',
editor1: 'Manuscript list',
editormanage: 'Editor Management',
editormanage1: 'Editor list',
editormanage2: 'Add editor',
journal: 'Journal Management',
journal1: 'Journal list',
journal2: 'Add journal',
reviewer: 'Reviewer Management',
reviewer1: 'Reviewer application list',
reviewer2: 'Reviewer list',
reviewer3: 'Reviewer import',
reviewer4: 'Import error',
reviewerArticle: 'Reviewer',
reviewerArticle1: 'Manuscript list',
authorApplyReviewer: 'Become reviewer',
reviewerimport: 'Reviewer import',
reviewerimporterror: 'import error',
monitor: 'Monitor',
monitor1: 'Manuscript situation',
chief: 'Chief editor',
chief1: 'Editor list',
chief2: 'Journal list',
editmber: 'Editorial management',
editmber1: 'Editorial board list',
editmber2: 'Journal List'
},
home:{
authortop:'Author guide',
usermsg:'New messages',
home: {
authortop: 'Author guide',
usermsg: 'New messages',
},
artstate:{
state0:'Received',
state1:'With editor',
state2:'Under review',
state3:'Reject',
state4:'Revision',
state5:'Accepted ',
act1:'Dealing',
act2:'Finished'
artstate: {
state0: 'Received',
state1: 'With editor',
state2: 'Under review',
state3: 'Reject',
state4: 'Revision',
state5: 'Accepted ',
act1: 'Dealing',
act2: 'Finished'
},
charact: {
role: 'Role',
role1: 'Role editor',
role2: 'Editorial board',
role3: 'Reviewer',
role4: 'Youth editorial board',
}
}

View File

@@ -2,69 +2,78 @@ const zh = {
system: {
title: '投稿系统',
repassword:'忘记密码',
register:'注册',
orcidlogin:'ORCID登陆',
login:'登录',
forgetpwd:'找回密码',
screen:'全屏',
noscreen:'取消全屏',
loyout:'退出登录',
langbtn:'语言选择',
label:'标签选项',
labelother:'关闭其他',
labelall:'关闭所有'
repassword: '忘记密码',
register: '注册',
orcidlogin: 'ORCID登陆',
login: '登录',
forgetpwd: '找回密码',
screen: '全屏',
noscreen: '取消全屏',
loyout: '退出登录',
langbtn: '语言选择',
label: '标签选项',
labelother: '关闭其他',
labelall: '关闭所有'
},
total:{
author:'作者',
editor:'编辑',
reviewers:'审稿人',
admin:'管理员'
total: {
author: '作者',
editor: '编辑',
reviewers: '审稿人',
admin: '管理员'
},
sidebar:{
main:'系统首页',
author:'作者',
author1:'我的稿件',
author2:'新增稿件',
editor:'编辑',
editor1:'待审稿件',
editormanage:'编辑管理',
editormanage1:'编辑列表',
editormanage2:'添加编辑',
journal:'期刊管理',
journal1:'期刊列表',
journal2:'添加期刊',
reviewer:'审稿人管理',
reviewer1:'申请列表',
reviewer2:'审稿人列表',
reviewer3:'审稿人导入',
reviewer4:'导入失败列表',
reviewerArticle:'审稿人',
reviewerArticle1:'待审文章',
authorApplyReviewer:'成为审稿人',
reviewerimport:'审稿人导入',
reviewerimporterror:'导入失败列表',
monitor:'总监',
monitor1:'稿件情况',
chief:'主编管理',
chief1:'主编列表',
chief2:'期刊列表'
sidebar: {
main: '系统首页',
author: '作者',
author1: '我的稿件',
author2: '新增稿件',
editor: '编辑',
editor1: '待审稿件',
editormanage: '编辑管理',
editormanage1: '编辑列表',
editormanage2: '添加编辑',
journal: '期刊管理',
journal1: '期刊列表',
journal2: '添加期刊',
reviewer: '审稿人管理',
reviewer1: '申请列表',
reviewer2: '审稿人列表',
reviewer3: '审稿人导入',
reviewer4: '导入失败列表',
reviewerArticle: '审稿人',
reviewerArticle1: '待审文章',
authorApplyReviewer: '成为审稿人',
reviewerimport: '审稿人导入',
reviewerimporterror: '导入失败列表',
monitor: '总监',
monitor1: '稿件情况',
chief: '主编管理',
chief1: '主编列表',
chief2: '期刊列表',
editmber: '编委管理',
editmber1: '编委列表',
editmber2: '期刊列表'
},
home:{
authortop:'用户指南',
usermsg:'新消息',
home: {
authortop: '用户指南',
usermsg: '新消息',
},
artstate:{
state0:'投稿中',
state1:'已受理',
state2:'送审中',
state3:'拒稿',
state4:'退修',
state5:'接收 ',
act1:'审查中',
act2:'已完结'
artstate: {
state0: '投稿中',
state1: '已受理',
state2: '送审中',
state3: '拒稿',
state4: '退修',
state5: '接收 ',
act1: '审查中',
act2: '已完结'
},
charact: {
role: '角色',
role1: '主编',
role2: '编委',
role3: '审稿人',
role4: '青年编委',
}
}

View File

@@ -1,6 +1,67 @@
<template>
<div>
<el-row :gutter="20">
<el-row :gutter="20">
<el-col :span="4" v-if="this.usercap.includes('chief')">
<router-link target="_blank" :to="{path:'/managing',query: {top_id: '1'}}">
<div class="grid-jue1">
<svg t="1629185957321" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3125" width="40" height="40">
<path d="M657.749333 142.222222c-55.523556 0-113.777778 24.007111-145.976889 63.488-32.426667-39.480889-90.794667-63.488-145.863111-63.488H48.241778v728.177778h288.881778c109.795556-1.934222 126.634667 14.677333 135.509333 22.755556a48.924444 48.924444 0 0 1 12.970667 22.755555h52.337777a49.607111 49.607111 0 0 1 16.611556-27.534222c13.425778-9.102222 34.133333-20.252444 159.288889-18.773333h261.688889V142.222222z m-172.487111 694.044445c-35.498667-13.312-104.903111-18.887111-151.210666-18.887111H100.238222V194.56h265.671111c56.888889 0 119.694222 33.223111 119.694223 80.896v481.621333s-0.796444 45.169778-0.341334 79.075556z m240.526222-18.659556c-97.962667-1.706667-152.689778 0.796444-187.505777 18.659556V275.456c0-47.672889 63.146667-80.896 119.808-80.896h265.329777v622.933333z"
fill="#ffffff" p-id="3126"></path>
<path d="M810.666667 415.288889l-79.644445-62.577778-79.758222 62.577778v-307.2h159.402667v307.2zM167.708444 332.231111h250.311112v52.337778h-250.311112zM167.708444 480.369778h250.311112v52.337778h-250.311112zM167.708444 628.508444h250.311112v52.337778h-250.311112z"
fill="#ffffff" p-id="3127"></path>
</svg>
<p>{{$t('charact.role1')}}</p>
</div>
</router-link>
</el-col>
<el-col :span="4" v-if="this.usercap.includes('board')">
<router-link target="_blank" :to="{path:'/editorial',query: {top_id: '1'}}">
<div class="grid-jue2">
<svg t="1629186126715" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3462" width="40" height="40">
<path d="M356.693333 910.222222H91.022222V113.777778h743.310222v179.768889h-52.110222V165.888H143.132444v692.224h213.560889V910.222222z"
fill="#ffffff" p-id="3463"></path>
<path d="M880.867556 781.539556v76.231111H473.088v-76.231111h407.779556M932.977778 729.429333H420.977778V910.222222h512V729.429333zM227.555556 510.065778h243.256888v52.110222H227.555556zM227.555556 381.041778h243.256888v52.110222H227.555556zM227.555556 252.131556h294.456888v52.110222H227.555556zM676.977778 372.508444a63.943111 63.943111 0 1 1-62.577778 63.943112 63.488 63.488 0 0 1 63.032889-63.943112m0-52.110222a116.053333 116.053333 0 1 0 115.256889 116.053334 115.598222 115.598222 0 0 0-115.712-116.053334z"
fill="#ffffff" p-id="3464"></path>
<path d="M533.162667 768.227556l-45.169778-26.055112L622.364444 513.592889l45.169778 26.168889-134.371555 228.465778zM820.792889 768.227556L686.421333 539.761778l45.169778-26.168889 134.371556 228.579555-45.169778 26.055112z"
fill="#ffffff" p-id="3465"></path>
</svg>
<p>{{$t('charact.role2')}}</p>
</div>
</router-link>
</el-col>
<el-col :span="4" v-if="this.usercap.includes('reviewer')">
<router-link target="_blank" :to="{path:'/peerewer',query: {top_id: '1'}}">
<div class="grid-jue3">
<svg t="1629185981340" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3293" width="40" height="40">
<path d="M447.715556 910.222222H91.022222V113.777778h728.177778v327.68h-52.110222V165.888H143.132444v692.224h304.583112V910.222222zM611.214222 890.083556L542.72 910.222222l20.138667-68.380444 321.877333-321.763556L932.977778 568.32 611.214222 890.083556z"
fill="#ffffff" p-id="3294"></path>
<path d="M499.256889 613.717333H343.153778l-28.216889 67.470223H251.448889L391.509333 361.813333H455.111111l138.126222 319.374223h-65.763555zM477.866667 561.265778l-56.206223-134.144-56.888888 134.144zM522.24 305.834667h136.533333v28.444444h-136.533333z"
fill="#ffffff" p-id="3295"></path>
<path d="M576.284444 251.790222h28.444445v136.533334h-28.444445z" fill="#ffffff" p-id="3296"></path>
</svg>
<p>{{$t('charact.role3')}}</p>
</div>
</router-link>
</el-col>
<el-col :span="4" v-if="this.usercap.includes('yboard')">
<router-link target="_blank" :to="{path:'/youthed',query: {top_id: '1'}}">
<div class="grid-jue4">
<svg t="1629185867793" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="2957" width="40" height="40">
<path d="M515.413333 125.155556H125.155556v796.444444h757.76V597.674667H830.577778V869.262222H177.493333V177.493333h337.92V125.155556z"
fill="#ffffff" p-id="2958"></path>
<path d="M276.48 309.816889h147.911111v52.337778h-147.911111zM276.48 497.208889h147.911111v52.337778h-147.911111zM276.48 684.714667h455.111111v52.337777h-455.111111zM760.718222 174.193778l66.332445 39.708444-194.56 325.063111-50.289778 8.760889-16.042667-48.469333 194.56-325.063111M742.627556 102.4L508.928 492.885333l37.774222 113.777778 118.442667-20.593778L898.844444 195.925333 742.627556 102.4z"
fill="#ffffff" p-id="2959"></path>
</svg>
<p>{{$t('charact.role4')}}</p>
</div>
</router-link>
</el-col>
</el-row>
<el-col :span="10" v-show="userrole=='reviewer'||userrole==1">
<el-card shadow="hover">
<div slot="header" class="clearfix">
@@ -8,9 +69,11 @@
</div>
<div class="top-content">
<span>
<p>Welcome to the TMR Publishing Group online manuscript submission and tracking system.</p>
<p>Please go through our instructions for authors before submitting.</p>
<p><el-link type="primary" href="/articleAdd">Click here</el-link> to submit your manuscript.</p>
<p>Welcome to the TMR Publishing Group online manuscript submission and tracking system.</p>
<p>Please go through our instructions for authors before submitting.</p>
<p>
<el-link type="primary" href="/articleAdd">Click here</el-link> to submit your manuscript.
</p>
<el-divider></el-divider>
<p>If you experience any problems, please contact us by publisher@tmrjournals.com</p>
</span>
@@ -22,27 +85,16 @@
<el-col :span="14">
<el-card shadow="hover">
<div slot="header" class="clearfix">
<el-badge
:value="this.usermsgList.length"
:hidden="this.usermsgList.length>0?false:true"
class="item"
>
<el-badge :value="this.usermsgList.length" :hidden="this.usermsgList.length>0?false:true" class="item">
<span>{{$t('home.usermsg')}}</span>
</el-badge>
</div>
<el-table
:data="usermsgList"
border
class="msg-table"
>
<el-table :data="usermsgList" border class="msg-table">
<el-table-column label="Date" width="150" :formatter="dateFormate" prop="ctime"></el-table-column>
<el-table-column label="Message" prop="content"></el-table-column>
<el-table-column label="" width="80" align="center">
<template slot-scope="scope">
<el-button
type="text"
@click="show(scope.row)"
>To See</el-button>
<el-button type="text" @click="show(scope.row)">To See</el-button>
</template>
</el-table-column>
</el-table>
@@ -65,19 +117,20 @@
</template>
<script>
import Schart from 'vue-schart';
import bus from '../common/bus';
export default {
import Schart from 'vue-schart';
import bus from '../common/bus';
export default {
name: 'dashboard',
data() {
return {
name: localStorage.getItem('ms_username'),
userrole: localStorage.getItem('ms_userrole'),
name: localStorage.getItem('U_name'),
userrole: localStorage.getItem('U_status'),
usercap: localStorage.getItem('U_role'),
userdata: '',
usermsgList: []
};
},
created: function () {
created: function() {
// this.getUserdata();
this.initUserMsg();
},
@@ -88,16 +141,16 @@ export default {
role() {
let frag = 'dads';
switch (this.userrole) {
case '1':
case '2':
frag = this.$t('total.author');
break;
case '2':
case '1':
frag = this.$t('total.editor');
break;
case 'reviewer':
frag = this.$t('total.reviewers') + ' & ' + this.$t('total.author');
break;
case 'admin':
case '0':
frag = this.$t('total.admin');
break;
}
@@ -123,16 +176,20 @@ export default {
// });
// },
initUserMsg() {
this.$api.post('api/User/getUserMsg', { account: this.name }).then((res) => {
this.$api.post('api/User/getUserMsg', {
account: this.name
}).then((res) => {
this.usermsgList = res;
});
},
dateFormate(row, column, cellValue, index) {
return this.formatDate(cellValue);
},
show(row){
this.$api.post('api/User/changeMsgState',{id:row.user_msg_id})
.then(res=>{
show(row) {
this.$api.post('api/User/changeMsgState', {
id: row.user_msg_id
})
.then(res => {
this.initUserMsg();
this.$router.push(row.url);
});
@@ -147,30 +204,76 @@ export default {
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return Y + M + D + ' ' + h + ':' + m + ':' + s;
},
goaddarticle(){
goaddarticle() {
this.$router.push('/articleAdd');
}
}
};
};
</script>
<style scoped>
.msg-table{
.msg-table {
text-align: center;
}
.add-button{
}
.add-button {
display: block;
margin: 50px auto;
}
.top-content{
}
.top-content {
padding: 2px;
}
.top-content span{
}
.top-content span {
font-family: Arial, Helvetica, sans-serif;
display: block;
padding: 2px;
font-size: 14px;
line-height: 1.5;
}
}
.grid-jue1,
.grid-jue2,
.grid-jue3,
.grid-jue4 {
margin: 10px 10px 20px 10px;
padding: 20px 20px 26px 20px;
color: #fff;
border-radius: 5px;
}
.grid-jue1 p,
.grid-jue2 p,
.grid-jue3 p,
.grid-jue4 p {
margin-left: 50px;
margin-top: -30px;
}
.grid-jue1:hover,
.grid-jue2:hover,
.grid-jue3:hover,
.grid-jue4:hover {
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 30%);
}
.grid-jue1 {
background-image: linear-gradient(to right, #1c66c0, #118bb3);
}
.grid-jue2 {
background-image: linear-gradient(to right, #e26a2d, #f5953c);
}
.grid-jue3 {
background-image: linear-gradient(to right, #4640c4, #7959e1);
}
.grid-jue4 {
background-image: linear-gradient(to right, #cc3646, #e84651);
}
</style>

View File

@@ -37,31 +37,26 @@
</template>
<script>
export default {
data: function () {
export default {
data: function() {
return {
aa: localStorage.getItem('ms_journal'),
orcidLink:
'https://orcid.org/oauth/authorize?client_id=APP-PKF0BGRP6DWM6FUB&response_type=code&scope=/authenticate&redirect_uri=https://submission.tmrjournals.com/orcidLink',
orcidLink: 'https://orcid.org/oauth/authorize?client_id=APP-PKF0BGRP6DWM6FUB&response_type=code&scope=/authenticate&redirect_uri=https://submission.tmrjournals.com/orcidLink',
param: {
username: '',
password: ''
},
rules: {
username: [
{
username: [{
required: true,
message: 'enter one user name',
trigger: 'blur'
}
],
password: [
{
}],
password: [{
required: true,
message: 'Please input a password',
trigger: 'blur'
}
]
}]
}
};
},
@@ -71,7 +66,7 @@ export default {
this.$refs.login.validate((valid) => {
if (valid) {
this.$api
.post('api/user/checkLogin', this.param)
.post('api/User/checkLogin', this.param)
.then((res) => {
console.log(res);
if (res.code == 1) {
@@ -79,13 +74,22 @@ export default {
return false;
} else {
this.$message.success('login success');
localStorage.setItem('ms_username', res.userinfo.account);
// U_status 0超级管理员 1编辑 2作者
if (this.param.username == 'superadmin' || this.param.username == 'wuxiongzhi2') {
localStorage.setItem('ms_userrole', 'admin');
} else if (res.userinfo.type == 1 && res.userinfo.is_reviewer) {
localStorage.setItem('ms_userrole', 'reviewer');
localStorage.setItem('U_status', '0'); //超级管理员
localStorage.setItem('U_role', 'superadmin');
localStorage.setItem('U_name', res.userinfo.account);
localStorage.setItem('U_id', res.userinfo.user_id);
} else if (res.data.roles.includes('editor')) {
localStorage.setItem('U_status', '1'); //编辑
localStorage.setItem('U_role', res.data.roles);
localStorage.setItem('U_name', res.data.userinfo.account);
localStorage.setItem('U_id', res.data.userinfo.user_id);
} else {
localStorage.setItem('ms_userrole', res.userinfo.type);
localStorage.setItem('U_status', '2'); //其余的身份
localStorage.setItem('U_role', res.data.roles);
localStorage.setItem('U_name', res.data.userinfo.account);
localStorage.setItem('U_id', res.data.userinfo.user_id);
}
this.$router.push('/');
}
@@ -117,28 +121,28 @@ export default {
location.href = this.orcidLink;
}
}
};
};
</script>
<style scoped>
.login-wrap {
.login-wrap {
position: relative;
width: 100%;
height: 100%;
background-image: url(../../assets/img/login-bg.jpg);
background-size: 100%;
}
}
.ms-title {
.ms-title {
width: 100%;
line-height: 50px;
text-align: center;
font-size: 20px;
color: #fff;
border-bottom: 1px solid #ddd;
}
}
.ms-login {
.ms-login {
position: absolute;
left: 50%;
top: 50%;
@@ -147,31 +151,31 @@ export default {
border-radius: 5px;
background: rgba(255, 255, 255, 0.3);
overflow: hidden;
}
}
.ms-content {
.ms-content {
padding: 30px 30px;
}
}
.login-btn {
.login-btn {
text-align: center;
}
}
.login-btn button {
.login-btn button {
width: 100%;
height: 36px;
margin-bottom: 10px;
}
}
.login-tips {
.login-tips {
font-size: 12px;
line-height: 30px;
color: #fff;
}
}
.orcid {
.orcid {
display: block;
width: 15px;
height: 15px;
}
}
</style>

View File

@@ -52,7 +52,7 @@
<el-option key="B" label="Review" value="B"></el-option>
<el-option key="C" label="Case report" value="C"></el-option>
<el-option key="M" label="Meta-analysis" value="M"></el-option>
<el-option key="P" label="Research proposal" value="P"></el-option>
<el-option key="P" label="Research proposal" value="P"></el-option>
<el-option key="N" label="News" value="N"></el-option>
<el-option key="T" label="Comment" value="T"></el-option>
<el-option key="O" label="Others" value="O"></el-option>
@@ -283,9 +283,9 @@
<el-dialog title="" :visible.sync="licensebox" width="30%">
<span style="word-wrap:break-word; word-break:normal; ">
Creative Commons Licensing<br>
TMR Publishing Group provides authors the choice of applying the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) licenses defined below, to be determined after acceptance:<br>
TMR Publishing Group provides authors the choice of applying the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) licenses defined below, to be determined after acceptance:<br>
Attribution: CC BY-NC 4.0<br>
This license lets others distribute, remix, tweak, and build upon your work. They can not use the material for commercial purposes.
This license lets others distribute, remix, tweak, and build upon your work. They can not use the material for commercial purposes.
</span>
<span slot="footer" class="dialog-footer">
<el-button @click="licensebox = false">close</el-button>
@@ -305,7 +305,7 @@ export default {
loading: false,
form: {
journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 1,
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
title: '',
major: '',
cmajor: '',

View File

@@ -11,7 +11,7 @@
<span>
<p>
I am writing just to follow up on the suggestion from the editor of {{ form.journalname }} that you might be
interested in submitting your paper to {{ transinfo.jourtitle }} instead.<br /><br />
interested in submitting your paper to {{ transinfo.jourtitle }} instead.<br /><br />
</p>
<p>
If you choose to pursue publication in {{ transinfo.jourtitle }},
@@ -385,7 +385,7 @@ export default {
articleId: this.$route.query.id,
journal: '',
journalname: '',
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
title: '',
accept_sn: '',
abstrart: '',
@@ -436,7 +436,7 @@ export default {
frag = 'Meta-analysis';
break;
case 'P':
frag = 'Research proposal';
frag = 'Research proposal';
break;
case 'N':
frag = 'News';

View File

@@ -515,7 +515,7 @@ export default {
totalpageFileList:[],
manuscirptFileList: [],
editform: {
editname: localStorage.getItem('ms_username'),
editname: localStorage.getItem('U_name'),
articleId: this.$route.query.id,
state: 0,
trsjournal:0,
@@ -605,7 +605,7 @@ export default {
frag = 'Meta-analysis';
break;
case 'P':
frag = 'Research proposal';
frag = 'Research proposal';
break;
case 'N':
frag = 'News';

View File

@@ -87,7 +87,7 @@ export default {
return {
items: '',
query: {
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
journal: localStorage.getItem('ms_journal_alias')?parseInt(localStorage.getItem('ms_journal_alias')):0,
name: '',
state:0,

View File

@@ -102,7 +102,7 @@ export default {
return {
items: '',
query: {
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
journal: 0,
name: '',
state:-1,

View File

@@ -394,13 +394,13 @@ export default {
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
dateId: this.$route.query.id,
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
articlefileList: [],
articlezipList: [],
dialogFormVisible: false,
activeNames: ['1', '2', '3', '4', '5', '6', '7'],
detailDate: {
editor: localStorage.getItem('ms_username'),
editor: localStorage.getItem('U_name'),
artrevid: '',
article: '',
reviewer: '',

View File

@@ -52,7 +52,7 @@ export default {
articleId: this.$route.query.id,
journal: '',
journalname: '',
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
title: '',
accept_sn: '',
abstrart: '',

View File

@@ -136,11 +136,11 @@ export default {
data() {
return {
baseUrl: this.Common.baseUrl,
name:localStorage.getItem('ms_username'),
name:localStorage.getItem('U_name'),
userdata: '',
loading: false,
reviewerForm: {
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
journal: '',
gender:1,
introduction:'',

View File

@@ -3,7 +3,7 @@
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-connection"></i> Journal list
<i class="el-icon-connection"></i> Editor list
</el-breadcrumb-item>
</el-breadcrumb>
</div>

View File

@@ -0,0 +1,361 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-connection"></i> Editorial board list
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container">
<div class="handle-box">
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="addEditor">add</el-button>
</div>
<div class="handle-box" :rules="rules">
<el-select v-model="query.journal_id" placeholder="请选择期刊" @change="chan_id">
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
</el-select>
</div>
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header">
<el-table-column prop="account" label="username" align="center"></el-table-column>
<el-table-column prop="realname" label="realname" align="center"></el-table-column>
<el-table-column prop="phone" label="phone" align="center"></el-table-column>
<el-table-column prop="email" label="email" align="center"></el-table-column>
<el-table-column label="" width="100" align="center">
<template slot-scope="scope">
<el-button type="text" icon="el-icon-delete" class="red" @click="handleDelete(scope.$index, scope.row)">Delete</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- 添加弹出框 -->
<el-dialog title="Add editorial board" :visible.sync="addVisible" width="40%">
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="150px">
<el-form-item label="account" prop="account">
<el-input v-model="addForm.account" @blur='saerNa_U()'></el-input>
</el-form-item>
<el-form-item label="email" prop="email">
<el-input v-model="addForm.email" @blur='saerEm_U()'></el-input>
</el-form-item>
<el-form-item label="journal" prop="journal_id">
<el-select v-model="addForm.journal_id" filterable placeholder="Please select a responsible Journal" value-key="groupID"
style="width: 300px;">
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="realname" prop="realname">
<el-input v-model="addForm.realname"></el-input>
</el-form-item>
<el-form-item label="password" prop="password">
<el-input v-model="addForm.password" type="password"></el-input>
</el-form-item>
<el-form-item label="Confirm password" prop="repassword">
<el-input v-model="addForm.repassword" type="password"></el-input>
</el-form-item>
<el-form-item label="phone" prop="phone">
<el-input v-model="addForm.phone"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">Cancel</el-button>
<el-button type="primary" @click="saveAdd(addForm)">OK</el-button>
</span>
</el-dialog>
<!-- 已有信息弹出框 -->
<el-dialog title="Add editorial board" :visible.sync="oldVisible" width="40%">
<el-form ref="old_Form" :model="oldForm" :rules="rules" label-width="100px">
<el-form-item label="account">
{{oldForm.account}}
</el-form-item>
<el-form-item label="email">
{{oldForm.email}}
</el-form-item>
<el-form-item label="journal" prop="journal_id">
<el-select v-model="oldForm.journal_id" filterable placeholder="Please select a responsible Journal" value-key="groupID"
style="width: 300px;">
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="realname">
{{oldForm.realname}}
</el-form-item>
<el-form-item label="phone">
{{oldForm.phone}}
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="oldVisible = false">Cancel</el-button>
<el-button type="primary" @click="saveOld(oldForm)">OK</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit_id: localStorage.getItem('U_id'),
tableData: [],
df_jour: [],
addVisible: false,
oldVisible: false,
addForm: {},
oldForm: {},
aid: -1,
id: -1,
query: {
journal_id: 0,
},
rules: {
account: [{
required: true,
message: 'Please input account',
trigger: 'blur'
}],
email: [{
required: true,
message: 'Please input email',
trigger: 'blur'
}, {
validator: function(rule, value, callback) {
if (/^[-.-_A-Za-z0-9]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(value) == false) {
callback(new Error("Please enter the correct email format"));
} else {
callback();
}
},
trigger: "blur"
}],
journal_id: [{
required: true,
message: 'Please select a responsible Journal',
trigger: 'blur'
}],
password: [{
required: true,
message: 'Please input password',
trigger: 'blur'
}],
repassword: [{
required: true,
message: 'Please input confirm password',
trigger: 'blur'
}]
}
};
},
created() {
this.getjour();
// this.getdate();
},
methods: {
// 获取编委和负责期刊列表数据
getdate() {
this.$api
.post('api/Chief/getJournalBoard', this.query)
.then(res => {
this.tableData = res.data.boards;
})
.catch(err => {
console.log(err);
});
},
getjour() {
this.$api
.post('api/Chief/getJournalsByEditor', {
'user_id': this.edit_id
})
.then(res => {
if (res.code == 0) {
this.df_jour = res.data.journals;
this.query.journal_id = this.df_jour[0].journal_id
this.$api
.post('api/Chief/getJournalBoard', this.query)
.then(res => {
this.tableData = res.data.boards;
})
.catch(err => {
console.log(err);
});
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
},
// 下拉分类搜索
chan_id(event) {
this.getdate();
},
// 添加操作
addEditor(index, row) {
this.aid = index;
this.addVisible = true;
},
// 查找与他相同的账号
saerNa_U() {
if (this.addForm.account != undefined) {
this.$api
.post('api/Chief/checkEmailForUser', {
'email': this.addForm.account
})
.then(res => {
if (res.code == 0) {
if (res.data.user_info != null) {
this.$confirm('该账户已存在,是否在该账户下操作?', '提示', {
type: 'warning'
})
.then(() => {
this.addVisible = false;
this.$refs.add_Form.resetFields();
// this.id = index;
this.oldVisible = true;
this.oldForm = res.data.user_info;
})
.catch(() => {});
}
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}
},
// 查找与他相同的邮箱
saerEm_U() {
if (this.addForm.email != undefined) {
this.$api
.post('api/Chief/checkEmailForUser', {
'email': this.addForm.email
})
.then(res => {
if (res.code == 0) {
if (res.data.user_info != null) {
this.$confirm('该账户已存在,是否在该账户下操作?', '提示', {
type: 'warning'
})
.then(() => {
this.addVisible = false;
this.$refs.add_Form.resetFields();
// this.id = index;
this.oldVisible = true;
this.oldForm = res.data.user_info;
})
.catch(() => {});
}
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}
},
// 保存添加
saveAdd(addForm) {
if (addForm.password == addForm.repassword) {
this.$refs.add_Form.validate((valid) => {
if (valid) {
this.$api
.post('api/Chief/addJournalBoard', this.addForm)
.then(res => {
if (res.code == 0) {
this.addVisible = false;
this.$refs.add_Form.resetFields();
this.$message.success(`添加成功`);
this.getdate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
} else {
return false;
}
});
} else {
this.$message.error("两次新密码输入不一致");
}
},
// 保存old添加
saveOld(oldForm) {
this.$refs.old_Form.validate((valid) => {
if (valid) {
this.$api
.post('api/Chief/addJournalBoardHas', this.oldForm)
.then(res => {
if (res.code == 0) {
this.oldVisible = false;
this.$refs.old_Form.resetFields();
this.$message.success(`添加成功`);
this.getdate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
} else {
return false;
}
});
},
// 删除操作
handleDelete(index, row) {
// 二次确认删除
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/Chief/delJournalBoard', row)
.then(res => {
if (res.code == 0) {
this.$message.success('删除成功');
this.getdate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
})
.catch(() => {});
}
}
};
</script>
<style scoped>
.handle-box {
margin-bottom: 20px;
}
.table {
width: 100%;
font-size: 14px;
}
.red {
color: #ff0000;
}
</style>

View File

@@ -0,0 +1,183 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-connection"></i> Journal list
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container">
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header">
<el-table-column prop="title" label="title" width="320px"></el-table-column>
<el-table-column label="chief" align="center">
<template slot-scope="scope">
<div v-for="item in scope.row.chief">
{{item.realname==''?item.account:(item.realname!=''?item.account+' ('+item.realname+')':'')}}
<el-button type="text" icon="el-icon-delete" class="red" @click="handleDelete(item)"></el-button>
</div>
<el-button type="text" icon="el-icon-edit" @click="handleEdit(scope.$index, scope.row)">Choice</el-button>
</template>
</el-table-column>
<el-table-column prop="issn" label="issn" width="130px"></el-table-column>
<el-table-column prop="email" label="email" width="240px"></el-table-column>
<el-table-column prop="website" label="website" width="300px"></el-table-column>
</el-table>
</div>
<!-- 选择弹出框 -->
<el-dialog title="Choice editor" :visible.sync="editVisible" width="30%">
<el-form ref="edit_Form" :model="editForm" :rules="rules" label-width="80px">
<el-form-item label="title">
<template slot-scope="scope">
{{editForm.title}}
</template>
</el-form-item>
<el-form-item label="chief" prop="chief">
<el-select v-model="editForm.user_id" filterable placeholder="Please select the editor in chief" value-key="groupID"
style="width: 250px;">
<el-option v-for="item in chietry"
:label="item.realname==''?item.account:(item.realname!=''?item.account+' ('+item.realname+')':'')"
:key="item.user_id" :value="item.user_id"></el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editVisible = false">Cancel</el-button>
<el-button type="primary" @click="saveEdit(editForm)">OK</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [],
editVisible: false,
editForm: {},
idx: -1,
chietry: [],
rules: {
account: [{
required: true,
message: 'Please input account',
trigger: 'blur'
}]
}
};
},
created() {
this.getdate();
},
methods: {
// 获取列表数据
getdate() {
this.$api
.post('api/Chief/getJournalForChief')
.then(res => {
this.tableData = res.data.journals;
})
.catch(err => {
console.log(err);
});
},
// 编辑操作
handleEdit(index, row) {
this.idx = index;
this.editForm = Object.assign({}, row);
// 获取下拉数据
this.$api
.post('api/Chief/getChiefList')
.then(res => {
if (res.code == 0) {
this.chietry = res.data.chiefs;
for (let i = 0; i < this.chietry.length; i++) {
for (let r = 0; r < this.editForm.chief.length; r++) {
if (this.chietry[i].user_id == this.editForm.chief[r].user_id) {
this.chietry.splice(i, 1);
if (i == 0) {
i = 0
} else {
i = i - 1
}
}
}
}
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
this.editVisible = true;
},
// 保存编辑
saveEdit(editForm) {
this.$refs.edit_Form.validate((valid) => {
if (valid) {
this.$api
.post('api/Chief/addChiefToJournal', this.editForm)
.then(res => {
if (res.code == 0) {
this.editVisible = false;
this.$message.success(`更改第 ${this.idx + 1} 行成功`);
this.getdate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
} else {
this.$message.error('error submit!!');
return false;
}
});
},
// 删除操作
handleDelete(item) {
// 二次确认删除
this.$confirm('Are you sure you want to delete', 'Delete', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/Chief/delChiefToJournal', item)
.then(res => {
if (res.code == 0) {
this.$message.success('删除成功');
this.getdate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
})
.catch(() => {});
}
}
};
</script>
<style scoped>
.handle-box {
margin-bottom: 20px;
}
.table {
width: 100%;
font-size: 14px;
}
.red {
color: #ff0000;
}
</style>

View File

@@ -58,7 +58,7 @@ export default {
jdt:false,
mediaUrl: this.Common.mediaUrl,
baseUrl: this.Common.baseUrl,
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
upform: {
course: '',
url: ''

View File

@@ -0,0 +1,49 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-collection"></i> {{this.head_line}}
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container container_l">
789+456
</div>
</div>
</template>
<script>
export default {
data() {
return {
head_line: "",
tableData: []
};
},
mounted() {
},
created() {
this.getData();
},
methods: {
// 获取数据
getData() {
this.head_line = localStorage.getItem('journal_title');
}
},
computed: {
},
watch: {
$route(to, from) {
this.getData()
}
}
};
</script>
<style scoped>
</style>

View File

@@ -335,7 +335,7 @@ export default {
totalpageFileList:[],
manuscirptFileList: [],
editform: {
editname: localStorage.getItem('ms_username'),
editname: localStorage.getItem('U_name'),
articleId: this.$route.query.id,
state: '',
editormsg: ''
@@ -412,7 +412,7 @@ export default {
frag = 'Meta-analysis';
break;
case 'P':
frag = 'Research proposal';
frag = 'Research proposal';
break;
case 'N':
frag = 'News';

View File

@@ -7,7 +7,7 @@ export default {
data: function () {
return {
query: {
account: localStorage.getItem('ms_username'),
account: localStorage.getItem('U_name'),
code: this.$route.query.code
},
loading: true,

View File

@@ -2,7 +2,8 @@
<div class="login-wrap" v-loading="loading">
<template>
<p class="ms_notes">
Thank you for using ORCID ID to login our website, please continue to login or register TMR Publshing Group account to connect with your ORCID ID.
Thank you for using ORCID ID to login our website, please continue to login or register TMR Publshing Group account
to connect with your ORCID ID.
</p>
<!-- <p class="ms_noter">
如果你拥有账户但没有绑定相应的ORCID请点击绑定操作<br/>
@@ -21,22 +22,14 @@
</el-form-item>
<!-- 密码 -->
<el-form-item prop="password">
<el-input
size="small"
v-model="loginForm.password"
auto-complete="off"
placeholder="password"
show-password
>
<el-input size="small" v-model="loginForm.password" auto-complete="off" placeholder="password" show-password>
<i slot="prefix" class="el-icon-lock"></i>
</el-input>
</el-form-item>
<!-- 按钮 -->
<el-row justify="center">
<el-form-item>
<el-button type="primary" @click.native.prevent="orcidBind" class="register-submit" style="width: 100%"
>bind</el-button
>
<el-button type="primary" @click.native.prevent="orcidBind" class="register-submit" style="width: 100%">bind</el-button>
</el-form-item>
</el-row>
</el-form>
@@ -54,25 +47,14 @@
</el-form-item>
<!-- 密码 -->
<el-form-item prop="password">
<el-input
size="small"
v-model="registerForm.password"
auto-complete="off"
placeholder="password"
show-password
>
<el-input size="small" v-model="registerForm.password" auto-complete="off" placeholder="password" show-password>
<i slot="prefix" class="el-icon-lock"></i>
</el-input>
</el-form-item>
<!-- 确认密码 -->
<el-form-item prop="passwordd">
<el-input
size="small"
v-model="registerForm.passwordd"
auto-complete="off"
placeholder="password"
show-password
>
<el-input size="small" v-model="registerForm.passwordd" auto-complete="off" placeholder="password"
show-password>
<i slot="prefix" class="el-icon-lock"></i>
</el-input>
</el-form-item>
@@ -97,13 +79,7 @@
<!-- 按钮 -->
<el-row justify="center">
<el-form-item>
<el-button
type="primary"
@click.native.prevent="orcidRegister"
class="register-submit"
style="width: 100%"
>bind</el-button
>
<el-button type="primary" @click.native.prevent="orcidRegister" class="register-submit" style="width: 100%">bind</el-button>
</el-form-item>
</el-row>
</el-form>
@@ -115,10 +91,10 @@
</template>
<script>
export default {
data: function () {
export default {
data: function() {
return {
account: localStorage.getItem('ms_username'),
account: localStorage.getItem('U_name'),
code: this.$route.query.code,
// loading: true,
has_user: true,
@@ -126,43 +102,32 @@ export default {
registerForm: {},
activeName: 'first',
registerRules: {
username: [
{
username: [{
required: true,
message: 'Please enter your username.',
trigger: 'blur'
}
],
password: [
{
}],
password: [{
required: true,
message: 'Please enter your password.',
trigger: 'blur'
}
],
passwordd: [
{
}],
passwordd: [{
required: true,
message: 'Please enter your password.',
trigger: 'blur'
}
],
name: [
{
}],
name: [{
required: true,
message: 'Please enter your real name.',
trigger: 'blur'
}
],
phone: [
{
}],
phone: [{
required: true,
message: 'Please enter the correct mobile phone number.',
trigger: 'blur'
}
],
email: [
{
}],
email: [{
required: true,
message: 'Please enter your email address.',
trigger: 'blur'
@@ -176,13 +141,15 @@ export default {
}
};
},
created: function () {
created: function() {
this.initLinkOrcid();
},
methods: {
initLinkOrcid() {
this.$api
.post('api/User/OrcidLogin', { code: this.code })
.post('api/User/OrcidLogin', {
code: this.code
})
.then((res) => {
if (res.data.user == null) {
this.loginForm.orcid = res.data.orcid;
@@ -190,7 +157,7 @@ export default {
this.loading = false;
} else {
this.$message.success('Login success');
localStorage.setItem('ms_username', res.data.user.account);
localStorage.setItem('U_name', res.data.user.account);
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
localStorage.setItem('ms_userrole', 'reviewer');
} else {
@@ -212,7 +179,7 @@ export default {
this.$message.error(res.data.msg);
} else {
this.$message.success('Binding success');
localStorage.setItem('ms_username', res.data.user.account);
localStorage.setItem('U_name', res.data.user.account);
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
localStorage.setItem('ms_userrole', 'reviewer');
} else {
@@ -231,7 +198,7 @@ export default {
.post('api/User/orcidRegister', this.registerForm)
.then((res) => {
this.$message.success('Register success');
localStorage.setItem('ms_username', res.data.user.account);
localStorage.setItem('U_name', res.data.user.account);
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
localStorage.setItem('ms_userrole', 'reviewer');
} else {
@@ -244,34 +211,34 @@ export default {
});
}
}
};
};
</script>
<style>
.login-wrap {
.login-wrap {
position: relative;
width: 100%;
height: 100%;
background-image: url(../../assets/img/login-bg.jpg);
background-size: 100%;
padding-top: 80px;
}
}
.ms_login,
.ms_link {
.ms_login,
.ms_link {
width: 400px;
margin: 0 auto;
}
}
.ms_login .ms-title,
.ms_link .ms-title {
.ms_login .ms-title,
.ms_link .ms-title {
text-align: center;
font-size: 18px;
margin: 20px 0;
color: #fff;
}
}
.ms_notes {
.ms_notes {
width: 400px;
margin: 0 auto 60px auto;
padding: 20px 50px;
@@ -279,34 +246,34 @@ export default {
background: rgba(255, 255, 255, 0.5);
color: #fe7300;
border-radius: 5px;
}
}
/* .ms_link {}
/* .ms_link {}
.ms_link .ms-title {} */
.ms_tab_n {
.ms_tab_n {
width: 500px;
margin: 0 auto;
border-radius: 5px;
padding-bottom: 30px;
background: rgba(255, 255, 255, 0.3);
}
}
.ms_tab_n .el-tabs__nav {
.ms_tab_n .el-tabs__nav {
margin-left: 142px;
height: 60px;
padding-top: 25px;
}
}
.ms_tab_n .el-tabs__item {
.ms_tab_n .el-tabs__item {
font-size: 22px;
padding: 0 40px;
color: #fff;
}
}
.ms_tab_n .el-tabs__active-bar {
.ms_tab_n .el-tabs__active-bar {
left: -28px;
width: 120px !important;
}
}
</style>

View File

@@ -72,7 +72,7 @@ export default {
data() {
return {
query: {
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
journalId: 0,
pageIndex: 1,
pageSize: 10

View File

@@ -517,7 +517,7 @@ export default {
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
dateId: this.$route.query.id,
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
loading:false,
articlefileList: [],
figFileList: [],

View File

@@ -59,9 +59,9 @@ export default {
name:'reviewerArticleList',
data() {
return {
userrole:localStorage.getItem('ms_userrole'),
userrole:localStorage.getItem('U_status'),
query: {
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
pageIndex: 1,
pageSize: 10
},

View File

@@ -101,7 +101,7 @@ export default {
mediaUrl:this.Common.mediaUrl,
baseUrl: this.Common.baseUrl,
fullscreenLoading: false,
username: localStorage.getItem('ms_username'),
username: localStorage.getItem('U_name'),
upform: {
journal: '',
url: ''

View File

@@ -9,57 +9,40 @@
</div>
<div class="container">
<div class="handle-box">
<el-select
v-model="query.journalId"
@change="getdate"
placeholder="Please select journal"
>
<el-select v-model="query.journalId" @change="getDate" placeholder="Please select journal">
<el-option :key="0" label="All journal" :value="0"></el-option>
<el-option
v-for="item in journalList"
:key="item.journal_id"
:label="item.title"
:value="item.journal_id"
></el-option>
<el-option v-for="item in journalList" :key="item.journal_id" :label="item.title" :value="item.journal_id"></el-option>
</el-select>
<!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="addJournal">add</el-button> -->
</div>
<el-table
:data="tableData"
border
stripe
class="table"
ref="multipleTable"
header-cell-class-name="table-header"
>
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header">
<!-- <el-table-column prop="user_id" label="No." align="center"></el-table-column> -->
<el-table-column prop="account" label="Account" align="center"></el-table-column>
<el-table-column prop="realname" label="Name" align="center"></el-table-column>
<el-table-column prop="country" label="Country" align="center"></el-table-column>
<el-table-column prop="company" label="Affiliation" align="center"></el-table-column>
<el-table-column label="" width="180" align="center">
<el-table-column label="" width="220" align="center">
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
plain
icon="el-icon-tickets"
@click="showdetail(scope.row)"
>Detail</el-button>
<el-button size="mini" type="primary" plain icon="el-icon-tickets" @click="showdetail(scope.row)">Detail</el-button>
<el-button size="mini" type="danger" plain icon="el-icon-delete" @click="showDelete(scope.row)">Delete</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination
background
layout="total, prev, pager, next"
:current-page="query.pageIndex"
:page-size="query.pageSize"
:total="Total"
@current-change="handlePageChange"
></el-pagination>
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex" :page-size="query.pageSize"
:total="Total" @current-change="handlePageChange"></el-pagination>
</div>
</div>
<!-- 删除弹出框 -->
<el-dialog title="删除" :visible.sync="delOpen" width="40%">
<div v-for="item in lineOptions" :name='item.journal_id' :value='item.reviewer_id' style="margin-left: 60px;">
{{item.journal.title}} - {{item.reviewer.account}}
<el-button type="text" icon="el-icon-delete" @click="lastDelete($event)" style="color: #FF0000;margin-left: 20px;">Delete</el-button>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="delOpen = false;" type="primary"> </el-button>
</span>
</el-dialog>
<!-- <el-dialog title="change" :visible.sync="editVisible" width="40%">
<el-form ref="changform" :model="change" label-width="80px">
<el-form-item label="editormsg">
@@ -86,29 +69,36 @@
</template>
<script>
export default {
name:'reviewerList',
export default {
name: 'reviewerList',
data() {
return {
query: {
username: localStorage.getItem('ms_username'),
journalId:0,
username: localStorage.getItem('U_name'),
journalId: 0,
pageIndex: 1,
pageSize: 10
},
tableData: [],
journalList:[],
journalList: [],
Total: 0,
editVisible: false,
// editVisible: false,
delForm: {
line: []
},
delOpen: false,
addForm: {},
lineOptions: [],
mess_age: {}
};
},
created() {
this.getdate();
this.getDate();
this.initselect();
},
methods: {
// 获取编辑列表数据
getdate() {
getDate() {
this.$api
.post('api/User/getreviewerList', this.query)
.then(res => {
@@ -122,15 +112,65 @@ export default {
// 分页导航
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getdate();
this.getDate();
},
// 查看详情
showdetail(row) {
this.$router.push({ path: 'reviewerDetail', query: { id: row.user_id } });
this.$router.push({
path: 'reviewerDetail',
query: {
id: row.user_id
}
});
},
// 删除弹窗
showDelete(index, row) {
this.aid = index;
this.delOpen = true;
this.$api
.post('api/User/getReviewerForDel', {
reviewer_id: index.reviewer_id,
editor_account: localStorage.getItem('U_name')
})
.then(res => {
this.lineOptions = res.data;
})
.catch(err => {
console.log(err);
});
},
// 删除操作
lastDelete(e) {
this.mess_age.reviewer_id = e.currentTarget.parentElement.getAttribute('value')
this.mess_age.journal_id = e.currentTarget.parentElement.getAttribute('name')
// 二次确认删除
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/User/deleteArticleReviewer',this.mess_age)
.then(res => {
if (res.code == 0) {
this.delOpen = false;
this.$message.success('删除成功');
this.getDate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
})
.catch(() => {});
},
//初始化期刊选项
initselect() {
this.$api
.post('api/Article/getJournal', { username: this.query.username })
.post('api/Article/getJournal', {
username: this.query.username
})
.then(res => {
this.journalList = res;
})
@@ -139,48 +179,39 @@ export default {
});
}
}
};
};
</script>
<style scoped>
.handle-box {
.handle-box {
margin-bottom: 20px;
}
}
.handle-select {
width: 120px;
}
.handle-input {
width: 300px;
display: inline-block;
}
.table {
.table {
width: 100%;
font-size: 14px;
}
.red {
color: #ff0000;
}
.mr10 {
margin-right: 10px;
}
.table-td-thumb {
}
.table-td-thumb {
display: block;
margin: auto;
width: 40px;
height: 40px;
}
.el-table .warning-row {
}
.el-table .warning-row {
background: #f3ca7f;
}
.el-table .success-row {
}
.el-table .success-row {
background: #bcfc9a;
}
.el-table .normol-row{
}
.el-table .normol-row {
background: #d8f1c7
}
.el-table .red-row{
}
.el-table .red-row {
background: #f05555;
}
}
</style>

View File

@@ -29,8 +29,8 @@ const i18n = new VueI18n({
//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
document.title = `${to.meta.title} | Traditional Medicine Research`;
const role = localStorage.getItem('ms_username');
const userrole = localStorage.getItem('ms_userrole');
const role = localStorage.getItem('U_name');
const userrole = localStorage.getItem('U_status');
if (!role && to.path!='/register'&&to.path!=='/submission'&&to.path!=='/orcidLink'&&to.path!=='/img'&& to.path !=='/reviewer'&&to.path !=='/thanks' &&to.path !== '/login'&&to.path.search(/retrieve/i)<0 ) {
next('/login');
// } else if (to.meta.permission) {

View File

@@ -9,20 +9,22 @@ Router.prototype.push = function push(location) {
export default new Router({
mode: 'history',
routes: [
{
routes: [{
path: '/',
redirect: '/dashboard'
},
{
path: '/',
component: () => import(/* webpackChunkName: "home" */ '../components/common/Home.vue'),
meta: { title: '自述文件' },
children: [
{
component: () => import( /* webpackChunkName: "home" */ '../components/common/Home.vue'),
meta: {
title: '自述文件'
},
children: [{
path: '/dashboard',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/Dashboard.vue'),
meta: { title: 'Home' }
component: () => import( /* webpackChunkName: "dashboard" */ '../components/page/Dashboard.vue'),
meta: {
title: 'Home'
}
},
// {
// path: '/icon',
@@ -31,165 +33,243 @@ export default new Router({
// },
{
path: '/articleList',
component: () => import(/* webpackChunkName: "table" */ '../components/page/articleList.vue'),
meta: { title: 'My manuscript' }
component: () => import( /* webpackChunkName: "table" */ '../components/page/articleList.vue'),
meta: {
title: 'My manuscript'
}
},
{
path: '/articleListEditor',
component: () => import(/* webpackChunkName: "table" */ '../components/page/articleListEditor.vue'),
meta: { title: 'Manuscript to be examined' ,permission: 2}
component: () => import( /* webpackChunkName: "table" */ '../components/page/articleListEditor.vue'),
meta: {
title: 'Manuscript to be examined',
permission: 2
}
},
{
path:'/articleDetailEditor',
path: '/articleDetailEditor',
component: () => import('../components/page/articleDetailEditor.vue'),
meta: { title: 'Manuscript detail' ,permission: 2},
hidden:true
meta: {
title: 'Manuscript detail',
permission: 2
},
hidden: true
},
{
path: '/articleDetail',
component: () => import('../components/page/articleDetail.vue'),
meta: { title: 'Manuscript detail' ,},
hidden:true
meta: {
title: 'Manuscript detail',
},
hidden: true
},
{
path:'articleRevise',
component:()=>import('../components/page/articleRevise.vue'),
meta:{title:'Manuscript revise'},
hidden:true
path: 'articleRevise',
component: () => import('../components/page/articleRevise.vue'),
meta: {
title: 'Manuscript revise'
},
hidden: true
},
{
path: '/articleAdd',
component: () => import('../components/page/articleAdd.vue'),
meta: { title: 'Add manuscript' }
meta: {
title: 'Add manuscript'
}
},
{
path:'/articleReviewer',
component:()=>import('../components/page/articleReviewer.vue'),
meta:{title:'Article reviewer'},
hidden:true
path: '/articleReviewer',
component: () => import('../components/page/articleReviewer.vue'),
meta: {
title: 'Article reviewer'
},
hidden: true
},
{
path:'/articleReviewerDetail',
component:()=>import('../components/page/articleReviewerDetail'),
meta:{title:'Article detail'},
hidden:true
path: '/articleReviewerDetail',
component: () => import('../components/page/articleReviewerDetail'),
meta: {
title: 'Article detail'
},
hidden: true
},
{
path:'/editorList',
component: ()=>import('../components/page/editorList.vue'),
meta:{title:'Editor list'}
path: '/editorList',
component: () => import('../components/page/editorList.vue'),
meta: {
title: 'Editor list'
}
},
{
path:'/editorAdd',
component:()=>import('../components/page/editorAdd.vue'),
meta:{title:'Editor add'}
path: '/editorAdd',
component: () => import('../components/page/editorAdd.vue'),
meta: {
title: 'Editor add'
}
},
{
path:'/journalList',
component:()=>import('../components/page/journallist.vue'),
meta:{title:'Journal list'}
path: '/journalList',
component: () => import('../components/page/journallist.vue'),
meta: {
title: 'Journal list'
}
},
{
path:'authorApplyReviewer',
component:()=>import('../components/page/authorApplyReviewer.vue'),
meta:{title:'Author apply'},
hidden:true
path: 'authorApplyReviewer',
component: () => import('../components/page/authorApplyReviewer.vue'),
meta: {
title: 'Author apply'
},
hidden: true
},
{
path:'/journalAdd',
component:()=>import('../components/page/journalAdd.vue'),
meta:{title:'Journal add'}
path: '/journalAdd',
component: () => import('../components/page/journalAdd.vue'),
meta: {
title: 'Journal add'
}
},
{
path:'/reviewerApplyList',
component:()=>import('../components/page/reviewerApplyList.vue'),
meta:{title:'Reviewer aplly list'}
path: '/reviewerApplyList',
component: () => import('../components/page/reviewerApplyList.vue'),
meta: {
title: 'Reviewer aplly list'
}
},
{
path:'/reviewerApplyDetail',
component:()=>import('../components/page/reviewerApplyDetail.vue'),
meta:({title:'Reviewer apply detail'}),
hidden:true
path: '/reviewerApplyDetail',
component: () => import('../components/page/reviewerApplyDetail.vue'),
meta: ({
title: 'Reviewer apply detail'
}),
hidden: true
},
{
path:'/reviewerArticleList',
component:()=>import('../components/page/reviewerArticleList.vue'),
meta:({title:'Reviewer article list'})
path: '/reviewerArticleList',
component: () => import('../components/page/reviewerArticleList.vue'),
meta: ({
title: 'Reviewer article list'
})
},
{
path:'/reviewerArticleDetail',
component:()=>import('../components/page/reviewerArticleDetail.vue'),
meta:({title:'Reviewer article detail'}),
hidden:true
path: '/reviewerArticleDetail',
component: () => import('../components/page/reviewerArticleDetail.vue'),
meta: ({
title: 'Reviewer article detail'
}),
hidden: true
},
{
path:'/reviewerList',
component:()=>import('../components/page/reviewerList.vue'),
meta:{title:'Reviewer list'}
path: '/reviewerList',
component: () => import('../components/page/reviewerList.vue'),
meta: {
title: 'Reviewer list'
}
},
{
path:'/reviewerDetail',
component:()=>import('../components/page/reviewerDetail.vue'),
meta:{title:'reviewer detail'},
hidden:true
path: '/reviewerDetail',
component: () => import('../components/page/reviewerDetail.vue'),
meta: {
title: 'reviewer detail'
},
hidden: true
},
{
path:'/adminImportReviewer',
component:()=>import('../components/page/adminImportReviewer.vue'),
meta:{title:'Import reviewer'}
path: '/adminImportReviewer',
component: () => import('../components/page/adminImportReviewer.vue'),
meta: {
title: 'Import reviewer'
}
},
{
path:'/adminImportreviewerError',
component:()=>import('../components/page/adminImportreviewerError.vue'),
meta:{title:'Import error'}
path: '/adminImportreviewerError',
component: () => import('../components/page/adminImportreviewerError.vue'),
meta: {
title: 'Import error'
}
},
{
path:'/reviewerImport',
component:()=>import('../components/page/reviewerImport.vue'),
meta:{title:'Reviewer import'}
path: '/reviewerImport',
component: () => import('../components/page/reviewerImport.vue'),
meta: {
title: 'Reviewer import'
}
},
{
path:'/authorApplySuccess',
component:()=>import('../components/page/authorApplySuccess.vue'),
meta:{title:'Apply success'}
path: '/authorApplySuccess',
component: () => import('../components/page/authorApplySuccess.vue'),
meta: {
title: 'Apply success'
}
},
{
path:'/reviewerImportError',
component:()=>import('../components/page/reviewerImportError.vue'),
meta:{title:'Import error'}
path: '/reviewerImportError',
component: () => import('../components/page/reviewerImportError.vue'),
meta: {
title: 'Import error'
}
},
{
path:'/monitorManuscript',
component:()=>import('../components/page/monitorManuscript.vue'),
meta:{title:'Manuscript list'}
path: '/monitorManuscript',
component: () => import('../components/page/monitorManuscript.vue'),
meta: {
title: 'Manuscript list'
}
},
{
path:'/monitorManuscriptDetail',
component:()=>import('../components/page/monitorManuscriptDetail.vue'),
meta:{title:'Manuscript detail'},
hidden:true
path: '/monitorManuscriptDetail',
component: () => import('../components/page/monitorManuscriptDetail.vue'),
meta: {
title: 'Manuscript detail'
},
hidden: true
},
{
path:'/chiefeditor',
component:()=>import('../components/page/chiefeditor.vue'),
meta:{title:'Editor list'},
hidden:true
path: '/chiefeditor',
component: () => import('../components/page/chiefeditor.vue'),
meta: {
title: 'Editor list'
},
hidden: true
},
{
path:'/chiefperiod',
component:()=>import('../components/page/chiefperiod.vue'),
meta:{title:'Journal list'},
hidden:true
path: '/chiefperiod',
component: () => import('../components/page/chiefperiod.vue'),
meta: {
title: 'Journal list'
},
hidden: true
},
{
path: '/editmbereditor',
component: () => import('../components/page/editmbereditor.vue'),
meta: {
title: 'Editor list'
},
hidden: true
},
{
path: '/editmberperiod',
component: () => import('../components/page/editmberperiod.vue'),
meta: {
title: 'Journal list'
},
hidden: true
},
{
path: '/404',
component: () => import(/* webpackChunkName: "404" */ '../components/page/404.vue'),
meta: { title: '404' }
component: () => import( /* webpackChunkName: "404" */ '../components/page/404.vue'),
meta: {
title: '404'
}
},
{
path: '/403',
component: () => import(/* webpackChunkName: "403" */ '../components/page/403.vue'),
meta: { title: '403' }
component: () => import( /* webpackChunkName: "403" */ '../components/page/403.vue'),
meta: {
title: '403'
}
},
// {
// path: '/donate',
@@ -198,60 +278,114 @@ export default new Router({
// }
]
},
{
path: '/',
component: () => import( /* webpackChunkName: "content" */ '../components/common/Content.vue'),
meta: {
title: 'Content'
},
children: [{
path: '/managing',
component: () => import( /* webpackChunkName: "managing" */ '../components/page/man_aging'),
meta: {
title: '主编'
}
}, {
path: '/editorial',
component: () => import( /* webpackChunkName: "editorial" */ '../components/page/man_aging'),
meta: {
title: '编委'
}
}, {
path: '/peerewer',
component: () => import( /* webpackChunkName: "peerewer" */ '../components/page/man_aging'),
meta: {
title: '审稿人'
}
}, {
path: '/youthed',
component: () => import( /* webpackChunkName: "youthed" */ '../components/page/man_aging'),
meta: {
title: '青年编委'
}
}]
},
{
path: '/login',
component: () => import(/* webpackChunkName: "login" */ '../components/page/Login.vue'),
meta: { title: 'Login' }
component: () => import( /* webpackChunkName: "login" */ '../components/page/Login.vue'),
meta: {
title: 'Login'
}
},
{
path: '/retrieve',
component: () => import(/* webpackChunkName: "retrieve" */ '../components/page/Retrieve.vue'),
meta: { title: 'Retrieve password' }
component: () => import( /* webpackChunkName: "retrieve" */ '../components/page/Retrieve.vue'),
meta: {
title: 'Retrieve password'
}
},
{
path: '/retrieveact',
component: () => import(/* webpackChunkName: "retrieveact" */ '../components/page/Retrieveact.vue'),
meta: { title: 'Retrieve password' }
component: () => import( /* webpackChunkName: "retrieveact" */ '../components/page/Retrieveact.vue'),
meta: {
title: 'Retrieve password'
}
},
{
path:'/submission',
component:()=>import('../components/page/submission.vue'),
meta:{title:'Submission system'}
path: '/submission',
component: () => import('../components/page/submission.vue'),
meta: {
title: 'Submission system'
}
},
{
path: '/register',
component: () => import(/* webpackChunkName: "register" */ '../components/page/Register.vue'),
meta: { title: 'Register' }
component: () => import( /* webpackChunkName: "register" */ '../components/page/Register.vue'),
meta: {
title: 'Register'
}
},
{
path:'/reviewer',
component:()=>import('../components/page/reviewer.vue'),
meta:{title:'reviewer'}
path: '/reviewer',
component: () => import('../components/page/reviewer.vue'),
meta: {
title: 'reviewer'
}
},
{
path:'/orcidLink',
component:()=>import('../components/page/orcidLink.vue'),
meta:{title:'orcidLink'}
path: '/orcidLink',
component: () => import('../components/page/orcidLink.vue'),
meta: {
title: 'orcidLink'
}
},
{
path:'/orcidBind',
component:()=>import('../components/page/orcidBind.vue'),
meta:{title:'orcidBind'}
path: '/orcidBind',
component: () => import('../components/page/orcidBind.vue'),
meta: {
title: 'orcidBind'
}
},
{
path:'/thanks',
component:()=>import('../components/page/thanks.vue'),
meta:{title:'thanks'}
path: '/thanks',
component: () => import('../components/page/thanks.vue'),
meta: {
title: 'thanks'
}
},
{
path:'/test',
component:()=>import('../components/page/test.vue'),
meta:{title:'test'}
path: '/test',
component: () => import('../components/page/test.vue'),
meta: {
title: 'test'
}
},
{
path:'/img',
component:()=>import('../components/page/img.vue'),
meta:{title:'img'}
path: '/img',
component: () => import('../components/page/img.vue'),
meta: {
title: 'img'
}
},
{
path: '*',