编辑工作台
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div style="min-width: 1200px;">
|
||||
<div class="handle-box">
|
||||
<el-badge :value="item.num" type="warning" v-for="item in statList" :hidden='item.num==0'
|
||||
<el-badge :value="item.num" type="warning" v-for="item in statList" :hidden='item.num==0||item.state==3||item.state==5'
|
||||
style="margin-right: 25px;">
|
||||
<el-button @click="query.state=item.state;getdate()" :type="query.state==item.state?'primary':''">
|
||||
{{$t('artstate.state'+item.state)}}
|
||||
@@ -40,7 +40,7 @@
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<div v-for="item in tableData" class="mangu_list">
|
||||
<div v-for="(item,ikgn) in tableData" class="mangu_list">
|
||||
<div>
|
||||
<font style="color: #666b7a;">ID : </font>
|
||||
<span
|
||||
@@ -51,6 +51,11 @@
|
||||
<!-- <b @click="showdetaileditor(item)" class="btnCliArt" style="margin-left: 15px;">
|
||||
<i class="el-icon-collection"></i> Detail
|
||||
</b> -->
|
||||
|
||||
<span style="color: #666b7a;margin-left: 50px;">Type :</span>
|
||||
<font>
|
||||
{{artType(item.type)}}
|
||||
</font>
|
||||
<span style="color: #666b7a;margin-left: 50px;">Countries :</span>
|
||||
<font v-for="(iken, index) in item.countrys">
|
||||
{{iken}}
|
||||
@@ -73,6 +78,9 @@
|
||||
<b @click="changeRepe(item)" class="btnCliArt">
|
||||
<i class="el-icon-edit"></i> Change
|
||||
</b>
|
||||
<b @click="openTracking(item)" class="btnCliArt" style="margin-left: 50px;">
|
||||
<i class="el-icon-data-line"></i> Manuscript Tracking
|
||||
</b>
|
||||
</div>
|
||||
<div class="man_title">
|
||||
<el-badge is-dot :hidden="item.author_act==1?false:true">
|
||||
@@ -83,12 +91,19 @@
|
||||
</div>
|
||||
|
||||
<div style="display: flex;margin-left: auto;">
|
||||
<div class="fixCard" style="width: 27%;">
|
||||
<div class="fixCard" style="width: 26%;">
|
||||
<b style="font-size: 16px;letter-spacing: -0.5px;">Manuscript File</b>
|
||||
<p style="height: 10px;"></p>
|
||||
<div class="fi_new" v-if="item.file.coverLetter">
|
||||
<p>Cover letter : </p>
|
||||
<div v-for="ikrm in item.file.coverLetter" :href="mediaUrl + ikrm.file_url">
|
||||
<p>
|
||||
Cover letter
|
||||
<sup style="color: #006699;">({{item.file.coverLetter.length}})</sup> :
|
||||
<b class="btnUpDown el-icon-arrow-up" v-if="item.file_cover==0"
|
||||
@click="changeFileUpdown(1,ikgn,'file_cover')"></b>
|
||||
<b class="btnUpDown el-icon-arrow-down" v-if="item.file_cover==1"
|
||||
@click="changeFileUpdown(0,ikgn,'file_cover')"></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.coverLetter" v-if="item.file_cover==1">
|
||||
<img src="../../assets/img/icon_0.png">
|
||||
<span>
|
||||
<font>Uploader : </font>{{ikrm.username}}
|
||||
@@ -100,8 +115,15 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="fi_new" v-if="item.file.picturesAndTables">
|
||||
<p>Figures : </p>
|
||||
<div v-for="ikrm in item.file.picturesAndTables" :href="mediaUrl + ikrm.file_url">
|
||||
<p>
|
||||
Figures
|
||||
<sup style="color: #006699;">({{item.file.picturesAndTables.length}})</sup> :
|
||||
<b class="btnUpDown el-icon-arrow-up" v-if="item.file_figer==0"
|
||||
@click="changeFileUpdown(1,ikgn,'file_figer')"></b>
|
||||
<b class="btnUpDown el-icon-arrow-down" v-if="item.file_figer==1"
|
||||
@click="changeFileUpdown(0,ikgn,'file_figer')"></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.picturesAndTables" v-if="item.file_figer==1">
|
||||
<img src="../../assets/img/icon_0.png">
|
||||
<span>
|
||||
<font>Uploader : </font>{{ikrm.username}}
|
||||
@@ -113,8 +135,15 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="fi_new" v-if="item.file.totalpage">
|
||||
<p>Title page : </p>
|
||||
<div v-for="ikrm in item.file.totalpage" :href="mediaUrl + ikrm.file_url">
|
||||
<p>
|
||||
Title page
|
||||
<sup style="color: #006699;">({{item.file.totalpage.length}})</sup> :
|
||||
<b class="btnUpDown el-icon-arrow-up" v-if="item.file_total==0"
|
||||
@click="changeFileUpdown(1,ikgn,'file_total')"></b>
|
||||
<b class="btnUpDown el-icon-arrow-down" v-if="item.file_total==1"
|
||||
@click="changeFileUpdown(0,ikgn,'file_total')"></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.totalpage" v-if="item.file_total==1">
|
||||
<img src="../../assets/img/icon_0.png">
|
||||
<span>
|
||||
<font>Uploader : </font>{{ikrm.username}}
|
||||
@@ -126,8 +155,15 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="fi_new" v-if="item.file.manuscirpt">
|
||||
<p>Manuscirpt : </p>
|
||||
<div v-for="ikrm in item.file.manuscirpt">
|
||||
<p>
|
||||
Manuscirpt
|
||||
<sup style="color: #006699;">({{item.file.manuscirpt.length}})</sup> :
|
||||
<b class="btnUpDown el-icon-arrow-up" v-if="item.file_maun==0"
|
||||
@click="changeFileUpdown(1,ikgn,'file_maun')"></b>
|
||||
<b class="btnUpDown el-icon-arrow-down" v-if="item.file_maun==1"
|
||||
@click="changeFileUpdown(0,ikgn,'file_maun')"></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.manuscirpt" v-if="item.file_maun==1">
|
||||
<img src="../../assets/img/icon_0.png">
|
||||
<span>
|
||||
<font>Uploader : </font>{{ikrm.username}}
|
||||
@@ -139,8 +175,15 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="fi_new" v-if="item.file.supplementary">
|
||||
<p>Supplementary Material : </p>
|
||||
<div v-for="ikrm in item.file.supplementary" :href="mediaUrl + ikrm.file_url">
|
||||
<p>
|
||||
Supplementary Material
|
||||
<sup style="color: #006699;">({{item.file.supplementary.length}})</sup> :
|
||||
<b class="btnUpDown el-icon-arrow-up" v-if="item.file_supper==0"
|
||||
@click="changeFileUpdown(1,ikgn,'file_supper')"></b>
|
||||
<b class="btnUpDown el-icon-arrow-down" v-if="item.file_supper==1"
|
||||
@click="changeFileUpdown(0,ikgn,'file_supper')"></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.supplementary" v-if="item.file_supper==1">
|
||||
<img src="../../assets/img/icon_0.png">
|
||||
<span>
|
||||
<font>Uploader : </font>{{ikrm.username}}
|
||||
@@ -153,7 +196,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 1%;"></div>
|
||||
<div class="fixCard" style="width: 19%;">
|
||||
<div class="fixCard" style="width: 18%;">
|
||||
<b style="font-size: 16px;letter-spacing: -0.5px;">AI scoring</b>
|
||||
<p style="font-size: 18px;font-weight: bold;margin-bottom: 5px;color: #db890e;"
|
||||
v-if="item.reportList.length>0">
|
||||
@@ -182,13 +225,13 @@
|
||||
</p>
|
||||
</div>
|
||||
<div style="width: 1%;"></div>
|
||||
<div class="fixCard" style="width: 19%;">
|
||||
<div class="fixCard" style="width: 18%;">
|
||||
<b style="font-size: 16px;letter-spacing: -0.5px;">Reviewer Decision</b>
|
||||
<p style="height: 5px;"></p>
|
||||
<p v-for="(iken, index) in item.review">
|
||||
<p v-for="(iken, index) in item.review" style="line-height: 28px;">
|
||||
Reviewer{{index+1}} score : <b style="color: #db890e;font-size: 18px;">{{iken.rated}}</b>
|
||||
</p>
|
||||
<p v-if="item.review.length>0" style="font-size: 15px;margin: 5px 0;">
|
||||
<p v-if="item.review.length>0" style="font-size: 15px;margin: 0 0 5px 0;">
|
||||
Average : <b style="font-size: 18px;color: #db890e;">{{avegeCount(item.review)}}</b>
|
||||
</p>
|
||||
<p>
|
||||
@@ -197,20 +240,21 @@
|
||||
</p>
|
||||
<p style="margin-top: 10px;">
|
||||
<b @click="articleReviewer(item)" class="btnCliArt">
|
||||
<i class="el-icon-edit"></i> Peer-Review
|
||||
<i class="el-icon-edit"></i> Inviting Reviewer
|
||||
</b>
|
||||
<!-- <el-button size="mini" type="primary" icon="el-icon-user" @click="articleReviewer(item)">
|
||||
Peer-Review</el-button> -->
|
||||
Inviting Reviewer</el-button> -->
|
||||
</p>
|
||||
</div>
|
||||
<div style="width: 1%;"></div>
|
||||
<div class="fixCard" style="width: 27%;">
|
||||
<div class="fixCard" style="width: 26%;">
|
||||
<b style="font-size: 16px;letter-spacing: -0.5px;">Corresponding Author</b>
|
||||
<p style="height: 10px;"></p>
|
||||
<div style="text-align: left;">
|
||||
<p v-if="item.realname!=''">
|
||||
<font style="color: #999;">Name :</font>
|
||||
{{item.realname}}
|
||||
<span v-if="item.phone!=''" style="margin-left: 5px;color: #666;">({{item.phone}})</span>
|
||||
</p>
|
||||
<p v-if="item.email!=''" style="margin: 8px 0 5px 0;line-height: 22px;">
|
||||
<font style="color: #999;">Email :</font>
|
||||
@@ -223,10 +267,6 @@
|
||||
<i class="el-icon-refresh-left"></i> History
|
||||
</b>
|
||||
</p>
|
||||
<p v-if="item.phone!=''">
|
||||
<font style="color: #999;">Phone:</font>
|
||||
{{item.phone}}
|
||||
</p>
|
||||
</div>
|
||||
<p style="margin-top: 20px;">
|
||||
<b @click="articleCommun(item)" class="btnCliArt">
|
||||
@@ -234,36 +274,7 @@
|
||||
</b>
|
||||
</p>
|
||||
</div>
|
||||
<!-- <div style="width: 1%;"></div>
|
||||
<div class="fixCard" style="width: 20%;">
|
||||
<b style="font-size: 16px;letter-spacing: -0.5px;">Manuscript Tracking</b>
|
||||
<p style="height: 10px;"></p>
|
||||
<div style="text-align: left;max-height: 200px;overflow-y: scroll;">
|
||||
<el-timeline>
|
||||
<el-timeline-item :timestamp="formatDate_(item.ctime)" placement="top">
|
||||
<el-card>
|
||||
<p style="line-height: 20px;">
|
||||
Manuscript submission :
|
||||
<b>{{item.realname}}</b>
|
||||
submitted to
|
||||
<b>{{item.journalname}}</b>
|
||||
</p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item v-for="(activity, index) in item.timeline" :key="index"
|
||||
:timestamp="formatDate_(activity.ctime)" placement="top">
|
||||
<el-card v-if="activity.ftype==0">
|
||||
<p>Status change : {{stateFormat(activity.state_to)}}</p>
|
||||
<p v-if="activity.content!=''">{{activity.content}}</p>
|
||||
</el-card>
|
||||
<el-card v-else>
|
||||
<p style="margin-bottom: 5px;font-weight: bold;">Author message :</p>
|
||||
<p style="line-height: 18px;">{{activity.content}}</p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
|
||||
<div style="margin: 15px 0 0 0;">
|
||||
@@ -386,7 +397,7 @@
|
||||
circle style="padding: 5px;"></el-button>
|
||||
</p>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-user" @click="articleReviewer(scope.row)">
|
||||
Peer-Review</el-button>
|
||||
Inviting Reviewer</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="220px">
|
||||
@@ -701,9 +712,43 @@
|
||||
|
||||
|
||||
<el-dialog title="" :visible.sync="communVisible" width="800px">
|
||||
<p style="margin-bottom: 20px;font-size: 15px;font-weight: bold;letter-spacing: -0.5px;line-height: 22px;">{{msgform.title}}</p>
|
||||
<p style="word-break: normal;margin-bottom: 20px;font-size: 15px;font-weight: bold;letter-spacing: -0.5px;line-height: 22px;">
|
||||
{{msgform.title}}
|
||||
</p>
|
||||
<timetalk :talkMsgs="talkMsgs" :msgform="msgform"></timetalk>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="Manuscript Tracking" :visible.sync="trackVisible" width="700px">
|
||||
<p style="word-break: normal;margin-bottom: 20px;font-size: 15px;font-weight: bold;letter-spacing: -0.5px;line-height: 22px;">
|
||||
{{timeLaxis.title}}
|
||||
</p>
|
||||
<div style="">
|
||||
<el-timeline>
|
||||
<el-timeline-item :timestamp="formatDate_(timeLaxis.ctime)" placement="top">
|
||||
<el-card>
|
||||
<p style="line-height: 20px;">
|
||||
Manuscript submission :
|
||||
<b>{{timeLaxis.realname}}</b>
|
||||
submitted to
|
||||
<b>{{timeLaxis.journalname}}</b>
|
||||
</p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item v-for="(activity, index) in timeLaxis.list" :key="index"
|
||||
:timestamp="formatDate_(activity.ctime)" placement="top">
|
||||
<el-card v-if="activity.ftype==0">
|
||||
<p>Status change : {{stateFormat(activity.state_to)}}</p>
|
||||
<p v-if="activity.content!=''">{{activity.content}}</p>
|
||||
</el-card>
|
||||
<el-card v-else>
|
||||
<p style="margin-bottom: 5px;font-weight: bold;">Author message :</p>
|
||||
<p style="line-height: 18px;">{{activity.content}}</p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -757,7 +802,15 @@
|
||||
repebox: false,
|
||||
aiSorbox: false,
|
||||
communVisible: false,
|
||||
trackVisible: false,
|
||||
talkMsgs: [],
|
||||
timeLaxis: {
|
||||
title: '',
|
||||
ctime: '',
|
||||
realname: '',
|
||||
journalname: '',
|
||||
list: []
|
||||
},
|
||||
itemGuest: [],
|
||||
msgform: {
|
||||
username: localStorage.getItem('U_name'),
|
||||
@@ -892,6 +945,11 @@
|
||||
this.Total = res.total;
|
||||
this.tableData = res.data;
|
||||
for (let i = 0; i < this.tableData.length; i++) {
|
||||
this.tableData[i].file_cover = 0
|
||||
this.tableData[i].file_figer = 0
|
||||
this.tableData[i].file_total = 0
|
||||
this.tableData[i].file_maun = 0
|
||||
this.tableData[i].file_supper = 0
|
||||
this.tableData[i].reportList = []
|
||||
if (this.tableData[i].reports.length == 1) {
|
||||
for (let j = 0; j < this.tableData[i].reports.length; j++) {
|
||||
@@ -935,6 +993,12 @@
|
||||
this.$set(this.query, 'pageIndex', 1);
|
||||
this.getdate();
|
||||
},
|
||||
// 文章展开收缩
|
||||
changeFileUpdown(e, i, m) {
|
||||
this.tableData[i][m] = e
|
||||
this.$forceUpdate()
|
||||
console.log(this.tableData[i][m])
|
||||
},
|
||||
//文章送审
|
||||
articleReviewer(row) {
|
||||
this.$router.push({
|
||||
@@ -1273,7 +1337,7 @@
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
// 留言板出框
|
||||
// 留言板弹出层
|
||||
articleCommun(e) {
|
||||
this.msgform.user_id = e.user_id
|
||||
this.msgform.article_id = e.article_id
|
||||
@@ -1291,6 +1355,26 @@
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
},
|
||||
// 时间轴弹出层
|
||||
openTracking(e) {
|
||||
this.timeLaxis.title = e.title
|
||||
this.timeLaxis.ctime = e.ctime
|
||||
this.timeLaxis.realname = e.realname
|
||||
this.timeLaxis.journalname = e.journalname
|
||||
this.$api
|
||||
.post('api/Article/getArticleDetail', {
|
||||
articleId: e.article_id,
|
||||
human: 'editor'
|
||||
})
|
||||
.then(res => {
|
||||
this.timeLaxis.list = res.msg;
|
||||
this.trackVisible = true
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
},
|
||||
// 修改标记
|
||||
saveRemark() {
|
||||
@@ -1365,6 +1449,79 @@
|
||||
return str;
|
||||
},
|
||||
|
||||
//文章类型
|
||||
artType(e) {
|
||||
let frag = '';
|
||||
switch (e) {
|
||||
case "A":
|
||||
frag = 'ARTICLE';
|
||||
break;
|
||||
case 'B':
|
||||
frag = 'REVIEW';
|
||||
break;
|
||||
case 'C':
|
||||
frag = 'CASE REPORT';
|
||||
break;
|
||||
case 'P':
|
||||
frag = 'RESEARCH PROPOSAL';
|
||||
break;
|
||||
case 'N':
|
||||
frag = 'NEWS';
|
||||
break;
|
||||
case 'T':
|
||||
frag = 'COMMENT';
|
||||
break;
|
||||
case 'CT':
|
||||
frag = 'CORRECTION';
|
||||
break;
|
||||
case 'HT':
|
||||
frag = 'HYPOTHESIS';
|
||||
break;
|
||||
case 'PF':
|
||||
frag = 'PREFACE';
|
||||
break;
|
||||
case 'ET':
|
||||
frag = 'EDITORIAL';
|
||||
break;
|
||||
case 'RP':
|
||||
frag = 'REPORT';
|
||||
break;
|
||||
case 'LR':
|
||||
frag = 'LETTER';
|
||||
break;
|
||||
case 'EF':
|
||||
frag = 'EMPIRICAL FORMULA';
|
||||
break;
|
||||
case 'EM':
|
||||
frag = 'EVIDENCE-BASED MEDICINE';
|
||||
break;
|
||||
case 'EC':
|
||||
frag = 'EXPERT CONSENSUS';
|
||||
break;
|
||||
case 'LTE':
|
||||
frag = 'LETTER TO EDITOR';
|
||||
break;
|
||||
case 'QI':
|
||||
frag = 'QUESTIONNAIRE INVESTIGATION';
|
||||
break;
|
||||
case 'PT':
|
||||
frag = 'PROTOCOL';
|
||||
break;
|
||||
case 'CS':
|
||||
frag = 'CASE SERIES';
|
||||
break;
|
||||
case 'RT':
|
||||
frag = 'RETRACTION';
|
||||
break;
|
||||
case 'MR':
|
||||
frag = 'MINI REVIEW';
|
||||
break;
|
||||
default:
|
||||
frag = 'OTHERS';
|
||||
}
|
||||
return frag;
|
||||
},
|
||||
|
||||
// 算平均分
|
||||
avegeCount(arry) {
|
||||
let str = 0;
|
||||
@@ -1572,6 +1729,8 @@
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.mangu_list div.fi_new>p {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
@@ -1579,7 +1738,7 @@
|
||||
.mangu_list div.fi_new>div {
|
||||
color: #333;
|
||||
display: block;
|
||||
margin: 0 0 15px 0;
|
||||
margin: 0 0 5px 0;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
@@ -1605,6 +1764,10 @@
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new>div>span>i>i {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
.mangu_list div.fi_new>div>a {
|
||||
margin: 0 5px 0 0;
|
||||
@@ -1618,15 +1781,29 @@
|
||||
color: #75abf1;
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new>div>a:hover .download {
|
||||
color: #006699;
|
||||
}
|
||||
|
||||
|
||||
.mangu_list div.fi_new .btnUpDown {
|
||||
font-weight: bold;
|
||||
color: #75abf1;
|
||||
cursor: pointer;
|
||||
margin-left: 5px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new .btnUpDown:hover {
|
||||
color: #006699;
|
||||
}
|
||||
|
||||
|
||||
.mangu_list .fixCard {
|
||||
text-align: center;
|
||||
background: #0066990d;
|
||||
padding: 20px 10px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user