This commit is contained in:
徐哼唧L
2022-12-09 16:18:12 +08:00
parent dc4d87a990
commit 5ed3073b6e
130 changed files with 41608 additions and 2013 deletions

View File

@@ -11,9 +11,9 @@
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="art_state_text">
<!-- <div class="art_state_text">
Dear author
</div>
</div> -->
<div class="container_state" v-loading="loading">
<p class="art_suthor_message">
<font style="color: #888;">ID : {{artMes.accept_sn}}</font>
@@ -22,71 +22,103 @@
</b>
</p>
<el-row :gutter="30">
<el-col :span="15">
<div class="art_author_">
<h2>
Coment from reviewers
</h2>
<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 Suggest
<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>
{{item.qu9_contents}}
</p>
<p v-if="item.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
{{item.qu10_contents}}
</p>
<p v-if="item.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
{{item.qu11_contents}}
</p>
<p v-if="item.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
{{item.qu12_contents}}
</p>
<p v-if="item.qu13_contents!=''">
<font>Are the references properly cited?</font>
{{item.qu13_contents}}
</p>
<p v-if="item.comments!=''">
<font>Comments for the Authors</font>
{{item.comments}}
</p>
</div>
</el-collapse-item>
</el-collapse>
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No coment</p>
</div>
<div class="art_author_">
<h2 style="margin-bottom: 20px;">
Coment from editor
</h2>
<div v-if="fileEditor!=''" v-for="(item,index) in fileEditor" class="art_author_peng">
<a :href="mediaUrl + item.proposal_file">
<img src="../../assets/img/icon_0.png">
files{{index+1}}
<span>{{formatDate1(item.ap_ctime)}}</span>
<i class="el-icon-download download"></i>
</a>
<el-col :span="16">
<div style="border: 1px solid #dcdfe6;border-radius: 5px;background-color: #fff;">
<div class="art_author_">
<h2>
Comments from reviewers
</h2>
<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>
</div>
<div class="art_author_">
<h2 :style="{'margin-bottom':(ComEditor==''?'0':'20px')}">
Comments from editor
<span v-if="ComEditor==''"
style="color: #888888;margin: 0 0 0 10px;font-size: 12px;font-weight: normal;margin-left: 30px;letter-spacing: 0;">No
Comment</span>
</h2>
<div v-if="ComEditor!=''" v-for="(item,index) in ComEditor" class="art_author_peng">
<span style="color: #555;">{{index+1}}. Editor Comment</span>
<i class="el-icon-time" style="margin:0 6px 0 50px;color: #888888;"></i>
<span style="color: #888888;">{{formatDate1(item.ap_ctime)}}</span>
<p style="margin: 5px 0 0 16px;">{{item.proposal_content}}</p>
</div>
</div>
<div style="height: 1px;width: 95%;background-color: #EBEEF5;margin: 0 auto;"></div>
<div class="art_author_">
<h2 :style="{'margin-bottom':(ComRespe==''?'0':'20px')}">
Response to reviewers
<span v-if="ComRespe==''"
style="color: #888888;margin: 0 0 0 10px;font-size: 12px;font-weight: normal;margin-left: 30px;letter-spacing: 0;">No
Response</span>
</h2>
<div style="margin: 10px 0 0px 10px;line-height: 24px;">
<a v-if="ComRespe!=''" v-for="(item,index) in ComRespe" :href="mediaUrl + item.file_url"
style="color: #333;display: block;margin-bottom: 10px;">
<span>{{index+1}}. Response Content</span>
<img src="../../assets/img/icon_0.png"
style="width: 15px;vertical-align: text-bottom;margin: 0 0 0 20px;">
<span style="color: #888888;">
<i class="el-icon-time"
style="margin:0 6px 0 20px;"></i>{{formatDate1(item.artr_ctime)}}
</span>
<i class="el-icon-download download"
style="margin:0 6px 0 20px;font-weight: 700;color: #75abf1;"></i>
</a>
</div>
</div>
<p v-if="fileEditor==''" style="color: #888888;margin: 0 0 0 10px;">No coment</p>
</div>
<div class="art_caozuo_">
<div class="art_author_btn">
<div class="art_file_btn_text">
author
</div>
<h4>Cover letter :</h4>
<!-- <div class="art_file_btn_text">
Dear author
</div> -->
<!-- <h4>Cover letter :</h4>
<p>
<el-upload class="upload-demo" :action="upload_coverLetter" accept=".pdf, .doc, .docx" name="coverLetter"
:before-upload="beforeupload_coverLetter" :on-error="uperr_coverLetter" :on-success="upSuccess_coverLetter"
@@ -97,61 +129,68 @@
<div class="el-upload__tip" slot="tip">Only pdf and word files can be uploaded (.pdf,.doc,.docx)</div>
</el-upload>
</p>
<br clear="both">
<h4>Manuscirpt :</h4>
<br clear="both"> -->
<h4><b style="margin-right:5px;color: red;">*</b>Manuscirpt :</h4>
<p>
<el-upload class="upload-demo" :action="upload_manuscirpt" accept=".doc, .docx, .rar, .zip" name="manuscirpt"
:before-upload="beforeupload_manuscirpt" :on-error="uperr_coverLetter" :on-success="upSuccess_manuscirpt"
:limit="1" :on-exceed="alertlimit" :on-remove="removefilemanuscirpt">
<el-upload class="upload-demo" :action="upload_manuscirpt" accept=".docx"
name="manuscirpt" :before-upload="beforeupload_manuscirpt"
:on-error="uperr_coverLetter" :on-success="upSuccess_manuscirpt" :limit="1"
:on-exceed="alertlimit" :on-remove="removefilemanuscirpt">
<div class="el-upload__text" style="padding:8px 5px;">
<em>Click Upload</em>
</div>
<div class="el-upload__tip" slot="tip">Only word and compressed files (.doc,.docx,.rar,.zip)</div>
<div class="el-upload__tip" slot="tip">Only word and compressed files (.docx)</div>
</el-upload>
</p>
<br clear="both">
<h4>Figures :</h4>
<p>
<el-upload class="upload-demo" :action="upload_picturesAndTables" accept=".jpg, .png, .rar, .zip" name="picturesAndTables"
:before-upload="beforeupload_picturesAndTables" :on-error="uperr_coverLetter" :on-success="upSuccess_picturesAndTables"
:limit="30" :on-exceed="alertlimit" :on-remove="removefilepicturesAndTables">
<el-upload class="upload-demo" :action="upload_picturesAndTables" accept=".rar, .zip"
name="picturesAndTables" :before-upload="beforeupload_picturesAndTables"
:on-error="uperr_coverLetter" :on-success="upSuccess_picturesAndTables" :limit="1"
:on-exceed="alertlimit" :on-remove="removefilepicturesAndTables">
<div class="el-upload__text" style="padding:8px 5px;">
<em>Click Upload</em>
</div>
<div class="el-upload__tip" slot="tip">Only compressed files can be uploaded (.rar,.zip)</div>
<div class="el-upload__tip" slot="tip">Only compressed files can be uploaded
(.rar,.zip)</div>
</el-upload>
</p>
<br clear="both">
<h4>Title page :</h4>
<h4><b style="margin-right:5px;color: red;">*</b>Response to reviewers :</h4>
<p>
<el-upload class="upload-demo" :action="upload_totalpage" accept=".doc, .docx, .rar, .zip" name="totalpage"
:before-upload="beforeupload_totalpage" :on-error="uperr_coverLetter" :on-success="upSuccess_totalpage" :limit="1"
:on-exceed="alertlimit" :on-remove="removefiletotalpage">
<el-upload class="upload-demo" :action="upload_response" accept=".docx,"
name="articleResponse" :before-upload="beforeupload_response"
:on-error="uperr_coverLetter" :on-success="upSuccess_response" :limit="1"
:on-exceed="alertlimit" :on-remove="removefileresponse">
<div class="el-upload__text" style="padding:8px 5px;">
<em>Click Upload</em>
</div>
<div class="el-upload__tip" slot="tip">Only word and compressed files (.doc,.docx,.rar,.zip)</div>
<div class="el-upload__tip" slot="tip">Only word files can be uploaded
(.docx)</div>
</el-upload>
</p>
<br clear="both">
<el-button type="primary" @click="onSubmit" style="margin: 0 0 0 107px;">Submit</el-button>
<el-button type="primary" @click="onSubmit" style="margin: 0 0 0 200px;">Submit Revision
</el-button>
</div>
</div>
</el-col>
<el-col :span="9">
<el-col :span="8">
<div class="kuang_communtion">
<h2>
Communication
</h2>
<div v-for="item in talkMsgs" class="kuang_communtion_conmt">
<div v-if="item.username != userName" class="talk_aued">
<div v-if="item.user_id != artMes.user_id" class="talk_aued">
<p> Editor : </p>
<el-card>
<p>{{ item.ad_content }}</p>
</el-card>
<b>{{formatDate(item.ad_ctime)}}</b>
</div>
<div v-if="item.username == userName" class="talk_aued talk_edit">
<div v-if="item.user_id == artMes.user_id" class="talk_aued talk_edit">
<p> Author : </p>
<el-card>
<p>{{ item.ad_content }}</p>
@@ -161,11 +200,31 @@
</div>
<div class="kuang_communtion_input">
<p v-if="talkMsgs"></p>
<el-input type="textarea" rows="3" v-model="msgform.ad_content" placeholder="Editor messages" resize="none"></el-input>
<div class="kuang_communtion_input_text">
Dear Author, through this window, you can have informal
<span class="text_bor_ghu">
<el-input type="textarea" rows="3" v-model="msgform.ad_content"
placeholder="You can initiate short conversations with the editor." resize="none">
</el-input>
<el-button type="primary" @click="saveMsg">Send</el-button>
</div>
</span>
<font style="font-size: 12px;color: #999;padding:12px 5px 0 5px;display: block;">
This column is served as an instant correspondence between the editor and authors,
aiming to acquire a faster
way of communication than E-Mail. If you have any questions, please start the instant
corresponding, and the
editors will reply to you in 24 hours.
<br>
<font style="color: #006699;">Please Attention</font>
<br>
<font style="color: #006699;">1.</font> If you need to send files as attachments, please
send them to
tmr@tmrjournals.com
<br>
<font style="color: #006699;">2.</font> Please do not upload the primary documents like
the cover letter, the
reply to the reviewer comments,
etc.
</font>
</div>
</div>
</el-col>
@@ -195,12 +254,14 @@
<el-collapse-item :title="authorList_name" name="1">
<div v-for="(item, index) in artMes.authorList" 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;">
<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;">
<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">
@@ -235,15 +296,24 @@
</div>
</el-collapse-item>
</el-collapse>
<p>
<font>Abstrart :</font><b>{{artMes.abstrart}}</b>
</p>
<p v-if="artMes.keyWords">
<font>KeyWords :</font><b>{{artMes.keyWords}}</b>
</p>
<p v-if="artMes.fund">
<font>Fund :</font><b>{{artMes.fund}}</b>
</p>
<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="artMes.keywords" style="margin-left: 3px;">, Keywords</font>
<font v-if="artMes.fund" style="margin-left: 3px;">, Fund</font>
</template>
<p>
<font>Abstract :</font><b>{{artMes.abstrart}}</b>
</p>
<p v-if="artMes.keywords">
<font>Keywords :</font><b>{{artMes.keywords}}</b>
</p>
<p v-if="artMes.fund">
<font>Fund :</font><b>{{artMes.fund}}</b>
</p>
</el-collapse-item>
</el-collapse>
</div>
<div class="art_file">
@@ -271,8 +341,8 @@
</a>
</p>
<br clear="both" v-if="picturesAndTablesFileList">
<h4>Title page : </h4>
<p>
<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>
@@ -282,7 +352,7 @@
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both">
<br clear="both" v-if="totalpageFileList">
<h4>Manuscirpt : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
@@ -313,12 +383,19 @@
userName: localStorage.getItem('U_name'),
loading: false,
Detailvisible: false,
activeComment: [0],
activeComment: [],
activeNames: ['2'],
authorList_name: '',
artMes: {
articleId: this.$route.query.id
},
fileMesForm: {
manuscirpt: '',
picturesAndTables: '',
responseFile: '',
articleId: this.$route.query.id,
username: localStorage.getItem('U_name')
},
msgform: {
username: localStorage.getItem('U_name'),
article_id: this.$route.query.id,
@@ -326,7 +403,8 @@
},
comentDeploy: [],
talkMsgs: [],
fileEditor: [],
ComEditor: [],
ComRespe: [],
coverLetterFileList: [],
picturesAndTablesFileList: [],
totalpageFileList: [],
@@ -350,12 +428,12 @@
upload_picturesAndTables: function() {
return this.baseUrl + 'api/Article/up_file/type/picturesAndTables';
},
upload_totalpage: function() {
return this.baseUrl + 'api/Article/up_file/type/totalpage';
},
upload_manuscirpt: function() {
return this.baseUrl + 'api/Article/up_file/type/manuscirpt';
},
upload_response: function() {
return this.baseUrl + 'api/Article/up_response_file';
},
},
methods: {
//初始化文章信息
@@ -400,7 +478,6 @@
.catch((err) => {
console.log(err);
});
//初始化filelist
this.$api
.post('api/Article/getFilelistByArticleID', {
@@ -416,18 +493,33 @@
console.log(err);
});
// 编辑上传的文件
// 获取编辑修回意见列表
this.$api
.post('api/Article/getArticleProposals', {
article_id: this.articleId
})
.then(res => {
this.fileEditor = res.data.proposals;
this.ComEditor = res.data.proposals;
})
.catch(err => {
console.log(err);
});
// 获取作者发给审稿人邮件列表
this.$api
.post('api/Article/getArticleResponseFiles', {
article_id: this.articleId
})
.then(res => {
this.ComRespe = res.data.files;
})
.catch(err => {
console.log(err);
});
// 留言板列表
this.$api
.post('api/Article/getArticleDialogs', {
@@ -478,36 +570,38 @@
this.loading = false;
this.$message.success('Sent successfully');
this.initarticle()
this.msgform.ad_content = ''
});
},
// 上传文件
onSubmit() {
console.log(this.fileMesForm)
//验证文件
if (this.msgform.totalpage == undefined || this.msgform.manuscirpt == undefined) {
if (this.fileMesForm.manuscirpt == undefined || this.fileMesForm.manuscirpt == '') {
this.$message.error(
'Failed to submit. Please upload manuscirpt and title page,ensure the integrity of the information');
'Failed to submit. Please upload manuscirpt,ensure the integrity of the information');
return false;
}
// //验证文章作者
var alist = this.artMes.authorList;
for (var i in alist) {
if (alist[i].author != '' && alist[i].isReport && alist[i].email == '') {
this.$message.error("The corresponding author's email is required");
return false;
}
if (this.fileMesForm.responseFile == undefined || this.fileMesForm.responseFile == '') {
this.$message.error(
'Required information is not allowed to be empty.');
return false;
}
this.loading = true;
this.$api
.post('api/Article/editArticle', this.msgform)
.post('api/Article/RepairBack', this.fileMesForm)
.then((res) => {
this.loading = false;
if (res.code == 0) {
this.$message.success('success');
this.$message.success('Upload successful!');
this.loading = false;
this.initarticle();
this.$router.push({
path: 'articleProcess',
query: {
id: this.articleId
}
});
} else {
this.$message.error('Failed to submit, please contact administrator!');
console.log(res.msg);
@@ -518,12 +612,18 @@
});
},
//检验上传文件的格式
beforeupload_coverLetter(file) {},
beforeupload_picturesAndTables(file) {},
beforeupload_totalpage(file) {},
beforeupload_manuscirpt(file) {},
beforeupload_manuscirpt(file) {
let flieArr = file.name.split(".")
let fileSuffix = flieArr[flieArr.length - 1];
if (fileSuffix != 'docx') {
this.$message.error('Only word and compressed files can be uploaded(.docx)');
return false;
}
},
beforeupload_response(file) {},
uperr_coverLetter(err) {
this.$message.error('upload error!');
},
@@ -534,48 +634,54 @@
// 成功上传文件
upSuccess_coverLetter(res, file) {
if (res.code == 0) {
this.msgform.coverLetter = 'coverLetter/' + res.upurl;
this.fileMesForm.coverLetter = 'coverLetter/' + res.upurl;
} else {
this.$message.error('service error' + res.msg);
}
},
upSuccess_picturesAndTables(res, file, fileList) {
this.msgform.picturesAndTables = [];
for (var ii in fileList) {
var url = fileList[ii].response.upurl;
this.msgform.picturesAndTables.push('picturesAndTables/' + url);
}
},
upSuccess_totalpage(res, file) {
upSuccess_picturesAndTables(res, file) {
if (res.code == 0) {
this.msgform.totalpage = 'totalpage/' + res.upurl;
this.fileMesForm.picturesAndTables = 'picturesAndTables/' + res.upurl;
} else {
this.$message.error('service error:' + res.msg);
}
// this.fileMesForm.picturesAndTables = [];
// for (var ii in fileList) {
// var url = fileList[ii].response.upurl;
// this.fileMesForm.picturesAndTables.push('picturesAndTables/' + url);
// }
},
upSuccess_manuscirpt(res, file) {
if (res.code == 0) {
this.msgform.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileMesForm.manuscirpt = 'manuscirpt/' + res.upurl;
} else {
this.$message.error('service error' + res.msg);
}
},
upSuccess_response(res, file) {
if (res.code == 0) {
this.fileMesForm.responseFile = 'articleResponse/' + res.upurl;
} else {
this.$message.error('service error' + res.msg);
}
},
//清除文件时的事件
removefilecoverLetter(file, fileList) {
this.msgform.coverLetter = '';
this.fileMesForm.coverLetter = '';
},
removefilepicturesAndTables(file, fileList) {
this.msgform.picturesAndTables = [];
for (var ii in fileList) {
var url = fileList[ii].response.upurl;
this.msgform.picturesAndTables.push('picturesAndTables/' + url);
}
},
removefiletotalpage(file, fileList) {
this.msgform.totalpage = '';
this.fileMesForm.picturesAndTables = '';
// this.fileMesForm.picturesAndTables = [];
// for (var ii in fileList) {
// var url = fileList[ii].response.upurl;
// this.fileMesForm.picturesAndTables.push('picturesAndTables/' + url);
// }
},
removefilemanuscirpt(file, fileList) {
this.msgform.manuscirpt = '';
this.fileMesForm.manuscirpt = '';
},
removefileresponse(file, fileList) {
this.fileMesForm.responseFile = '';
},
statetostr(mystate) {
@@ -600,10 +706,10 @@
str = 'Revision';
break;
case 5:
str = 'Accepted';
str = 'Accept';
break;
case 6:
str = 'Fininal decision';
str = 'Pre-accept';
break;
default:
str = 'error!!';
@@ -624,7 +730,7 @@
frag = 'Case report';
break;
case 'P':
frag = 'Research proposal';
frag = 'Research proposal';
break;
case 'N':
frag = 'News';
@@ -647,6 +753,9 @@
case 'RP':
frag = 'Report';
break;
case 'LR':
frag = 'Letter';
break;
case 'EF':
frag = 'Empirical formula';
break;
@@ -668,6 +777,12 @@
case 'CS':
frag = 'Case Series';
break;
case 'RT':
frag = 'Retraction';
break;
case 'MR':
frag = 'Mini Review';
break;
default:
frag = 'Others';
}
@@ -720,11 +835,7 @@
}
.art_author_ {
border: 1px solid #dcdfe6;
border-radius: 5px;
background-color: #fff;
padding: 20px;
margin: 0 0 30px 0;
}
.art_author_>h2 {
@@ -787,9 +898,10 @@
.art_author_btn>h4 {
float: left;
width: 105px;
padding: 8px 0 0 0;
width: 180px;
padding: 8px 20px 0 0;
letter-spacing: -0.5px;
text-align: right;
}
.art_author_btn>p {
@@ -819,7 +931,7 @@
.art_author_coment>p>font {
display: block;
margin: 0 0 2px 0;
color: #888;
color: #006699;
font-weight: bold;
letter-spacing: -0.5px;
}