3399 lines
147 KiB
Vue
3399 lines
147 KiB
Vue
<template>
|
||
<div>
|
||
<div class="crumbs">
|
||
<el-breadcrumb separator="/">
|
||
<el-breadcrumb-item> <i class="el-icon-uthorVisiblelx-cascades"></i> Submit manuscript </el-breadcrumb-item>
|
||
</el-breadcrumb>
|
||
</div>
|
||
<div style="display: flex; justify-content: space-between">
|
||
<div>
|
||
<div class="step_list" style="width: 960px; position: relative">
|
||
<div v-for="item in listStep" @click="StepCode(item.index)" :class="show_step == item.index ? 'C_style' : ''">
|
||
<div>
|
||
<i :class="item.icon"></i>
|
||
{{ item.title }}
|
||
<div class="num">{{ item.index }}</div>
|
||
</div>
|
||
<p class="bor_der"></p>
|
||
</div>
|
||
<br clear="both" />
|
||
</div>
|
||
|
||
<div class="manu_add" style="width: 960px" v-loading="loading">
|
||
<el-form ref="articleform" :model="form" :rules="rules" label-width="160px">
|
||
<div class="bag_color" v-if="show_step == 1">
|
||
<div>
|
||
<h3>Manuscript Information</h3>
|
||
<el-form-item label="Journal :" prop="journal" v-if="ms_alias != null">
|
||
<div style="font-size: 16px">{{ check_item.title }}</div>
|
||
<p style="color: #666; line-height: 24px; font-size: 13px; margin: 5px 0 0 0">
|
||
<b>E-Mail Address : </b>{{ check_item.email }}
|
||
<br />
|
||
<b>Website : </b
|
||
><a :href="check_item.website" target="_blank" style="color: #666" class="web_stite">{{
|
||
check_item.website
|
||
}}</a>
|
||
</p>
|
||
<!-- <el-button type="warning" size="mini" icon="el-icon-refresh" plain @click="change_Journal" style="margin-top: 15px;">Change Journal</el-button> -->
|
||
</el-form-item>
|
||
<el-form-item label="Journal :" prop="journal" v-if="ms_alias == null">
|
||
<div
|
||
v-for="item in items"
|
||
@click="ch_Jour_all(item.journal_id)"
|
||
:class="form.journal == item.journal_id ? 'jour_ku_all B_style' : 'jour_ku_all'"
|
||
>
|
||
{{ item.title }}
|
||
</div>
|
||
</el-form-item>
|
||
|
||
<el-form-item label="Type :" prop="type">
|
||
<el-select v-model="form.type" placeholder="Please select type" style="width: 240px">
|
||
<el-option
|
||
v-for="item in journal_type"
|
||
:key="item.value"
|
||
:label="item.name"
|
||
:value="item.value"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="Research areas :" >
|
||
<common-major-list @load="(e)=>this.majorValueList=e"></common-major-list>
|
||
<!-- <el-select
|
||
v-model="form.major_a"
|
||
placeholder="Please select major"
|
||
@change="majorChange(1)"
|
||
style="width: 240px"
|
||
>
|
||
<el-option
|
||
v-for="item in majors_a"
|
||
:key="item.major_id"
|
||
:label="item.major_title"
|
||
:value="item.major_id"
|
||
></el-option>
|
||
</el-select>
|
||
<el-select
|
||
v-model="form.major_b"
|
||
placeholder="Please select major"
|
||
v-if="majors_b != ''"
|
||
@change="majorChange(2)"
|
||
style="margin: 0 15px; width: 240px"
|
||
>
|
||
<el-option :key="0" label="None" :value="0"></el-option>
|
||
<el-option
|
||
v-for="item in majors_b"
|
||
:key="item.major_id"
|
||
:label="item.major_title"
|
||
:value="item.major_id"
|
||
></el-option>
|
||
</el-select>
|
||
<el-select
|
||
v-model="form.major_c"
|
||
placeholder="Please select major"
|
||
v-if="majors_c != ''"
|
||
style="width: 240px"
|
||
@change="majorChange(3)"
|
||
>
|
||
<el-option :key="0" label="None" :value="0"></el-option>
|
||
<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-form-item>
|
||
<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 ?" prop="approval" label-width="300px">
|
||
<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"
|
||
placeholder="Please enter the abstract"
|
||
></el-input>
|
||
</el-form-item>
|
||
<!-- 话题 -->
|
||
<!-- <el-form-item label="Topics :" prop="topics">
|
||
<el-cascader disabled class="formTopics" @change="topicsChange"
|
||
v-model="form.topics"
|
||
:options="topicsList"
|
||
:props="topicsProps"
|
||
clearable></el-cascader>
|
||
</el-form-item> -->
|
||
<el-form-item label="Key words :">
|
||
<el-input
|
||
v-for="(item, index) in keywordsList"
|
||
:key="index"
|
||
:name="index + 1"
|
||
v-model="item.ke"
|
||
:placeholder="'Key words' + (index + 1)"
|
||
style="width: 150px; margin-right: 15px; margin-bottom: 3px"
|
||
></el-input>
|
||
<el-button type="text" @click="addfund">
|
||
<i class="el-icon-circle-plus-outline">Add</i>
|
||
</el-button>
|
||
</el-form-item>
|
||
<el-form-item label="Fund :">
|
||
<el-input
|
||
v-model="form.fund"
|
||
placeholder="Please provide the specific funding information if your research has received funding support"
|
||
>
|
||
</el-input>
|
||
</el-form-item>
|
||
<el-form-item label="Article Processing Charge :" v-if="ms_alias == null" label-width="180px">
|
||
$ {{ getFee(form.journal) }}
|
||
<div style="color: #8c8d8f"v-if=" getFee(form.journal)&&getFee(form.journal)!='0.00'">
|
||
<i class="el-icon-warning" style="color: #517fd5; margin-right: 4px"></i>The article processing fee applies to papers submitted and ultimately accepted for publication after January 1, 2025. For authors seeking to apply for fee discounts, please <a
|
||
style="color: rgb(81, 127, 213); cursor: pointer; text-decoration: underline"
|
||
href="https://www.tmrjournals.com/apc/"
|
||
target="_blank"
|
||
>click here</a
|
||
> to view detailed policies.
|
||
|
||
|
||
</div>
|
||
</el-form-item>
|
||
<div style="text-align: center; margin: 40px 0 0 0">
|
||
<el-button type="warning" @click="onStagingSave(1)" class="pro_stage">Save as draft </el-button>
|
||
<el-button type="primary" @click="onStep(1)" class="pro_ceed"
|
||
>Save and proceed to the next step</el-button
|
||
>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bag_color" v-if="show_step == 2">
|
||
<div>
|
||
<div>
|
||
<h3>
|
||
Associated Authors
|
||
<el-tooltip
|
||
class="item"
|
||
effect="light"
|
||
content="If you've submitted articles to TMR Publishing Group before, we'll display your previous collaborators' information here."
|
||
placement="right"
|
||
>
|
||
<i class="el-icon-info"></i>
|
||
</el-tooltip>
|
||
|
||
<el-button @click="forWarMark" type="primary" style="float: right">
|
||
<i class="el-icon-arrow-up" v-if="!forWard"> Show all authors</i>
|
||
<i class="el-icon-arrow-down" v-else> Hide all authors</i>
|
||
</el-button>
|
||
<!-- <p class="zyfont" style="font-weight: normal;margin-top: 5px;">
|
||
If you have previously published articles with the TMR Publishing Group, information
|
||
about your past collaborators will be displayed here.
|
||
</p> -->
|
||
</h3>
|
||
<div
|
||
v-if="!forWard"
|
||
style="height: 1px; background-color: #b3d0ef; width: 900px; margin: -5px auto 20px auto"
|
||
></div>
|
||
<div class="forWard" v-if="forWard">
|
||
<div v-for="(item, index) in raltiAutList" style="position: relative">
|
||
<p style="font-weight: bold; margin-bottom: 10px">
|
||
{{ item.firstname }} {{ item.lastname }}
|
||
<span v-if="!item.showHide" style="font-weight: normal; margin-left: 10px"
|
||
>({{ item.email }})</span
|
||
>
|
||
<i
|
||
v-if="item.showHide"
|
||
@click="raltSHpin(index, 0)"
|
||
class="el-icon-caret-top jiantouBiao"
|
||
></i>
|
||
<i
|
||
v-if="!item.showHide"
|
||
@click="raltSHpin(index, 1)"
|
||
class="el-icon-caret-bottom jiantouBiao"
|
||
></i>
|
||
</p>
|
||
<p v-if="item.showHide">
|
||
<font>E-mail :</font>
|
||
{{ item.email }}
|
||
</p>
|
||
<p v-if="item.orcid && item.showHide">
|
||
<font>ORCID iD :</font>
|
||
{{ item.orcid }}
|
||
</p>
|
||
<p v-if="item.title && item.showHide">
|
||
<font>Title :</font>
|
||
{{ item.title }}
|
||
</p>
|
||
<p v-if="item.company && item.showHide">
|
||
<font>Affiliation :</font>
|
||
{{ item.company }}
|
||
</p>
|
||
<p v-if="item.department && item.showHide">
|
||
<font>Department :</font>
|
||
{{ item.department }}
|
||
</p>
|
||
<p v-if="item.address && item.showHide">
|
||
<font>Address :</font>
|
||
{{ item.address }}
|
||
</p>
|
||
<p v-if="item.country && item.showHide">
|
||
<font>Country :</font>
|
||
{{ item.country }}
|
||
</p>
|
||
<div style="position: absolute; right: 0; top: 0">
|
||
<el-button type="primary" plain size="mini" @click="checkAuthor(item, index)">
|
||
<i class="el-icon-plus" style="font-size: 10px; display: inline"></i>
|
||
Add author
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<h3>
|
||
Author Information
|
||
<el-button @click="addAuthor" type="primary" style="float: right">
|
||
<i class="el-icon-plus"> Add author</i>
|
||
</el-button>
|
||
<p class="zyfont" style="font-weight: normal; margin-top: 5px">
|
||
The number of First Authors and Corresponding Authors should not exceed two each.
|
||
</p>
|
||
</h3>
|
||
<div class="partyAry">
|
||
<div v-for="(item, index) in form.authorList">
|
||
<p style="text-align: right; margin-bottom: 10px; border-bottom: 1px solid #dae8f7">
|
||
<span style="float: left; margin-top: 5px">Author {{ index + 1 }}</span>
|
||
<el-button @click="editAuthor(item, index)" type="text">
|
||
<i class="el-icon-edit" style="font-weight: bold"></i>
|
||
</el-button>
|
||
<el-button type="text" @click="gaPaiXu(item, 'top')" v-if="index != 0">
|
||
<i class="el-icon-top" style="font-weight: bold"></i>
|
||
</el-button>
|
||
<el-button type="text" @click="gaPaiXu(item, 'bot')" v-if="index != form.authorList.length - 1">
|
||
<i class="el-icon-bottom" style="font-weight: bold"></i>
|
||
</el-button>
|
||
<el-button @click="deleteAuthor(item, index)" type="text" class="Del_btn">
|
||
<i class="el-icon-delete" style="font-weight: bold"></i>
|
||
</el-button>
|
||
</p>
|
||
<p style="font-weight: bold; margin-bottom: 10px">
|
||
{{ item.firstname }} {{ item.lastname }} {{ item.isSuper ? '#' : ''
|
||
}}{{ item.isReport ? '*' : '' }}
|
||
</p>
|
||
<p>
|
||
<font>E-mail :</font>
|
||
{{ item.email }}
|
||
</p>
|
||
<p v-if="item.orcid">
|
||
<font>ORCID iD :</font>
|
||
{{ item.orcid }}
|
||
</p>
|
||
<p v-if="item.title">
|
||
<font>Title :</font>
|
||
{{ item.title }}
|
||
</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.address">
|
||
<font>Address :</font>
|
||
{{ item.address }}
|
||
</p>
|
||
<p v-if="item.country">
|
||
<font>Country :</font>
|
||
{{ item.country }}
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<p style="color: #777; font-size: 14px; margin-bottom: 5px">
|
||
Please note that based on your input the author names will appear as follows:
|
||
</p>
|
||
<p>
|
||
<span v-for="(item, index) in form.authorList">
|
||
{{ item.firstname }} {{ item.lastname }} {{ item.isSuper ? '#' : '' }}{{ item.isReport ? '*' : '' }}
|
||
<span v-if="index != form.authorList.length - 1">;</span>
|
||
</span>
|
||
</p>
|
||
|
||
<div style="text-align: center; margin: 40px 0 0 0">
|
||
<!-- <el-button type="warning" @click="onStagingSave(2)" class="pro_stage">Save as draft
|
||
</el-button> -->
|
||
<el-button type="primary" @click="onStep(2)" class="pro_ceed">Proceed to the next step</el-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bag_color" v-if="show_step == 3">
|
||
<div>
|
||
<h3>Upload Manuscript</h3>
|
||
<el-form-item label="Cover letter :" label-width="200px">
|
||
<el-upload
|
||
class="upload-demo up_newstyle"
|
||
:action="upload_coverLetter"
|
||
accept=".pdf, .doc, .docx"
|
||
name="coverLetter"
|
||
:before-upload="beforeupload_coverLetter"
|
||
:on-error="uperr_coverLetter"
|
||
:on-success="upSuccess_coverLetter"
|
||
:limit="1"
|
||
:on-exceed="alertlimit"
|
||
:on-remove="removefilecoverLetter"
|
||
:file-list="fileL_coverLetter"
|
||
:on-preview="dowloadFile"
|
||
>
|
||
<div class="el-upload__text">
|
||
<em>Upload</em>
|
||
</div>
|
||
<div class="el-upload__tip" slot="tip">
|
||
Only PDF and Word files can be uploaded (file formats: .pdf, .doc, .docx).
|
||
</div>
|
||
</el-upload>
|
||
</el-form-item>
|
||
<el-form-item label-width="200px">
|
||
<span slot="label">
|
||
Figures
|
||
<el-popover placement="top-start" width="350" trigger="hover">
|
||
<p style="line-height: 24px; word-wrap: break-word; word-break: normal; text-align: left">
|
||
Dear Author
|
||
<br />Except for the experimental graphs covered in this article; the statistical graphs of
|
||
the experimental results in this article; the model graphs produced by the author of this
|
||
article. <br />For images from any other source : <br />1. Please make sure that the author
|
||
owns the copyright of the image. <br />2. Obtain written authorization from the original
|
||
copyright owner (please upload proof of copyright authorization, including a screenshot of
|
||
the other party's authorization email or authorization letter).
|
||
</p>
|
||
<i
|
||
class="el-icon-info"
|
||
slot="reference"
|
||
style="color: #ef8429; cursor: pointer; vertical-align: super; font-size: 20px"
|
||
></i>
|
||
</el-popover>
|
||
:
|
||
</span>
|
||
<el-upload
|
||
class="upload-demo up_newstyle"
|
||
:action="upload_picturesAndTables"
|
||
accept=".zip"
|
||
name="picturesAndTables"
|
||
:before-upload="beforeupload_picturesAndTables"
|
||
:on-error="uperr_coverLetter"
|
||
:on-success="upSuccess_picturesAndTables"
|
||
:limit="1"
|
||
:on-exceed="alertlimit"
|
||
:on-remove="removefilepicturesAndTables"
|
||
:file-list="fileL_picturesAndTables"
|
||
:on-preview="dowloadFile"
|
||
>
|
||
<div class="el-upload__text">
|
||
<em>Upload</em>
|
||
</div>
|
||
<div class="el-upload__tip" slot="tip">Only ZIP files can be uploaded (file format: .zip).</div>
|
||
</el-upload>
|
||
</el-form-item>
|
||
<!-- <el-form-item label="Title page :" prop="totalpage">
|
||
<el-upload class="upload-dem up_newstyle" :action="upload_totalpage" accept=".doc, .docx" name="totalpage"
|
||
:before-upload="beforeupload_totalpage" :on-error="uperr_coverLetter" :on-success="upSuccess_totalpage" :limit="1"
|
||
:on-exceed="alertlimit" :on-remove="removefiletotalpage">
|
||
<div class="el-upload__text">
|
||
<em>Upload</em>
|
||
</div>
|
||
<div class="el-upload__tip" slot="tip">Only word files can be uploaded(.doc,.docx)</div>
|
||
</el-upload>
|
||
</el-form-item> -->
|
||
<el-form-item label="Manuscirpt :" prop="manuscirpt" label-width="200px">
|
||
<el-upload
|
||
ref="uploadFileManuscirpt"
|
||
class="upload-demo up_newstyle"
|
||
: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"
|
||
:file-list="fileL_manuscirpt"
|
||
:on-preview="dowloadFile"
|
||
>
|
||
<div class="el-upload__text" @click="removefilemanuscirpt">
|
||
<em>Upload</em>
|
||
</div>
|
||
<div class="el-upload__tip" slot="tip">
|
||
Only Word and compressed files can be uploaded (file format: .docx).
|
||
</div>
|
||
</el-upload>
|
||
</el-form-item>
|
||
<el-form-item label="Supplementary Material :" label-width="200px">
|
||
<el-upload
|
||
class="upload-demo up_newstyle"
|
||
:action="upload_supplementary"
|
||
accept=".zip"
|
||
name="supplementary"
|
||
:before-upload="beforeupload_supplementary"
|
||
:on-error="uperr_coverLetter"
|
||
:on-success="upSuccess_supplementary"
|
||
:limit="1"
|
||
:on-exceed="alertlimit"
|
||
:on-remove="removefilesupplementary"
|
||
:file-list="fileL_supplementary"
|
||
:on-preview="dowloadFile"
|
||
>
|
||
<div class="el-upload__text">
|
||
<em>Upload</em>
|
||
</div>
|
||
<div class="el-upload__tip" slot="tip">Only ZIP files can be uploaded (file formats: .zip).</div>
|
||
</el-upload>
|
||
</el-form-item>
|
||
<div style="text-align: center; margin: 40px 0 0 0">
|
||
<el-button type="primary" @click="onStep(3)" class="pro_ceed">Next Step</el-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 提交 submit -->
|
||
<div class="bag_color" v-if="show_step == 4">
|
||
<div>
|
||
<h3>Co-submitting</h3>
|
||
<p style="line-height: 25px; margin: 0 10px 0 55px; font-size: 14px">
|
||
TMR Publishing Group publishes multiple journals and offers you the opportunity to co-submit your paper.
|
||
If your manuscript is not deemed suitable for the first journal, it can be automatically transferred
|
||
along with reviews and reviewers' identities (cascading peer-review) to another journal of your choice.
|
||
Please note that you can choose up to two journals only.
|
||
<br /><br />
|
||
<el-switch
|
||
@change="changeSwitch($event)"
|
||
v-model="form.istransfer"
|
||
active-text="Yes"
|
||
inactive-text="No"
|
||
></el-switch>
|
||
</p>
|
||
<el-form-item label="Journals :" v-show="form.istransfer" label-width="130px" style="margin-top: 20px">
|
||
<div style="margin-bottom: 0">
|
||
<p class="zyfont">1. {{ getjournalbyid(form.journal) }}</p>
|
||
<p class="zyfont" v-for="(cjou, index) in form.checkedjours" :key="index">
|
||
{{ index + 2 }}. {{ getjournalbyid(cjou) }}
|
||
</p>
|
||
</div>
|
||
<el-checkbox-group v-model="form.checkedjours" :max="1" style="margin-top: 10px">
|
||
<el-checkbox
|
||
v-for="jour in mj_jour"
|
||
:label="jour.journal_id"
|
||
:disabled="jour.journal_id == form.journal"
|
||
:key="jour.journal_id"
|
||
class="tally_jour"
|
||
v-if="jour.journal_id != form.journal"
|
||
>{{ jour.title }}
|
||
</el-checkbox>
|
||
</el-checkbox-group>
|
||
</el-form-item>
|
||
<p style="line-height: 25px; margin: 50px 10px 0 55px; font-size: 14px" v-if="checkReviewerof == 0">
|
||
Would you be interested in serving as a reviewer for this journal?
|
||
<br /><br />
|
||
<el-switch
|
||
@change="changeBecome($event)"
|
||
v-model="form.becomeRev"
|
||
active-text="Yes"
|
||
inactive-text="No"
|
||
></el-switch>
|
||
</p>
|
||
<el-form
|
||
ref="reviewerform"
|
||
:model="reviewerForm"
|
||
v-show="form.becomeRev && !this.usercap.includes('reviewer')"
|
||
:rules="rules"
|
||
label-width="130px"
|
||
style="width: 500px; padding: 15px 30px 1px 5px; margin: 25px 0px 0px 55px; box-shadow: 0 0 8px #b7d2ed"
|
||
>
|
||
<!-- 性别 -->
|
||
<el-form-item label="Gender :">
|
||
<el-radio-group v-model="reviewerForm.gender">
|
||
<el-radio :label="1">Male</el-radio>
|
||
<el-radio :label="2">Female</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<!-- 简介 -->
|
||
<el-form-item prop="introduction" label="Introduction :">
|
||
<el-input
|
||
type="textarea"
|
||
rows="3"
|
||
v-model="reviewerForm.introduction"
|
||
placeholder="Please input personal qualification and resume"
|
||
></el-input>
|
||
</el-form-item>
|
||
<!-- 国家 -->
|
||
<el-form-item prop="country" label="Country :">
|
||
<el-select v-model="reviewerForm.country" filterable placeholder="Please select">
|
||
<el-option
|
||
v-for="it in countrys"
|
||
:key="it.en_name"
|
||
:label="it.en_name"
|
||
:value="it.en_name"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<!-- 专业 -->
|
||
<el-form-item prop="major" label="Major :">
|
||
<el-select v-model="reviewerForm.major" filterable placeholder="Please select">
|
||
<el-option
|
||
v-for="item in majorList"
|
||
:key="item.major_id"
|
||
:label="item.title + item.ctitle"
|
||
:value="item.major_id"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<!-- 领域 -->
|
||
<el-form-item prop="field" label="Field :">
|
||
<el-input
|
||
size="small"
|
||
v-model="reviewerForm.field"
|
||
auto-complete="off"
|
||
placeholder="Field"
|
||
></el-input>
|
||
</el-form-item>
|
||
<!-- 职称 -->
|
||
<el-form-item prop="technical" label="Technical :">
|
||
<el-select v-model="reviewerForm.technical" placeholder="Please select">
|
||
<el-option key="Prof." label="Prof." value="Prof."></el-option>
|
||
<el-option key="Associate Prof." label="Associate Prof." value="Associate Prof."> </el-option>
|
||
<el-option key="Assistant Prof." label="Assistant Prof." value="Assistant Prof."> </el-option>
|
||
<el-option key="Ph.D." label="Ph.D." value="Ph.D."></el-option>
|
||
<el-option key="Others" label="Others" value="Others"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<!-- 单位 -->
|
||
<el-form-item prop="company" label="Affiliation :">
|
||
<el-input
|
||
size="small"
|
||
v-model="reviewerForm.company"
|
||
auto-complete="off"
|
||
placeholder="Affiliation"
|
||
></el-input>
|
||
</el-form-item>
|
||
<!-- 简历 -->
|
||
<el-form-item label="CV. :">
|
||
<el-upload
|
||
class="upload-demo"
|
||
:action="upload_qualifications"
|
||
accept=".rar, .zip"
|
||
name="qualifications"
|
||
:on-error="uperr"
|
||
:on-success="upSuccess"
|
||
:limit="1"
|
||
:on-exceed="alertlimit"
|
||
:on-remove="removefile"
|
||
>
|
||
<div class="el-upload__text">
|
||
<em>click upload</em>
|
||
</div>
|
||
<div class="el-upload__tip" slot="tip" style="color: #999">
|
||
Only compressed files can be uploaded(.rar,.zip)
|
||
</div>
|
||
</el-upload>
|
||
</el-form-item>
|
||
</el-form>
|
||
<h3 style="margin-top: 35px">Suggesting reviewers</h3>
|
||
<p style="margin: -55px 10px 0 55px; font-size: 14px; text-align: right">
|
||
<el-button
|
||
:disabled="tuiJianForm.length == 3"
|
||
type="primary"
|
||
@click="onAddTuijian"
|
||
plain
|
||
icon="el-icon-plus"
|
||
style="width: 210px"
|
||
>Add Recommended Reviewer</el-button
|
||
>
|
||
</p>
|
||
<p style="margin: 5px 10px 0 55px; font-size: 14px; line-height: 22px">
|
||
(Non-essential)
|
||
<br />While authors are welcome to suggest potential reviewers, the final decision on the selection of
|
||
reviewers is at the discretion of the editorial board. The following criteria are generally considered
|
||
when selecting reviewers: <br />1. The reviewer should hold a Ph.D. degree (or equivalent) in a relevant
|
||
field. <br />2. The reviewer should have published at least three articles on the subject matter of the
|
||
manuscript, one of which was published within the last five years and is indexed in the WOS database.
|
||
<br />3. The reviewer should not be affiliated with the same institution as the author, and should not
|
||
have a close collaborative or personal relationship with the author. Conflict of interest should be
|
||
avoided. <br />4. The editorial board encourages diversity in reviewer selection, with respect to gender
|
||
and geographic location.
|
||
</p>
|
||
<el-form
|
||
ref="tuiJianForm"
|
||
v-for="(item, index) in tuiJianForm"
|
||
:rules="rules"
|
||
label-position="top"
|
||
label-width="110px"
|
||
class="tuijian_f"
|
||
:model="item"
|
||
>
|
||
<p>
|
||
Reviewer <span style="margin: 0 0 0 3px">{{ index + 1 }}</span>
|
||
</p>
|
||
<el-form-item label="Realname :" prop="realname">
|
||
<el-input v-model="item.realname" style="width: 160px"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="Email :" prop="email">
|
||
<el-input v-model="item.email" style="width: 160px" :validate-event="false"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="Country :" prop="country">
|
||
<el-select
|
||
v-model="item.country"
|
||
filterable
|
||
placeholder="Please select"
|
||
clearable
|
||
style="width: 180px"
|
||
>
|
||
<el-option
|
||
v-for="it in countrys"
|
||
:key="it.en_name"
|
||
:label="it.en_name"
|
||
:value="it.en_name"
|
||
></el-option>
|
||
</el-select>
|
||
</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>
|
||
</el-form-item>
|
||
<el-button
|
||
:disabled="tuiJianForm.length == 1"
|
||
@click="onDeleteTuijian(item, index)"
|
||
type="danger"
|
||
icon="el-icon-delete"
|
||
class="shanchu_tj"
|
||
></el-button>
|
||
</el-form>
|
||
|
||
<p style="font-size: 12px; color: #888; margin: 15px 10px 0 55px; line-height: 18px">
|
||
You can suggest 3 potential reviewers, which can help speed up the review process.
|
||
<br /><b style="letter-spacing: -0.5px">Please pay attention:</b> <br />Authors may suggest potential
|
||
reviewers if they wish. However, whether or not to consider these reviewers is at the editor's
|
||
discretion. Authors should not suggest recent collaborators or colleagues who work in the same
|
||
institution as themselves. Authors who wish to suggest peer reviewers should provide institutional email
|
||
addresses where possible or information that will help the editor verify the identity of the reviewer.
|
||
<br />Authors may request the exclusion of individuals as peer reviewers, but they should explain the
|
||
reasons in their cover letter on submission. Authors should not exclude too many individuals as this may
|
||
hinder the peer review process. Intentionally falsifying information, for example, suggesting reviewers
|
||
with a false name or email address, will result in rejection of the manuscript and may lead to further
|
||
investigation in line with our misconduct policy.
|
||
</p>
|
||
|
||
<div style="margin: 50px 0 0 30px">
|
||
<el-form-item>
|
||
<span slot="label">
|
||
Invitation code
|
||
<el-popover placement="top-start" width="320" trigger="hover">
|
||
<p style="line-height: 24px; word-wrap: break-word; word-break: normal; text-align: left">
|
||
The journal encourages scientists to invite their colleagues or collaborators to submit
|
||
manuscripts in order to promote collaboration and expand the journal's author network.
|
||
You will be rewarded with credits that can be used to offset APC (specific details
|
||
subject to journal policies) and gain priority in editorial board selection.
|
||
</p>
|
||
<i
|
||
class="el-icon-info"
|
||
slot="reference"
|
||
style="color: #ef8429; cursor: pointer; vertical-align: super; font-size: 20px"
|
||
></i>
|
||
</el-popover>
|
||
:
|
||
</span>
|
||
<el-input
|
||
v-model="form.code"
|
||
placeholder="Please enter invitation code"
|
||
style="width: 200px"
|
||
></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div style="margin: 20px 0 30px 30px">
|
||
<el-checkbox v-model="agreechecked" style="font-weight: bold">I accept </el-checkbox>
|
||
<el-link @click="licensebox = true" type="primary" style="padding-left: 5px; font-weight: bold">
|
||
the license agreement</el-link
|
||
>
|
||
</div>
|
||
|
||
<div style="text-align: center; margin: 40px 0 0 0">
|
||
<el-button type="primary" @click="onSubmit" style="width: 160px; margin-bottom: 30px"
|
||
>Submit
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</el-form>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style="
|
||
padding: 0;
|
||
background: none;
|
||
margin-top: 30px;
|
||
line-height: 20px;
|
||
color: #999;
|
||
left: 990px;
|
||
top: 120px;
|
||
width: 400px;
|
||
font-size: 14px;
|
||
"
|
||
>
|
||
<p
|
||
style="
|
||
width: 400px;
|
||
border: 1px solid #ebeef5;
|
||
font-size: 12px;
|
||
line-height: 16px;
|
||
background-color: #fff;
|
||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||
border-radius: 8px;
|
||
padding: 10px;
|
||
box-sizing: border-box;
|
||
"
|
||
>
|
||
We encourage authors to upload a Cover Letter file and Highlights is also be encouraged. That will help authors let
|
||
editors quickly obtain information and evaluate the scientific value of their research correctly.
|
||
<br />Please remind our editor in the cover letter if you want your manuscript processed quickly. <br />Please note that
|
||
manuscripts with at least one of the following characteristics will be included in the journal's manuscript fast track:
|
||
<br />
|
||
<font style="color: #006699">1.Interest:</font> This manuscript has a novel perspective.
|
||
<br />
|
||
<font style="color: #006699">2.Importance:</font> This manuscript belongs to the focus area.
|
||
<br />
|
||
<font style="color: #006699">3.Value:</font> This manuscript belongs to the advanced topic and can attract wide
|
||
attention.
|
||
</p>
|
||
<common-word-html
|
||
v-show="show_step == 3"
|
||
:articleId="stagingID"
|
||
imgHeight="120px"
|
||
v-if="isShowCommonWord && stagingID"
|
||
style="margin-top: 10px; box-sizing: border-box; background-color: #fff"
|
||
></common-word-html>
|
||
</div>
|
||
</div>
|
||
|
||
<el-dialog title="" :visible.sync="licensebox" width="500px">
|
||
<span style="word-wrap: break-word; word-break: normal; line-height: 22px">
|
||
Creative Commons Licensing<br /><br />
|
||
TMR Publishing Group provides authors the choice of applying the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
|
||
licenses defined below, to be determined after acceptance:<br /><br />
|
||
Attribution: CC BY-NC 4.0<br /><br />
|
||
This license lets others distribute, remix, tweak, and build upon your work. They can not use the material for commercial
|
||
purposes.<br /><br />
|
||
Copyright<br />
|
||
Authors retain the copyright of their manuscripts.
|
||
</span>
|
||
<span slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="licensebox = false">OK</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
|
||
<!-- 选择期刊弹出框 -->
|
||
<el-dialog title="Change Journal" :visible.sync="changeVisible" width="780px">
|
||
<el-form :model="jour_form" :rules="rules" label-width="85px">
|
||
<el-form-item label="Journal" prop="journal">
|
||
<div
|
||
v-for="item in items"
|
||
@click="ch_Jour(item.journal_id)"
|
||
:class="jour_form.journal == item.journal_id ? 'jour_ku B_style' : 'jour_ku'"
|
||
>
|
||
{{ item.title }}
|
||
</div>
|
||
</el-form-item>
|
||
</el-form>
|
||
<span slot="footer" class="dialog-footer">
|
||
<el-button @click="changeVisible = false">Cancel</el-button>
|
||
<el-button type="primary" @click="close_ch_Jour()">OK</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
|
||
<!-- 添加修改作者弹出框 -->
|
||
<el-dialog title="Author Information" :visible.sync="authorVisible" width="780px">
|
||
<p style="font-weight: bold; margin: -10px 30px 30px 30px">
|
||
{{ authMeaIN.firstname }} {{ authMeaIN.lastname }} {{ authMeaIN.isSuper ? '#' : '' }}{{ authMeaIN.isReport ? '*' : '' }}
|
||
</p>
|
||
|
||
<el-form :model="authMeaIN" :rules="rules" label-width="85px">
|
||
<el-form-item label-width="120px">
|
||
<span slot="label">
|
||
<span style="color: #f56c6c">*</span>
|
||
E-mail :
|
||
</span>
|
||
<el-autocomplete
|
||
class="inline-input"
|
||
v-model="authMeaIN.email"
|
||
placeholder="Email"
|
||
:fetch-suggestions="
|
||
(queryString, callback) => {
|
||
chaMateFit(queryString, callback, 1);
|
||
}
|
||
"
|
||
:trigger-on-focus="false"
|
||
@select="
|
||
(authMeaIN) => {
|
||
chaSelChose(authMeaIN, 1);
|
||
}
|
||
"
|
||
style="width: 578px"
|
||
>
|
||
<i class="el-icon-loading el-input__icon" slot="suffix" v-if="authMeaIN.load"> </i>
|
||
</el-autocomplete>
|
||
</el-form-item>
|
||
<el-form-item label-width="120px">
|
||
<span slot="label">
|
||
<span style="color: #f56c6c">*</span>
|
||
Name :
|
||
</span>
|
||
<el-input v-model="authMeaIN.firstname" placeholder="First name" style="width: 280px; margin-right: 20px"></el-input>
|
||
<el-input v-model="authMeaIN.lastname" placeholder="Last name" style="width: 280px"> </el-input>
|
||
</el-form-item>
|
||
<el-form-item label="ORCID iD :" label-width="120px">
|
||
<el-input v-model="authMeaIN.orcid" placeholder="Orcid" style="width: 280px"> </el-input>
|
||
<a href="https://orcid.org/register" target="_blank" class="orcid_link">Register for an ORCID iD</a>
|
||
</el-form-item>
|
||
<el-form-item label="First author :" label-width="180px">
|
||
<el-switch v-model="authMeaIN.isSuper" active-text="yes" inactive-text="no" @change="chanSelt"> </el-switch>
|
||
</el-form-item>
|
||
<el-form-item label="Corresponding author :" label-width="180px">
|
||
<el-switch v-model="authMeaIN.isReport" active-text="yes" inactive-text="no" @change="chanSelt"> </el-switch>
|
||
</el-form-item>
|
||
<el-form-item label="Title :" label-width="120px">
|
||
<span slot="label">
|
||
<span style="color: #f56c6c">*</span>
|
||
Title :
|
||
</span>
|
||
<el-select v-model="authMeaIN.title" placeholder="Please select" style="width: 280px" @change="chanSelt">
|
||
<el-option key="Prof." label="Prof." value="Prof."></el-option>
|
||
<el-option key="Associate Prof." label="Associate Prof." value="Associate Prof."></el-option>
|
||
<el-option key="Assistant Prof." label="Assistant Prof." value="Assistant Prof."></el-option>
|
||
<el-option key="Ph.D." label="Ph.D." value="Ph.D."></el-option>
|
||
<el-option key="Others" label="Others" value="Others"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="Affiliation :" label-width="120px">
|
||
<el-autocomplete
|
||
class="inline-input"
|
||
v-model="authMeaIN.company"
|
||
:fetch-suggestions="searchCompany"
|
||
placeholder="Affiliation"
|
||
:trigger-on-focus="false"
|
||
@select="selCompany($event, index)"
|
||
style="width: 100%"
|
||
>
|
||
</el-autocomplete>
|
||
</el-form-item>
|
||
<el-form-item label="Department :" label-width="120px">
|
||
<el-input v-model="authMeaIN.department" placeholder="Department"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="Address :" label-width="120px">
|
||
<span slot="label">
|
||
<span style="color: #f56c6c" v-show="authMeaIN.isReport">*</span>
|
||
Address :
|
||
</span>
|
||
<el-input v-model="authMeaIN.address" placeholder="Address"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label-width="120px">
|
||
<span slot="label">
|
||
<span style="color: #f56c6c">*</span>
|
||
Country :
|
||
</span>
|
||
<el-select v-model="authMeaIN.country" filterable placeholder="Please select" style="width: 280px">
|
||
<el-option v-for="it in countrys" :key="it.en_name" :label="it.en_name" :value="it.en_name"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-form>
|
||
<span slot="footer" class="dialog-footer">
|
||
<el-button @click="authorVisible = false">Cancel</el-button>
|
||
<el-button type="primary" @click="saveAuthor(authMeaIN)">OK</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
majorValueList:[],
|
||
baseUrl: this.Common.baseUrl,
|
||
usercap: localStorage.getItem('U_role'),
|
||
ms_alias: localStorage.getItem('ms_journal_alias'),
|
||
stagingID: this.$route.query.id,
|
||
isShowCommonWord: false,
|
||
move_step: 1, //进行步骤
|
||
show_step: 1, //显示内容
|
||
items: [],
|
||
check_item: {},
|
||
jour_form: {
|
||
journal: 0
|
||
},
|
||
changeVisible: false,
|
||
licensebox: false,
|
||
agreechecked: false,
|
||
loading: false,
|
||
listStep: [
|
||
{
|
||
index: 1,
|
||
icon: 'el-icon-s-order',
|
||
title: 'Basic Information'
|
||
},
|
||
{
|
||
index: 2,
|
||
icon: 'el-icon-s-custom',
|
||
title: 'Author Information'
|
||
},
|
||
{
|
||
index: 3,
|
||
icon: 'el-icon-s-management',
|
||
title: 'Upload Manuscript'
|
||
},
|
||
{
|
||
index: 4,
|
||
icon: 'el-icon-s-check',
|
||
title: 'Submit'
|
||
}
|
||
],
|
||
form: {
|
||
article_id: 0,
|
||
journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 1,
|
||
username: localStorage.getItem('U_name'),
|
||
user_id: localStorage.getItem('U_id'),
|
||
title: '',
|
||
major: '',
|
||
major_a: '',
|
||
major_b: '',
|
||
major_c: '',
|
||
authorList: [
|
||
// {
|
||
// firstname: '',
|
||
// lastname: '',
|
||
// orcid: '',
|
||
// company: '',
|
||
// department: '',
|
||
// title: '',
|
||
// country: '',
|
||
// email: '',
|
||
// address: '',
|
||
// isSuper: false,
|
||
// isReport: false,
|
||
// load: false,
|
||
// sort: 0
|
||
// },
|
||
],
|
||
|
||
checkedjours: [],
|
||
abstrart: '',
|
||
type: '',
|
||
approval: '',
|
||
istransfer: false,
|
||
becomeRev: false,
|
||
keyWords: '',
|
||
fund: '',
|
||
reviewers: [],
|
||
coverLetter: '',
|
||
picturesAndTables: '',
|
||
totalpage: '',
|
||
manuscirpt: '',
|
||
supplementary: '',
|
||
approval_file: '',
|
||
approval_content: '',
|
||
code: ''
|
||
// topics:null
|
||
},
|
||
raltiAutList: [],
|
||
journal_type: [
|
||
{
|
||
name: 'ARTICLE',
|
||
value: 'A'
|
||
},
|
||
{
|
||
name: 'REVIEW',
|
||
value: 'B'
|
||
},
|
||
{
|
||
name: 'CASE REPORT',
|
||
value: 'C'
|
||
},
|
||
{
|
||
name: 'RESEARCH PROPOSAL',
|
||
value: 'P'
|
||
},
|
||
{
|
||
name: 'NEWS',
|
||
value: 'N'
|
||
},
|
||
{
|
||
name: 'COMMENT',
|
||
value: 'T'
|
||
},
|
||
{
|
||
name: 'CORRECTION',
|
||
value: 'CT'
|
||
},
|
||
{
|
||
name: 'HYPOTHESIS',
|
||
value: 'HT'
|
||
},
|
||
{
|
||
name: 'PREFACE',
|
||
value: 'PF'
|
||
},
|
||
{
|
||
name: 'EDITORIAL',
|
||
value: 'ET'
|
||
},
|
||
{
|
||
name: 'REPORT',
|
||
value: 'RP'
|
||
},
|
||
{
|
||
name: 'LETTER',
|
||
value: 'LR'
|
||
},
|
||
{
|
||
name: 'EMPIRICAL FORMULA',
|
||
value: 'EF'
|
||
},
|
||
{
|
||
name: 'EXPERT CONSENSUS',
|
||
value: 'EC'
|
||
},
|
||
{
|
||
name: 'LETTER TO EDITOR',
|
||
value: 'LTE'
|
||
},
|
||
{
|
||
name: 'QUESTIONNAIRE INVESTIGATION',
|
||
value: 'QI'
|
||
},
|
||
{
|
||
name: 'CASE SERIES',
|
||
value: 'CS'
|
||
},
|
||
{
|
||
name: 'RETRACTION',
|
||
value: 'RT'
|
||
},
|
||
{
|
||
name: 'MINI REVIEW',
|
||
value: 'MR'
|
||
},
|
||
{
|
||
name: 'OTHERS',
|
||
value: 'O'
|
||
}
|
||
],
|
||
reviewerForm: {
|
||
username: localStorage.getItem('U_name'),
|
||
gender: 1,
|
||
introduction: '',
|
||
country: '',
|
||
major: '',
|
||
field: '',
|
||
technical: '',
|
||
company: '',
|
||
qualifications: ''
|
||
},
|
||
tuiJianForm: [
|
||
{
|
||
realname: '',
|
||
email: '',
|
||
country: '',
|
||
major_all: ''
|
||
},
|
||
{
|
||
realname: '',
|
||
email: '',
|
||
country: '',
|
||
major_all: ''
|
||
},
|
||
{
|
||
realname: '',
|
||
email: '',
|
||
country: '',
|
||
major_all: ''
|
||
}
|
||
],
|
||
countrys: [],
|
||
fileL_articleApproval: [],
|
||
fileL_coverLetter: [],
|
||
fileL_picturesAndTables: [],
|
||
fileL_manuscirpt: [],
|
||
fileL_supplementary: [],
|
||
rules: {
|
||
journal: [
|
||
{
|
||
required: true,
|
||
message: 'Please select Journal',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
title: [
|
||
{
|
||
required: true,
|
||
message: 'Please enter a title',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
type: [
|
||
{
|
||
required: true,
|
||
message: 'Please select type',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
major: [
|
||
{
|
||
required: true,
|
||
message: 'Please select major',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
abstrart: [
|
||
{
|
||
required: true,
|
||
message: 'Please enter the abstract',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
keyWords: [
|
||
{
|
||
required: true,
|
||
message: 'Please enter keywords',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
fund: [
|
||
{
|
||
required: true,
|
||
message: 'Please input fund',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
totalpage: [
|
||
{
|
||
required: true,
|
||
message: 'Please upload totalpage',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
manuscirpt: [
|
||
{
|
||
required: true,
|
||
message: 'Please upload manuscirpt',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
introduction: [
|
||
{
|
||
required: true,
|
||
message: 'Please input personal qualification and resume',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
country: [
|
||
{
|
||
required: true,
|
||
message: 'Please select country',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
technical: [
|
||
{
|
||
required: true,
|
||
message: 'Please select technical',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
field: [
|
||
{
|
||
required: true,
|
||
message: 'Please enter field',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
company: [
|
||
{
|
||
required: true,
|
||
message: 'Please enter company',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
email: [
|
||
{
|
||
required: true,
|
||
message: 'Please enter email'
|
||
},
|
||
{
|
||
validator: function (rule, value, callback) {
|
||
if (/^[-.-_A-Za-z0-9]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(value) == false) {
|
||
callback(new Error('Please enter the correct email format'));
|
||
} else {
|
||
callback();
|
||
}
|
||
}
|
||
}
|
||
],
|
||
realname: [
|
||
{
|
||
message: 'Please enter realname',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
country: [
|
||
{
|
||
required: true,
|
||
message: 'Please select country',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
major_all: [
|
||
{
|
||
required: true,
|
||
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'
|
||
}
|
||
]
|
||
},
|
||
forWard: false,
|
||
authorVisible: false,
|
||
authMeaIN: {
|
||
firstname: '',
|
||
lastname: '',
|
||
orcid: '',
|
||
company: '',
|
||
department: '',
|
||
title: '',
|
||
country: '',
|
||
email: '',
|
||
address: '',
|
||
isSuper: false,
|
||
isReport: false,
|
||
load: false,
|
||
sort: 0
|
||
},
|
||
activeNames: [1],
|
||
keywordsList: [
|
||
{
|
||
ke: ''
|
||
}
|
||
],
|
||
majors_a: [],
|
||
majors_b: [],
|
||
majors_c: [],
|
||
Reviewerof: {
|
||
username: localStorage.getItem('U_name'),
|
||
journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 1
|
||
},
|
||
checkReviewerof: 0,
|
||
companyList: [],
|
||
countrys: [],
|
||
majorList: [],
|
||
step4MajorList: [], // 第四步的major数据
|
||
jl_major: [],
|
||
defaultParams: {
|
||
label: 'title',
|
||
value: 'major_id',
|
||
children: 'children'
|
||
},
|
||
default4Params: {
|
||
label: 'major_title',
|
||
value: 'major_id',
|
||
children: 'children'
|
||
},
|
||
mj_jour: [],
|
||
jour_name: '',
|
||
topicsList: null, // 话题列表
|
||
topicsProps: {
|
||
multiple: true,
|
||
emitPath: false, // 只返回该节点的值
|
||
value: 'journal_topic_id', // 自定义要映射的键名
|
||
label: 'title',
|
||
children: 'children'
|
||
},
|
||
tables: [],
|
||
wordimgList: [],
|
||
tablesHtml: [],
|
||
imagesHtml: []
|
||
};
|
||
},
|
||
watch: {
|
||
collapseValue: {
|
||
handler(e) {
|
||
console.log(e);
|
||
},
|
||
immediate: true
|
||
},
|
||
form: {
|
||
handler(e) {
|
||
// console.log(e)
|
||
},
|
||
deep: true
|
||
}
|
||
},
|
||
created() {
|
||
this.initSelect();
|
||
this.getAutData();
|
||
if (this.stagingID != undefined) {
|
||
this.form.article_id = this.stagingID;
|
||
this.Temporary();
|
||
} else {
|
||
this.initMajor();
|
||
// this.getTopics() 获取话题列表
|
||
}
|
||
},
|
||
computed: {
|
||
collapseValue() {
|
||
return localStorage.getItem('collapse');
|
||
},
|
||
upload_articleApproval: function () {
|
||
return this.baseUrl + 'api/Article/up_approval_file';
|
||
},
|
||
upload_coverLetter: function () {
|
||
return this.baseUrl + 'api/Article/up_file/type/coverLetter';
|
||
},
|
||
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_supplementary: function () {
|
||
return this.baseUrl + 'api/Article/up_file/type/supplementary';
|
||
},
|
||
upload_qualifications: function () {
|
||
return this.baseUrl + 'api/Admin/up_file';
|
||
}
|
||
},
|
||
methods: {
|
||
onSubmit() {
|
||
if (!this.agreechecked) {
|
||
this.$message.error(
|
||
'Dear author, the licenses need to be accecpted before you submit the manuscript. You could find more information in http://creativecommons.org/licenses/by/4.0/'
|
||
);
|
||
return false;
|
||
}
|
||
this.$refs.articleform.validate((valid) => {
|
||
//验证文档
|
||
if (this.form.manuscirpt == '') {
|
||
this.$message.error('Manuscirpt is required');
|
||
// console.log('file up error');
|
||
return false;
|
||
}
|
||
//验证作者
|
||
let authorlist = this.form.authorList;
|
||
let Firsta = 0;
|
||
let Corra = 0;
|
||
if (authorlist.length == 0) {
|
||
this.$message.error('Author is required');
|
||
return false;
|
||
}
|
||
for (var kk in authorlist) {
|
||
if (authorlist[kk].email == '') {
|
||
this.$message.error('Please enter author email!');
|
||
return false;
|
||
}
|
||
if (/^[-.-_A-Za-z0-9]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(authorlist[kk].email) == false) {
|
||
this.$message.error('Please enter the correct author email format!');
|
||
return false;
|
||
}
|
||
if (authorlist[kk].firstname == '') {
|
||
this.$message.error('Please enter author name!');
|
||
return false;
|
||
}
|
||
if (authorlist[kk].country == '') {
|
||
this.$message.error('Country is necessary for author!');
|
||
return false;
|
||
}
|
||
if (authorlist[kk].isReport && authorlist[kk].address == '') {
|
||
this.$message.error('Address is necessary for corresponding author!');
|
||
return false;
|
||
}
|
||
if (authorlist[kk].isReport) {
|
||
Corra++;
|
||
}
|
||
if (authorlist[kk].isSuper) {
|
||
Firsta++;
|
||
}
|
||
}
|
||
if (Firsta == 0 || Corra == 0) {
|
||
this.$message.error('First author and corresponding author must be exist');
|
||
return false;
|
||
}
|
||
//验证文章领域
|
||
if (this.form.major == '') {
|
||
this.$message.error('Major is required');
|
||
return false;
|
||
}
|
||
//验证选择转投但没选期刊项的情况
|
||
if (this.form.istransfer && this.form.checkedjours.length == 0) {
|
||
this.$message.error('If you chose co-submission, you need to select at least one journal.');
|
||
return false;
|
||
}
|
||
//keywords转化
|
||
var flist = this.keywordsList;
|
||
var fstr = '';
|
||
for (var fu in flist) {
|
||
if (flist[fu].ke != '') {
|
||
fstr += flist[fu].ke.trim() + ',';
|
||
}
|
||
}
|
||
this.form.keyWords = fstr == '' ? '' : fstr.substring(0, fstr.length - 1);
|
||
if (valid) {
|
||
// 验证是否推荐审稿人
|
||
let tj_shifou = 0;
|
||
for (let i in this.tuiJianForm) {
|
||
if (
|
||
this.tuiJianForm[i].major_all != '' ||
|
||
this.tuiJianForm[i].realname != '' ||
|
||
this.tuiJianForm[i].email != '' ||
|
||
this.tuiJianForm[i].country != ''
|
||
) {
|
||
tj_shifou = 1;
|
||
}
|
||
}
|
||
let tuijian_yanzheng = 0;
|
||
if (tj_shifou == 1) {
|
||
for (let i in this.tuiJianForm) {
|
||
this.$refs.tuiJianForm[i].validate((vali) => {
|
||
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].cmajor = this.tuiJianForm[i].major_all[1]
|
||
} else {
|
||
tuijian_yanzheng += 1;
|
||
}
|
||
});
|
||
}
|
||
this.form.reviewers = this.tuiJianForm;
|
||
} else {
|
||
this.form.reviewers = [];
|
||
}
|
||
if (tuijian_yanzheng == 0) {
|
||
this.loading = true;
|
||
// 验证是不是同意申请审稿人
|
||
if (this.form.becomeRev == true) {
|
||
if (this.usercap.includes('reviewer')) {
|
||
// 如果已经是审稿人
|
||
this.$api
|
||
.post('api/Ucenter/applyReviewer', {
|
||
user_id: localStorage.getItem('U_id'),
|
||
journal_id: this.form.journal
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Apply Success!');
|
||
this.Submission_of_manuscripts();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
} else {
|
||
if (this.reviewerForm.qualifications == '') {
|
||
this.$message.error('qualifications is required');
|
||
return false;
|
||
}
|
||
// 如果不是审稿人
|
||
this.reviewerForm.journal = this.form.journal;
|
||
this.$refs.reviewerform.validate((vali) => {
|
||
if (vali) {
|
||
this.$api.post('api/Admin/becameReviewer', this.reviewerForm).then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Apply Success!');
|
||
this.Submission_of_manuscripts();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
} else {
|
||
this.Submission_of_manuscripts();
|
||
}
|
||
}
|
||
} else {
|
||
this.$message.error('Failed to submit. Please ensure the integrity of the information');
|
||
console.log('The submission encountered an error.');
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
|
||
Submission_of_manuscripts() {
|
||
// 提交稿件
|
||
this.$api
|
||
// api/Article/addArticle
|
||
.post('api/Article/addArticlePart4', this.form)
|
||
.then((res) => {
|
||
this.loading = false;
|
||
if (res.code == 0) {
|
||
this.$message.success('Successful submission!');
|
||
this.$router.push('/articleList');
|
||
} else {
|
||
if (res.msg == undefined) {
|
||
this.$message.error('Failed to submit, please contact administrator!');
|
||
console.log(res.msg);
|
||
} else {
|
||
this.$message({
|
||
duration: 0,
|
||
showClose: true,
|
||
message: res.msg,
|
||
type: 'warning'
|
||
});
|
||
return false;
|
||
}
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
|
||
addfund() {
|
||
this.keywordsList.push({
|
||
ke: ''
|
||
});
|
||
},
|
||
|
||
//初始化期刊选项
|
||
initSelect() {
|
||
this.$api
|
||
.post('api/Article/getJournal')
|
||
.then((res) => {
|
||
this.items = res;
|
||
for (let i in this.items) {
|
||
if (this.items[i].journal_id == this.form.journal) {
|
||
this.check_item = this.items[i];
|
||
this.jour_form.journal = this.items[i].journal_id;
|
||
}
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
this.$api.post('api/Admin/getCountrys').then((res) => {
|
||
this.countrys = res;
|
||
});
|
||
this.$api.post('api/Article/getAllCompany').then((res) => {
|
||
this.companyList = [];
|
||
for (let i in res.data.companys) {
|
||
this.companyList.push({
|
||
value: res.data.companys[i].title
|
||
});
|
||
}
|
||
});
|
||
this.$api
|
||
.post('/api/Reviewer/getMajorForReviewer', {
|
||
username: localStorage.getItem('U_name')
|
||
})
|
||
.then((res) => {
|
||
if (res.data.major != 0) {
|
||
this.$api.post('api/User/getMajorList').then((res) => {
|
||
this.majorList = res.data;
|
||
});
|
||
}
|
||
});
|
||
this.$api
|
||
.post('api/Reviewer/getAllMajor')
|
||
.then((res) => {
|
||
this.jl_major = res.data.majors;
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
this.checkReviewer();
|
||
this.$api.post('api/Major/getMajorList').then((res) => {
|
||
console.log(res, 99);
|
||
this.step4MajorList = res.data.majors;
|
||
});
|
||
},
|
||
|
||
// 邮箱用户模糊搜索
|
||
chaMateFit(value, cb, num) {
|
||
console.log('num at line 1587:', value);
|
||
// var mailRegular = /^\w+([-+._']\w+)*@\w+(\.[a-zA-Z]{2,3}){1,2}$/
|
||
var mailRegular = /^\w+([-+._']\w+)*@/;
|
||
// if (mailRegular.test(value)) {
|
||
this.form.authorList[num].load = true;
|
||
// this.$forceUpdate();
|
||
this.$api
|
||
.post('api/Article/getRelationAuthorByEmail', {
|
||
email: value,
|
||
page: 1,
|
||
limit: 10
|
||
})
|
||
.then((res) => {
|
||
var restaurants = res.data.authors;
|
||
for (let i in restaurants) {
|
||
restaurants[i].value = restaurants[i].email + ' | ' + restaurants[i].firstname + restaurants[i].lastname;
|
||
}
|
||
var results = value ? restaurants.filter(this.createMata(value)) : restaurants;
|
||
console.log('🚀 ~ .then ~ results177:', results);
|
||
// 调用 callback 返回建议列表的数据
|
||
cb(results);
|
||
this.form.authorList[num].load = false;
|
||
this.$forceUpdate();
|
||
});
|
||
// }
|
||
},
|
||
|
||
createMata(queryString) {
|
||
return (restList) => {
|
||
return restList.value.toLowerCase().indexOf(queryString.toLowerCase()) != -1;
|
||
};
|
||
},
|
||
|
||
// 选中用户
|
||
chaSelChose(value, num) {
|
||
console.log(value);
|
||
console.log(num);
|
||
this.authMeaIN.firstname = value.firstname ? value.firstname : '';
|
||
this.authMeaIN.lastname = value.lastname ? value.lastname : '';
|
||
this.authMeaIN.orcid = value.orcid ? value.orcid : '';
|
||
this.authMeaIN.company = value.company ? value.company : '';
|
||
this.authMeaIN.department = value.department ? value.department : '';
|
||
this.authMeaIN.title = value.title ? value.title : value.author_title ? value.author_title : '';
|
||
this.authMeaIN.country = value.country ? value.country : '';
|
||
this.authMeaIN.email = value.email ? value.email : '';
|
||
this.authMeaIN.address = value.address ? value.address : '';
|
||
this.authMeaIN.isSuper = false;
|
||
this.authMeaIN.isReport = false;
|
||
this.authMeaIN.load = false;
|
||
this.authMeaIN.sort = num;
|
||
this.$forceUpdate();
|
||
},
|
||
|
||
// 相关作者展开隐藏
|
||
forWarMark() {
|
||
if (this.forWard) {
|
||
this.forWard = false;
|
||
} else {
|
||
this.forWard = true;
|
||
}
|
||
},
|
||
raltSHpin(index, num) {
|
||
if (num == 0) {
|
||
this.raltiAutList[index].showHide = false;
|
||
} else {
|
||
this.raltiAutList[index].showHide = true;
|
||
}
|
||
this.$forceUpdate();
|
||
},
|
||
|
||
// 选择推荐作者
|
||
checkAuthor(value, num) {
|
||
console.log('🚀 ~ checkAuthor ~ value:', value);
|
||
var isHaveAuthor = this.form.authorList.findIndex((e) => {
|
||
if (e.email == value.email) {
|
||
return e;
|
||
}
|
||
});
|
||
if (isHaveAuthor >= 0) {
|
||
this.$message.error('The same author can only be added once');
|
||
return false;
|
||
}
|
||
console.log('🚀 ~ isHaveAuthor ~ isHaveAuthor:', isHaveAuthor);
|
||
// this.form.authorList.push({
|
||
// firstname: value.firstname ? value.firstname : '',
|
||
// lastname: value.lastname ? value.lastname : '',
|
||
// orcid: value.orcid ? value.orcid : '',
|
||
// company: value.company ? value.company : '',
|
||
// department: value.department ? value.department : '',
|
||
// title: value.title ? value.title : '',
|
||
// country: value.country ? value.country : '',
|
||
// email: value.email ? value.email : '',
|
||
// address: value.address ? value.address : '',
|
||
// isSuper: false,
|
||
// isReport: value.address ? true : false,
|
||
// load: false,
|
||
// sort: this.form.authorList.length
|
||
// });
|
||
value.firstname = value.firstname ? value.firstname : '';
|
||
value.lastname = value.lastname ? value.lastname : '';
|
||
value.orcid = value.orcid ? value.orcid : '';
|
||
value.company = value.company ? value.company : '';
|
||
value.department = value.department ? value.department : '';
|
||
value.title = value.title ? value.title : value.author_title ? value.author_title : '';
|
||
value.country = value.country ? value.country : '';
|
||
value.email = value.email ? value.email : '';
|
||
value.address = value.address ? value.address : '';
|
||
value.isSuper = false;
|
||
value.isReport = false;
|
||
value.load = false;
|
||
value.sort = num;
|
||
value.article_id = this.stagingID;
|
||
this.$api.post('api/Article/addAuthor', value).then((res) => {
|
||
this.TempoAuthor();
|
||
this.$message.success('Added successfully');
|
||
});
|
||
},
|
||
|
||
// 添加作者信息
|
||
addAuthor() {
|
||
// this.form.authorList.push({
|
||
// firstname: '',
|
||
// lastname: '',
|
||
// orcid: '',
|
||
// company: '',
|
||
// department: '',
|
||
// title: '',
|
||
// country: '',
|
||
// email: '',
|
||
// address: '',
|
||
// isSuper: false,
|
||
// isReport: false,
|
||
// load: false,
|
||
// sort: this.form.authorList.length
|
||
// });
|
||
this.authorVisible = true;
|
||
this.authMeaIN.art_aut_id = '';
|
||
this.authMeaIN.firstname = '';
|
||
this.authMeaIN.lastname = '';
|
||
this.authMeaIN.orcid = '';
|
||
this.authMeaIN.company = '';
|
||
this.authMeaIN.department = '';
|
||
this.authMeaIN.title = '';
|
||
this.authMeaIN.country = '';
|
||
this.authMeaIN.email = '';
|
||
this.authMeaIN.address = '';
|
||
this.authMeaIN.isSuper = false;
|
||
this.authMeaIN.isReport = false;
|
||
this.authMeaIN.load = false;
|
||
this.authMeaIN.sort = this.form.authorList.length;
|
||
console.log(this.form.authorList);
|
||
},
|
||
|
||
// 修改用户信息
|
||
editAuthor(value, num) {
|
||
this.authMeaIN.art_aut_id = value.art_aut_id ? value.art_aut_id : '';
|
||
this.authMeaIN.firstname = value.firstname ? value.firstname : '';
|
||
this.authMeaIN.lastname = value.lastname ? value.lastname : '';
|
||
this.authMeaIN.orcid = value.orcid ? value.orcid : '';
|
||
this.authMeaIN.company = value.company ? value.company : '';
|
||
this.authMeaIN.department = value.department ? value.department : '';
|
||
this.authMeaIN.title = value.title ? value.title : '';
|
||
this.authMeaIN.country = value.country ? value.country : '';
|
||
this.authMeaIN.email = value.email ? value.email : '';
|
||
this.authMeaIN.address = value.address ? value.address : '';
|
||
this.authMeaIN.isSuper = value.isSuper == 1 ? true : false;
|
||
this.authMeaIN.isReport = value.isReport == 1 ? true : false;
|
||
this.authMeaIN.load = false;
|
||
this.authMeaIN.sort = num;
|
||
this.authorVisible = true;
|
||
},
|
||
|
||
// 保存修改用户信息
|
||
saveAuthor(value) {
|
||
if (value.firstname == '' || value.lastname == '' || value.title == '' || value.Country == '' || value.email == '') {
|
||
this.$message.error('Please provide complete author information!');
|
||
return;
|
||
}
|
||
if (value.isReport) {
|
||
if (value.address == '') {
|
||
this.$message.error('Please provide complete author information!');
|
||
return;
|
||
}
|
||
}
|
||
value.article_id = this.stagingID;
|
||
var urlLink = '';
|
||
if (!value.art_aut_id) {
|
||
urlLink = 'api/Article/addAuthor';
|
||
} else {
|
||
urlLink = 'api/Article/editAuthor';
|
||
}
|
||
this.$api.post(urlLink, value).then((res) => {
|
||
if (res.code == 0) {
|
||
this.TempoAuthor();
|
||
this.authorVisible = false;
|
||
this.$message.success('Successfully saved');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
},
|
||
|
||
// 删除作者信息
|
||
deleteAuthor(item, index) {
|
||
// 二次确认删除
|
||
this.$confirm('Are you sure you want to delete this author?', 'Delete', {
|
||
type: 'warning'
|
||
})
|
||
.then(() => {
|
||
item.article_id = this.stagingID;
|
||
this.$api
|
||
.post('api/Article/delAuthor', {
|
||
art_aut_id: item.art_aut_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.TempoAuthor();
|
||
this.$message.success('Delete successful');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
|
||
// 用户排序更改
|
||
gaPaiXu(value, inx) {
|
||
if (inx == 'top') {
|
||
this.$api
|
||
.post('api/Article/upAuthors', {
|
||
art_aut_id: value.art_aut_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.TempoAuthor();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
} else {
|
||
this.$api
|
||
.post('api/Article/downAuthors', {
|
||
art_aut_id: value.art_aut_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.TempoAuthor();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
}
|
||
// for (let i in this.form.authorList) {
|
||
// this.form.authorList[i].sort = i
|
||
// }
|
||
},
|
||
|
||
// 获取相关作者列表
|
||
getAutData() {
|
||
this.$api
|
||
.post('api/Article/getRelationAuthor', {
|
||
user_id: localStorage.getItem('U_id')
|
||
})
|
||
.then((res) => {
|
||
this.raltiAutList = res.data.authors;
|
||
for (let i in this.raltiAutList) {
|
||
this.raltiAutList[i].showHide = false;
|
||
}
|
||
});
|
||
},
|
||
|
||
// 机构模糊搜索
|
||
searchCompany(queryString, cb) {
|
||
var companyList = this.companyList;
|
||
var results = queryString ? companyList.filter(this.createFilter(queryString)) : companyList;
|
||
// 调用 callback 返回建议列表的数据
|
||
cb(results);
|
||
},
|
||
|
||
createFilter(queryString) {
|
||
return (companyList) => {
|
||
return companyList.value.toLowerCase().indexOf(queryString.toLowerCase()) != -1;
|
||
};
|
||
},
|
||
|
||
selCompany(item, index) {
|
||
this.form.authorList[index].company = item.value;
|
||
},
|
||
|
||
checkReviewer() {
|
||
this.$api.post('api/Reviewer/checkReviewerOfJournal', this.Reviewerof).then((res) => {
|
||
this.checkReviewerof = res.data.has;
|
||
});
|
||
},
|
||
|
||
open() {
|
||
let str =
|
||
'Creative Commons Licensing<br> Medicine provides authors the choice of applying the Creative Commons 4.0 licenses defined below, to be determined after acceptance:<br>Attribution: CC-BY<br>This license lets others distribute, remix, tweak, and build upon your work, even commercially, if they credit you for the original creation. <br>This is the most accommodating of licenses offered.';
|
||
this.$alert(str, '', {
|
||
confirmButtonText: 'ok'
|
||
});
|
||
},
|
||
|
||
initMajor() {
|
||
this.$api
|
||
.post('api/Major/getMajorForAddArticle', {
|
||
journal_id: this.form.journal,
|
||
major_id: 1
|
||
})
|
||
.then((res) => {
|
||
this.majors_a = res.data.majors;
|
||
});
|
||
},
|
||
|
||
majorChange(e) {
|
||
if (e == 1) {
|
||
this.$api
|
||
.post('api/Major/getMajorForAddArticle', {
|
||
journal_id: this.form.journal,
|
||
major_id: this.form.major_a
|
||
})
|
||
.then((res) => {
|
||
this.majors_b = res.data.majors;
|
||
this.majors_c = [];
|
||
this.form.major_b = '';
|
||
this.form.major_c = '';
|
||
this.majorChange_panduan();
|
||
});
|
||
} else if (e == 2 && this.form.major_b != 0) {
|
||
this.$api
|
||
.post('api/Major/getMajorForAddArticle', {
|
||
journal_id: this.form.journal,
|
||
major_id: this.form.major_b
|
||
})
|
||
.then((res) => {
|
||
this.majors_c = res.data.majors;
|
||
this.form.major_c = '';
|
||
this.majorChange_panduan();
|
||
});
|
||
} else {
|
||
this.majorChange_panduan();
|
||
}
|
||
},
|
||
|
||
majorChange_panduan() {
|
||
if (this.form.major_c != '' || this.form.major_c != 0) {
|
||
this.form.major = this.form.major_c;
|
||
} else if (this.form.major_b != '' || this.form.major_b != 0) {
|
||
this.form.major = this.form.major_b;
|
||
} else {
|
||
this.form.major = this.form.major_a;
|
||
}
|
||
// 选择共同投稿清除
|
||
this.mj_jour = [];
|
||
this.form.checkedjours = [];
|
||
this.form.istransfer = false;
|
||
},
|
||
|
||
getjournalbyid(jid) {
|
||
for (var i in this.items) {
|
||
if (this.items[i].journal_id == jid) {
|
||
return this.items[i].title;
|
||
}
|
||
}
|
||
},
|
||
|
||
uperr_coverLetter(err) {
|
||
this.$message.error('Upload error');
|
||
},
|
||
|
||
// 共同投稿
|
||
changeSwitch(val) {
|
||
if (val === true) {
|
||
let flag = val;
|
||
this.form.istransfer = false;
|
||
// // 二次确认
|
||
this.$confirm(
|
||
'Please confirm this information again. When you select this Co-submission again. if the manuscript is not suitable for the first journal, the manuscript will be automatically submitted to the journal you selected.',
|
||
'Tips',
|
||
{
|
||
confirmButtonText: 'OK',
|
||
cancelButtonText: 'Cancel',
|
||
type: 'warning'
|
||
}
|
||
)
|
||
.then(() => {
|
||
this.form.istransfer = true;
|
||
// 获取期刊by领域
|
||
this.$api
|
||
.post('api/Article/getJournalsByMajor', {
|
||
major_id: this.form.major
|
||
})
|
||
.then((res) => {
|
||
this.mj_jour = res.data.journals;
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
}
|
||
},
|
||
// 是否申请审稿人
|
||
changeBecome(val) {
|
||
if (val === true) {
|
||
let flag = val;
|
||
this.form.becomeRev = false;
|
||
// // 二次确认
|
||
this.$confirm('Do you want to apply to be a reviewer of ' + this.getjournalbyid(this.form.journal) + '?', 'Tips', {
|
||
type: 'warning'
|
||
})
|
||
.then(() => {
|
||
this.form.becomeRev = true;
|
||
// 作者同意申请审稿人
|
||
})
|
||
.catch(() => {});
|
||
}
|
||
},
|
||
|
||
// 添加推荐审稿人
|
||
onAddTuijian() {
|
||
this.tuiJianForm.push({
|
||
realname: '',
|
||
email: '',
|
||
country: '',
|
||
major_all: ''
|
||
});
|
||
},
|
||
|
||
onDeleteTuijian(item, index) {
|
||
this.tuiJianForm.splice(index, 1);
|
||
},
|
||
|
||
// 下载文件
|
||
dowloadFile(file) {
|
||
let filePath = '/public/' + file.url;
|
||
let fileName = file.name;
|
||
|
||
// 获取heads中的filename文件名
|
||
let downloadElement = document.createElement('a');
|
||
// 创建下载的链接
|
||
downloadElement.href = filePath; // 下载后文件名
|
||
downloadElement.download = fileName;
|
||
downloadElement.target = '_blank';
|
||
document.body.appendChild(downloadElement);
|
||
// 点击下载
|
||
downloadElement.click();
|
||
// 下载完成移除元素
|
||
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' ||
|
||
// file.type === 'application/pdf' ||
|
||
// file.type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
|
||
// if (!isWORd) {
|
||
// this.$message.error('Only word and pdf files can be uploaded(.pdf,.doc,.docx)');
|
||
// }
|
||
// return isWORd;
|
||
},
|
||
beforeupload_picturesAndTables(file) {
|
||
let flieArr = file.name.split('.');
|
||
let fileSuffix = flieArr[flieArr.length - 1];
|
||
if (fileSuffix != 'zip') {
|
||
this.$message.error('Only ZIP files can be uploaded (file format: .zip).');
|
||
return false;
|
||
}
|
||
|
||
// const iszip =
|
||
// file.type === 'application/x-zip-compressed';
|
||
// if (!iszip) {
|
||
// this.$message.error('Only compressed files can be uploaded(.zip)');
|
||
// return false;
|
||
// }
|
||
// return iszip;
|
||
},
|
||
beforeupload_totalpage(file) {},
|
||
beforeupload_manuscirpt(file) {
|
||
console.log('file at line 2075:', 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;
|
||
}
|
||
|
||
// 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_supplementary(file) {
|
||
let flieArr = file.name.split('.');
|
||
let fileSuffix = flieArr[flieArr.length - 1];
|
||
if (fileSuffix != 'zip') {
|
||
this.$message.error('Only zip files can be uploaded(.zip)');
|
||
return false;
|
||
}
|
||
// 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;
|
||
},
|
||
//文件上传成功后的操作
|
||
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;
|
||
this.fileL_coverLetter = [{}];
|
||
this.fileL_coverLetter[0].name = 'Cover letter File';
|
||
this.fileL_coverLetter[0].url = 'coverLetter/' + res.upurl;
|
||
this.onStaging(3);
|
||
} else {
|
||
this.$message.error('service error:' + res.msg);
|
||
}
|
||
},
|
||
upSuccess_picturesAndTables(res, file, fileList) {
|
||
if (res.code == 0) {
|
||
this.form.picturesAndTables = 'picturesAndTables/' + res.upurl;
|
||
this.fileL_picturesAndTables = [{}];
|
||
this.fileL_picturesAndTables[0].name = 'Figures File';
|
||
this.fileL_picturesAndTables[0].url = 'picturesAndTables/' + res.upurl;
|
||
this.onStaging(4);
|
||
} else {
|
||
this.$message.error('service error:' + res.msg);
|
||
}
|
||
},
|
||
upSuccess_totalpage(res, file) {
|
||
if (res.code == 0) {
|
||
this.form.totalpage = 'totalpage/' + res.upurl;
|
||
} else {
|
||
this.$message.error('service error:' + res.msg);
|
||
}
|
||
},
|
||
|
||
addWordTablesList(tables) {
|
||
console.log('tables at line 2187:', tables);
|
||
console.log('this.fileMesForm at line 2189:', this.stagingID);
|
||
var data = {
|
||
article_id: this.stagingID,
|
||
|
||
list: tables.map((e) => ({
|
||
table: JSON.stringify([...e]),
|
||
type: 0,
|
||
html_data: ''
|
||
}))
|
||
};
|
||
|
||
this.$api.post('api/Article/addArticleTable', data).then((res) => {
|
||
this.isShowCommonWord = true;
|
||
});
|
||
},
|
||
upLoadWordTables() {},
|
||
upSuccess_manuscirpt(res, File) {
|
||
// console.log('file at line 2174:', file.raw)
|
||
if (File) {
|
||
var that = this;
|
||
const reader = new FileReader();
|
||
reader.onload = function (e) {
|
||
that.$commonJS.extractWordTablesToArrays(File.raw, function (wordTables) {
|
||
console.log('tablesHtml at line 61:', wordTables);
|
||
|
||
that.addWordTablesList(wordTables);
|
||
});
|
||
};
|
||
reader.readAsArrayBuffer(File.raw);
|
||
}
|
||
if (res.code == 0) {
|
||
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
|
||
this.fileL_manuscirpt = [{}];
|
||
this.isShowCommonWord = false;
|
||
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
|
||
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
|
||
|
||
this.onStaging(5);
|
||
} else {
|
||
this.$message.error('service error: ' + res.msg);
|
||
}
|
||
},
|
||
upSuccess_supplementary(res, file) {
|
||
if (res.code == 0) {
|
||
this.form.supplementary = 'supplementary/' + res.upurl;
|
||
this.fileL_supplementary = [{}];
|
||
this.fileL_supplementary[0].name = 'Supplementary Material';
|
||
this.fileL_supplementary[0].url = 'supplementary/' + res.upurl;
|
||
this.onStaging(6);
|
||
} else {
|
||
this.$message.error('service error: ' + res.msg);
|
||
}
|
||
},
|
||
clearUploadedFile() {
|
||
this.$refs['uploadFile'].clearFiles();
|
||
},
|
||
//超出传送文件个数限制
|
||
alertlimit() {
|
||
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 = [];
|
||
this.$api
|
||
.post('api/Article/delArticleFile', {
|
||
file_id: this.form.coverLetterId
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Deletion succeeded!');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
},
|
||
removefilepicturesAndTables(file, fileList) {
|
||
console.log('file at line 2199:', file);
|
||
if (!file) {
|
||
return false;
|
||
}
|
||
this.form.picturesAndTables = '';
|
||
this.fileL_picturesAndTables = [];
|
||
this.$api
|
||
.post('api/Article/delArticleFile', {
|
||
file_id: this.form.picturesAndTablesId
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Deletion succeeded!');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
},
|
||
removefiletotalpage(file, fileList) {
|
||
this.form.totalpage = '';
|
||
},
|
||
clearFileManuscript() {
|
||
this.wordimgList = [];
|
||
this.imagesHtml = '';
|
||
this.tables = [];
|
||
this.tablesHtmlHtml = '';
|
||
this.isShowCommonWord = false;
|
||
this.$api
|
||
.post('api/Article/reloadArticleImages', {
|
||
article_id: this.stagingID
|
||
})
|
||
.then((res) => {});
|
||
|
||
this.$api
|
||
.post('api/Article/reloadArticleTable', {
|
||
article_id: this.stagingID
|
||
})
|
||
.then((res) => {});
|
||
},
|
||
removefilemanuscirpt(file, fileList) {
|
||
console.log('fileList at line 2337:', file, fileList);
|
||
if (this.form.manuscirpt != '') {
|
||
}
|
||
this.form.manuscirpt = '';
|
||
this.fileL_manuscirpt = [];
|
||
this.$refs['uploadFileManuscirpt'].clearFiles();
|
||
this.clearFileManuscript();
|
||
if (this.form.manuscirptId) {
|
||
this.$api
|
||
.post('api/Article/delArticleFile', {
|
||
file_id: this.form.manuscirptId
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Deletion succeeded!');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
}
|
||
},
|
||
removefilesupplementary() {
|
||
this.form.supplementary = '';
|
||
this.fileL_supplementary = [];
|
||
this.$api
|
||
.post('api/Article/delArticleFile', {
|
||
file_id: this.form.supplementaryId
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Deletion succeeded!');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
},
|
||
getOpState(index) {
|
||
let a = this.activeNames.indexOf(index) > -1 ? 'Close' : 'Open';
|
||
},
|
||
checkfiletype(file) {},
|
||
|
||
// 上传文件-简历
|
||
uperr(err) {
|
||
this.$message.error('upload defailed:' + err);
|
||
},
|
||
upSuccess(res, file) {
|
||
if (res.code == 0) {
|
||
this.reviewerForm.qualifications = res.upurl;
|
||
} else {
|
||
this.$message.error('Server upload error:' + res.msg);
|
||
}
|
||
},
|
||
alertlimit() {
|
||
this.$message.error('The maximum number of uploaded files has been exceeded');
|
||
},
|
||
removefile() {
|
||
this.reviewerForm.qualifications = '';
|
||
},
|
||
|
||
// 点击更换期刊
|
||
change_Journal() {
|
||
this.jour_form.journal = this.form.journal;
|
||
this.changeVisible = true;
|
||
},
|
||
|
||
// 点击期刊-更换
|
||
ch_Jour(e) {
|
||
this.jour_form.journal = e;
|
||
},
|
||
|
||
// 点击期刊-确定
|
||
close_ch_Jour() {
|
||
for (let i in this.items) {
|
||
if (this.items[i].journal_id == this.jour_form.journal) {
|
||
this.check_item = this.items[i];
|
||
}
|
||
}
|
||
this.Reviewerof.journal = this.jour_form.journal;
|
||
this.checkReviewer();
|
||
this.form.journal = this.jour_form.journal;
|
||
this.form.major = '';
|
||
this.form.major_a = '';
|
||
this.form.major_b = '';
|
||
this.form.major_c = '';
|
||
this.majors_a = [];
|
||
this.majors_b = [];
|
||
this.majors_c = [];
|
||
this.mj_jour = [];
|
||
this.form.checkedjours = [];
|
||
this.form.istransfer = false;
|
||
this.form.becomeRev = false;
|
||
this.changeVisible = false;
|
||
this.initMajor();
|
||
},
|
||
getFee(id) {
|
||
if (this.items.find((e) => e.journal_id == id)) {
|
||
return this.items.find((e) => e.journal_id == id).fee;
|
||
} else {
|
||
return null;
|
||
}
|
||
|
||
// console.log('this.journals at line 2409:', this.journals)
|
||
},
|
||
// 点击期刊-更换-所有
|
||
ch_Jour_all(e) {
|
||
this.Reviewerof.journal = e;
|
||
this.checkReviewer();
|
||
this.form.journal = e;
|
||
this.form.major = '';
|
||
this.form.major_a = '';
|
||
this.form.major_b = '';
|
||
this.form.major_c = '';
|
||
this.majors_a = [];
|
||
this.majors_b = [];
|
||
this.majors_c = [];
|
||
this.mj_jour = [];
|
||
this.form.checkedjours = [];
|
||
this.form.istransfer = false;
|
||
this.form.becomeRev = false;
|
||
this.initMajor();
|
||
// this.getTopics()
|
||
},
|
||
|
||
// 点击tab变化
|
||
StepCode(e) {
|
||
console.log('🚀 ~ StepCode ~ e111:', e);
|
||
console.log(e);
|
||
if (this.move_step > e) {
|
||
if (this.move_step == 2) {
|
||
this.onStaging(2);
|
||
}
|
||
this.show_step = e;
|
||
this.move_step = e;
|
||
} else if (this.move_step < e) {
|
||
this.$refs.articleform.validate((valid) => {
|
||
if (valid) {
|
||
if (this.move_step == 1) {
|
||
//暂时注销 start
|
||
// var flist = this.keywordsList;
|
||
// var fstr = '';
|
||
// for (var fu in flist) {
|
||
// if (flist[fu].ke != '') {
|
||
// fstr += flist[fu].ke.trim() + ',';
|
||
// }
|
||
// }
|
||
// this.form.keyWords = fstr == '' ? '' : fstr.substring(0, fstr.length - 1);
|
||
// this.$api.post('api/Article/addArticlePart1', this.form).then((res) => {
|
||
// if (res.code == 0) {
|
||
// this.stagingID = res.data.article_id;
|
||
// this.form.article_id = res.data.article_id;
|
||
// this.$message.success('Saving succeeded!');
|
||
//暂时注销 End
|
||
this.move_step = 2; //进行步骤
|
||
this.show_step = 2; //显示内容
|
||
|
||
//暂时注销 start
|
||
// } else {
|
||
// this.$message.error(res.msg);
|
||
// }
|
||
|
||
// });
|
||
//暂时注销 End
|
||
} else if (this.move_step == 2) {
|
||
this.onStaging(2);
|
||
this.show_step = 3;
|
||
this.move_step = 3;
|
||
} else {
|
||
this.show_step = e;
|
||
this.move_step = e;
|
||
}
|
||
} else {
|
||
this.$message.error('Please fill in the current content first!');
|
||
return false;
|
||
}
|
||
});
|
||
} else {
|
||
if (e == 1) {
|
||
this.onStaging(1);
|
||
}
|
||
if (e == 2) {
|
||
this.onStaging(2);
|
||
}
|
||
}
|
||
},
|
||
|
||
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 = [{}];
|
||
this.fileL_coverLetter[0].name = 'Cover letter File';
|
||
this.fileL_coverLetter[0].url = this.form.coverLetter;
|
||
}
|
||
this.fileL_picturesAndTables = [];
|
||
if (this.form.picturesAndTables != '') {
|
||
this.fileL_picturesAndTables = [{}];
|
||
this.fileL_picturesAndTables[0].name = 'Figures File';
|
||
this.fileL_picturesAndTables[0].url = this.form.picturesAndTables;
|
||
}
|
||
this.fileL_manuscirpt = [];
|
||
if (this.form.manuscirpt != '') {
|
||
this.fileL_manuscirpt = [{}];
|
||
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
|
||
this.fileL_manuscirpt[0].url = this.form.manuscirpt;
|
||
}
|
||
this.fileL_supplementary = [];
|
||
if (this.form.supplementary != '') {
|
||
this.fileL_supplementary = [{}];
|
||
this.fileL_supplementary[0].name = 'Supplementary Material';
|
||
this.fileL_supplementary[0].url = this.form.supplementary;
|
||
}
|
||
},
|
||
|
||
// 点击进行下一步
|
||
onStep(e) {
|
||
|
||
console.log('this.majorValueList at line 2604:', this.majorValueList)
|
||
console.log('this.form at line 2622:', this.form)
|
||
|
||
this.$refs.articleform.validate((valid) => {
|
||
if (valid) {
|
||
if (e == 1) {
|
||
// this.onStaging(1)
|
||
// setTimeout(() => {
|
||
// console.log('456')
|
||
// this.move_step = 2 //进行步骤
|
||
// this.show_step = 2 //显示内容
|
||
// }, 1000);
|
||
|
||
var flist = this.keywordsList;
|
||
var fstr = '';
|
||
for (var fu in flist) {
|
||
if (flist[fu].ke != '') {
|
||
fstr += flist[fu].ke.trim() + ',';
|
||
}
|
||
}
|
||
this.form.keyWords = fstr == '' ? '' : fstr.substring(0, fstr.length - 1);
|
||
this.form.major=this.majorValueList.toString(',')
|
||
this.$api.post('api/Article/addArticlePart1', this.form).then((res) => {
|
||
|
||
if (res.code == 0) {
|
||
this.stagingID = res.data.article_id;
|
||
this.form.article_id = res.data.article_id;
|
||
this.$message.success('Saving succeeded!');
|
||
this.move_step = 2; //进行步骤
|
||
this.show_step = 2; //显示内容
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
}
|
||
if (e == 2) {
|
||
this.onStaging(e); //暂存
|
||
// 作者邮箱必填
|
||
let Firsta = 0;
|
||
let Corra = 0;
|
||
if (this.form.authorList.length == 0) {
|
||
this.$message.error('Author is required');
|
||
return;
|
||
}
|
||
for (let i in this.form.authorList) {
|
||
if (this.form.authorList[i].email == '') {
|
||
this.$message.error('Please fill in the email information!');
|
||
return;
|
||
}
|
||
if (this.form.authorList[i].firstname == '') {
|
||
this.$message.error('Please fill in the author name!');
|
||
return;
|
||
}
|
||
if (this.form.authorList[i].country == '') {
|
||
this.$message.error('Country is necessary for author!');
|
||
return;
|
||
}
|
||
if (this.form.authorList[i].isReport && this.form.authorList[i].address == '') {
|
||
this.$message.error('Address is necessary for corresponding author');
|
||
return;
|
||
}
|
||
if (this.form.authorList[i].isReport) {
|
||
Corra++;
|
||
}
|
||
if (this.form.authorList[i].isSuper) {
|
||
Firsta++;
|
||
}
|
||
}
|
||
if (Firsta == 0 || Corra == 0) {
|
||
// this.$message.error('First author and corresponding author must be exist');
|
||
// return;
|
||
}
|
||
|
||
this.move_step = 3; //进行步骤
|
||
this.show_step = 3; //显示内容
|
||
}
|
||
if (e == 3) {
|
||
this.move_step = 4; //进行步骤
|
||
this.show_step = 4; //显示内容
|
||
}
|
||
} else {
|
||
this.$message.error('The submission encountered an error.');
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
|
||
// save暂存
|
||
onStagingSave(e) {
|
||
if (e == 1) {
|
||
this.onStaging(1);
|
||
} else if (e == 2) {
|
||
this.onStaging(2);
|
||
}
|
||
},
|
||
|
||
// 暂存
|
||
onStaging(e) {
|
||
var that = this;
|
||
console.log('e at line 2584:', e);
|
||
if (e == 1) {
|
||
var flist = this.keywordsList;
|
||
var fstr = '';
|
||
for (var fu in flist) {
|
||
if (flist[fu].ke != '') {
|
||
fstr += flist[fu].ke.trim() + ',';
|
||
}
|
||
}
|
||
console.log('this.form at line 2707:', this.form)
|
||
this.form.keyWords = fstr == '' ? '' : fstr.substring(0, fstr.length - 1);
|
||
this.$api.post('api/Article/addArticlePart1', this.form).then((res) => {
|
||
|
||
if (res.code == 0) {
|
||
this.stagingID = res.data.article_id;
|
||
this.form.article_id = res.data.article_id;
|
||
this.$message.success('Saving succeeded!');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
console.log('456');
|
||
return false;
|
||
}
|
||
});
|
||
} else if (e == 2) {
|
||
this.isShowCommonWord = false;
|
||
setTimeout(() => {
|
||
this.isShowCommonWord = true;
|
||
// that.getWordTablesList();
|
||
// that.getWordimgList();
|
||
}, 200);
|
||
// for (let i = 0; i < this.form.authorList.length; i++) {
|
||
// if (this.form.authorList[i].art_aut_id == undefined) {
|
||
// this.form.authorList[i].art_aut_id = 0
|
||
// }
|
||
// // 空信息的作者删除
|
||
// let authMark = 0
|
||
// for (let key in this.form.authorList[i]) {
|
||
// if (key != 'isSuper' && key != 'isReport' && key != 'is_super' && key != 'is_report' &&
|
||
// key != 'state' && key != 'article_id' && key != 'art_aut_id') {
|
||
// if (this.form.authorList[i][key] != '') {
|
||
// authMark++
|
||
// }
|
||
// }
|
||
// }
|
||
// if (authMark == 0) {
|
||
// this.form.authorList.splice(i, 1)
|
||
// i = i - 1
|
||
// }
|
||
// }
|
||
// if (this.form.authorList.length != 0) {
|
||
// this.$api
|
||
// .post('api/Article/saveArticleAuthor', {
|
||
// article_id: this.form.article_id,
|
||
// authors: this.form.authorList
|
||
// })
|
||
// .then((res) => {
|
||
// if (res.code == 0) {
|
||
// this.$message.success('Saving succeeded!');
|
||
// } else {
|
||
// this.$message.error(res.msg);
|
||
// }
|
||
// });
|
||
// }
|
||
} else if (e == 3) {
|
||
this.$api
|
||
.post('api/Article/addArticlefile', {
|
||
article_id: this.form.article_id,
|
||
type: 'coverLetter',
|
||
url: this.form.coverLetter
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.form.coverLetterId = res.data.file_id;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
} else if (e == 4) {
|
||
this.$api
|
||
.post('api/Article/addArticlefile', {
|
||
article_id: this.form.article_id,
|
||
type: 'picturesAndTables',
|
||
url: this.form.picturesAndTables
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.form.picturesAndTablesId = res.data.file_id;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
} else if (e == 5) {
|
||
this.$api
|
||
.post('api/Article/addArticlefile', {
|
||
article_id: this.form.article_id,
|
||
type: 'manuscirpt',
|
||
url: this.form.manuscirpt
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.form.manuscirptId = res.data.file_id;
|
||
console.log('this.form.manuscirpt at line 2652:', this.form.manuscirpt);
|
||
|
||
console.log('1111111111111111111111111111');
|
||
setTimeout(() => {
|
||
// that.getWordTablesList();
|
||
// that.getWordimgList();
|
||
}, 500);
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
} else if (e == 6) {
|
||
this.$api
|
||
.post('api/Article/addArticlefile', {
|
||
article_id: this.form.article_id,
|
||
type: 'supplementary',
|
||
url: this.form.supplementary
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.form.supplementaryId = res.data.file_id;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
}
|
||
},
|
||
|
||
// 读取
|
||
Temporary() {
|
||
this.$api
|
||
.post('api/Article/getSaveArticleDetail', {
|
||
article_id: this.stagingID
|
||
})
|
||
.then((res) => {
|
||
console.log(res, '已经保存的值');
|
||
if (res.code == 0) {
|
||
// 基本信息
|
||
this.form.journal = res.data.base.journal_id;
|
||
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
|
||
.post('api/Major/getMajorForAddArticle', {
|
||
journal_id: this.form.journal,
|
||
major_id: 1
|
||
})
|
||
.then((res) => {
|
||
this.majors_a = res.data.majors;
|
||
});
|
||
this.form.major_a = res.data.major.major_id;
|
||
this.$api
|
||
.post('api/Major/getMajorForAddArticle', {
|
||
journal_id: this.form.journal,
|
||
major_id: this.form.major_a
|
||
})
|
||
.then((ref) => {
|
||
this.majors_b = ref.data.majors;
|
||
this.majors_c = [];
|
||
this.form.major_b = '';
|
||
this.form.major_c = '';
|
||
this.majorChange_panduan();
|
||
if (res.data.major.child != undefined) {
|
||
this.form.major_b = res.data.major.child.major_id;
|
||
this.$api
|
||
.post('api/Major/getMajorForAddArticle', {
|
||
journal_id: this.form.journal,
|
||
major_id: this.form.major_b
|
||
})
|
||
.then((ref) => {
|
||
this.majors_c = ref.data.majors;
|
||
this.form.major_c = '';
|
||
this.majorChange_panduan();
|
||
if (res.data.major.child.child != undefined) {
|
||
this.form.major_c = res.data.major.child.child.major_id;
|
||
this.majorChange_panduan();
|
||
}
|
||
});
|
||
}
|
||
});
|
||
// 关键词
|
||
let keyList = res.data.base.keywords.split(',');
|
||
this.keywordsList = [];
|
||
for (let i = 0; i < keyList.length; i++) {
|
||
this.keywordsList.push({
|
||
ke: keyList[i]
|
||
});
|
||
}
|
||
|
||
// 文件
|
||
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;
|
||
}
|
||
if (res.data.files[i].type_name == 'picturesAndTables') {
|
||
this.form.picturesAndTables = res.data.files[i].file_url;
|
||
this.form.picturesAndTablesId = res.data.files[i].file_id;
|
||
}
|
||
if (res.data.files[i].type_name == 'manuscirpt') {
|
||
this.form.manuscirpt = res.data.files[i].file_url;
|
||
this.form.manuscirptId = res.data.files[i].file_id;
|
||
}
|
||
if (res.data.files[i].type_name == 'supplementary') {
|
||
this.form.supplementary = res.data.files[i].file_url;
|
||
this.form.supplementaryId = res.data.files[i].file_id;
|
||
}
|
||
}
|
||
this.showFiles();
|
||
}
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
|
||
this.TempoAuthor();
|
||
},
|
||
|
||
// 读取作者
|
||
TempoAuthor() {
|
||
this.$api
|
||
.post('api/Article/getAuthors', {
|
||
article_id: this.stagingID
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
// 作者
|
||
if (res.data.authors.length > 0) {
|
||
this.form.authorList = res.data.authors;
|
||
this.activeNames = [];
|
||
for (let i = 0; i < this.form.authorList.length; i++) {
|
||
if (this.form.authorList[i].is_report == 1) {
|
||
this.form.authorList[i].isReport = true;
|
||
} else {
|
||
this.form.authorList[i].isReport = false;
|
||
}
|
||
if (this.form.authorList[i].is_super == 1) {
|
||
this.form.authorList[i].isSuper = true;
|
||
} else {
|
||
this.form.authorList[i].isSuper = false;
|
||
}
|
||
this.form.authorList[i].title = this.form.authorList[i].author_title;
|
||
this.activeNames.push(i + 1);
|
||
}
|
||
} else {
|
||
this.form.authorList = [];
|
||
}
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
});
|
||
},
|
||
|
||
// 选择
|
||
chanSelt() {
|
||
this.$forceUpdate();
|
||
},
|
||
|
||
// 获取话题
|
||
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);
|
||
}
|
||
});
|
||
},
|
||
// 选中值变化
|
||
topicsChange(e) {
|
||
// console.log(this.form.topics,'选中的话题id')
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style scoped>
|
||
.formTopics {
|
||
width: 100%;
|
||
}
|
||
</style>
|
||
|
||
<style>
|
||
.author-box {
|
||
width: 150%;
|
||
}
|
||
|
||
.author-box .el-row {
|
||
margin-bottom: 5px;
|
||
}
|
||
|
||
.author-box .author-title {
|
||
color: #969595;
|
||
text-align: center;
|
||
background-color: #eceaea;
|
||
}
|
||
|
||
.author-box .author-delete {
|
||
text-align: center;
|
||
}
|
||
|
||
.author-box .author-delete i {
|
||
color: red;
|
||
}
|
||
|
||
.zyfont {
|
||
font-size: 14px;
|
||
color: rgb(133, 131, 131);
|
||
}
|
||
|
||
.tffont {
|
||
font-size: 10px;
|
||
line-height: 1.5;
|
||
color: rgb(133, 131, 131);
|
||
}
|
||
|
||
.orcid_link {
|
||
color: #409eff;
|
||
margin-left: 20px;
|
||
}
|
||
|
||
.orcid_link:hover {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.manu_add .el-upload__tip {
|
||
position: absolute;
|
||
top: -5px;
|
||
left: 90px;
|
||
color: #999;
|
||
}
|
||
|
||
.el-collapse-item__content {
|
||
padding-bottom: 8px !important;
|
||
}
|
||
|
||
.up_newstyle {
|
||
margin-left: 10px;
|
||
}
|
||
|
||
.up_newstyle .el-upload--text {
|
||
background-color: #006699;
|
||
border: 1px solid #006699;
|
||
padding: 0 7px;
|
||
/* margin-left: 10px; */
|
||
}
|
||
|
||
.up_newstyle .el-upload__text em {
|
||
color: #fff !important;
|
||
font-size: 12px;
|
||
}
|
||
|
||
.Del_btn {
|
||
color: #df1f1f !important;
|
||
margin-left: 30px;
|
||
}
|
||
|
||
.Del_btn:hover {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.manu_add .el-form-item__label {
|
||
color: #000;
|
||
}
|
||
|
||
.manu_add .el-upload__tip {
|
||
color: #333;
|
||
}
|
||
|
||
.manu_add .zyfont {
|
||
color: #111;
|
||
}
|
||
|
||
.manu_add h3 {
|
||
margin: 5px 20px 30px 20px;
|
||
color: #006699;
|
||
}
|
||
|
||
.manu_add .el-collapse {
|
||
border-top: 1px solid #bfcdd3;
|
||
border-bottom: 1px solid #bfcdd3;
|
||
}
|
||
|
||
.manu_add .el-collapse-item__header {
|
||
background-color: #f8fbff;
|
||
border-bottom: 1px solid #bfcdd3;
|
||
}
|
||
|
||
.manu_add .el-collapse-item__wrap {
|
||
background-color: #f8fbff;
|
||
}
|
||
|
||
.manu_add .el-collapse-item__header.is-active {
|
||
border-bottom-color: transparent;
|
||
}
|
||
|
||
.manu_add .bag_color {
|
||
padding-top: 25px;
|
||
background-color: #f8fbff;
|
||
box-shadow: 2px 30px 15px -20px #ebf5ff inset;
|
||
}
|
||
|
||
.manu_add .bag_color > div {
|
||
padding: 1px 25px;
|
||
background-color: #f8fbff;
|
||
box-shadow: 2px -30px 15px -20px #ebf5ff inset;
|
||
}
|
||
|
||
.manu_add .pro_ceed {
|
||
width: 260px;
|
||
margin-bottom: 50px;
|
||
font-size: 14px;
|
||
}
|
||
|
||
.manu_add .pro_stage {
|
||
width: 120px;
|
||
margin-bottom: 50px;
|
||
font-size: 14px;
|
||
}
|
||
|
||
.manu_add .el-form-item__error {
|
||
margin-left: 10px;
|
||
top: 99%;
|
||
color: #e52d2d;
|
||
}
|
||
|
||
.step_list {
|
||
margin: 30px 0 0 0;
|
||
}
|
||
|
||
.step_list > div {
|
||
position: relative;
|
||
float: left;
|
||
background-color: #eee;
|
||
padding-top: 20px;
|
||
}
|
||
|
||
.step_list > div > .bor_der {
|
||
position: absolute;
|
||
height: 70px;
|
||
width: 2px;
|
||
background-color: #d5dee3;
|
||
top: 40px;
|
||
left: 0;
|
||
}
|
||
|
||
.step_list > div > div {
|
||
width: 240px;
|
||
height: 85px;
|
||
text-align: center;
|
||
color: #777;
|
||
background-color: #eee;
|
||
padding-top: 5px;
|
||
font-weight: bold;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.step_list > div > div:hover {
|
||
color: #006699;
|
||
}
|
||
|
||
.step_list > div > div i {
|
||
display: block;
|
||
font-size: 35px;
|
||
margin-bottom: 5px;
|
||
}
|
||
|
||
.step_list > div.C_style {
|
||
background-color: #f8fbff;
|
||
box-shadow: 2px 30px 15px -20px #ebf5ff inset;
|
||
}
|
||
|
||
.step_list > div.C_style > div {
|
||
background-color: #f8fbff;
|
||
box-shadow: 2px -30px 15px -20px #ebf5ff inset;
|
||
color: #006699;
|
||
}
|
||
|
||
.step_list > div .num {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
height: 20px;
|
||
line-height: 20px;
|
||
width: 20px;
|
||
text-align: center;
|
||
color: #fff;
|
||
background: #006699;
|
||
}
|
||
|
||
.step_list > div .num::before,
|
||
.step_list > div .num::after {
|
||
content: '';
|
||
position: absolute;
|
||
border-top: 10px solid #006699;
|
||
border-right: 10px solid transparent;
|
||
border-bottom: 10px solid transparent;
|
||
border-left: 10px solid #006699;
|
||
}
|
||
|
||
.step_list > div .num::before {
|
||
bottom: -20px;
|
||
left: 0;
|
||
}
|
||
|
||
.step_list > div .num::after {
|
||
right: -20px;
|
||
top: 0;
|
||
}
|
||
|
||
.forWard {
|
||
line-height: 20px;
|
||
color: #333;
|
||
font-size: 14px;
|
||
padding: 10px 10px 0 10px;
|
||
background-color: #ffffff80;
|
||
border: 1px dashed #dae8f7;
|
||
margin-top: -10px;
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.forWard > div {
|
||
border-bottom: 1px solid #dae8f7;
|
||
padding: 0 20px 10px 20px;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.forWard > div:nth-last-child(1) {
|
||
border-bottom: 0;
|
||
}
|
||
|
||
.forWard > div > p {
|
||
margin: 0 0 3px 0;
|
||
line-height: 22px;
|
||
color: #333;
|
||
}
|
||
|
||
.forWard > div > p > font {
|
||
color: #777;
|
||
}
|
||
|
||
.forWard .jiantouBiao {
|
||
cursor: pointer;
|
||
color: #006699;
|
||
margin-left: 10px;
|
||
font-size: 20px;
|
||
}
|
||
|
||
.jour_ku {
|
||
font-size: 14px;
|
||
float: left;
|
||
width: 330px;
|
||
padding-left: 10px;
|
||
cursor: pointer;
|
||
color: #666;
|
||
line-height: 34px;
|
||
}
|
||
|
||
.jour_ku:nth-child(2n) {
|
||
width: 280px;
|
||
}
|
||
|
||
.jour_ku.B_style {
|
||
background-color: #006699;
|
||
color: #fff;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.jour_ku_all {
|
||
font-size: 12px;
|
||
float: left;
|
||
width: 265px;
|
||
padding-left: 10px;
|
||
cursor: pointer;
|
||
color: #666;
|
||
line-height: 26px;
|
||
}
|
||
|
||
.jour_ku_all:nth-child(3n + 1) {
|
||
width: 230px;
|
||
}
|
||
|
||
.jour_ku_all:nth-child(3n + 2) {
|
||
width: 220px;
|
||
}
|
||
|
||
.jour_ku_all.B_style {
|
||
color: #006699;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.tally_jour {
|
||
line-height: 18px;
|
||
width: 350px;
|
||
margin-right: 0;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.tally_jour .el-checkbox__label {
|
||
font-size: 13px;
|
||
}
|
||
|
||
.web_stite:hover {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.tuijian_f {
|
||
width: 835px;
|
||
padding: 10px 5px 15px 5px;
|
||
margin: 20px 0px 0px 55px;
|
||
box-shadow: 0 0 8px #b7d2ed;
|
||
position: relative;
|
||
}
|
||
|
||
.tuijian_f > p {
|
||
margin: 0 0 0 10px;
|
||
color: #006699;
|
||
font-weight: bold;
|
||
letter-spacing: -1px;
|
||
font-size: 14px;
|
||
}
|
||
|
||
.tuijian_f > .shanchu_tj {
|
||
position: absolute;
|
||
right: 0;
|
||
top: 0;
|
||
padding: 5px 10px;
|
||
}
|
||
|
||
.tuijian_f > .el-form-item {
|
||
display: inline-block;
|
||
margin: 0 8px;
|
||
}
|
||
|
||
.tuijian_f > .el-form-item .el-form-item__label {
|
||
padding: 0;
|
||
}
|
||
|
||
.tuijian_f .el-form-item > .el-form-item__label:before {
|
||
content: '' !important;
|
||
}
|
||
|
||
.el-popover {
|
||
word-break: break-word;
|
||
text-align: left;
|
||
}
|
||
|
||
.partyAry {
|
||
}
|
||
|
||
.partyAry > div {
|
||
font-size: 14px;
|
||
/* width: 258px; */
|
||
width: 96%;
|
||
display: inline-block;
|
||
padding: 5px 15px 10px 15px;
|
||
margin-bottom: 20px;
|
||
box-shadow: 0 0 8px #b7d2ed;
|
||
background-color: #ffffff80;
|
||
}
|
||
|
||
/* .partyAry>div:nth-child(3n+2) {
|
||
margin-left: 20px;
|
||
margin-right: 20px;
|
||
} */
|
||
|
||
.partyAry > div > p {
|
||
margin: 0 0 3px 0;
|
||
line-height: 22px;
|
||
}
|
||
|
||
.partyAry > div > p > font {
|
||
color: #777;
|
||
}
|
||
::v-deep .el-collapse-item__header {
|
||
background-color: transparent !important;
|
||
}
|
||
</style>
|