1、投稿中去掉选择审稿人

2、改变审稿状态前先审查文章初始状态
This commit is contained in:
2024-08-07 15:09:46 +08:00
parent 5a42f8fa01
commit c007acb132
5 changed files with 3585 additions and 3397 deletions

View File

@@ -178,7 +178,16 @@ const en = {
}, protocol: {
PublishingAgreementInfo: 'Please enter the publishing agreement'
}
},journalStatus:{
changeStatusInfo:'此稿件的评分没有达到初始评分标准,是否继续?',
changeStatusInfo:'The rating of this manuscript did not meet the initial rating criteria. Do you want to continue?',
Continue:'继续',
Continue:'Continue',
Cancel:'取消',
Cancel:'Cancel',
Prompt:'提示',
Prompt:'Prompt',
},
}

View File

@@ -154,15 +154,9 @@ const zh = {
articles: '全部文章数',
zr: '转入',
zc: '转出',
boardMembers: '编委人数',
InternationalDistributionNumber: '编委国际化分布',
InternationalDistributionArticles: '文章国际化分布',
InternationalDistributionTotal: '总计',
},
@@ -182,7 +176,13 @@ InternationalDistributionTotal: '总计',
}, protocol: {
PublishingAgreementInfo: '请输入出版协议'
}
},
journalStatus:{
changeStatusInfo:'此稿件的评分没有达到初始评分标准,是否继续?',
Continue:'继续',
Cancel:'取消',
Prompt:'提示',
},
}

View File

@@ -2,21 +2,27 @@
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-lx-calendar"></i> Manuscript detail
</el-breadcrumb-item>
<el-breadcrumb-item> <i class="el-icon-lx-calendar"></i> Manuscript detail </el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container_state" v-loading="loading" style="margin:20px 0 0 0;">
<div class="container_state" v-loading="loading" style="margin: 20px 0 0 0">
<el-row :gutter="30">
<el-col :span="16">
<div class="art_state_">
<div class="art_state_message">
<div class="art_state_message_id" style="padding-left: 15px;">
<font>Journal : <b style="margin-right: 25px;">{{journal_me}}</b></font>
<font>ID : <b style="margin-right: 25px;">{{form.accept_sn}}</b></font>
<font>Type : <b style="margin-right: 25px;">{{myType}}</b></font>
<font>Major : <b>{{form.major}}</b></font>
<div class="art_state_message_id" style="padding-left: 15px">
<font
>Journal : <b style="margin-right: 25px">{{ journal_me }}</b></font
>
<font
>ID : <b style="margin-right: 25px">{{ form.accept_sn }}</b></font
>
<font
>Type : <b style="margin-right: 25px">{{ myType }}</b></font
>
<font
>Major : <b>{{ form.major }}</b></font
>
</div>
<p>
<font>Title :</font>
@@ -27,10 +33,21 @@
</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;">
<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>
<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 != ''">
@@ -43,21 +60,25 @@
<el-collapse class="auth_colla auth_collna_ew">
<el-collapse-item :title="authorList_name" name="1">
<div v-for="(item, index) in form.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;">
{{item.firstname}} {{item.lastname}}
{{item.isSuper?'#':''}}{{item.isReport?'*':''}}
<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;">
<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 v-if="item.orcid"><font>ORCID iD : </font>{{ item.orcid }}</p>
<p>
<font>First author : </font>
<b v-if="item.isSuper">Yes</b>
@@ -77,31 +98,21 @@
<b v-if="item.indexs_show==0" style="color: #aaa;">Null</b>
<i class="el-icon-edit" @click="HIndexEdit(item)" v-if="form.state==1" style="margin-left: 10px;color: #006699;cursor: pointer;"></i>
</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>
<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_collna_ew" style="margin-top: -15px;">
<el-collapse class="auth_colla auth_collna_ew" style="margin-top: -15px">
<el-collapse-item name="2">
<template slot="title">
Abstract
<font v-if="form.keywords" style="margin-left: 3px;">, Keywords</font>
<font v-if="form.fund" style="margin-left: 3px;">, Fund</font>
<font v-if="form.keywords" style="margin-left: 3px">, Keywords</font>
<font v-if="form.fund" style="margin-left: 3px">, Fund</font>
</template>
<p>
<font>Abstract :</font><b>{{ form.abstrart }}</b>
@@ -114,7 +125,6 @@
</p>
</el-collapse-item>
</el-collapse>
</div>
<div class="art_file_">
@@ -123,7 +133,7 @@
<h4>Cover letter :</h4>
<p class="fi_new">
<a v-for="item in coverLetterFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<img src="../../assets/img/icon_0.png" />
<span>
<font>Uploader : </font>{{ item.username }}
<i><i class="el-icon-time"></i>{{ formatDate(item.ctime) }}</i>
@@ -131,13 +141,13 @@
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both">
<br clear="both" />
</el-col>
<el-col :span="12" v-if="picturesAndTablesFileList">
<h4>Figures :</h4>
<p class="fi_new">
<a v-for="item in picturesAndTablesFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<img src="../../assets/img/icon_0.png" />
<span>
<font>Uploader : </font>{{ item.username }}
<i><i class="el-icon-time"></i>{{ formatDate(item.ctime) }}</i>
@@ -145,7 +155,7 @@
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both">
<br clear="both" />
</el-col>
</el-row>
<el-row :gutter="24">
@@ -153,7 +163,7 @@
<h4>Title page :</h4>
<p class="fi_new">
<a v-for="item in totalpageFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<img src="../../assets/img/icon_0.png" />
<span>
<font>Uploader : </font>{{ item.username }}
<i><i class="el-icon-time"></i>{{ formatDate(item.ctime) }}</i>
@@ -161,13 +171,13 @@
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both">
<br clear="both" />
</el-col>
<el-col :span="12">
<h4>Manuscirpt :</h4>
<p class="fi_new">
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<img src="../../assets/img/icon_0.png" />
<span>
<font>Uploader : </font>{{ item.username }}
<i><i class="el-icon-time"></i>{{ formatDate(item.ctime) }}</i>
@@ -175,7 +185,7 @@
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both">
<br clear="both" />
</el-col>
</el-row>
<el-row :gutter="24" v-if="supplementaryFileList">
@@ -183,7 +193,7 @@
<h4>Supplementary Material :</h4>
<p class="fi_new">
<a v-for="item in supplementaryFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<img src="../../assets/img/icon_0.png" />
<span>
<font>Uploader : </font>{{ item.username }}
<i><i class="el-icon-time"></i>{{ formatDate(item.ctime) }}</i>
@@ -191,20 +201,18 @@
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both">
<br clear="both" />
</el-col>
</el-row>
<el-row v-if="responseFileList != ''">
<div
style="height: 1px;width: 98%;background-color: #EBEEF5;margin: 5px auto 20px auto;">
</div>
<div style="height: 1px; width: 98%; background-color: #ebeef5; margin: 5px auto 20px auto"></div>
<el-col :span="24">
<h4>Response to reviewers :</h4>
<p class="fi_new">
<a v-for="item in responseFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<img src="../../assets/img/icon_0.png" />
<span>
<font>Uploader : </font>{{ form.username }}
<i><i class="el-icon-time"></i>{{ formatDate(item.artr_ctime) }}</i>
@@ -250,41 +258,46 @@
<span>Repetition : </span>
<b>{{ form.repetition }}%</b>
<a :href="mediaUrl + form.repeurl" v-if="form.repeurl" class="zip_load" target="_blank">
<img src="../../assets/img/icon_0.png">
<img src="../../assets/img/icon_0.png" />
<span>Duplicate check file</span>
<i class="el-icon-download download"></i>
</a>
<el-button type="text" @click="changeRepe" icon="el-icon-edit">Change</el-button>
</p>
<p>
<span style="display: inline-block;vertical-align: top;margin-top: 7px;">Manuscirpt :
</span>
<el-upload style="display: inline-block;" 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;">
<span style="display: inline-block; vertical-align: top; margin-top: 7px">Manuscirpt : </span>
<el-upload
style="display: inline-block"
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 can be
uploaded(.docx)</div>
<div class="el-upload__tip" slot="tip">Only word and compressed files can be uploaded(.docx)</div>
</el-upload>
<br clear="both">
<el-button type="primary" @click="onsubmit" style="margin: 15px 0 0 0;">Upload Submit
</el-button>
<br clear="both" />
<el-button type="primary" @click="onsubmit" style="margin: 15px 0 0 0">Upload Submit </el-button>
</p>
</div>
</el-col>
<el-col :span="8">
<timetalk :talkMsgs="talkMsgs" :msgform="msgform" @talksave="talksave"></timetalk>
<div class="tree_box">
<h2 style="margin: 0 0 20px 0;">Manuscript Tracking</h2>
<h2 style="margin: 0 0 20px 0">Manuscript Tracking</h2>
<div class="block">
<el-timeline>
<el-timeline-item :timestamp="formatDate_(form.ctime)" placement="top">
<el-card>
<p style="line-height: 20px;">
<p style="line-height: 20px">
Manuscript submission :
<b>{{ form.username }}</b>
submitted to
@@ -292,15 +305,19 @@
</p>
</el-card>
</el-timeline-item>
<el-timeline-item v-for="(activity, index) in msgs" :key="index"
:timestamp="formatDate_(activity.ctime)" placement="top">
<el-timeline-item
v-for="(activity, index) in msgs"
:key="index"
:timestamp="formatDate_(activity.ctime)"
placement="top"
>
<el-card v-if="activity.ftype == 0">
<p>Status change : {{ statetostr(activity.state_to) }}</p>
<p v-if="activity.content != ''">{{ activity.content }}</p>
</el-card>
<el-card v-else>
<p style="margin-bottom: 5px;font-weight: bold;">Author message :</p>
<p style="line-height: 18px;">{{activity.content}}</p>
<p style="margin-bottom: 5px; font-weight: bold">Author message :</p>
<p style="line-height: 18px">{{ activity.content }}</p>
</el-card>
<!-- <el-card>
<p>state change :{{statetostr(activity.state_from)}} => {{statetostr(activity.state_to)}}</p>
@@ -316,13 +333,11 @@
<!-- H指数修改弹出框 -->
<el-dialog title="Edit H Index" :visible.sync="HEditVisible" width="400px">
<div style="margin: 0 0 20px 10px;font-weight: bold;">{{HIxForm.realname}}</div>
<div style="margin: 0 0 20px 10px;">Email :{{HIxForm.email}}</div>
<div style="margin: 0 0 20px 10px; font-weight: bold">{{ HIxForm.realname }}</div>
<div style="margin: 0 0 20px 10px">Email :{{ HIxForm.email }}</div>
<el-form ref="old_Form" :model="HIxForm" label-width="150px">
<el-form-item>
<span slot="label">
WOS H index ({{this.now_year}})
</span>
<span slot="label"> WOS H index ({{ this.now_year }}) </span>
<el-input v-model="HIxForm.index"></el-input>
</el-form-item>
</el-form>
@@ -335,23 +350,32 @@
<el-form ref="editform" :model="editform" label-width="170px">
<el-form-item label="">
<span slot="label">
<i style="color: #f56c6c;">*</i>
<i style="color: #f56c6c">*</i>
Status :
</span>
<el-select v-model="editform.state" placeholder="Please select">
<el-option v-for="item in items" :key="item.state" :label="item.title" :value="item.state"
:disabled="item.disabled"></el-option>
<el-option
v-for="item in items"
:key="item.state"
:label="item.title"
:value="item.state"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="Comments for authors :" v-show="editform.state == 4">
<el-input type="textarea" rows="3" v-model="editform.proposal_content" placeholder="" resize="4">
</el-input>
<el-input type="textarea" rows="3" v-model="editform.proposal_content" placeholder="" resize="4"> </el-input>
</el-form-item>
<el-form-item label="Transfer :" v-show="editform.state == 3 && form.transList.length == 0">
<el-select v-model="editform.trsjournal" placeholder="Please select">
<el-option :key="0" label="No Transfer" :value="0"></el-option>
<el-option v-for="item in journals" :key="item.journal_id" :label="item.title"
:value="item.journal_id" :disabled="item.journal_id==form.journal"></el-option>
<el-option
v-for="item in journals"
:key="item.journal_id"
:label="item.title"
:value="item.journal_id"
:disabled="item.journal_id == form.journal"
></el-option>
</el-select>
</el-form-item>
</el-form>
@@ -374,19 +398,25 @@
<el-dialog title="Repetition" :visible.sync="repebox" width="550px" v-loading="loading3">
<el-form ref="repetition" :model="repeform" label-width="90px">
<el-form-item label="Content :">
<el-input maxlength="3" style="width:100px;" v-model="repeform.repefen">
<el-input maxlength="3" style="width: 100px" v-model="repeform.repefen">
<template slot="append">%</template>
</el-input>
</el-form-item>
<el-form-item label="Zip :">
<el-upload class="upload-demo" :action="upload_zip" accept=".rar, .zip" name="repezip"
:on-success="upSuccess_repezip" :limit="1" :on-exceed="alertlimit"
:on-remove="removefilerepezip">
<div class="el-upload__text" style="padding:0 5px;">
<el-upload
class="upload-demo"
:action="upload_zip"
accept=".rar, .zip"
name="repezip"
:on-success="upSuccess_repezip"
:limit="1"
:on-exceed="alertlimit"
:on-remove="removefilerepezip"
>
<div class="el-upload__text" style="padding: 0 5px">
<em>Click Upload</em>
</div>
<div class="el-upload__tip" slot="tip">Only pdf and word files can be uploaded(.pdf,.doc,.docx)
</div>
<div class="el-upload__tip" slot="tip">Only pdf and word files can be uploaded(.pdf,.doc,.docx)</div>
</el-upload>
</el-form-item>
</el-form>
@@ -398,12 +428,13 @@
<el-dialog title="Resubmit the manuscript" :visible.sync="resubmitVisible" width="550px" v-loading="loading4">
<el-form ref="resubmitJournal" :model="resubmitJournal" label-width="120" :rules="Resubmitrules">
<el-form-item label="journal" prop="journalId">
<el-select v-if="editorJournalList.length > 0" v-model="resubmitJournal.journalId" filterable placeholder="Please select a manuscript">
<el-option
v-for="item in editorJournalList"
:key="item.journal_id"
:label="item.title"
:value="item.journal_id">
<el-select
v-if="editorJournalList.length > 0"
v-model="resubmitJournal.journalId"
filterable
placeholder="Please select a manuscript"
>
<el-option v-for="item in editorJournalList" :key="item.journal_id" :label="item.title" :value="item.journal_id">
</el-option>
</el-select>
</el-form-item>
@@ -417,7 +448,7 @@
</template>
<script>
import timetalk from './time_talk'
import timetalk from './time_talk';
export default {
components: {
timetalk
@@ -467,7 +498,8 @@
zipurl: ''
},
journals: [],
items: [{
items: [
{
state: 0,
title: this.$t('artstate.state0'),
disabled: true
@@ -478,7 +510,7 @@
},
{
state: 2,
title: this.$t('artstate.state2'),
title: this.$t('artstate.state2')
},
{
state: 3,
@@ -532,14 +564,11 @@
editorJournalList: [], // 编辑期刊列表
resubmitJournal: {
journalId: null, // 转投期刊的id
manuscriptId:null, // article id
manuscriptId: null // article id
},
Resubmitrules: {
journalId: [
{ required: true, message: 'Please select the name of the journal to be forwarded to' }
]
journalId: [{ required: true, message: 'Please select the name of the journal to be forwarded to' }]
}
};
},
created: function () {
@@ -550,7 +579,7 @@
myType: function () {
let frag = '';
switch (this.form.type) {
case "A":
case 'A':
frag = 'ARTICLE';
break;
case 'B':
@@ -642,7 +671,7 @@
journal_me: function () {
var frag = this.form.journalname;
if (this.form.special_num > 0) {
frag += "(Special Issues)";
frag += '(Special Issues)';
}
return frag;
},
@@ -676,11 +705,12 @@
},
methods: {
talksave(val) {
this.msgform.ad_content = ''
this.getTalkList()
this.msgform.ad_content = '';
this.getTalkList();
},
//弹出编辑框
testvis() {
this.editform.state = this.form.state;
this.editVisible = true;
},
testedit() {
@@ -716,12 +746,12 @@
}
return str;
},
//修改文章状态
saveEdit() {
async editArticleStatus() {
this.loading1 = true;
this.$api
await this.$api
.post('api/Article/editArticleEditor', this.editform)
.then(res => {
.then((res) => {
this.loading1 = false;
if (res.code == 1) {
this.$message.error(res.msg);
@@ -731,14 +761,64 @@
this.$router.go(0);
}
})
.catch(err => {
.catch((err) => {
console.log(err);
});
},
async checkArticleStatus() {
var status;
var msg = '';
await this.$api
.post('api/Article/checkArticleStart', { article_id: this.editform.articleId })
.then((res) => {
if (res.code == 1) {
status = 1;
msg = res.msg;
} else {
status = 0;
}
})
.catch((err) => {
status = 'err';
// this.$message.err()
console.log(err);
});
return { status: status, msg: msg };
},
//修改文章状态
async saveEdit() {
if (this.form.state == 0) {
if (this.form.state != this.editform.state) {
var data = await this.checkArticleStatus();
if (data.status == 1) {
await this.$confirm(data.msg, this.$t('journalStatus.Prompt'), {
confirmButtonText: this.$t('journalStatus.Continue'),
cancelButtonText: this.$t('journalStatus.Cancel'),
type: 'warning'
})
.then(async () => {
this.editVisible = false;
await this.editArticleStatus();
})
.catch(() => {
this.editVisible = false;
});
} else if (data.status == 0) {
this.editArticleStatus();
}
} else {
this.editVisible = false;
}
} else {
this.editArticleStatus();
}
},
saveRemark() {
this.loading2 = true;
this.$api.post('api/Article/editArticleRemark', this.remark)
.then(res => {
this.$api.post('api/Article/editArticleRemark', this.remark).then((res) => {
this.loading2 = false;
this.$message.success('success');
this.$router.go(0);
@@ -750,8 +830,7 @@
return false;
}
this.loading3 = true;
this.$api.post('api/Article/changeRepetition', this.repeform)
.then(res => {
this.$api.post('api/Article/changeRepetition', this.repeform).then((res) => {
this.loading3 = false;
this.$message.success('success');
this.$router.go(0);
@@ -760,13 +839,13 @@
//初始化期刊信息
initarticle() {
this.now_year = new Date().getFullYear()
this.now_year = new Date().getFullYear();
this.$api
.post('api/Article/getArticleDetail', {
articleId: this.editform.articleId,
human: 'editor'
})
.then(res => {
.then((res) => {
this.form.username = res.article.account;
this.form.title = res.article.title;
this.form.journal = res.article.journal_id;
@@ -780,22 +859,22 @@
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.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;
this.repeform.repefen = res.article.repetition;
this.remark.content = res.article.remarks;
this.editform.state = this.form.state = res.article.state;
this.form.state = res.article.state;
this.form.ctime = res.article.ctime;
this.form.transList = res.transfer;
this.msgs = res.msg;
var alist = res.authors;
let alist_name = [];
for (var i in alist) {
let index_h = 0
let index_c = "#000"
let index_h = 0;
let index_c = '#000';
this.form.authorList.push({
art_aut_id: alist[i].art_aut_id,
firstname: alist[i].firstname,
@@ -808,7 +887,7 @@
email: alist[i].email,
address: alist[i].address,
isSuper: alist[i].is_super == 1 ? true : false,
isReport: alist[i].is_report == 1 ? true : false,
isReport: alist[i].is_report == 1 ? true : false
// indexs_show: index_h,
// indexs_color: index_c,
});
@@ -838,23 +917,23 @@
// });
// }
if (i == alist.length - 1) {
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname)
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname);
} else {
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ')
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ');
}
}
this.authorList_name = "Author : " + alist_name.join("");
this.msgform.user_id = res.article.user_id
this.authorList_name = 'Author : ' + alist_name.join('');
this.msgform.user_id = res.article.user_id;
this.$api
.post('api/Article/getJournalsByMajor', {
major_id: res.article.major_id
}).then((res) => {
})
.then((res) => {
this.journals = res.data.journals;
});
})
.catch(err => {
.catch((err) => {
console.log(err);
});
@@ -863,10 +942,10 @@
.post('api/Article/getArticleResponseFiles', {
article_id: this.editform.articleId
})
.then(res => {
.then((res) => {
this.responseFileList = res.data.files;
})
.catch(err => {
.catch((err) => {
console.log(err);
});
@@ -899,31 +978,31 @@
// H指数修改
HIndexEdit(row) {
this.HEditVisible = true
this.HIxForm.email = row.email
this.HIxForm.realname = row.firstname + row.lastname
this.HIxForm.year = this.now_year
this.HEditVisible = true;
this.HIxForm.email = row.email;
this.HIxForm.realname = row.firstname + row.lastname;
this.HIxForm.year = this.now_year;
if (row.indexs_show != 0) {
this.HIxForm.index = row.indexs_show
this.HIxForm.index = row.indexs_show;
} else {
this.HIxForm.index = ''
this.HIxForm.index = '';
}
},
// 保存index
saveHIx() {
this.$api
.post('api/User/editIndexByEmail', this.HIxForm)
.then(res => {
.then((res) => {
if (res.code == 0) {
this.$message.success('Edit H Index succeeded');
this.HEditVisible = false
this.form.authorList = []
this.initarticle()
this.HEditVisible = false;
this.form.authorList = [];
this.initarticle();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
.catch((err) => {
this.$message.error(err);
});
},
@@ -934,17 +1013,16 @@
.post('api/Article/getFilelistByArticleID', {
articleId: this.form.articleId
})
.then(res => {
.then((res) => {
this.coverLetterFileList = res.coverLetter;
this.picturesAndTablesFileList = res.picturesAndTables;
this.manuscirptFileList = res.manuscirpt;
this.totalpageFileList = res.totalpage;
this.supplementaryFileList = res.supplementary;
})
.catch(err => {
.catch((err) => {
console.log(err);
});
},
uperr_coverLetter(err) {
this.$message.error('upload error');
@@ -988,7 +1066,7 @@
},
//检验上传文件的格式
beforeupload_manuscirpt(file) {
let flieArr = file.name.split(".")
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)');
@@ -1037,32 +1115,32 @@
return false;
}
this.loading = true;
this.$api.post('api/Article/changeArticleFileEditor', this.form)
.then(res => {
this.$api
.post('api/Article/changeArticleFileEditor', this.form)
.then((res) => {
this.loading = false;
this.$message.success('success');
this.$router.go(0);
})
.catch(err => {
.catch((err) => {
console.log(err);
});
},
// 显示转投稿件弹窗
showResubmit() {
this.loading4 = true
this.loading4 = true;
this.$api.post('api/Journal/getJournalByeditor', {'user_id':localStorage.getItem('U_id')})
.then(res => {
this.$api
.post('api/Journal/getJournalByeditor', { user_id: localStorage.getItem('U_id') })
.then((res) => {
this.loading4 = false;
this.editorJournalList = res.data.journals
console.log(res)
this.resubmitVisible = true
this.editorJournalList = res.data.journals;
console.log(res);
this.resubmitVisible = true;
})
.catch(err => {
.catch((err) => {
console.log(err);
});
},
// 提交转投稿件
saveResubmit() {
@@ -1070,7 +1148,7 @@
this.$refs['resubmitJournal'].validate((valid) => {
if (valid) {
alert('submit!');
console.log(this.resubmitJournal)
console.log(this.resubmitJournal);
} else {
console.log('error submit!!');
return false;
@@ -1079,19 +1157,16 @@
},
// 关闭弹窗
closeResubmit() {
this.resubmitVisible = false,
this.$refs['resubmitJournal'].resetFields()
(this.resubmitVisible = false), this.$refs['resubmitJournal'].resetFields();
}
},
mounted() {
this.opname = this.$route.query.mark
this.resubmitJournal.manuscriptId = this.$route.query.id
this.opname = this.$route.query.mark;
this.resubmitJournal.manuscriptId = this.$route.query.id;
}
};
</script>
<style scoped>
.art_state_ {
padding: 20px 20px 1px 20px;
@@ -1108,7 +1183,6 @@
display: inline-block;
}
.art_state_message_id b {
letter-spacing: -1px;
color: #333;
@@ -1151,7 +1225,8 @@
vertical-align: text-bottom;
}
.art_file {}
.art_file {
}
.art_file_ h4 {
margin: 1px 0 5px 15px;

File diff suppressed because it is too large Load Diff

View File

@@ -5,14 +5,24 @@
<el-breadcrumb-item> <i class="el-icon-lx-calendar"></i> Add manuscript reviewer</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container" v-loading="loading" element-loading-text="Loading..."
element-loading-spinner="el-icon-loading" element-loading-background="rgba(255, 255, 255, 0.8)">
<span style="font-size: 14px;color: #606266;margin: 0 10px 0 0;">Research direction :</span>
<el-cascader placeholder="Please select major" v-model="selectFileds" style="width:300px; margin-right: 10px;" @change="fieldChange"
<div
class="container"
v-loading="loading"
element-loading-text="Loading..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(255, 255, 255, 0.8)"
>
<span style="font-size: 14px; color: #606266; margin: 0 10px 0 0">Research direction :</span>
<el-cascader
placeholder="Please select major"
v-model="selectFileds"
style="width: 300px; margin-right: 10px"
@change="fieldChange"
:options="allFileds"
:props="fieldsProps"
collapse-tags
clearable></el-cascader>
clearable
></el-cascader>
<!-- <el-select v-model="messform.major_a" placeholder="Please select major" @change="majorChange(1)"
style="width: 200px;margin: 0 10px 0 0;">
<el-option :key="0" label="All major" :value="0"></el-option>
@@ -32,64 +42,78 @@
<el-option v-for="item in majors_c" :key="item.major_id" :label="item.major_title"
:value="item.major_id"></el-option>
</el-select> -->
<el-input v-model="messform.email" clearable placeholder="Please enter email"
style="width: 190px;display: inline-block;margin: 0 10px 20px 0;"></el-input>
<el-input v-model="messform.field" clearable placeholder="Please enter field"
style="width: 190px;display: inline-block;margin: 0 10px 20px 0;"></el-input>
<el-input
v-model="messform.email"
clearable
placeholder="Please enter email"
style="width: 190px; display: inline-block; margin: 0 10px 20px 0"
></el-input>
<el-input
v-model="messform.field"
clearable
placeholder="Please enter field"
style="width: 190px; display: inline-block; margin: 0 10px 20px 0"
></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
<el-table :data="revTable" border stripe class="table" ref="multipleTable"
header-cell-class-name="table-header" empty-text="New messages (0)">
<el-table
:data="revTable"
border
stripe
class="table"
ref="multipleTable"
header-cell-class-name="table-header"
empty-text="New messages (0)"
>
<el-table-column label="Base Information">
<template slot-scope="scope">
<p class="tab_tie_col">
<span>Realname: </span><b style="font-size: 15px;">{{scope.row.realname}}</b>
<span>Realname: </span><b style="font-size: 15px">{{ scope.row.realname }}</b>
</p>
<p class="tab_tie_col">
<span>Account: </span>{{scope.row.account}}
</p>
<p class="tab_tie_col">
<span>Email: </span>{{scope.row.email}}
</p>
<p class="tab_tie_col"><span>Account: </span>{{ scope.row.account }}</p>
<p class="tab_tie_col"><span>Email: </span>{{ scope.row.email }}</p>
</template>
</el-table-column>
<el-table-column label="Other Information">
<template slot-scope="scope">
<p class="tab_tie_col" v-if="scope.row.company!=''">
<span>Affiliation: </span>{{scope.row.company}}
</p>
<p class="tab_tie_col" v-if="scope.row.field!=''">
<span>Field: </span>{{scope.row.field}}
</p>
<p class="tab_tie_col" v-if="scope.row.majorstr!=''">
<span>Major: </span>{{scope.row.majorstr}}
</p>
<p class="tab_tie_col" v-if="scope.row.company != ''"><span>Affiliation: </span>{{ scope.row.company }}</p>
<p class="tab_tie_col" v-if="scope.row.field != ''"><span>Field: </span>{{ scope.row.field }}</p>
<p class="tab_tie_col" v-if="scope.row.majorstr != ''"><span>Major: </span>{{ scope.row.majorstr }}</p>
</template>
</el-table-column>
<el-table-column prop="rs_num" label="Reviewed Times" width="140">
<template slot-scope="scope">
{{ scope.row.rs_num }}
<font style="margin-left: 5px;">(Reviewing:{{scope.row.now}})</font>
<font style="margin-left: 5px">(Reviewing:{{ scope.row.now }})</font>
</template>
</el-table-column>
<!-- <el-table-column prop="rd_num" label="Fail number" width="140"></el-table-column> -->
<el-table-column label="" width="200" align="center">
<template slot-scope="scope">
<el-button size="mini" type="success" plain icon="el-icon-tickets"
@click="openDetail(scope.row)">Detail</el-button>
<el-button size="mini" type="primary" plain icon="el-icon-check" @click="openSelect(scope.row)">
Select</el-button>
<el-button size="mini" type="success" plain icon="el-icon-tickets" @click="openDetail(scope.row)">Detail</el-button>
<el-button size="mini" type="primary" plain icon="el-icon-check" @click="openSelect(scope.row)"> Select</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="messform.pageIndex"
:page-size="messform.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
<el-pagination
background
layout="total, prev, pager, next"
:current-page="messform.pageIndex"
:page-size="messform.pageSize"
:total="Total"
@current-change="handlePageChange"
></el-pagination>
</div>
</div>
<el-dialog title="Reviewer information" :visible.sync="mesOpenVisble" width="800px" v-loading="loading"
element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)">
<el-dialog
title="Reviewer information"
:visible.sync="mesOpenVisble"
width="800px"
v-loading="loading"
element-loading-text="Loading..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
>
<el-form v-model="mesOpen" label-width="140px">
<el-form-item label="User :">
<span>{{ mesOpen.account }}</span>
@@ -130,7 +154,7 @@
field: '',
pageIndex: 1,
pageSize: 15,
major_id: 0,
major_id: 0
// major_a: 0,
// major_b: '',
@@ -157,14 +181,12 @@
created() {
this.getDate();
//this.initMajor()
this.getAllFields()
},
computed: {
this.getAllFields();
},
computed: {},
methods: {
fieldChange(e) {
this.messform.major_id = this.selectFileds[this.selectFileds.length-1]
this.messform.major_id = this.selectFileds[this.selectFileds.length - 1];
},
// 获取编辑列表数据
getDate() {
@@ -184,12 +206,12 @@
changereviewer() {
if (this.messform.class == 0) {
if (this.messform.grade != undefined) {
delete this.messform.grade
delete this.messform.grade;
}
} else if (this.messform.class == 1) {
this.messform.grade = ''
this.messform.grade = '';
} else {
this.messform.grade = this.messform.class
this.messform.grade = this.messform.class;
}
this.loading = true;
this.getDate();
@@ -235,9 +257,13 @@
// id: this.$route.query.id
// }
// });
} else {
if (res.msg && res.msg != '') {
this.$message.error(res.msg);
} else {
this.$message.error('Add Error');
}
}
})
.catch((err) => {
this.loading = false;
@@ -250,7 +276,8 @@
this.$api
.post('api/Ucenter/getMajor', {
major_id: 1
}).then((res) => {
})
.then((res) => {
this.majors_a = res.data.major.children;
this.majors_a_input = res.data.major.children;
});
@@ -258,13 +285,11 @@
// 获取全部领域
getAllFields() {
this.$api
.post('api/Major/getMajorList')
.then((res) => {
this.$api.post('api/Major/getMajorList').then((res) => {
if (res.code == 0) {
this.allFileds = res.data.majors
this.allFileds = res.data.majors;
} else {
this.$message.error(res.msg)
this.$message.error(res.msg);
}
});
},
@@ -274,44 +299,45 @@
this.$api
.post('api/Ucenter/getMajor', {
major_id: this.messform.major_a
}).then((res) => {
})
.then((res) => {
this.majors_b = res.data.major.children;
this.majors_c = []
this.messform.major_b = ''
this.messform.major_c = ''
this.majorChange_panduan()
this.majors_c = [];
this.messform.major_b = '';
this.messform.major_c = '';
this.majorChange_panduan();
});
} else if (e == 2 && this.messform.major_b != 0) {
this.$api
.post('api/Ucenter/getMajor', {
major_id: this.messform.major_b
}).then((res) => {
})
.then((res) => {
this.majors_c = res.data.major.children;
this.messform.major_c = ''
this.majorChange_panduan()
this.messform.major_c = '';
this.majorChange_panduan();
});
} else {
this.majorChange_panduan()
this.majorChange_panduan();
}
},
majorChange_panduan() {
if (this.messform.major_c != '' || this.messform.major_c != 0) {
this.messform.major_id = this.messform.major_c
this.messform.major_id = this.messform.major_c;
} else if (this.messform.major_b != '' || this.messform.major_b != 0) {
this.messform.major_id = this.messform.major_b
this.messform.major_id = this.messform.major_b;
} else {
this.messform.major_id = this.messform.major_a
this.messform.major_id = this.messform.major_a;
}
this.getDate()
this.getDate();
},
// 分页导航
handlePageChange(val) {
this.$set(this.messform, 'pageIndex', val);
this.getDate();
},
}
}
};
</script>