5 Commits

Author SHA1 Message Date
徐哼唧L
e88aa21a6f 复审 2023-06-14 13:48:41 +08:00
徐哼唧L
9ed3f82c2f 0609 2023-06-09 16:48:55 +08:00
徐哼唧L
cff56595c7 Merge branch 'xu-review' of https://gitee.com/wjl2008_admin/tougao_web into xu-review 2023-06-09 16:46:26 +08:00
徐哼唧L
8e58500e66 0609 2023-06-09 16:45:49 +08:00
wangjinlei
ea430f6d82 test 2023-06-08 18:25:22 +08:00
11 changed files with 3266 additions and 503 deletions

View File

@@ -138,26 +138,26 @@
<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-menu-item>
<a href="http://master.tmrjournals.com" target="_blank" class="linkBar">
Management System
</a>
</el-menu-item>
<el-menu-item>
<a href="https://mail.mxhichina.com/alimail" target="_blank" class="linkBar">
Official mailbox
</a>
</el-menu-item>
<el-menu-item>
<a href="https://www.grammarly.com" target="_blank" class="linkBar">
www.grammarly.com
</a>
</el-menu-item>
<el-menu-item>
<a href="https://quillbot.com" target="_blank" class="linkBar">
quillbot.com
</a>
</el-menu-item>
</el-submenu>
</template>
</el-menu>
@@ -556,11 +556,5 @@
color: #fff;
display: block;
line-height: 50px;
padding: 0 0 0 40px;
font-size: 14px;
}
.linkBar:hover {
background: #00527a;
}
</style>

View File

@@ -9,8 +9,8 @@
<el-upload class="avatar-uploader" ref="upIconIMg"
:action="baseUrl+'api/Ucenter/up_userIcon_file'" :show-file-list="false" name="icon"
:on-success="handleAvatarSuccess2" :on-error="handleAvatarError2"
:before-upload="beforeAvatarUpload2" style="display: none;">
<img v-if="pictureUrl" :src="pictureUrl" class="avatar" accept=".png,.jpg">
:before-upload="beforeAvatarUpload2" accept=".png,.jpg" style="display: none;">
<img v-if="pictureUrl" :src="pictureUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<div class="ptmark">Upload avatar</div>

View File

@@ -326,7 +326,6 @@
Only Word and compressed files can be uploaded (file format: .docx).
</div>
</el-upload>
</a>
</el-form-item>
<el-form-item label="Supplementary Material :" label-width="200px">
<el-upload class="upload-demo up_newstyle" :action="upload_supplementary" accept=".zip"

View File

@@ -127,9 +127,7 @@
<span style="margin: 0 4px 0 5px;">Click here to :</span>
<b style="color: #5fab3b;">Confirm the Proof</b>
</router-link>
</div>
</div>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
@@ -291,45 +289,66 @@
</el-dialog>
<!-- 审稿人列表 -->
<el-dialog title="Comments from reviewers" :visible.sync="comentVisible" width="800px">
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index" class="art_author_list">
<template slot="title">
<b class="com_shu">{{index+1}}</b>
Reviewer Comment
<font style="margin: 0 0 0 50px;color: #888;">
<i class="el-icon-time" style="margin:0 2px 0 0;"></i>
{{formatDate1(item.ctime)}}
</font>
</template>
<div class="art_author_coment">
<p v-if="item.qu9_contents!=''">
<font>Does the title represent manuscript's contents?</font>
<pre>{{item.qu9_contents}}</pre>
</p>
<p v-if="item.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
<pre>{{item.qu10_contents}}</pre>
</p>
<p v-if="item.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
<pre>{{item.qu11_contents}}</pre>
</p>
<p v-if="item.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
<pre>{{item.qu12_contents}}</pre>
</p>
<p v-if="item.qu13_contents!=''">
<font>Are the references properly cited?</font>
<pre>{{item.qu13_contents}}</pre>
</p>
<p v-if="item.comments!=''">
<font>Comments for the Authors</font>
<pre>{{item.comments}}</pre>
</p>
<el-dialog title="Comments from reviewers" :visible.sync="comentVisible" :close-on-click-modal="false"
width="800px">
<el-tabs tab-position="left">
<el-tab-pane label="Reviewer 1">
<div style="padding: 0 10px;">
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index"
class="art_author_list">
<template slot="title">
<b class="com_shu">{{index+1}}</b>
Reviewer Comment
<font style="margin: 0 0 0 50px;color: #888;">
<i class="el-icon-time" style="margin:0 2px 0 0;"></i>
{{formatDate1(item.ctime)}}
</font>
</template>
<div class="art_author_coment">
<p v-if="item.qu9_contents!=''">
<font>Does the title represent manuscript's contents?</font>
<pre>{{item.qu9_contents}}</pre>
</p>
<p v-if="item.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
<pre>{{item.qu10_contents}}</pre>
</p>
<p v-if="item.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
<pre>{{item.qu11_contents}}</pre>
</p>
<p v-if="item.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
<pre>{{item.qu12_contents}}</pre>
</p>
<p v-if="item.qu13_contents!=''">
<font>Are the references properly cited?</font>
<pre>{{item.qu13_contents}}</pre>
</p>
<p v-if="item.comments!=''">
<font>Comments for the Authors</font>
<pre>{{item.comments}}</pre>
</p>
<p style="text-align: right;">
<el-input type="textarea" rows="3" v-model="item.plycontent" @input="onInput()"
placeholder="Please enter..." resize="none" style="margin-bottom: 10px;">
</el-input>
<el-button size="mini" type="warning" icon="el-icon-chat-line-square"
@click="replayMessage(item)">
Reply to Reviewer
</el-button>
</p>
</div>
</el-collapse-item>
</el-collapse>
</div>
</el-collapse-item>
</el-collapse>
</el-tab-pane>
<el-tab-pane label="Reviewer 2">Reviewer 2</el-tab-pane>
</el-tabs>
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
</el-dialog>
@@ -364,6 +383,9 @@
supplementaryFileList: [],
comentDeploy: [],
activeComment: [],
replyMes: {
content: ''
},
authorList_name: '',
editVisible: false,
artextVisible: false,
@@ -456,10 +478,9 @@
.then(res => {
// 弹出框
this.comentDeploy = res.suggest
// this.activeComment = []
// for (var i = 0; i < res.suggest.length; i++) {
// this.activeComment.push(i)
// }
for (var i = 0; i < this.comentDeploy.length; i++) {
this.comentDeploy[i].plycontent = ''
}
this.comentVisible = true
})
.catch(err => {
@@ -467,6 +488,28 @@
});
},
// 回复审稿人
replayMessage(e) {
if (e.plycontent == '') {
this.$message.error('Please fill in the reply content!');
return
}
// 二次确认
this.$confirm('Can only reply to the reviewer once, please confirm the content.', 'Tip', {
type: 'warning'
})
.then(() => {
})
.catch(() => {});
},
// 输入框输入
onInput() {
this.$forceUpdate();
},
// 点击稿件内容文件
esy_deta(e) {
this.$api

View File

@@ -0,0 +1,908 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-lx-cascades"></i> Manuscript list
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container_state">
<div class="handle-box" style="margin: 20px 0;">
<el-select v-model="query.journal" @change="getdate" placeholder="Please select journal"
style="width: 180px;">
<el-option :key="0" label="All journals" :value="0"></el-option>
<el-option v-for="item in items" :key="item.journal_id" :label="item.title"
:value="item.journal_id"></el-option>
</el-select>
<el-select v-model="query.state" @change="getdate" placeholder="Please select status"
style="margin-left:10px;width: 110px;">
<el-option :key="0" label="All status" :value="0"></el-option>
<el-option :key="1" :label="$t('artstate.state1')" :value="1"></el-option>
<el-option :key="2" :label="$t('artstate.state2')" :value="2"></el-option>
<el-option :key="3" :label="$t('artstate.state3')" :value="3"></el-option>
<el-option :key="4" :label="$t('artstate.state4')" :value="4"></el-option>
<el-option :key="5" :label="$t('artstate.state5')" :value="5"></el-option>
</el-select>
<el-input v-model="query.name" placeholder="Title" style="margin:0 10px;width: 190px;"></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
<el-button type="primary" icon="el-icon-edit-outline" @click="addArticle"
style="float: right;width: 190px;">New
Submission</el-button>
</div>
<!-- <el-table :data="tableData" border ref="multipleTable">
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
<el-table-column label="Title" align="center">
<template slot-scope="scope">
<el-badge is-dot :hidden="scope.row.editor_act==1?false:true" class="item">
{{scope.row.title}}
</el-badge>
</template>
</el-table-column>
<el-table-column prop="journalname" label="Journal" align="center"></el-table-column>
<el-table-column prop="accept_sn" label="Manuscript ID" align="center"></el-table-column>
<el-table-column prop="state" label="Status" :formatter="stateFormat" align="center" width="100"></el-table-column>
<el-table-column label="" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="primary" plain icon="el-icon-tickets" @click="showdetail(scope.row)">detail</el-button>
</template>
</el-table-column>
</el-table> -->
<div shadow="never" v-for="item in tableData" class="mangu_list" :style="item.state,'1' | stateChange">
<div style="padding: 20px 20px 20px 20px;position: relative;" :style="item.state,'2' | stateChange">
<p class="man_title" @click="esy_mtps(item.article_id)">
<el-badge is-dot :hidden="item.editor_act==1?false:true">
{{item.title}}
</el-badge>
</p>
<p style="margin-bottom: 8px;">
<font style="color: #666b7a;">ID : </font>
{{item.accept_sn}}
<font style="color: #666b7a;margin-left: 50px;">Type : </font>
{{item.type | ellipsis}}
</p>
<p class="man_con">
<!-- <span>{{item.type | ellipsis}}</span> -->
<font style="color: #666b7a;">Journal : </font>
<b style="font-weight: normal;">{{item.journalname}}</b>
</p>
<p>
<font style="color: #666b7a;">
<i class="el-icon-time" style="margin: 0 5px 0 0;"></i>
Update Time :
</font>
<b style="font-weight: normal;margin: 0 0 0 5px;">{{item.ctime}}</b>
</p>
<div class="man_state" :style="item.state,'3' | stateChange">
<b :style="item.state,'4' | stateChange">
{{item.state,'tst' | stateChange}}
</b>
</div>
<div class="man_btn">
<span @click="esy_mtps(item.article_id)">
<i class="el-icon-collection"></i>Manuscript Tracking
</span>
<font> | </font>
<span @click="esy_review(item.article_id)">
<i class="el-icon-document-copy"></i>Reviewer Comments
</span>
<font> | </font>
<span @click="esy_deta(item.article_id)">
<i class="el-icon-paperclip"></i>My Manuscript
</span>
</div>
</div>
<div class="man_progess" v-if="item.state==4" :style="item.state,'2' | stateChange">
<font style="color: #666b7a;">
Current Status :
</font>
<b style="margin: 0 0 0 5px;color: #5a90e1;">{{item.state,'tst' | stateChange}} </b>
<router-link :to="{path:'/articleProcessRevision',query:{id:item.article_id}}" style="color: #333;">
<span style="margin: 0 4px 0 5px;">Click here to :</span>
<b>Upload Major Revision</b>
</router-link>
</div>
<div class="man_progess" v-if="item.state==3&&item.transinfo!=null"
:style="item.state,'2' | stateChange">
<font style="color: #666b7a;">
Current Status :
</font>
<b style="margin: 0 0 0 5px;color: #333;">{{item.state,'tst' | stateChange}} </b>
<router-link :to="{path:'/articleProcessSwitch',query:{id:item.article_id}}" style="color: #333;">
<span style="margin: 0 4px 0 5px;">Click here to :</span>
<b style="color:#333">Transfer Manuscript</b>
</router-link>
</div>
<div class="man_progess" v-if="item.state==7" :style="item.state,'7' | stateChange">
<font style="color: #666b7a;">
Current Status :
</font>
<b style="margin: 0 0 0 5px;color: #5fab3b;">{{item.state,'tst' | stateChange}} </b>
<router-link :to="{path:'/articleProcessConfirm',query:{id:item.article_id}}" style="color: #333;">
<span style="margin: 0 4px 0 5px;">Click here to :</span>
<b style="color: #5fab3b;">Confirm the Proof</b>
</router-link>
</div>
</div>
<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>
</div>
</div>
<!-- 文章内容 -->
<el-dialog title="Manuscript Basic Information" :visible.sync="artextVisible" width="800px">
<div class="art_state_message">
<p>
<font>Title :</font><b>{{artextForm.title}}</b>
</p>
<p>
<font>ID : </font><b>{{artextForm.accept_sn}}</b>
</p>
<p>
<font>Type :</font><b>{{artextForm.type | ellipsis}}</b>
</p>
<p v-show="artextForm.type=='A'">
<font>Ethical Approval :</font><b>{{artextForm.approval?'Yes':'No'}}</b>
</p>
<p v-if="artextForm.special_num > 0">
<font>Special Issues :</font><b>{{ artextForm.special_title }}</b>
</p>
<p>
<font>Journal :</font><b>{{artextForm | journal_me}}</b>
</p>
<p>
<font>Major :</font><b>{{artextForm.major}}</b>
</p>
<el-collapse v-model="activeNames" class="auth_colla auth_colla_new">
<el-collapse-item :title="authorList_name" name="1">
<div v-for="(item, index) in artextForm.authors" class="auth_mess">
<h4 style="font-weight: bolder;">
<img src="../../assets/img/state_one.png" v-if="item.isSuper"
style="width: 15px;margin: 0 2px 0 0;vertical-align: text-bottom;">
{{item.firstname}} {{item.lastname}} {{item.isSuper?'#':''}}{{item.isReport?'*':''}}
</h4>
<div>
<p v-if="item.email">
<img src="../../assets/img/state_email.png" v-if="item.isReport"
style="width: 14px;margin: 0 8px 0 0;vertical-align: text-bottom;">
<font>Email : </font>{{item.email}}
</p>
<p v-if="item.orcid">
<font>ORCID iD : </font>{{item.orcid}}
</p>
<p>
<font>First Author : </font>
<b v-if="item.isSuper">Yes</b>
<b v-if="!item.isSuper">No</b>
</p>
<p>
<font>Corresponding Author :</font>
<b v-if="item.isReport">Yes</b>
<b v-if="!item.isReport">No</b>
</p>
<p v-if="item.address">
<font>Address : </font>{{item.address}}
</p>
<p v-if="item.company">
<font>Affiliation : </font>{{item.company}}
</p>
<p v-if="item.department">
<font>Department : </font>{{item.department}}
</p>
<p v-if="item.title">
<font>Title : </font>{{item.title}}
</p>
<p v-if="item.country">
<font>Country : </font>{{item.country}}
</p>
</div>
</div>
</el-collapse-item>
</el-collapse>
<el-collapse class="auth_colla auth_colla_new" style="margin-top: -15px;border-top: 0;">
<el-collapse-item>
<template slot="title">
Abstract
<font v-if="artextForm.keywords" style="margin-left: 3px;">, Keywords</font>
<font v-if="artextForm.fund" style="margin-left: 3px;">, Fund</font>
</template>
<p>
<font>Abstract :</font><b>{{artextForm.abstrart}}</b>
</p>
<p v-if="artextForm.keywords">
<font>Keywords :</font><b>{{artextForm.keywords}}</b>
</p>
<p v-if="artextForm.fund">
<font>Fund :</font><b>{{artextForm.fund}}</b>
</p>
</el-collapse-item>
</el-collapse>
</div>
<div class="art_file" style="margin-top: 0;border-top-color:#fff;padding-top: 0;">
<h4 v-if="coverLetterFileList">Cover letter : </h4>
<p v-if="coverLetterFileList">
<a v-for="item in coverLetterFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both" v-if="coverLetterFileList">
<h4 v-if="picturesAndTablesFileList">Figures : </h4>
<p v-if="picturesAndTablesFileList">
<a v-for="item in picturesAndTablesFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both" v-if="picturesAndTablesFileList">
<h4 v-if="totalpageFileList">Title page : </h4>
<p v-if="totalpageFileList">
<a v-for="item in totalpageFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both" v-if="totalpageFileList">
<h4 v-if="supplementaryFileList">Supplementary Material : </h4>
<p v-if="supplementaryFileList">
<a v-for="item in supplementaryFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both" v-if="supplementaryFileList">
<h4>Manuscirpt : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both">
</div>
</el-dialog>
<!-- 审稿人列表 -->
<el-dialog title="Comments from reviewers" :visible.sync="comentVisible" width="800px">
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index" class="art_author_list">
<template slot="title">
<b class="com_shu">{{index+1}}</b>
Reviewer Comment
<font style="margin: 0 0 0 50px;color: #888;">
<i class="el-icon-time" style="margin:0 2px 0 0;"></i>
{{formatDate1(item.ctime)}}
</font>
</template>
<div class="art_author_coment">
<p v-if="item.qu9_contents!=''">
<font>Does the title represent manuscript's contents?</font>
<pre>{{item.qu9_contents}}</pre>
</p>
<p v-if="item.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
<pre>{{item.qu10_contents}}</pre>
</p>
<p v-if="item.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
<pre>{{item.qu11_contents}}</pre>
</p>
<p v-if="item.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
<pre>{{item.qu12_contents}}</pre>
</p>
<p v-if="item.qu13_contents!=''">
<font>Are the references properly cited?</font>
<pre>{{item.qu13_contents}}</pre>
</p>
<p v-if="item.comments!=''">
<font>Comments for the Authors</font>
<pre>{{item.comments}}</pre>
</p>
</div>
</el-collapse-item>
</el-collapse>
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
items: '',
query: {
username: localStorage.getItem('U_name'),
// journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 0,
journal: 0,
name: '',
state: 0,
pageIndex: 1,
pageSize: 10
},
tableData: [],
multipleSelection: [],
delList: [],
activeNames: [],
artextForm: {},
coverLetterFileList: [],
picturesAndTablesFileList: [],
totalpageFileList: [],
manuscirptFileList: [],
supplementaryFileList: [],
comentDeploy: [],
activeComment: [],
authorList_name: '',
editVisible: false,
artextVisible: false,
comentVisible: false,
Total: 0
};
},
created() {
this.initselect();
this.getdate();
},
methods: {
//初始化期刊选项
initselect() {
this.$api
.post('api/Article/getJournal')
.then(res => {
this.items = res;
})
.catch(err => {
console.log(err);
});
},
// 获取文章列表数据
getdate() {
this.$api
.post('api/Article/getArticle', this.query)
.then(res => {
this.Total = res.total;
for (let i = 0; i < res.data.length; i++) {
let date = new Date(parseInt(res.data[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() +
1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data[i].ctime = Y + M + D;
}
this.tableData = res.data;
})
.catch(err => {
console.log(err);
});
},
// 触发搜索按钮
handleSearch() {
this.$set(this.query, 'pageIndex', 1);
this.getdate();
},
//跳转到增加稿件页面
addArticle() {
this.$router.push('/articleAdd');
},
// 分页导航
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getdate();
},
showdetail(row) {
// if(row.state==4){
// this.$router.push({path:'articleRevise',query:{id:row.article_id}});
// }else{
this.$router.push({
path: 'articleDetail',
query: {
id: row.article_id
}
});
// }
},
// 点击稿件进程
esy_mtps(e) {
this.$router.push({
path: 'articleProcess',
query: {
id: e
}
});
},
// 点击稿件审稿意见
esy_review(e) {
// 审稿人意见
this.$api
.post('api/Article/getArticleDetail', {
articleId: e,
human: 'author'
})
.then(res => {
// 弹出框
this.comentDeploy = res.suggest
// this.activeComment = []
// for (var i = 0; i < res.suggest.length; i++) {
// this.activeComment.push(i)
// }
this.comentVisible = true
})
.catch(err => {
console.log(err);
});
},
// 点击稿件内容文件
esy_deta(e) {
this.$api
.post('api/Article/getArticleDetail', {
articleId: e,
human: 'author'
})
.then(res => {
this.artextForm = res.article
this.artextForm.major = res.major;
this.artextForm.authors = []
let alist = res.authors;
let alist_name = [];
for (let i in alist) {
this.artextForm.authors.push({
art_aut_id: alist[i].art_aut_id,
firstname: alist[i].firstname,
lastname: alist[i].lastname,
orcid: alist[i].orcid,
company: alist[i].company,
department: alist[i].department,
title: alist[i].author_title,
country: alist[i].country,
email: alist[i].email,
address: alist[i].address,
isSuper: alist[i].is_super == 1 ? true : false,
isReport: alist[i].is_report == 1 ? true : false
});
if (i == alist.length - 1) {
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname)
} else {
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ')
}
}
this.authorList_name = "Author : " + alist_name.join("");
// 弹出框
this.artextVisible = true
})
.catch(err => {
console.log(err);
});
this.$api
.post('api/Article/getFilelistByArticleID', {
articleId: e
})
.then(res => {
this.coverLetterFileList = res.coverLetter;
this.picturesAndTablesFileList = res.picturesAndTables;
this.manuscirptFileList = res.manuscirpt;
this.totalpageFileList = res.totalpage;
this.supplementaryFileList = res.supplementary;
})
.catch(err => {
console.log(err);
});
},
formatDate(timestamp) {
var date = new Date(timestamp * 1000); //时间戳为10位需*1000时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return Y + M + D + ' ' + h + ':' + m + ':' + s;
},
formatDate1(timestamp) {
var date = new Date(timestamp * 1000); //时间戳为10位需*1000时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
return Y + M + D;
},
},
filters: {
// 文章类型
ellipsis(value) {
let frag = '';
switch (value) {
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;
},
// 稿件状态,颜色
stateChange(value, num) {
let str = '';
let sgr = '';
let skr = '';
let sfr = '';
let slr = '';
switch (value) {
case 0:
str = '#e1b0271F;';
sfr = '#e1b02705;';
sgr = '#e1b0274D;';
skr = '#e1b027;';
slr = 'Received';
break;
case 1:
str = '#5a90e11F;';
sfr = '#5a90e105;';
sgr = '#5a90e14D;';
skr = '#5a90e1;';
slr = 'With editor';
break;
case 2:
str = '#5a90e11F;';
sfr = '#5a90e105;';
sgr = '#5a90e14D;';
skr = '#5a90e1;';
slr = 'Under review';
break;
case 3:
str = '#8888881F;';
sfr = '#88888805;';
sgr = '#8888884D;';
skr = '#888888;';
slr = 'Reject';
break;
case 4:
str = '#5a90e11F;';
sfr = '#5a90e105;';
sgr = '#5a90e14D;';
skr = '#5a90e1;';
slr = 'Revision';
break;
case 5:
str = '#5fab3b1F;';
sfr = '#5fab3b05;';
sgr = '#5fab3b4D;';
skr = '#5fab3b;';
slr = 'Accept';
break;
case 6:
str = '#5a90e11F;';
sfr = '#5a90e105;';
sgr = '#5a90e14D;';
skr = '#5a90e1;';
slr = 'Pre-accept';
break;
case 7:
str = '#5fab3b1F;';
sfr = '#5fab3b05;';
sgr = '#5fab3b4D;';
skr = '#5fab3b;';
slr = 'Proof';
break;
default:
str = '#8888881F;';
sfr = '#88888805;';
sgr = '#8888884D;';
skr = '#888888;';
slr = 'error!!';
}
if (num == '1') {
return 'border-color:' + sgr;
}
if (num == '2') {
return 'background-color:' + sfr;
}
if (num == '3') {
return 'background-color:' + str + ';border-color:' + sgr;
}
if (num == '4') {
return 'color:' + skr;
}
if (num == 'tst') {
return slr;
}
},
journal_me(e) {
var frag = e.journalname;
if (e.special_num > 0) {
frag += "(Special Issues)";
}
return frag;
},
},
computed: {
}
};
</script>
<style scoped>
.container {
color: #333;
}
.handle-box {
margin-bottom: 20px;
}
.handle-select {
width: 120px;
}
.handle-input {
width: 300px;
display: inline-block;
}
.table {
width: 100%;
font-size: 14px;
}
.red {
color: #ff0000;
}
.mr10 {
margin-right: 10px;
}
.table-td-thumb {
display: block;
margin: auto;
width: 40px;
height: 40px;
}
.item {
margin-top: 5px;
}
.el-table .hasChange-row {
background-color: #ffebe8;
}
.mangu_list {
color: #333;
margin: 0 0 20px 0;
font-size: 14px;
/* position: relative; */
border-radius: 5px;
border: 1px solid #EBEEF5;
background-color: #fff;
}
.mangu_list .man_title {
margin: 2px 100px 10px 0;
font-weight: bolder;
letter-spacing: -0.5px;
font-size: 16px;
cursor: pointer;
display: inline-block;
line-height: 18px;
}
.mangu_list .man_title:hover {
text-decoration: underline;
}
.mangu_list .man_con {
margin: 0 0 10px 0;
}
.mangu_list .man_state {
position: absolute;
right: -1px;
top: -1px;
border: 1px solid #fff;
color: #fff;
text-align: center;
padding: 6px 18px;
letter-spacing: -0.5px;
border-top-right-radius: 3px;
/* border-top-left-radius: 3px; */
}
.mangu_list .man_progess {
padding: 15px 20px;
border-top: 1px solid #5a90e126;
}
.mangu_list .man_progess i {
margin: 0 5px 0 0;
}
.mangu_list .man_progess>a>b {
margin-left: 5px;
color: #5a90e1;
text-decoration: underline;
}
.mangu_list .man_progess>a>b:hover {
color: #006699;
}
.mangu_list .man_btn {
/* color: #006699; */
position: absolute;
bottom: 25px;
right: 25px;
font-size: 15px;
}
.mangu_list .man_btn>span {
/* text-decoration: underline; */
}
.mangu_list .man_btn>span:hover {
text-decoration: underline;
cursor: pointer;
color: #06374e;
}
.mangu_list .man_btn i {
margin: 0 8px 0 0;
}
.mangu_list .man_btn font {
margin: 0 18px;
}
.art_state_message {
margin: 0 20px 0 0;
}
.art_process_ {
border: 0;
padding: 0;
}
.art_process_ .art_process_list:first-child {
padding-top: 0;
}
.art_author_list {
margin: 0 0 0 5px;
}
.art_author_list .com_shu {
background-color: #006699;
color: #fff;
display: inline-block;
width: 18px;
height: 18px;
line-height: 18px;
text-align: center;
margin: 0 10px 0 0;
}
.el-collapse {
border-bottom: 0;
}
.art_author_coment {}
.art_author_coment>p {
margin: 10px 0 0 28px;
line-height: 20px;
}
.art_author_coment>p:first-child {
margin-top: 0;
}
.art_author_coment>p>font {
display: block;
margin: 0 0 2px 0;
color: #006699;
font-weight: bold;
letter-spacing: -0.5px;
}
</style>

View File

@@ -6,39 +6,60 @@
</el-breadcrumb>
</div>
<div class="container">
<div style="margin-bottom: 20px;">
{{articleMess.title}}
</div>
<div class="handle-box">
<el-button type="primary" icon="el-icon-plus" @click="openAddRev">Reviewer Bank</el-button>
<el-button type="primary" icon="el-icon-plus" @click="openSuggRev">Reviewers Suggested By Author
({{tableSuggest.length}})</el-button>
<!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="editVisible1 = true">Supplement</el-button> -->
</div>
<el-table :data="tableData" border stripe class="table" ref="multipleTable"
header-cell-class-name="table-header" empty-text="New messages (0)">
<el-table-column type="index" label="No." align="center" width="50"></el-table-column>
<!-- <el-table-column prop="art_rev_id" label="ID" align="center" width="60"></el-table-column> -->
<el-table-column label="Reviewer" align="center" width="130">
<el-table-column label="Base Information" width="320px">
<template slot-scope="scope">
<el-badge is-dot :hidden="scope.row.reviewer_act == 1 ? false : true" class="item">
{{ scope.row.reviewer }}
</el-badge>
<p class="tab_tie_col">
<span>Realname: </span>
<b style="font-size: 15px;letter-spacing: -0.5px;">
<el-badge is-dot :hidden="scope.row.reviewer_act == 1 ? false : true" class="item">
{{ scope.row.reviewer }}
</el-badge>
</b>
</p>
<p class="tab_tie_col">
<span>Email: </span>{{scope.row.email}}
</p>
<p class="tab_tie_col">
<span>Country: </span>{{scope.row.country}}
</p>
</template>
</el-table-column>
<el-table-column label="Other Information">
<template slot-scope="scope">
<p class="tab_tie_col" v-if="scope.row.major_str!=''">
<span>Major: </span>{{scope.row.major_str}}
</p>
<p class="tab_tie_col">
<span>Field: </span>{{scope.row.field}}
</p>
<p class="tab_tie_col" v-if="scope.row.company!=''">
<span>Affiliation: </span>{{scope.row.company}}
</p>
</template>
</el-table-column>
<el-table-column prop="country" label="Country" align="center" width="100"></el-table-column>
<el-table-column prop="email" label="Email" align="center"></el-table-column>
<el-table-column prop="company" label="Company" align="center"></el-table-column>
<el-table-column prop="major_str" label="Major"></el-table-column>
<el-table-column prop="field" label="Field"></el-table-column>
<el-table-column label="state" align="center" width="95">
<template slot-scope="scope">
{{revstate(scope.row)}}
<font style="color: #aaa;display: block;line-height: 18px;font-size: 13px;margin: 5px 0 0 0;">
{{formatDate(scope.row.ctime)}}</font>
{{formatDate(scope.row.ctime)}}
</font>
</template>
</el-table-column>
<el-table-column label="" width="110" align="center">
<el-table-column label="" width="170" align="center">
<template slot-scope="scope">
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
@click="showdetail(scope.row)">Detail</el-button>
@click="showdetail(scope.row)">Review comments</el-button>
</template>
</el-table-column>
</el-table>
@@ -47,6 +68,8 @@
:page-size="query.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
</div>
</div>
<!-- 推荐审稿人弹出层 -->
<el-dialog title="Add Suggest Reviewer" :visible.sync="AddSuggest" width="800px">
<el-table :data="tableSuggest" border stripe class="table" ref="multipleTable"
header-cell-class-name="table-header" empty-text="New messages (0)">
@@ -61,258 +84,141 @@
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="AddSuggest = false">Cancel</el-button>
<el-button @click="AddSuggest = false">Cancel</el-button>
</span>
</el-dialog>
<el-dialog title="add reviewer" :closeOnClickModal="false" :visible.sync="editVisible" width="80%"
v-loading="loading" element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)">
<el-form ref="editform" :model="editform" label-width="100px">
<el-form-item label="state">
<el-select v-model="editform.uid" filterable @change="changereviewer()" placeholder="Please select">
<el-option :key="0" label="please select" :value="0"></el-option>
<el-option v-for="item in reviewerList" :key="item.user_id" :label="item.account"
:value="item.user_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="Country" v-if="editform.uid != 0">
<span>{{ reviewer_data.country }}</span>
</el-form-item>
<el-form-item label="Company" v-if="editform.uid != 0">
<span>{{ reviewer_data.company }}</span>
</el-form-item>
<el-form-item label="Major" v-if="editform.uid != 0">
<span>{{ reviewer_data.major_title }}</span>
</el-form-item>
<el-form-item label="Field" v-if="editform.uid != 0">
<span>{{ reviewer_data.field }}</span>
</el-form-item>
<el-form-item label="Introduction" v-if="editform.uid != 0">
<span>{{ reviewer_data.introduction }}</span>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="editVisible=false">canel</el-button>
<el-button type="primary" @click="saveEdit">save</el-button>
</span>
</el-dialog>
<el-dialog title="Supplement" :visible.sync="editVisible1" width="40%" v-loading="loading"
element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)">
<el-form :model="questionform" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="1.Originality of the topic">
<el-radio-group v-model="questionform.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Importance in its Field">
<el-radio-group v-model="questionform.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
<el-radio-group v-model="questionform.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="questionform.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="questionform.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="8">
<el-radio-group v-model="questionform.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="12">
<el-collapse-item name="1" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu9contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
</el-col>
</el-row>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu10contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu11contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu12contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu13contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated">
(Poor------------------------Excellent)
<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px;">>Your score:{{questionform.rated}}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="questionform.recommend" style="line-height: 30px;">
<el-radio :label="1">Accept with minor revision</el-radio>
<br />
<el-radio :label="2">Accept with major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject, with no resubmission</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="questionform.other" style="line-height: 30px;">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="Comments for the Authors">
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment"
:rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input type="textarea" placeholder="please input content" v-model="questionform.confident"
:rows="8"></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous.">
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px;">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px;color: #aaa;font-size: 13px;margin: 12px 0 0 0;">
If you agree to disclose your name, we will acknowledge you by name in the published
PDF. However, if you prefer to remain anonymous, we will still express our gratitude
by thanking you as an anonymous reviewer.
<br />For example, {{txt_mess.title}} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers for their
invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addArtRev">submit</el-button>
</el-form-item>
<!-- 审稿列表弹出层 -->
<el-dialog :title="this.comentReview+' commtents list'" :visible.sync="detailVisible" width="800px">
<div>
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index" class="art_author_list">
<template slot="title">
<b class="com_shu">{{index+1}}</b>
Reviewer Comment - The {{index+1}} time
<font style="margin: 0 0 0 50px;color: #888;">
<i class="el-icon-time" style="margin:0 2px 0 0;"></i>
{{formatDate(item.ctime)}}
</font>
<font style="margin: 0 0 0 50px;">
Status: {{revstate(item)}}
</font>
</template>
<div class="art_author_coment">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<p style="height: 15px;"></p>
<div>
<p>
1. Originality of the topic
<span>{{gradeFour(item.qu1)}}</span>
</p>
</div>
<div>
<p>
2. Importance in its Field
<span>{{gradeFour(item.qu3)}}</span>
</p>
</div>
<div>
<p>
3. Does the manuscript fall within the aim and scope of the journal?
<span>{{gradeFour(item.qu6)}}</span>
</p>
</div>
<div>
<p>
4. English language
<span>{{gradeFour(item.qu8)}}</span>
</p>
</div>
<div>
<p>
5. Readily Understandable
<span>{{gradeFour(item.qu5)}}</span>
</p>
</div>
<div>
<p>
6. Does the title represent manuscript's contents?
<span>{{gradeTwo(item.qu9)}}</span>
</p>
<p class="quescont">{{item.qu9_contents}}</p>
</div>
<div>
<p>
7. Is the Abstract accurate and concise?
<span>{{gradeTwo(item.qu10)}}</span>
</p>
<p class="quescont">{{item.qu10_contents}}</p>
</div>
<div>
<p>
8. Are the approach/ methods properly described?
<span>{{gradeTwo(item.qu11)}}</span>
</p>
<p class="quescont">{{item.qu11_contents}}</p>
</div>
<div>
<p>
9. Are the conclusions and interpretations sound?
<span>{{gradeTwo(item.qu12)}}</span>
</p>
<p class="quescont">{{item.qu12_contents}}</p>
</div>
<div>
<p>
10. Are the references properly cited?
<span>{{gradeTwo(item.qu13)}}</span>
</p>
<p class="quescont">{{item.qu13_contents}}</p>
</div>
<p style="height: 15px;"></p>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<p style="height: 15px;"></p>
<div>
<p>
Overall the Paper is Rated
<span style="font-size: 20px;">{{item.rated}}</span>
</p>
</div>
<div>
<p>
REFEREE'S RECOMMENDATIONS
<span>{{gradeRcond(item.recommend)}}</span>
</p>
</div>
<div>
<p>
OTHER SPECIFIC CRITICISMS
<span>{{gradeCrti(item.other)}}</span>
</p>
</div>
<div>
<p>
Comments for the Authors
</p>
<p class="quescont">{{item.comments}}</p>
</div>
<div>
<p>
Confidential Comments to the Editor
</p>
<p class="quescont">{{item.confidential}}</p>
</div>
<div>
<p>
Disclose name or remain anonymous.
<span>{{gradeName(item.is_anonymous)}}</span>
</p>
</div>
</div>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="detailVisible = false">Cancel</el-button>
</span>
</el-dialog>
</div>
</template>
@@ -322,75 +228,26 @@
data() {
return {
baseUrl: this.Common.baseUrl,
questionform: {
uid: 0,
articleId: this.$route.query.id,
qu1: '',
qu2: '',
qu3: '',
qu4: '',
qu5: '',
qu6: '',
qu7: '',
qu8: '',
qu9: '',
qu9contents: '',
qu10: '',
qu10contents: '',
qu11: '',
qu11contents: '',
qu12: '',
qu12contents: '',
qu13: '',
qu13contents: '',
qu14: '',
qu14contents: '',
qu15: '',
qu15contents: '',
rated: '',
recommend: '',
other: '',
confident: '',
comment: ''
},
txt_mess: {},
articleMess: {},
activeComment: [],
comentReview: '',
comentDeploy: [],
query: {
articleId: this.$route.query.id,
article_id: this.$route.query.id,
pageIndex: 1,
pageSize: 10
},
editform: {
uid: 0,
articleId: this.$route.query.id
},
reviewer_data: {
introduction: '',
country: '',
company: '',
major_title: '',
field: ''
},
reviewer_data1: {
introduction: '',
country: '',
company: '',
major_title: '',
field: ''
},
editVisible: false,
editVisible1: false,
AddSuggest: false,
detailVisible: false,
tableData: [],
reviewerList: [],
tableSuggest: [],
loading: false,
Total: 0
};
},
created() {
this.getdate();
this.initreviewerList();
this.getDate();
},
computed: {
upload_url: function() {
@@ -399,7 +256,7 @@
},
methods: {
// 获取编辑列表数据
getdate() {
getDate() {
this.$api
.post('api/Article/getReviewerList', this.query)
.then((res) => {
@@ -417,16 +274,21 @@
.catch((err) => {
console.log(err);
});
this.$api
.post('api/Article/getArticleDetail', {
articleId: this.query.articleId,
human: 'editor'
})
.then((res) => {
this.articleMess = res.article;
})
.catch((err) => {
console.log(err);
});
},
// 分页导航
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getdate();
},
addReviewer() {
alert('sssss');
},
// 添加跳页面
// 添加审稿人
openAddRev() {
this.$router.push({
path: 'articleReviewerAdd',
@@ -435,67 +297,15 @@
}
});
},
//初始化审查员列表
initreviewerList() {
this.$api
.post('api/Article/getArticleReviewerList', {
articleId: this.query.articleId
})
.then((res) => {
this.reviewerList = res.data;
})
.catch((err) => {
console.log(err);
});
},
//保存添加操作
saveEdit() {
if (this.editform.uid == 0) {
this.$message.error('please select a reviewer');
} else {
this.loading = true;
this.$api
.post('api/Article/addArticleReviewer', this.editform)
.then((res) => {
this.loading = false;
if (res.code == 0) {
this.$message.success('add success');
this.$router.go(0);
} else {
this.$message.error('add error');
}
})
.catch((err) => {
console.log(err);
});
}
},
addArtRev() {
if (this.questionform.uid == 0) {
this.$message.error('Please select a reviewer');
} else if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
this.$message.error('Please choose disclose your name or remain anonymous.');
} else {
this.loading = true;
this.$api.post('api/Article/addArtRev', this.questionform)
.then((res) => {
this.loading = false;
if (res.code == 0) {
this.$message.success('add success');
this.$router.go(0);
} else {
this.$message.error('add error');
}
})
.catch((err) => {
console.log(err);
});
}
},
// 添加推荐审稿人
// 弹出添加推荐审稿人
openSuggRev() {
this.AddSuggest = true
},
// 选择推荐审稿人
selSuggest(e) {
this.loading = true;
this.$api
@@ -508,7 +318,7 @@
if (res.code == 0) {
this.$message.success('Add Success');
this.AddSuggest = false
this.getdate();
this.getDate();
} else {
this.$message.error('Add Error');
}
@@ -518,54 +328,41 @@
console.log(err);
});
},
// 查看审稿人审稿列表
showdetail(row) {
this.comentReview = row.reviewer
if (row.state == 4) {
this.$message.error('Review expired!');
} else {
this.$router.push({
path: 'articleReviewerDetail',
query: {
id: row.art_rev_id
return
}
this.comentDeploy = []
this.$api
.post('api/Reviewer/getQuestion', {
artrevid: row.art_rev_id
})
.then((res) => {
if (res.code == 0) {
this.comentDeploy.push(res.data)
}
})
.catch((err) => {
console.log(err);
});
}
},
changereviewer() {
if (this.editform.uid !== 0) {
this.$api
.post('api/Article/getReviewerdetail', {
uid: this.editform.uid
})
.then((res) => {
this.reviewer_data.introduction = res.data.introduction;
this.reviewer_data.country = res.data.country;
this.reviewer_data.company = res.data.company;
this.reviewer_data.major_title = res.data.major_title;
this.reviewer_data.field = res.data.field;
})
.catch((err) => {
console.log(err);
});
}
},
changereviewer1() {
if (this.questionform.uid !== 0) {
this.$api
.post('api/Article/getReviewerdetail', {
uid: this.questionform.uid
})
.then((res) => {
this.reviewer_data1.introduction = res.data.introduction;
this.reviewer_data1.country = res.data.country;
this.reviewer_data1.company = res.data.company;
this.reviewer_data1.major_title = res.data.major_title;
this.reviewer_data1.field = res.data.field;
})
.catch((err) => {
console.log(err);
});
}
this.detailVisible = true
// this.$router.push({
// path: 'articleReviewerDetail',
// query: {
// id: row.art_rev_id
// }
// });
},
// 审稿建议
revstate(row, column, cellValue, index) {
let frag = '';
if (row.state == 0) {
@@ -596,6 +393,72 @@
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return Y + M + D + ' ' + h + ':' + m + ':' + s;
},
// 等级
gradeTwo(e) {
let drage = '';
if (e) {
drage = 'Yes';
} else {
drage = 'No';
}
return drage;
},
gradeFour(e) {
let drage = '';
if (e == 1) {
drage = 'Excellent';
} else if (e == 2) {
drage = 'Good';
} else if (e == 3) {
drage = 'Fair';
} else if (e == 4) {
drage = 'Poor';
}
return drage;
},
gradeRcond(e) {
let drage = '';
if (e == 1) {
drage = 'Accept with minor revision';
} else if (e == 2) {
drage = 'Accept with major revision';
} else if (e == 3) {
drage = 'Reject in current form, but may be resubmitted';
} else if (e == 4) {
drage = 'Reject, with no resubmission';
}
return drage;
},
gradeCrti(e) {
let drage = '';
if (e == 1) {
drage = 'Imperfect style';
} else if (e == 2) {
drage = 'Too long';
} else if (e == 3) {
drage = 'References incorrectly presented';
} else if (e == 4) {
drage = 'Typographical and Grammatical errors';
}
return drage;
},
gradeName(e) {
let drage = '';
if (e == 0) {
drage = 'Disclose name';
} else if (e == 1) {
drage = 'Remain anonymous';
}
return drage;
},
// 分页导航
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getDate();
},
}
};
</script>
@@ -649,4 +512,71 @@
.el-table .red-row {
background: #f05555;
}
.tab_tie_col {
margin-bottom: 5px;
color: #333;
word-wrap: break-word;
word-break: normal;
}
.tab_tie_col>span {
color: #888;
margin: 0 5px 0 0;
font-size: 13px;
}
.art_author_list {
margin: 0 0 0 5px;
}
.art_author_list .com_shu {
background-color: #006699;
color: #fff;
display: inline-block;
width: 18px;
height: 18px;
line-height: 18px;
text-align: center;
margin: 0 10px 0 0;
}
.el-collapse {
border-bottom: 0;
}
.art_author_coment {
margin-top: 20px;
}
.art_author_coment>div {
margin: 10px 0 0 28px;
line-height: 20px;
word-break: break-word;
}
.art_author_coment>div:first-child {
margin-top: 0;
}
.art_author_coment>div>p {
display: block;
margin: 0 0 2px 0;
font-weight: bold;
color: #777;
letter-spacing: -0.5px;
}
.art_author_coment>div>p>span {
color: #006699;
margin-left: 30px;
font-weight: bold;
}
.art_author_coment .quescont {
margin-left: 14px;
color: #006699;
line-height: 22px;
}
</style>

View File

@@ -28,6 +28,7 @@
<el-form-item>
<el-button type="primary" @click="onSubmit">add</el-button>
</el-form-item>
</el-form>
</div>
</div>

View File

@@ -0,0 +1,853 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-collection"></i>
<router-link :to="{path:'/peerewer'}">
<span class="top_dao"> Reviewer Article</span>
</router-link>
>> Reviewer Article Detail
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container_l" v-loading="loading" element-loading-text="Loading..."
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
<el-row :gutter="20">
<el-col :span="10">
<iframe ref="mainiframe" :src="pdfUrl" class="lookpdf" frameborder="0"></iframe>
</el-col>
<el-col :span="14" style="height: 760px;overflow-y: scroll;">
<!-- <el-col :span="24"> -->
<el-card class="box-card">
<div class="tet_list" :model="txt_mess">
<h4>{{txt_mess.article_title}}</h4>
<h5>
<a :href="txt_mess.website" target="_blank" class="titlink">{{txt_mess.title}}</a>
<span style="margin: 0 10px;"> >> </span>
Manuscript ID: {{txt_mess.accept_sn}}
</h5>
<p style="display:inline-block;margin: 0 35px;"><b>Type :</b> {{txt_mess.atype}}</p>
<p style="display:inline-block;"><b>Submitted time :</b> {{txt_mess.ctime}}</p>
<div>
<p><b>Abstract :</b> <br>{{txt_mess.abstrart}}</p>
<div class="file_sty" v-for="item in fileList" style="margin-top: 15px;">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">{{item.type_name}}
<span
style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span>
<i class="el-icon-download"
style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
</a><br>
</div>
<div class="file_sty" v-for="item in picList">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Figures And Tables
<span
style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span>
<i class="el-icon-download"
style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
</a><br>
</div>
<p style="margin-top: 5px;color: #999;font-size: 14px;">
<b style="color: #e41411;">Download failed?</b>
<br>If you have upgraded the Google Chrome browser to version 86, released on
October 6,
2020,
you may have
noticed that some file downloads don't work anymore in the browser. You click on the
download
link and nothing
happens.
<br>1. Right now, the easiest option available is to
<b style="color: #e41411;">right-click on the download link and select "save link
as".</b>
The download is executed when you do that.
<br>2. Please try to use a different browser for downloads. For now, a browser like
Firefox,
Internet Explorer,
Brave, Vivaldi, the new Edge, or Opera all allow the download.
</p>
</div>
<!-- <p class="morSou" v-if="!morShow" @click="morShow=true">
<i class="el-icon-bottom"></i>
More article information
</p>
<p class="morSou" v-if="morShow" @click="morShow=false">
<i class="el-icon-top"></i>
More article information
</p> -->
</div>
</el-card>
<div style="font-size: 18px;text-align: center;margin: 0px 0px 25px;">My comments</div>
<div>
<el-card class="box-card conment_list" v-for="(item,index) in conmentList">
<p style="margin: 0 0 15px 0;">
<b>Comment {{index+1}}</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Reviewer :
<b v-if="item.reviewer.user_id==User_Id">{{item.reviewer.account}}</b>
<b v-if="item.reviewer.user_id!=User_Id">XXXXXXXXXX</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Score :
<b>{{item.question.rated}}</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Recommendation :
<b v-if="item.question.recommend == 1">Accept with minor revision</b>
<b v-if="item.question.recommend == 2">Accept with major revision</b>
<b v-if="item.question.recommend == 3">Reject in current form, but may be
resubmitted</b>
<b v-if="item.question.recommend == 4">Reject, with no resubmission</b>
</p>
<p style="font-size: 14px;color: #666;margin: 0 0 20px 0;">Reviewed Time :
<b>{{item.ctime}}</b>
</p>
<el-button type="primary" size="mini" @click="ques_visible(item.question)">
Referee's Assessment
</el-button>
</el-card>
</div>
<div style="font-size: 18px;text-align: center;margin: 0px 0px 25px;">All comments</div>
<div>
<el-card class="box-card conment_list" v-for="(item,index) in conmentList">
<p style="margin: 0 0 15px 0;">
<b>Comment {{index+1}}</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Reviewer :
<b v-if="item.reviewer.user_id==User_Id">{{item.reviewer.account}}</b>
<b v-if="item.reviewer.user_id!=User_Id">XXXXXXXXXX</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Score :
<b>{{item.question.rated}}</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Recommendation :
<b v-if="item.question.recommend == 1">Accept with minor revision</b>
<b v-if="item.question.recommend == 2">Accept with major revision</b>
<b v-if="item.question.recommend == 3">Reject in current form, but may be
resubmitted</b>
<b v-if="item.question.recommend == 4">Reject, with no resubmission</b>
</p>
<p style="font-size: 14px;color: #666;margin: 0 0 20px 0;">Reviewed Time :
<b>{{item.ctime}}</b>
</p>
<el-button type="primary" size="mini" @click="ques_visible(item.question)">
Referee's Assessment
</el-button>
</el-card>
</div>
<!-- 审稿意见出框 -->
<el-dialog :visible.sync="questionVisible" width="1000px">
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px"
label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item prop="qu6">
<span slot="label">
1.Does the manuscript fall within the aim and scope of the journal?
<a :href="txt_mess.aim_web" target="_blank" class="jouLink">( Aims & Scope )
</a>
</span>
<el-radio-group v-model="questionform.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Originality of the topic">
<el-radio-group v-model="questionform.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Importance in its Field">
<el-radio-group v-model="questionform.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="questionform.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="questionform.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu9contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu10contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu11contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu12contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="questionform.qu13contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated" prop="rated">
( <span style="color: #e41411;">←←←←← Bad ←←← Poor</span>
<span style="width: 10px;display: inline-block;"></span>
<span style="color: #369916;">Accept → Superior → Excellent</span>)
<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px;">Your score : {{questionform.rated}}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="questionform.recommend" style="line-height: 30px;">
<el-radio :label="1">Accept with minor revision</el-radio>
<br />
<el-radio :label="2">Accept with major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject, with no resubmission</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="questionform.other" style="line-height: 30px;">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item> -->
<el-form-item label="Comments for the Authors"
v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'">
<el-input type="textarea" placeholder="please input content"
v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Comments for the Authors" prop="comment"
v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'">
<el-input type="textarea" placeholder="please input content"
v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input type="textarea" placeholder="please input content"
v-model="questionform.confident" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous">
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px;">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px;color: #aaa;font-size: 13px;margin: 12px 0 0 0;">
If you agree to disclose your name, we will acknowledge you by name in the
published
PDF. However, if you prefer to remain anonymous, we will still express our
gratitude
by thanking you as an anonymous reviewer.
<br />For example, {{txt_mess.title}} would like to thank AAAAAAAA, BBBBBBBB,
and other anonymous reviewers for their
invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
<el-form-item v-if="this.btn_submit==0">
<el-button type="primary" @click="questionSubmit">submit</el-button>
</el-form-item>
</el-collapse>
</el-form>
</el-dialog>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import pdf from 'vue-pdf';
export default {
data() {
return {
loading: false,
Direct_log: this.$route.query.act,
Art_id: this.$route.query.Art_id,
// morShow: false,
txt_mess: {},
fileList: [],
picList: [],
mediaUrl: this.Common.mediaUrl,
User_Id: localStorage.getItem('U_id'),
add_edit: {
article_id: this.$route.query.Art_id,
user_id: localStorage.getItem('U_id'),
content: ''
},
head_line: '',
conmentList: [],
questionform: {
rev_qu_id: '',
art_rev_id: this.$route.query.Art_id,
qu1: '',
qu2: '',
qu3: '',
qu4: '',
qu5: '',
qu6: '',
qu7: '',
qu8: '',
qu9: '',
qu9contents: '',
qu10: '',
qu10contents: '',
qu11: '',
qu11contents: '',
qu12: '',
qu12contents: '',
qu13: '',
qu13contents: '',
qu14: '',
qu14contents: '',
qu15: '',
qu15contents: '',
rated: '',
recommend: '',
other: '',
confident: '',
comment: '',
is_anonymous: ''
},
btn_submit: 0,
questionVisible:false,
pdfUrl: '',
rules: {
qu6: [{
required: true,
message: "please select",
trigger: "blur"
}],
rated: [{
required: true,
message: "please select",
trigger: "blur"
}],
comment: [{
required: true,
message: "please input content",
trigger: "blur"
}],
recommend: [{
required: true,
message: "please select",
trigger: "blur"
}],
}
}
},
created() {
if (this.Direct_log == null) {
this.getData();
} else {
this.$api
.post('api/Chief/autoLoginForChief', {
'code': this.Direct_log
})
.then(res => {
if (res.code == 0) {
localStorage.setItem('U_role', res.data.roles);
localStorage.setItem('U_name', res.data.user.account);
localStorage.setItem('U_id', res.data.user.user_id);
localStorage.setItem('U_relname', res.data.user.realname);
this.$api
.post('api/Reviewer/agreeReviewerArticle', {
art_rev_id: this.Art_id
})
.then(res => {
this.getData();
})
.catch(err => {
this.$message.error(err);
});
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}
},
methods: {
getData() {
// 获取文章信息
this.$api
.post('api/Reviewer/getartrevdate', {
'revid': this.Art_id,
'human': 'reviewer'
})
.then(res => {
if (res.state != 0) {
this.btn_submit = 1
}
let date = new Date(parseInt(res.ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 +
'-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.ctime = Y + M + D;
this.txt_mess = res;
})
.catch(err => {
this.$message.error(err);
});
this.$api
.post('api/Reviewer/getAFilelistByID ', {
'revid': this.Art_id
})
.then(res => {
for (var i = 0; i < res.data.length; i++) {
let date = new Date(parseInt(res.data[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() +
1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data[i].ctime = Y + M + D;
}
this.fileList = res.data
// 获取格式
let pdfOut = this.fileList[this.fileList.length - 1].file_url
if (pdfOut.substring(pdfOut.lastIndexOf('.') + 1) == 'docx') {
this.pdfUrl =
'https://view.officeapps.live.com/op/view.aspx?src=https://submission.tmrjournals.com/public/' +
pdfOut
// this.pdfUrl =
// 'https://view.xdocin.com/view?src=https://submission.tmrjournals.com/public/' +
// pdfOut
} else {
this.pdfUrl = 'https://submission.tmrjournals.com/public/' + pdfOut
}
})
.catch(err => {
this.$message.error(err);
});
this.$api
.post('api/Reviewer/getBFilelistByID', {
'revid': this.Art_id
})
.then(res => {
for (var i = 0; i < res.data.length; i++) {
let date = new Date(parseInt(res.data[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() +
1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data[i].ctime = Y + M + D;
}
this.picList = res.data
})
.catch(err => {
this.$message.error(err);
});
//初始化问卷
this.$api
.post('api/Reviewer/getQuestion', {
artrevid: this.Art_id
}).then((res) => {
if (res.code == 0) {
this.questionform.rev_qu_id = res.data.rev_qu_id;
this.questionform.qu1 = res.data.qu1;
this.questionform.qu2 = res.data.qu2;
this.questionform.qu3 = res.data.qu3;
this.questionform.qu4 = res.data.qu4;
this.questionform.qu5 = res.data.qu5;
this.questionform.qu6 = res.data.qu6;
this.questionform.qu7 = res.data.qu7;
this.questionform.qu8 = res.data.qu8;
this.questionform.qu9 = res.data.qu9 == 0 ? false : true;
this.questionform.qu9contents = res.data.qu9_contents;
this.questionform.qu10 = res.data.qu10 == 0 ? false : true;
this.questionform.qu10contents = res.data.qu10_contents;
this.questionform.qu11 = res.data.qu11 == 0 ? false : true;
this.questionform.qu11contents = res.data.qu11_contents;
this.questionform.qu12 = res.data.qu12 == 0 ? false : true;
this.questionform.qu12contents = res.data.qu12_contents;
this.questionform.qu13 = res.data.qu13 == 0 ? false : true;
this.questionform.qu13contents = res.data.qu13_contents;
this.questionform.qu14 = res.data.qu14 == 0 ? false : true;
this.questionform.qu14contents = res.data.qu14_contents;
this.questionform.qu15 = res.data.qu15 == 0 ? false : true;
this.questionform.qu15contents = res.data.qu15_contents;
this.questionform.rated = res.data.rated;
this.questionform.recommend = res.data.recommend;
this.questionform.other = res.data.other;
this.questionform.confident = res.data.confidential;
this.questionform.comment = res.data.comments;
this.questionform.is_anonymous = res.data.is_anonymous
}
});
this.$api
.post('api/Reviewer/getAllReviewerObj', {
'article_id': '38'
})
.then(res => {
for (var i = 0; i < res.data.reviews.length; i++) {
let date = new Date(parseInt(res.data.reviews[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() +
1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data.reviews[i].ctime = Y + M + D;
}
this.conmentList = res.data.reviews
})
.catch(err => {
this.$message.error(err);
});
},
questionSubmit() {
if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
this.$message.error('Please choose disclose your name or remain anonymous.');
} else {
// 验证相加的字数
let Char_Cter = this.questionform.qu9contents + ' ' + this.questionform.qu10contents + ' ' +
this.questionform.qu11contents + ' ' + this.questionform.qu12contents + ' ' +
this.questionform.qu13contents + ' ' + this.questionform.comment
if (new RegExp("[\\u4E00-\\u9FFF]+", "g").test(Char_Cter)) {
//中文
let blankCount = 0;
for (let i in Char_Cter.match(/ /g)) {
blankCount++
}
let wenziCount = 0;
for (let j = 0; j < Char_Cter.length; j++) {
if ((Char_Cter.charCodeAt(j) < 0) || (Char_Cter.charCodeAt(j) > 255)) {
wenziCount++
}
}
if (blankCount + wenziCount <= 60) {
this.$message.error(
'We encourage you to enrich your comment further to help improve the peer paper.')
this.$message({
offset: '380',
type: 'error',
message: "We encourage you to enrich your comment further to help improve the peer paper."
})
return false
}
} else {
//英文
let blankCount = 0;
for (let i in Char_Cter.match(/ /g)) {
blankCount++
}
if (blankCount <= 50) {
this.$message.error(
'We encourage you to enrich your comment further to help improve the peer paper.');
this.$message({
offset: '380',
type: 'error',
message: "We encourage you to enrich your comment further to help improve the peer paper."
})
return false
}
}
// 提交接口
this.loading = true
this.$refs.question.validate((valid) => {
if (valid) {
this.$api
.post('api/Reviewer/questionSubmit', this.questionform)
.then((res) => {
if (res.code == 0) {
this.loading = false;
this.$message.success('Success!!');
this.getData();
this.$router.push('/per_text_success');
} else {
this.loading = false;
// this.$message.error('Question submit error!');
this.$message.error(res.msg);
}
});
} else {
this.loading = false;
}
});
}
},
//初始化问卷
ques_visible(e) {
this.questionVisible = true
}
},
mounted() {
},
}
</script>
<style scoped>
.tet_list {
font-size: 20px;
}
.box-card {
margin-bottom: 20px;
line-height: 24px;
}
.upload-txtc .el-upload-list__item .el-icon-upload-success {
display: none !important;
}
.tet_list h5 {
font-size: 15px;
margin: 20px 0 5px 0;
font-weight: normal;
display: inline-block;
}
.tet_list p {
font-family: Calibri;
line-height: 22px;
font-size: 16px;
}
.file_sty {
margin-bottom: 6px;
}
.file_sty a {
color: #606266;
font-size: 14px;
}
.file_sty a:hover {
text-decoration: underline;
}
.red {
color: #ff0000;
}
.el-collapse {
border-top: 0;
border-bottom: 0;
}
.top_dao:hover {
text-decoration: underline;
cursor: pointer;
}
.icon_img {
width: 15px;
height: 15px;
margin-right: 10px;
vertical-align: middle;
}
.trah_c .icon_img {
width: 24px;
height: 24px;
margin: 0 20px;
}
.el-divider {
background-color: #006699;
}
.container_l {
min-width: 1000px;
}
.container_l .box-card {
height: auto;
}
.lookpdf {
height: 760px;
width: 100%;
}
.titlink {
color: #006699;
text-decoration: underline;
cursor: pointer;
}
.morSou {
color: #006699;
text-align: right;
font-weight: bold;
margin: 5px 0 -10px 0;
}
.morSou i {
margin-right: 3px;
font-weight: bold;
}
.morSou:hover {
text-decoration: underline;
cursor: pointer;
}
.jouLink {
color: #006699;
font-weight: bold;
margin: 0 0 0 5px;
}
.jouLink:hover {
text-decoration: underline;
cursor: pointer;
}
.conment_list {
display: inline-block;
text-align: left;
width: 32%;
height: 270px;
margin: 0 0.5% 1%;
}
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -614,6 +614,13 @@ export default new Router({
title: 'Reviewer article details'
}
},
{
path: '/per_text_ls', //审稿人文章详情-总共
component: () => import('../components/page/per_text_ls'),
meta: {
title: 'Reviewer article details'
}
},
{
path: '/per_text_yq', //审稿人文章详情-邀请
component: () => import('../components/page/per_text_yq'),

View File

@@ -4,8 +4,10 @@ module.exports = {
assetsDir: 'static',
productionSourceMap: false,
devServer: {
public: 'http://192.168.110.159:8080/', // 你自己本地的ip地址:端口号
// port: '8080',
// public: 'http://192.168.110.156:8080/', // 你自己本地的ip地址:端口号
// host:'localhost'
public:'0.0.0.0:8080/',
port: '8080',
// open: true,
// overlay: {
// warnings: false,