上传文件

This commit is contained in:
徐哼唧L
2024-02-08 09:15:38 +08:00
parent a5110e7c16
commit 9fdafcb949
8 changed files with 820 additions and 500 deletions

1
.gitignore vendored
View File

@@ -24,3 +24,4 @@ node_modules
/package-lock.json
/src/api/index.js
/src/components/common/common.vue
/vue.config.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

View File

@@ -151,7 +151,8 @@
Website :
</div>
<div class="expInde" style="margin-top: 0;">
<el-link :href="coreTable.website" target="_blank" type="primary">Personal academic introduction</el-link>
<el-link :href="coreTable.website" target="_blank" type="primary">Personal academic
introduction</el-link>
</div>
</div>
<div v-if="coreTable.company!=''">
@@ -240,11 +241,12 @@
<p>Published articles</p>
</div>
<div class="numerItem">
<b >{{authorTable.tj}}</b>
<b>{{authorTable.tj}}</b>
<p>Recommended manuscripts</p>
</div>
<div class="numerItem" >
<b @click="JumpPage(6)" v-if="reviewTable.successReview">{{reviewTable.successReview}}</b>
<div class="numerItem">
<b @click="JumpPage(6)"
v-if="reviewTable.successReview">{{reviewTable.successReview}}</b>
<b @click="JumpPage(6)" v-else>0</b>
<p>Reviewed manuscripts</p>
</div>
@@ -562,11 +564,11 @@
</div>
<div class="new_scard" v-if="!this.usercap.includes('editor')">
<p>
<!-- <p>
New Zealand
<img src="../../assets/img/New_Z.png"
style="width: 45px;margin: 0 0 0 15px;vertical-align: middle;">
</p>
</p> -->
<p style="margin: 10px 0;white-space:nowrap;">
<b style="color: #666;font-size: 14px;cursor: text;">Telephone number :</b> +64
02108293806
@@ -1018,54 +1020,54 @@
youth_journal: [],
df_country: [],
df_technical: [{
label: 'Professor',
}, {
label: 'Associate Professor',
}, {
label: 'Assistant Professor',
},
// {
// label: 'Ph.D.',
// },
{
label: 'Researcher',
}, {
label: 'Associate research fellow',
}, {
label: 'Assistant research fellow',
}, {
label: 'Engineer',
}, {
label: 'Senior engineer',
},
{
label: 'Associate Researcher',
},
{
label: 'Lecturer',
},
{
label: 'Associate Chief Physician',
},
{
label: 'Assistant Researcher',
},
{
label: 'Physician',
},
{
label: 'Chief Physician',
},
{
label: 'Senior Lecturer',
},
{
label: 'Research Fellow',
},
{
label: 'Senior Investigator',
},
],
label: 'Professor',
}, {
label: 'Associate Professor',
}, {
label: 'Assistant Professor',
},
// {
// label: 'Ph.D.',
// },
{
label: 'Researcher',
}, {
label: 'Associate research fellow',
}, {
label: 'Assistant research fellow',
}, {
label: 'Engineer',
}, {
label: 'Senior engineer',
},
{
label: 'Associate Researcher',
},
{
label: 'Lecturer',
},
{
label: 'Associate Chief Physician',
},
{
label: 'Assistant Researcher',
},
{
label: 'Physician',
},
{
label: 'Chief Physician',
},
{
label: 'Senior Lecturer',
},
{
label: 'Research Fellow',
},
{
label: 'Senior Investigator',
},
],
fileL_pdf1: [],
pwdVisible: false,
usermsgList: [],
@@ -1491,7 +1493,11 @@
if (res.data.Yboard) {
this.youth_journal = res.data.Yboard
for (let i = 0; i < this.youth_journal.length; i++) {
this.youth_journal[i].arrowMark = 0
if (i == 0) {
this.youth_journal[i].arrowMark = 1
} else {
this.youth_journal[i].arrowMark = 0
}
}
if (!this.usercap.includes('yboard')) {
localStorage.setItem('U_role', this.usercap + ',yboard')

View File

@@ -100,14 +100,32 @@
<el-form-item label="Manuscript Title :" prop="title">
<el-input v-model="form.title" placeholder="Please enter title"></el-input>
</el-form-item>
<el-form-item label="Whether ethical approval was obtained ?" v-show="form.type == 'A'"
<el-form-item label="Whether ethical approval was obtained ?" prop="approval"
label-width="300px">
<el-switch v-model="form.approval" active-text="yes" inactive-text="no"></el-switch>
<p v-show="form.approval == true"
style="display: inline-block;width: 440px;margin-left: 60px;vertical-align: top;line-height: 22px;color: #999;font-size: 12px;">
For authors who selected 'Yes', please provide the approval number and name of the
ethics committee or institutional review board that approved the study.
</p>
<el-radio-group v-model="form.approval">
<el-radio :label="1">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="Ethical approval file :" prop="approval_file" v-if="form.approval == 1"
label-width="300px">
<el-upload ref="uploadFile" class="upload-demo up_newstyle" :action="upload_articleApproval"
accept=".pdf" name="articleApproval" :before-upload="beforeupload_articleApproval"
:on-error="uperr_coverLetter" :on-success="upSuccess_articleApproval" :limit="1"
:on-exceed="alertlimit" :on-remove="removefilearticleApproval" :file-list="fileL_articleApproval"
:on-preview="dowloadFile">
<div class="el-upload__text" @click="clearUploadedFile">
<em>Upload</em>
</div>
<div class="el-upload__tip" slot="tip">
Only Word and compressed files can be uploaded (file format: .pdf).
</div>
</el-upload>
</el-form-item>
<el-form-item label="Explain the reason clearly :" prop="approval_content"
v-if="form.approval === 0" label-width="300px">
<el-input type="textarea" rows="2" v-model="form.approval_content"
placeholder="Please enter"></el-input>
</el-form-item>
<el-form-item label="Abstract :" prop="abstrart">
<el-input type="textarea" rows="5" v-model="form.abstrart"
@@ -488,7 +506,7 @@
</el-form-item>
<el-form-item label="Major :" prop="major_all">
<el-cascader :options="step4MajorList" v-model="item.major_all" :props="default4Params"
placeholder="Please select major" style="width: 270px;" clearable ></el-cascader>
placeholder="Please select major" style="width: 270px;" clearable></el-cascader>
</el-form-item>
<el-button :disabled="tuiJianForm.length==1" @click="onDeleteTuijian(item, index)"
type="danger" icon="el-icon-delete" class="shanchu_tj"></el-button>
@@ -653,7 +671,7 @@
checkedjours: [],
abstrart: '',
type: '',
approval: false,
approval: '',
istransfer: false,
becomeRev: false,
keyWords: '',
@@ -664,6 +682,8 @@
totalpage: '',
manuscirpt: '',
supplementary: '',
approval_file:'',
approval_content:'',
code: '',
// topics:null
},
@@ -756,6 +776,7 @@
major_all: ''
}],
countrys: [],
fileL_articleApproval: [],
fileL_coverLetter: [],
fileL_picturesAndTables: [],
fileL_manuscirpt: [],
@@ -857,6 +878,21 @@
message: 'Please select major',
trigger: 'blur'
}],
approval: [{
required: true,
message: 'Please select whether ethical approval was obtained',
trigger: 'blur'
}],
approval_content: [{
required: true,
message: 'Please enter reason',
trigger: 'blur'
}],
approval_file: [{
required: true,
message: 'Please upload ethical approva file',
trigger: 'blur'
}],
},
activeNames: [1],
keywordsList: [{
@@ -874,22 +910,22 @@
companyList: [],
countrys: [],
majorList: [],
step4MajorList:[], // 第四步的major数据
step4MajorList: [], // 第四步的major数据
jl_major: [],
defaultParams: {
label: 'title',
value: 'major_id',
children: 'children'
},
default4Params:{
default4Params: {
label: 'major_title',
value: 'major_id',
children: 'children'
},
mj_jour: [],
jour_name: '',
topicsList:null, // 话题列表
topicsProps:{
topicsList: null, // 话题列表
topicsProps: {
multiple: true,
emitPath: false, // 只返回该节点的值
value: "journal_topic_id", // 自定义要映射的键名
@@ -917,6 +953,9 @@
}
},
computed: {
upload_articleApproval: function() {
return this.baseUrl + 'api/Article/up_approval_file';
},
upload_coverLetter: function() {
return this.baseUrl + 'api/Article/up_file/type/coverLetter';
},
@@ -1030,7 +1069,8 @@
if (vali) {
tuijian_yanzheng += 0
//this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[0]
this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[this.tuiJianForm[i].major_all.length - 1]
this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[this
.tuiJianForm[i].major_all.length - 1]
//this.tuiJianForm[i].cmajor = this.tuiJianForm[i].major_all[1]
} else {
tuijian_yanzheng += 1
@@ -1206,7 +1246,6 @@
})
}
})
this.$api
.post('api/Reviewer/getAllMajor')
.then(res => {
@@ -1219,12 +1258,12 @@
this.checkReviewer()
this.$api
.post('api/Major/getMajorList')
.then(res => {
console.log(res,99)
this.step4MajorList = res.data.majors;
.post('api/Major/getMajorList')
.then(res => {
console.log(res, 99)
this.step4MajorList = res.data.majors;
})
})
},
@@ -1396,6 +1435,17 @@
document.body.removeChild(downloadElement);
},
//检验上传文件的格式
beforeupload_articleApproval(file) {
// const ismau =
// file.type === 'application/msword' ||
// file.type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ||
// file.type === 'application/x-zip-compressed' ||
// file.name.split('.')[1] === 'rar';
// if (!ismau) {
// this.$message.error('Only word and compressed files(.doc,.docx,.rar,.zip)');
// }
// return ismau;
},
beforeupload_coverLetter(file) {
// const isWORd =
// file.type === 'application/msword' ||
@@ -1451,6 +1501,17 @@
// return ismau;
},
//文件上传成功后的操作
upSuccess_articleApproval(res, file) {
if (res.code == 0) {
this.form.approval_file = 'articleApproval/' + res.upurl;
this.fileL_articleApproval = [{}];
this.fileL_articleApproval[0].name = "Ethical approval File";
this.fileL_articleApproval[0].url = 'articleApproval/' + res.upurl;
} else {
this.$message.error('service error: ' + res.msg);
}
console.log(this.form)
},
upSuccess_coverLetter(res, file) {
if (res.code == 0) {
this.form.coverLetter = 'coverLetter/' + res.upurl;
@@ -1510,6 +1571,10 @@
this.$message.error('The maximum number of uploaded files has been exceeded');
},
//清除文件时的事件
removefilearticleApproval(file, fileList) {
this.form.approval_file = '';
this.fileL_articleApproval = [];
},
removefilecoverLetter(file, fileList) {
this.form.coverLetter = '';
this.fileL_coverLetter = []
@@ -1712,6 +1777,12 @@
showFiles() {
// 文件显示出来
this.fileL_articleApproval = [];
if (this.form.approval_file != '') {
this.fileL_articleApproval = [{}]
this.fileL_articleApproval[0].name = "Ethical approval file";
this.fileL_articleApproval[0].url = this.form.approval_file;
}
this.fileL_coverLetter = [];
if (this.form.coverLetter != '') {
this.fileL_coverLetter = [{}]
@@ -1965,8 +2036,10 @@
this.form.type = res.data.base.type
this.form.title = res.data.base.title
this.form.approval = res.data.base.approval
this.form.approval_content = res.data.base.approval_content
this.form.abstrart = res.data.base.abstrart
this.form.fund = res.data.base.fund
console.log(res.data.base)
// this.form.topics = res.data.base.topics
// 领域
this.$api
@@ -2034,6 +2107,10 @@
// 文件
if (res.data.files.length > 0) {
for (let i = 0; i < res.data.files.length; i++) {
if (res.data.files[i].type_name == 'articleApprova') {
this.form.approval_file = res.data.files[i].file_url
this.form.approval_fileId = res.data.files[i].file_id
}
if (res.data.files[i].type_name == 'coverLetter') {
this.form.coverLetter = res.data.files[i].file_url
this.form.coverLetterId = res.data.files[i].file_id
@@ -2065,20 +2142,22 @@
},
// 获取话题
getTopics(){
getTopics() {
this.$api
.post('api/Article/getJournalTopics', {'journal_id': this.Reviewerof.journal})
.then((res) => {
if (res.code == 0) {
this.topicsList = res.data.topics
// console.log(res.data.topics,'话题')
} else {
this.$message.error(res.msg);
}
});
.post('api/Article/getJournalTopics', {
'journal_id': this.Reviewerof.journal
})
.then((res) => {
if (res.code == 0) {
this.topicsList = res.data.topics
// console.log(res.data.topics,'话题')
} else {
this.$message.error(res.msg);
}
});
},
// 选中值变化
topicsChange(e){
topicsChange(e) {
// console.log(this.form.topics,'选中的话题id')
}
@@ -2087,7 +2166,7 @@
</script>
<style scoped>
.formTopics{
.formTopics {
width: 100%;
}
</style>
@@ -2343,7 +2422,7 @@
.jour_ku_all {
font-size: 12px;
float: left;
width: 210px;
width: 265px;
padding-left: 10px;
cursor: pointer;
color: #666;
@@ -2351,11 +2430,11 @@
}
.jour_ku_all:nth-child(3n+1) {
width: 270px;
width: 230px;
}
.jour_ku_all:nth-child(3n+2) {
width: 240px;
width: 220px;
}
.jour_ku_all.B_style {

View File

@@ -22,8 +22,19 @@
<font>Title :</font>
<b> {{form.title}}</b>
</p>
<p v-show="form.type=='A'">
<!-- <p v-show="form.type=='A'">
<font>Ethical Approval :</font><b>{{form.approval?'Yes':'No'}}</b>
</p> -->
<p>
<font>Ethical Approval :</font><b>{{form.approval?'Yes':'No'}}</b>
<a target="_blank" :href="mediaUrl + form.approval_file" v-if="form.approval==1&&form.approval_file!=''" style="color: #777;">
<img src="../../assets/img/icon_0.png" style="vertical-align: text-bottom;margin: 0 10px 0 30px;width: 15px;">
<font>Ethical approval file</font>
<i class="el-icon-download download" style="vertical-align: middle;margin:0 20px;font-weight: bold;color: #75abf1;"></i>
</a>
</p>
<p v-if="form.approval==0&&form.approval_content!=''">
<font>Explain the reason clearly :</font><b>{{form.approval_content}}</b>
</p>
<p v-if="form.special_num > 0">
<font>Special Issues :</font><b>{{ form.special_title }}</b>
@@ -499,6 +510,8 @@
type: '',
major: '',
approval: false,
approval_file:'',
approval_content:'',
repetition: '',
manuscirpt: '',
remarks: '',
@@ -767,6 +780,8 @@
this.form.special_title = res.article.special_title;
this.form.major = res.major;
this.form.approval = res.article.approval == 1 ? true : false;
this.form.approval_file = res.article.approval_file
this.form.approval_content = res.article.approval_content
this.form.repetition = res.article.repetition;
this.form.remarks = res.article.remarks;
this.form.repeurl = res.article.repeurl;

View File

@@ -1,5 +1,5 @@
<template>
<div >
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
@@ -96,8 +96,8 @@
<font> | </font>
<span @click="goPre_ingested(item.article_id)" class="preButton">
<!-- <el-badge is-dot class="item" > -->
<i class="el-icon-edit"></i>Enter Pre-accept Process
<!-- </el-badge> -->
<i class="el-icon-edit"></i>Enter Pre-accept Process
<!-- </el-badge> -->
</span>
</span>
</div>
@@ -157,8 +157,16 @@
<p>
<font>Type :</font><b>{{artextForm.type | ellipsis}}</b>
</p>
<p v-show="artextForm.type=='A'">
<p>
<font>Ethical Approval :</font><b>{{artextForm.approval?'Yes':'No'}}</b>
<a target="_blank" :href="mediaUrl + artextForm.approval_file" v-if="artextForm.approval==1&&artextForm.approval_file!=''" style="color: #777;">
<img src="../../assets/img/icon_0.png" style="vertical-align: text-bottom;margin: 0 10px 0 30px;width: 15px;">
<font>Ethical approval file</font>
<i class="el-icon-download download" style="vertical-align: middle;margin:0 20px;font-weight: bold;color: #75abf1;"></i>
</a>
</p>
<p v-if="artextForm.approval==0&&artextForm.approval_content!=''">
<font>Explain the reason clearly :</font><b>{{artextForm.approval_content}}</b>
</p>
<p v-if="artextForm.special_num > 0">
<font>Special Issues :</font><b>{{ artextForm.special_title }}</b>
@@ -312,59 +320,64 @@
</template>
<!-- 时间轴 -->
<el-timeline v-if="item.question && item.question[0] != null">
<el-timeline-item :timestamp="item1.ctime|formatDatehms" placement="top" v-for="(item1, index1) in item.question" :key="index1">
<el-card>
<!-- 初审 -->
<div v-if="index1 == item.question.length-1">
<h4><el-tag >Under review</el-tag></h4>
<!-- 内容 -->
<div class="art_author_coment">
<p v-if="item1.qu9_contents!=''">
<font>Does the title represent manuscript's contents?</font>
<pre>{{item1.qu9_contents}}</pre>
</p>
<p v-if="item1.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
<pre>{{item1.qu10_contents}}</pre>
</p>
<p v-if="item1.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
<pre>{{item1.qu11_contents}}</pre>
</p>
<p v-if="item1.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
<pre>{{item1.qu12_contents}}</pre>
</p>
<p v-if="item1.qu13_contents!=''">
<font>Are the references properly cited?</font>
<pre>{{item1.qu13_contents}}</pre>
</p>
<p v-if="item1.comments!=''">
<font>Comments for the Authors</font>
<pre>{{item1.comments}}</pre>
</p>
</div>
</div>
<div v-else>
<!-- 复审 -->
<el-tag type="success">Second review</el-tag>
<p style="margin-top: 20px;" >
<i class="el-icon-check final Accept" v-if="item1.recommend == 1" >{{item1.recommend | getOpinion}}</i>
<i class="el-icon-close final Reject" v-if="item1.recommend == 2" >{{item1.recommend | getOpinion}}</i>
<i class="el-icon-refresh-left final Revison" v-if="item1.recommend == 3" >{{item1.recommend | getOpinion}}</i>
</p>
<p class="commentfs" v-if="item1.recommend == 3" style="margin-bottom: 10px;">
<font style="display: inline-block; margin-right: 20px;">Comments for the Authors</font>
<pre>{{item1.content}}</pre>
</p>
<p style="" class="stime" v-if="item1.stime != 0">
Response time: {{item1.stime|formatDatehms}} * {{item1.stime}}
</p>
</div>
</el-card>
</el-timeline-item>
</el-timeline>
<!-- end -->
<el-timeline-item :timestamp="item1.ctime|formatDatehms" placement="top"
v-for="(item1, index1) in item.question" :key="index1">
<el-card>
<!-- 初审 -->
<div v-if="index1 == item.question.length-1">
<h4><el-tag>Under review</el-tag></h4>
<!-- 内容 -->
<div class="art_author_coment">
<p v-if="item1.qu9_contents!=''">
<font>Does the title represent manuscript's contents?</font>
<pre>{{item1.qu9_contents}}</pre>
</p>
<p v-if="item1.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
<pre>{{item1.qu10_contents}}</pre>
</p>
<p v-if="item1.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
<pre>{{item1.qu11_contents}}</pre>
</p>
<p v-if="item1.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
<pre>{{item1.qu12_contents}}</pre>
</p>
<p v-if="item1.qu13_contents!=''">
<font>Are the references properly cited?</font>
<pre>{{item1.qu13_contents}}</pre>
</p>
<p v-if="item1.comments!=''">
<font>Comments for the Authors</font>
<pre>{{item1.comments}}</pre>
</p>
</div>
</div>
<div v-else>
<!-- 复审 -->
<el-tag type="success">Second review</el-tag>
<p style="margin-top: 20px;">
<i class="el-icon-check final Accept"
v-if="item1.recommend == 1">{{item1.recommend | getOpinion}}</i>
<i class="el-icon-close final Reject"
v-if="item1.recommend == 2">{{item1.recommend | getOpinion}}</i>
<i class="el-icon-refresh-left final Revison"
v-if="item1.recommend == 3">{{item1.recommend | getOpinion}}</i>
</p>
<p class="commentfs" v-if="item1.recommend == 3" style="margin-bottom: 10px;">
<font style="display: inline-block; margin-right: 20px;">Comments for the
Authors</font>
<pre>{{item1.content}}</pre>
</p>
<p style="" class="stime" v-if="item1.stime != 0">
Response time: {{item1.stime|formatDatehms}} * {{item1.stime}}
</p>
</div>
</el-card>
</el-timeline-item>
</el-timeline>
<!-- end -->
</el-collapse-item>
</el-collapse>
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
@@ -473,11 +486,11 @@
},
// 显示预收录页面
goPre_ingested(id){
goPre_ingested(id) {
this.$router.push({
path: 'PreIngested',
query: {
id: id
id: id
// id: 3070
}
});
@@ -503,8 +516,8 @@
// 弹出框
this.comentDeploy = res.suggest
this.comentDeploy.map(item => {
if(item.question && item.question.length > 0)
item.question = item.question.reverse()
if (item.question && item.question.length > 0)
item.question = item.question.reverse()
})
// this.activeComment = []
// for (var i = 0; i < res.suggest.length; i++) {
@@ -572,6 +585,7 @@
.catch(err => {
console.log(err);
});
},
@@ -596,7 +610,7 @@
filters: {
// 复审意见结果
getOpinion(value){
getOpinion(value) {
switch (value) {
case 1:
return 'Accept'
@@ -786,14 +800,36 @@
</script>
<style scoped>
.time p{color: #606266;}
.Accept{color: #67c23a;}
.Reject{color: #909399;}
.Revison{color: #e6a23c;}
.final{ font-size: 20px;}
.preButton{ display: inline-block; position: relative; }
/* .preButton:after{content: ''; display: block; width: 6px; height: 6px; background: #ff0000; position: absolute; right: 0; top: -5px; border-radius: 6px;} */
.preButton:hover{text-decoration:underline !important;}
.time p {
color: #606266;
}
.Accept {
color: #67c23a;
}
.Reject {
color: #909399;
}
.Revison {
color: #e6a23c;
}
.final {
font-size: 20px;
}
.preButton {
display: inline-block;
position: relative;
}
/* .preButton:after{content: ''; display: block; width: 6px; height: 6px; background: #ff0000; position: absolute; right: 0; top: -5px; border-radius: 6px;} */
.preButton:hover {
text-decoration: underline !important;
}
.container {
color: #333;
}

View File

@@ -39,274 +39,283 @@
<el-button type="primary" icon="el-icon-search" @click="handleSearch" style="margin:0 0 10px 0;">Search
</el-button>
</div>
<div v-if="!PreAcpVisible" >
<div v-for="(item,ikgn) in tableData" class="mangu_list">
<div>
<font style="color: #666b7a;">ID : </font>
<span
style="background-color: #006699;width: 20px;color: #fff;margin: 0 2px 0 0;font-weight: bold;padding: 2px 4px;"
v-if="item.special_num>0">S
</span>
{{item.accept_sn}}
<!-- <b @click="showdetaileditor(item)" class="btnCliArt" style="margin-left: 15px;">
<div v-if="!PreAcpVisible">
<div v-for="(item,ikgn) in tableData" class="mangu_list">
<div>
<font style="color: #666b7a;">ID : </font>
<span
style="background-color: #006699;width: 20px;color: #fff;margin: 0 2px 0 0;font-weight: bold;padding: 2px 4px;"
v-if="item.special_num>0">S
</span>
{{item.accept_sn}}
<!-- <b @click="showdetaileditor(item)" class="btnCliArt" style="margin-left: 15px;">
<i class="el-icon-collection"></i> Detail
</b> -->
<span style="color: #666b7a;margin-left: 40px;">Type :</span>
<font>
{{artType(item.type)}}
</font>
<span style="color: #666b7a;margin-left: 40px;">Countries :</span>
<!-- <span :class="item.countrys.length > 1 ? 'Countries': ''" > -->
<span style="color: #666b7a;margin-left: 40px;">Type :</span>
<font>
{{artType(item.type)}}
</font>
<span style="color: #666b7a;margin-left: 40px;">Countries :</span>
<!-- <span :class="item.countrys.length > 1 ? 'Countries': ''" > -->
<font v-for="(iken, index) in item.countrys">
{{iken}}
<font v-if="index!=item.countrys.length-1">,</font>
</font>
<!-- </span> -->
<span style="color: #666b7a;margin-left: 40px;">Status :</span>
<font style="margin-right: 15px;font-size: 16px;font-weight: bold;letter-spacing: -0.5px;">
{{stateFormat(item.state)}}
</font>
<b v-if="item.state!=5" @click="testvis(item)" class="btnCliArt">
<i class="el-icon-edit"></i> Change
</b>
<b v-if="item.state==5" @click="prodBegin(item)" class="btnCliArt">
<i class="el-icon-paperclip"></i> Begin Produce
</b>
<span style="color: #666b7a;margin-left: 40px;">Plagiarism Check :</span>
<font style="margin-right: 16px;font-size: 15px;font-weight: bold;">
{{item.repetition}} %
</font>
<b @click="changeRepe(item)" class="btnCliArt">
<i class="el-icon-edit"></i> Change
</b>
<b @click="openTracking(item)" class="btnCliArt" style="margin-left: 50px;">
<i class="el-icon-data-line"></i> Manuscript Tracking
</b>
</div>
<div class="man_title">
<el-badge is-dot :hidden="item.author_act==1?false:true">
<b @click="showdetaileditor(item)">
{{item.title}}
<!-- </span> -->
<span style="color: #666b7a;margin-left: 40px;">Status :</span>
<font style="margin-right: 15px;font-size: 16px;font-weight: bold;letter-spacing: -0.5px;">
{{stateFormat(item.state)}}
</font>
<b v-if="item.state!=5" @click="testvis(item)" class="btnCliArt">
<i class="el-icon-edit"></i> Change
</b>
<b v-if="item.state==5" @click="prodBegin(item)" class="btnCliArt">
<i class="el-icon-paperclip"></i> Begin Produce
</b>
<span style="color: #666b7a;margin-left: 40px;">Plagiarism Check :</span>
<font style="margin-right: 16px;font-size: 15px;font-weight: bold;">
{{item.repetition}} %
</font>
<b @click="changeRepe(item)" class="btnCliArt">
<i class="el-icon-edit"></i> Change
</b>
<b @click="openTracking(item)" class="btnCliArt" style="margin-left: 50px;">
<i class="el-icon-data-line"></i> Manuscript Tracking
</b>
</el-badge>
</div>
<div style="display: flex;margin-left: auto;">
<div class="fixCard" style="width: 33%;">
<b style="font-size: 16px;letter-spacing: -0.5px;">Manuscript Files</b>
<p style="height: 10px;"></p>
<div class="fi_new" v-if="item.file.coverLetter">
<p>
Cover letter
<sup style="color: #006699;">({{item.file.coverLetter.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_cover==0&&item.file.coverLetter.length>1"
@click="changeFileUpdown(1,ikgn,'file_cover')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_cover==1&&item.file.coverLetter.length>1"
@click="changeFileUpdown(0,ikgn,'file_cover')"></b>
</p>
<div v-for="ikrm in item.file.coverLetter" v-if="item.file_cover==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
<div class="fi_new" v-if="item.file.picturesAndTables">
<p>
Figures
<sup style="color: #006699;">({{item.file.picturesAndTables.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_figer==0&&item.file.picturesAndTables.length>1"
@click="changeFileUpdown(1,ikgn,'file_figer')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_figer==1&&item.file.picturesAndTables.length>1"
@click="changeFileUpdown(0,ikgn,'file_figer')"></b>
</p>
<div v-for="ikrm in item.file.picturesAndTables" v-if="item.file_figer==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
<div class="fi_new" v-if="item.file.totalpage">
<p>
Title page
<sup style="color: #006699;">({{item.file.totalpage.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_total==0&&item.file.totalpage.length>1"
@click="changeFileUpdown(1,ikgn,'file_total')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_total==1&&item.file.totalpage.length>1"
@click="changeFileUpdown(0,ikgn,'file_total')"></b>
</p>
<div v-for="ikrm in item.file.totalpage" v-if="item.file_total==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
<div class="fi_new" v-if="item.file.manuscirpt">
<p>
Manuscirpt
<sup style="color: #006699;">({{item.file.manuscirpt.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_maun==0&&item.file.manuscirpt.length>1"
@click="changeFileUpdown(1,ikgn,'file_maun')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_maun==1&&item.file.manuscirpt.length>1"
@click="changeFileUpdown(0,ikgn,'file_maun')"></b>
</p>
<div v-for="ikrm in item.file.manuscirpt" v-if="item.file_maun==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
<div class="fi_new" v-if="item.file.supplementary">
<p>
Supplementary Material
<sup style="color: #006699;">({{item.file.supplementary.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_supper==0&&item.file.supplementary.length>1"
@click="changeFileUpdown(1,ikgn,'file_supper')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_supper==1&&item.file.supplementary.length>1"
@click="changeFileUpdown(0,ikgn,'file_supper')"></b>
</p>
<div v-for="ikrm in item.file.supplementary" v-if="item.file_supper==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
</div>
<div style="width: 1%;"></div>
<div class="fixCard" style="width: 16%;">
<b style="font-size: 16px;letter-spacing: -0.5px;">AI scoring</b>
<p style="font-size: 18px;font-weight: bold;margin-bottom: 5px;color: #db890e;"
v-if="item.reportList.length>0">
<font style="font-size: 14px;font-weight: normal;color: #333;">Initial review score :</font>
{{item.scoring}}
<i class="el-icon-refresh refreshBtn" @click="refreshScore(item)"></i>
</p>
<p style="font-size: 18px;font-weight: bold;margin-bottom: 5px;" v-if="item.reportList.length==0">
<font style="font-size: 14px;font-weight: normal;">Initial review score :</font>
{{item.scoring}} <i class="el-icon-refresh refreshBtn" @click="refreshScore(item)"></i>
</p>
<p v-if="item.scoring!=0&&item.H!=null" style="color: #999;">{{item.H.google_editor}}
</p>
<p v-if="item.scoring!=0&&item.H!=null&&item.H.google_time!=0" style="color: #999;">
{{formatDate(item.H.google_time)}}
</p>
<b @click="aiSoring(item)" class="btnCliArt" v-if="item.reportList.length>0"
style="margin-top: 10px;display: block;">
<i class="el-icon-edit"></i> Edit Hindex
<div class="man_title">
<el-badge is-dot :hidden="item.author_act==1?false:true">
<b @click="showdetaileditor(item)">
{{item.title}}
</b>
</el-badge>
<b @click="corrSpe(item)" class="btnCliArt" style="margin-left: 20px;">
<i class="el-icon-paperclip"></i> Author's previous articles
</b>
<!-- <el-button @click="aiSoring(item)" size="mini" type="primary" icon="el-icon-edit"
</div>
<div style="display: flex;margin-left: auto;">
<div class="fixCard" style="width: 33%;">
<b style="font-size: 16px;letter-spacing: -0.5px;">Manuscript Files</b>
<p style="height: 10px;"></p>
<div class="fi_new" v-if="item.file.coverLetter">
<p>
Cover letter
<sup style="color: #006699;">({{item.file.coverLetter.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_cover==0&&item.file.coverLetter.length>1"
@click="changeFileUpdown(1,ikgn,'file_cover')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_cover==1&&item.file.coverLetter.length>1"
@click="changeFileUpdown(0,ikgn,'file_cover')"></b>
</p>
<div v-for="ikrm in item.file.coverLetter" v-if="item.file_cover==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
<div class="fi_new" v-if="item.file.picturesAndTables">
<p>
Figures
<sup style="color: #006699;">({{item.file.picturesAndTables.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_figer==0&&item.file.picturesAndTables.length>1"
@click="changeFileUpdown(1,ikgn,'file_figer')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_figer==1&&item.file.picturesAndTables.length>1"
@click="changeFileUpdown(0,ikgn,'file_figer')"></b>
</p>
<div v-for="ikrm in item.file.picturesAndTables" v-if="item.file_figer==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
<div class="fi_new" v-if="item.file.totalpage">
<p>
Title page
<sup style="color: #006699;">({{item.file.totalpage.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_total==0&&item.file.totalpage.length>1"
@click="changeFileUpdown(1,ikgn,'file_total')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_total==1&&item.file.totalpage.length>1"
@click="changeFileUpdown(0,ikgn,'file_total')"></b>
</p>
<div v-for="ikrm in item.file.totalpage" v-if="item.file_total==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
<div class="fi_new" v-if="item.file.manuscirpt">
<p>
Manuscirpt
<sup style="color: #006699;">({{item.file.manuscirpt.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_maun==0&&item.file.manuscirpt.length>1"
@click="changeFileUpdown(1,ikgn,'file_maun')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_maun==1&&item.file.manuscirpt.length>1"
@click="changeFileUpdown(0,ikgn,'file_maun')"></b>
</p>
<div v-for="ikrm in item.file.manuscirpt" v-if="item.file_maun==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
<div class="fi_new" v-if="item.file.supplementary">
<p>
Supplementary Material
<sup style="color: #006699;">({{item.file.supplementary.length}})</sup> :
<b class="btnUpDown el-icon-arrow-up"
v-if="item.file_supper==0&&item.file.supplementary.length>1"
@click="changeFileUpdown(1,ikgn,'file_supper')"></b>
<b class="btnUpDown el-icon-arrow-down"
v-if="item.file_supper==1&&item.file.supplementary.length>1"
@click="changeFileUpdown(0,ikgn,'file_supper')"></b>
</p>
<div v-for="ikrm in item.file.supplementary" v-if="item.file_supper==1">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{ikrm.username}}
<i><i class="el-icon-time"></i>{{formatDate(ikrm.ctime)}}</i>
</span>
<a :href="mediaUrl + ikrm.file_url">
<i class="el-icon-download download"></i>
</a>
</div>
</div>
</div>
<div style="width: 1%;"></div>
<div class="fixCard" style="width: 16%;">
<b style="font-size: 16px;letter-spacing: -0.5px;">AI scoring</b>
<p style="font-size: 18px;font-weight: bold;margin-bottom: 5px;color: #db890e;"
v-if="item.reportList.length>0">
<font style="font-size: 14px;font-weight: normal;color: #333;">Initial review score :</font>
{{item.scoring}}
<i class="el-icon-refresh refreshBtn" @click="refreshScore(item)"></i>
</p>
<p style="font-size: 18px;font-weight: bold;fmargin-bottom: 5px;"
v-if="item.reportList.length==0">
<font style="font-size: 14px;font-weight: normal;">Initial review score :</font>
{{item.scoring}} <i class="el-icon-refresh refreshBtn" @click="refreshScore(item)"></i>
</p>
<p v-if="item.scoring!=0&&item.H!=null" style="color: #999;">{{item.H.google_editor}}
</p>
<p v-if="item.scoring!=0&&item.H!=null&&item.H.google_time!=0" style="color: #999;">
{{formatDate(item.H.google_time)}}
</p>
<b @click="aiSoring(item)" class="btnCliArt" v-if="item.reportList.length>0"
style="margin-top: 10px;display: block;">
<i class="el-icon-edit"></i> Edit Hindex
</b>
<!-- <el-button @click="aiSoring(item)" size="mini" type="primary" icon="el-icon-edit"
v-if="item.reportList.length>0" style="margin-top: 1px;">Edit Hindex</el-button> -->
<p v-if="item.review.length>0"
style="font-size: 18px;font-weight: bold;margin-top: 15px;padding-top: 10px;border-top: 1px solid #dddddd;color: #db890e;">
<font v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'" style="font-size: 14px;font-weight: normal;color: #333;">Comprehensive Score :</font>
<span v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'">{{finalCount(item)}}</span>
</p>
</div>
<div style="width: 1%;"></div>
<div class="fixCard" style="width: 17%;">
<b style="font-size: 16px;letter-spacing: -0.5px;">Reviewer Decision</b>
<p style="height: 5px;"></p>
<p v-for="(iken, index) in item.reviewScore" style="line-height: 28px;" :key="index">
Reviewer{{index+1}} score : <b style="color: #db890e;font-size: 18px;">{{iken.rated}}</b><el-button style="margin-left: 10px;" type="text" @click="crateRevision(iken)" v-if="iken.can_repeat == 1" >Re-review</el-button>
</p>
<p v-if="item.reviewScore.length>0" style="font-size: 15px;margin: 0 0 5px 0;">
Average : <b style="font-size: 18px;color: #db890e;">{{avegeCount(item.reviewScore)}}</b>
</p>
<p>
<span v-for="(iken, index) in item.review" style="display: inline-block;padding: 5px;">
<font v-if="iken.state==0"
style="width: 12px;height: 12px;display: block;border-radius: 10px;background-color: #ccc;">
</font>
<font v-if="iken.state==1||iken.state==3"
style="width: 12px;height: 12px;display: block;border-radius: 10px;background-color: #67c23a;">
</font>
<font v-if="iken.state==2"
style="width: 12px;height: 12px;display: block;border-radius: 10px;background-color: #f56c6c;">
</font>
</span>
</p>
<p style="margin-top: 10px;">
<b @click="articleReviewer(item)" class="btnCliArt">
<i class="el-icon-edit"></i> Inviting Reviewer
</b>
<!-- <el-button size="mini" type="primary" icon="el-icon-user" @click="articleReviewer(item)">
Inviting Reviewer</el-button> -->
</p>
</div>
<div style="width: 1%;"></div>
<div class="fixCard" style="width: 26%;">
<b style="font-size: 16px;letter-spacing: -0.5px;">Corresponding Author</b>
<p style="height: 10px;"></p>
<div style="text-align: left;">
<p v-if="item.realname!=''">
<font style="color: #999;">Name :</font>
{{item.realname}}
<span v-if="item.phone!=''" style="margin-left: 5px;color: #666;">({{item.phone}})</span>
<p v-if="item.review.length>0"
style="font-size: 18px;font-weight: bold;margin-top: 15px;padding-top: 10px;border-top: 1px solid #dddddd;color: #db890e;">
<font v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'"
style="font-size: 14px;font-weight: normal;color: #333;">Comprehensive Score :</font>
<span v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'">{{finalCount(item)}}</span>
</p>
<p v-if="item.email!=''" style="margin: 8px 0 5px 0;line-height: 22px;">
<font style="color: #999;">Email :</font>
{{item.email}}
<b @click="linkEmail(item)" class="btnCliArt" style="margin-left: 15px;">
<i class="el-icon-message"></i> Email
</div>
<div style="width: 1%;"></div>
<div class="fixCard" style="width: 17%;">
<b style="font-size: 16px;letter-spacing: -0.5px;">Reviewer Decision</b>
<p style="height: 5px;"></p>
<p v-for="(iken, index) in item.reviewScore" style="line-height: 28px;" :key="index">
Reviewer{{index+1}} score : <b
style="color: #db890e;font-size: 18px;">{{iken.rated}}</b><el-button
style="margin-left: 10px;" type="text" @click="crateRevision(iken)"
v-if="iken.can_repeat == 1">Re-review</el-button>
</p>
<p v-if="item.reviewScore.length>0" style="font-size: 15px;margin: 0 0 5px 0;">
Average : <b style="font-size: 18px;color: #db890e;">{{avegeCount(item.reviewScore)}}</b>
</p>
<p>
<span v-for="(iken, index) in item.review" style="display: inline-block;padding: 5px;">
<font v-if="iken.state==0"
style="width: 12px;height: 12px;display: block;border-radius: 10px;background-color: #ccc;">
</font>
<font v-if="iken.state==1||iken.state==3"
style="width: 12px;height: 12px;display: block;border-radius: 10px;background-color: #67c23a;">
</font>
<font v-if="iken.state==2"
style="width: 12px;height: 12px;display: block;border-radius: 10px;background-color: #f56c6c;">
</font>
</span>
</p>
<p style="margin-top: 10px;">
<b @click="articleReviewer(item)" class="btnCliArt">
<i class="el-icon-edit"></i> Inviting Reviewer
</b>
<b @click="linkEmailist(item)" v-if="item.emailh==1" class="btnCliArt"
style="margin-left: 15px;">
<i class="el-icon-refresh-left"></i> History
<!-- <el-button size="mini" type="primary" icon="el-icon-user" @click="articleReviewer(item)">
Inviting Reviewer</el-button> -->
</p>
</div>
<div style="width: 1%;"></div>
<div class="fixCard" style="width: 26%;">
<b style="font-size: 16px;letter-spacing: -0.5px;">Corresponding Author</b>
<p style="height: 10px;"></p>
<div style="text-align: left;">
<p v-if="item.realname!=''">
<font style="color: #999;">Name :</font>
{{item.realname}}
<span v-if="item.phone!=''"
style="margin-left: 5px;color: #666;">({{item.phone}})</span>
</p>
<p v-if="item.email!=''" style="margin: 8px 0 5px 0;line-height: 22px;">
<font style="color: #999;">Email :</font>
{{item.email}}
<b @click="linkEmail(item)" class="btnCliArt" style="margin-left: 15px;">
<i class="el-icon-message"></i> Email
</b>
<b @click="linkEmailist(item)" v-if="item.emailh==1" class="btnCliArt"
style="margin-left: 15px;">
<i class="el-icon-refresh-left"></i> History
</b>
</p>
</div>
<p style="margin-top: 20px;">
<b @click="articleCommun(item)" class="btnCliArt">
<i class="el-icon-chat-line-square"></i> Communication
</b>
</p>
</div>
<p style="margin-top: 20px;">
<b @click="articleCommun(item)" class="btnCliArt">
<i class="el-icon-chat-line-square"></i> Communication
</b>
</p>
</div>
<div style="margin: 15px 0 0 0;">
<span style="color: #666b7a;margin: 2px 5px 0 0;">Remarks :</span>
<font style="margin-right: 10px;line-height: 24px;font-weight: bold;">{{item.remarks}}</font>
<b @click="testedit(item)" class="btnCliArt">
<i class="el-icon-edit"></i> Change
</b>
</div>
</div>
<div style="margin: 15px 0 0 0;">
<span style="color: #666b7a;margin: 2px 5px 0 0;">Remarks :</span>
<font style="margin-right: 10px;line-height: 24px;font-weight: bold;">{{item.remarks}}</font>
<b @click="testedit(item)" class="btnCliArt">
<i class="el-icon-edit"></i> Change
</b>
</div>
</div>
</div>
<!-- 预接收表 -->
<el-table v-if="PreAcpVisible" :data="tableData" border stripe class="table" ref="multipleTable"
@@ -570,7 +579,8 @@
<el-option :key="3" label="Reject" :value="3"></el-option>
<el-option :key="4" label="Revision" :value="4"></el-option>
<el-option :key="6" label="Pre-accept" :value="6"></el-option>
<el-option :key="5" label="Accept" :value="5" :disabled="curState == 6 ? false : true"></el-option>
<el-option :key="5" label="Accept" :value="5"
:disabled="curState == 6 ? false : true"></el-option>
</el-select>
</el-form-item>
<el-form-item label="Comments for authors :" v-show="editform.state==4">
@@ -772,6 +782,7 @@
<timetalk :talkMsgs="talkMsgs" :msgform="msgform"></timetalk>
</el-dialog>
<el-dialog title="Manuscript Tracking" :visible.sync="trackVisible" width="700px">
<p
style="word-break: normal;margin-bottom: 20px;font-size: 15px;font-weight: bold;letter-spacing: -0.5px;line-height: 22px;">
@@ -804,6 +815,39 @@
</div>
</el-dialog>
<el-dialog title="" :visible.sync="corresVisible" width="800px">
<div class="corrPeo">
<div v-if="corresList.article"
style="line-height: 30px;line-height: 22px;font-size: 16px;font-weight: bold;letter-spacing: -0.5px;">
{{corresList.article.title}}
</div>
<div v-for="(item, index) in corresList.author_articles">
<div class="corrPUser">
{{item.firstname}} {{item.lastname}}
<font v-if="item.is_super==1">#</font>
<font v-if="item.is_report==1">*</font>
</div>
<div class="corrPTim" v-for="(pku, iken) in item.articles"
@click="corresVisible=false;showdetaileditor(pku)">
<span>{{stateFormat(pku.state)}}</span>
{{pku.title}}
<font> - {{pku.journal_title}}</font>
</div>
<div v-if="item.articles.length==0">No article</div>
</div>
<div class="corrPUser">User articles</div>
<div v-for="(item, index) in corresList.user_articles">
<div class="corrPTim" @click="corresVisible=false;showdetaileditor(item)">
<span>{{stateFormat(item.state)}}</span>
{{item.title}}
<font> - {{item.journal_title}}</font>
</div>
<div v-if="item.length==0">No article</div>
</div>
</div>
</el-dialog>
</div>
</template>
@@ -818,7 +862,7 @@
},
data() {
return {
curState:null,
curState: null,
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
items: '',
@@ -837,35 +881,37 @@
multipleSelection: [],
delList: [],
statList: [{
state: 0
}, {
state: 1
}, {
state: 2
}, {
state: 4
},
{
state: 6
},
{
state: 5
},
{
state: 3
},
],
state: 0
}, {
state: 1
}, {
state: 2
}, {
state: 4
},
{
state: 6
},
{
state: 5
},
{
state: 3
},
],
Total: 0,
geogleList: [],
IndexForm: {},
editVisible: false,
guestVisible: false,
PreAcpVisible:false,
PreAcpVisible: false,
editbox: false,
repebox: false,
aiSorbox: false,
communVisible: false,
trackVisible: false,
corresVisible: false,
corresList: [],
talkMsgs: [],
timeLaxis: {
title: '',
@@ -968,22 +1014,22 @@
});
},
// 创建复审
crateRevision(item){
crateRevision(item) {
// 二次询问
this.$confirm('Do you want to send a review invitation?', 'Tip', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/Reviewer/startRepeatReviewer', {
.post('api/Reviewer/startRepeatReviewer', {
'art_rev_id': item.art_rev_id
})
.then(res => {
//console.log(res)
if(res.code == 0){
if (res.code == 0) {
this.$message.success('A review invitation was successfully sent!')
this.getdate()
}else{
} else {
this.$message.error(res.msg)
}
})
@@ -996,9 +1042,9 @@
},
// 更新评分
refreshScore(row){
refreshScore(row) {
this.$api
.post('api/Article/refuseScore', {
.post('api/Article/refuseScore', {
'article_id': row.article_id
})
.then(res => {
@@ -1011,8 +1057,14 @@
},
// 跳入预收录编辑页面
changeEnter(val) {
console.log(val,'val')
this.$router.push({name: 'PreIngestedEditor', query: {id: val.article_id, uid:val.user_id}})
console.log(val, 'val')
this.$router.push({
name: 'PreIngestedEditor',
query: {
id: val.article_id,
uid: val.user_id
}
})
},
// 改变期刊
chageJour() {
@@ -1077,11 +1129,12 @@
}
}
if (this.tableData[i].file.manuscirpt) {
if (this.tableData[i].file.coverLetter || this.tableData[i].file.picturesAndTables || this.tableData[i]
if (this.tableData[i].file.coverLetter || this.tableData[i].file.picturesAndTables ||
this.tableData[i]
.file.totalpage || this.tableData[i].file.supplementary) {
if(this.tableData[i].file.manuscirpt.length > 1){
this.tableData[i].file_maun = 0
}
if (this.tableData[i].file.manuscirpt.length > 1) {
this.tableData[i].file_maun = 0
}
}
}
if (this.tableData[i].file.supplementary) {
@@ -1091,8 +1144,8 @@
}
this.tableData[i].reviewScore = []
for (let j = 0; j < this.tableData[i].review.length; j++){
if(this.tableData[i].review[j].rated!=null){
for (let j = 0; j < this.tableData[i].review.length; j++) {
if (this.tableData[i].review[j].rated != null) {
this.tableData[i].reviewScore.push(this.tableData[i].review[j])
}
}
@@ -1575,6 +1628,29 @@
alertlimit() {
this.$message.error('The maximum number of uploaded files has been exceeded');
},
// 相关文章
corrSpe(value) {
this.$api
.post('api/Article/getArticlesByArticle', {
article_id: value.article_id
})
.then(res => {
if (res.code == 0) {
this.corresList = res.data
this.corresList.article = value
this.corresVisible = true
console.log(this.corresList)
} else {
this.$message.error(res.msg);
}
});
},
//格式化状态输出
stateFormat(e) {
let str = '';
@@ -1695,12 +1771,12 @@
let str = 0;
let sgr = 0;
let all = 0;
let j = 0 // null 评分人数
let j = 0 // null 评分人数
for (let i = 0; i < arry.review.length; i++) {
if(arry.review[i].rated == null){
if (arry.review[i].rated == null) {
j += 1
continue;
}else{
} else {
all += arry.review[i].rated
}
@@ -1770,12 +1846,21 @@
</script>
<style scoped>
.refreshBtn{cursor: pointer; color: #069;}
.Countries{
display: inline-block;
width: 20px; vertical-align: middle;
white-space: nowrap;text-overflow:ellipsis; overflow:hidden; margin-bottom:3px;
.refreshBtn {
cursor: pointer;
color: #069;
}
.Countries {
display: inline-block;
width: 20px;
vertical-align: middle;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
margin-bottom: 3px;
}
.art_file>h4 {
text-align: left;
}
@@ -2054,4 +2139,48 @@
.webLink:hover {
text-decoration: underline;
}
.corrPeo {
word-break: normal;
}
.corrPeo .corrPUser {
border-bottom: 1px solid #00669936;
color: #006699;
font-size: 16px;
padding: 0 0 10px 0;
margin: 25px 0 10px 0;
font-weight: bold;
}
.corrPeo .corrPTim {
line-height: 22px;
margin-bottom: 20px;
}
.corrPeo .corrPTim:hover {
text-decoration: underline;
cursor: pointer;
}
.corrPeo .corrPTim span {
background: #db890e21;
color: #db890e;
display: inline-block;
padding: 1px 5px;
border-radius: 5px;
font-size: 12px;
margin-right: 10px;
letter-spacing: 0.5px;
font-weight: bold;
}
.corrPeo .corrPTim font {
font-weight: bold;
margin-left: 10px;
letter-spacing: -0.5px;
}
</style>

View File

@@ -1,28 +1,82 @@
// // const webpack = require("webpack")
// module.exports = {
// publicPath: './',
// assetsDir: 'static',
// productionSourceMap: false,
// devServer: {
// // public: 'http://192.168.110.156:8080/', // 你自己本地的ip地址:端口号
// // host:'localhost'
// public: '0.0.0.0:8080/',
// port: '8080',
// // open: true,
// // overlay: {
// // warnings: false,
// // errors: true
// // },
// // proxy: {
// // '/api': {
// // // target: 'https://www.tmrjournals.cn',
// // target: 'https://submission.tmrjournals.com/',
// // changeOrigin: true,
// // pathRewrite: {
// // '^/api': ''
// // }
// // }
// // }
// },
// // devServer: {
// // port: port,
// // open: true,
// // overlay: {
// // warnings: false,
// // errors: true
// // },
// // // before: require('./mock/mock-server.js') // 注释掉这一行
// // proxy: {
// // '/dev-api': { // 因为默认开发api就是dev-api所以我这里就没有改其他名字也叫dev-api
// // target: 'https://ceshi.xxxxxxxx.com/',
// // pathRewrite: {
// // '^/dev-api': ''
// // }, // 记得也哟改dev-api
// // }
// // }
// // },
// // 配置插件参数
// // configureWebpack: {
// // plugins: [
// // new webpack.ProvidePlugin({
// // 'window.Quill': 'quill'
// // })
// // ]
// // }
// }
// const webpack = require("webpack")
module.exports = {
publicPath: './',
assetsDir: 'static',
productionSourceMap: false,
devServer: {
// public: 'http://192.168.110.156:8080/', // 你自己本地的ip地址:端口号
// host:'localhost'
public: '0.0.0.0:8080/',
// public: 'http://192.168.110.159:8080/', // 你自己本地的ip地址:端口号
port: '8080',
// open: true,
// overlay: {
// warnings: false,
// errors: true
// },
// proxy: {
// '/api': {
// // target: 'https://www.tmrjournals.cn',
// target: 'https://submission.tmrjournals.com/',
// changeOrigin: true,
// pathRewrite: {
// '^/api': ''
// }
// }
// }
open: true,
overlay: {
warnings: false,
errors: true
},
proxy: {
'/api': {
// target: 'https://www.tmrjournals.cn',
target: 'https://submission.tmrjournals.com/',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
},
// devServer: {