1801 lines
57 KiB
Vue
1801 lines
57 KiB
Vue
<template>
|
||
<div>
|
||
<!-- <div class="crumbs">
|
||
<el-breadcrumb separator="/">
|
||
<el-breadcrumb-item>
|
||
<i class="el-icon-lx-cascades"></i> Manuscripts list
|
||
</el-breadcrumb-item>
|
||
</el-breadcrumb>
|
||
</div> -->
|
||
<div class="tab_all">
|
||
<!-- 正在处理 -->
|
||
<p @click="tabIndex(1)" :class="activeIndex == 1 ? 'tab_Normal tab_Select' : 'tab_Normal'">Edit</p>
|
||
<!-- 接收的文章 -->
|
||
<p @click="tabIndex(2)" :class="activeIndex == 2 ? 'tab_Normal tab_Select' : 'tab_Normal'">Produce</p>
|
||
<!-- 等作者确认 -->
|
||
<!-- <p @click="tabIndex(3)" :class="activeIndex == 3 ? 'tab_Normal tab_Select' : 'tab_Normal'">Proof</p> -->
|
||
<!-- 已经发表 -->
|
||
<p @click="tabIndex(3)" :class="activeIndex == 3 ? 'tab_Normal tab_Select' : 'tab_Normal'">Online</p>
|
||
<!-- 连续出版 -->
|
||
<p @click="tabIndex(4)" :class="activeIndex == 4 ? 'tab_Normal tab_Select' : 'tab_Normal'"
|
||
v-if="preJouList">Pre-publish</p>
|
||
<!-- 出版的 -->
|
||
<p @click="tabIndex(5)" :class="activeIndex == 5 ? 'tab_Normal tab_Select' : 'tab_Normal'">Publish</p>
|
||
<!-- 调查与撤回 -->
|
||
<!-- <p @click="tabIndex(4)" :class="activeIndex == 4 ? 'tab_Normal tab_Select' : 'tab_Normal'">Investigte and
|
||
Retrace</p> -->
|
||
<br clear="both">
|
||
</div>
|
||
<div class="container" style="min-width: 1200px;">
|
||
<div v-if="activeIndex=='1'">
|
||
<div class="handle-box">
|
||
<el-select v-model="query_1.journal" @change="chageJour_1" placeholder="Please select journal">
|
||
<el-option :key="0" label="All journals" :value="0"></el-option>
|
||
<el-option v-for="item in jourList_1" :key="item.journal_id" :label="item.title"
|
||
:value="item.journal_id">
|
||
</el-option>
|
||
</el-select>
|
||
<el-select v-model="query_1.act" @change="handleSearch_1" placeholder="Please select status"
|
||
style="width: 100px;">
|
||
<el-option :key="1" :label="$t('artstate.act1')" :value="1"></el-option>
|
||
<el-option :key="2" :label="$t('artstate.act2')" :value="2"></el-option>
|
||
</el-select>
|
||
<el-select v-model="query_1.state" @change="handleSearch_1" placeholder="Please select status"
|
||
style="width: 130px;">
|
||
<el-option :key="-1" label="All status" :value="-1"></el-option>
|
||
<el-option :key="0" :label="$t('artstate.state0')" :value="0" :disabled="query_1.act==2">
|
||
</el-option>
|
||
<el-option :key="1" :label="$t('artstate.state1')" :value="1" :disabled="query_1.act==2">
|
||
</el-option>
|
||
<el-option :key="2" :label="$t('artstate.state2')" :value="2" :disabled="query_1.act==2">
|
||
</el-option>
|
||
<el-option :key="3" :label="$t('artstate.state3')" :value="3" :disabled="query_1.act==1">
|
||
</el-option>
|
||
<el-option :key="4" :label="$t('artstate.state4')" :value="4" :disabled="query_1.act==2">
|
||
</el-option>
|
||
<el-option :key="6" :label="$t('artstate.state6')" :value="6" :disabled="query_1.act==2">
|
||
</el-option>
|
||
<el-option :key="5" :label="$t('artstate.state5')" :value="5" :disabled="query_1.act==1">
|
||
</el-option>
|
||
</el-select>
|
||
<el-select v-model="query_1.special_num" @change="handleSearch_1" placeholder="Please select guest"
|
||
style="width: 185px;">
|
||
<el-option :key="0" label="Not select special issue" :value="0"></el-option>
|
||
<el-option v-for="item in itemGuest_1" :key="item.journal_special_id" :label="item.title"
|
||
:value="item.journal_special_id"></el-option>
|
||
</el-select>
|
||
<el-input v-model="query_1.name" placeholder="Title" style="width: 120px;"></el-input>
|
||
<el-input v-model="query_1.sn" placeholder="SN" style="width: 120px;margin-right: 10px;"></el-input>
|
||
<el-button type="primary" icon="el-icon-search" @click="handleSearch_1" style="margin:0 0 10px 0;">
|
||
Search
|
||
</el-button>
|
||
</div>
|
||
<el-table :data="tableData_1" border stripe class="table" ref="multipleTable"
|
||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||
<el-table-column type="index" label="No." width="50" align="center"></el-table-column>
|
||
<el-table-column label="Manuscript" width="260">
|
||
<template slot-scope="scope">
|
||
<p style="margin-bottom: 5px;color: #666;">
|
||
<span
|
||
style="background-color: #006699;width: 20px;color: #fff;margin: 0 2px 0 0;font-weight: bold;padding: 2px 4px;"
|
||
v-if="scope.row.special_num>0">S</span>
|
||
{{scope.row.accept_sn}}
|
||
</p>
|
||
<p
|
||
style="font-weight: bold;letter-spacing: -0.5px;word-wrap: break-word;word-break: normal;line-height: 22px;">
|
||
{{scope.row.title}}
|
||
</p>
|
||
<p style="text-align: center;margin: 10px 0 5px 0;">
|
||
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
|
||
@click="showDetail(scope.row)">Manuscript Detail</el-button>
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="" align="center" width="145">
|
||
<template slot="header">
|
||
<div>Reviewer</div>
|
||
<div>Decision</div>
|
||
</template>
|
||
<template slot-scope="scope">
|
||
<p v-for="(item, index) in scope.row.review">
|
||
Reviewer{{index+1}} score: <b style="color: #006699;">{{item.rated}}</b>
|
||
</p>
|
||
<p v-if="scope.row.review.length>0" style="color: #006699;font-size: 15px;margin: 5px 0;">
|
||
Average: <b>{{avegeCount(scope.row.review)}}</b>
|
||
</p>
|
||
<p style="margin-bottom: 5px;">
|
||
<el-button v-for="(item, index) in scope.row.review"
|
||
:type="item.state==2?'danger':'success'" circle style="padding: 5px;"></el-button>
|
||
</p>
|
||
<el-button size="mini" type="primary" plain icon="el-icon-user"
|
||
@click="articleReviewer(scope.row)">
|
||
Peer-Review</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="">
|
||
<template slot="header">
|
||
<div style="white-space:nowrap;text-align: center;">Corresponding</div>
|
||
<div style="text-align: center;">Author</div>
|
||
</template>
|
||
<template slot-scope="scope">
|
||
<p v-if="scope.row.realname!=''">
|
||
<font style="color: #999;font-size: 12px;">Name:</font>
|
||
{{scope.row.realname}}
|
||
</p>
|
||
<p v-if="scope.row.email!=''">
|
||
<font style="color: #999;font-size: 12px;">Email:</font>
|
||
{{scope.row.email}}
|
||
</p>
|
||
<p v-if="scope.row.phone!=''">
|
||
<font style="color: #999;font-size: 12px;">Phone:</font>
|
||
{{scope.row.phone}}
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Email" align="center" width="110">
|
||
<template slot-scope="scope">
|
||
<div style="text-align: center;margin-bottom: 10px;" v-if="scope.row.emailh==1">
|
||
<el-button size="mini" type="primary" plain icon="el-icon-chat-dot-square"
|
||
@click="linkEmailist(scope.row)">History</el-button>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Countries" align="center" width="95">
|
||
<template slot-scope="scope">
|
||
<p v-for="(item, index) in scope.row.countrys">
|
||
{{item}}
|
||
<font v-if="index!=scope.row.countrys.length-1">,</font>
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="AI scoring" align="center" width="100">
|
||
<template slot-scope="scope">
|
||
<p style="font-size: 18px;font-weight: bold;margin-bottom: 5px;color: #006699;cursor: pointer;"
|
||
v-if="scope.row.reportList.length>0">{{scope.row.scoring}}</p>
|
||
<p style="font-size: 18px;font-weight: bold;margin-bottom: 5px;"
|
||
v-if="scope.row.reportList.length==0">
|
||
{{scope.row.scoring}}
|
||
</p>
|
||
<p v-if="scope.row.scoring!=0&&scope.row.H!=null" style="color: #999;">
|
||
{{scope.row.H.google_editor}}
|
||
</p>
|
||
<p v-if="scope.row.scoring!=0&&scope.row.H!=null&&scope.row.H.google_time!=0"
|
||
style="color: #999;">
|
||
{{formatDate(scope.row.H.google_time)}}
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Status" align="center" width="110">
|
||
<template slot-scope="scope">
|
||
<p style="margin-bottom: 5px;">{{stateFormat(scope.row.state)}}</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Repetition" align="center" width="80">
|
||
<template slot-scope="scope">
|
||
<p style="margin-bottom: 5px;">{{scope.row.repetition}} %</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Remarks" align="center">
|
||
<template slot-scope="scope">
|
||
<p style="margin-bottom: 5px;text-align: left;">{{scope.row.remarks}}</p>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="pagination">
|
||
<el-pagination background layout="total, prev, pager, next" :current-page="query_1.pageIndex"
|
||
:page-size="query_1.pageSize" :total="Total_1" @current-change="handlePageChange_1">
|
||
</el-pagination>
|
||
</div>
|
||
</div>
|
||
<div v-if="activeIndex=='2'">
|
||
<div class="handle-box">
|
||
<el-select v-model="query_2.journal_id" @change="handleSearch_2" placeholder="Please select journal"
|
||
style="width: 300px;">
|
||
<el-option :key="0" label="All journals" :value="0"></el-option>
|
||
<el-option v-for="item in jourList_2" :key="item.journal_id" :label="item.title"
|
||
:value="item.journal_id"></el-option>
|
||
</el-select>
|
||
</div>
|
||
<el-table :data="tableData_2" border stripe class="table" ref="multipleTable"
|
||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
||
<el-table-column width="170" label="Doi" align="center">
|
||
<template slot-scope="scope">
|
||
<p style="margin-bottom: 5px;">
|
||
{{scope.row.doi}}
|
||
</p>
|
||
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
|
||
@click="showDetail(scope.row)">Manuscript Detail</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="accept_sn" label="SN" width="180px"></el-table-column>
|
||
<el-table-column prop="" label="Title">
|
||
<template slot-scope="scope">
|
||
<p v-if="scope.row.title==''">
|
||
Article{{scope.row.p_article_id}}
|
||
</p>
|
||
<p else>
|
||
{{scope.row.title}}
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="pagination">
|
||
<el-pagination background layout="total, prev, pager, next" :current-page="query_2.pageIndex"
|
||
:page-size="query_2.pageSize" :total="Total_2" @current-change="handlePageChange_2">
|
||
</el-pagination>
|
||
</div>
|
||
</div>
|
||
<div v-if="activeIndex=='3'">
|
||
<div class="handle-box">
|
||
<el-select v-model="query_3.issn" @change="getDate_3" placeholder="Please select journal"
|
||
style="width: 500px;">
|
||
<el-option v-for="item in jourList_3" :key="item.issn" :label="item.title" :value="item.issn">
|
||
</el-option>
|
||
</el-select>
|
||
</div>
|
||
<div v-for="(item,index) in tableData_3">
|
||
<div style="margin: 30px 0 20px 10px;">
|
||
<b style="letter-spacing: -0.5px;">
|
||
{{item.stage_year}} Vol.{{item.stage_vol}} issue.{{item.stage_no}}
|
||
</b>
|
||
<span style="color: #888;margin-left: 20px;font-size: 14px;">({{item.articles.length}} articles
|
||
in
|
||
total)</span>
|
||
</div>
|
||
<div v-for="(item,index) in item.articles" class="actList">
|
||
<span>{{item.npp}}.</span>
|
||
<font @click="lookView(item)">{{item.title}}</font>
|
||
</div>
|
||
<p style="height: 1px;background-color: #eee;width: 100%;margin-top: 30px;"></p>
|
||
</div>
|
||
<div v-if="tableData_3.length==0" style="margin: 40px 0 10px 10px;">
|
||
No Article
|
||
</div>
|
||
</div>
|
||
<div v-if="activeIndex=='4'">
|
||
<div class="handle-box">
|
||
<el-select v-model="query_4.journal_id" @change="handleSearch_4" placeholder="Please select journal"
|
||
style="width: 300px;">
|
||
<el-option v-for="item in jourList_4" :key="item.journal_id" :label="item.title"
|
||
:value="item.journal_id"></el-option>
|
||
</el-select>
|
||
</div>
|
||
<el-table :data="tableData_4" border stripe class="table" ref="multipleTable"
|
||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||
<el-table-column type="index" label="No." width="60" align="center"></el-table-column>
|
||
<el-table-column width="160" label="Doi" align="center">
|
||
<template slot-scope="scope">
|
||
<p style="margin-bottom: 5px;">
|
||
{{scope.row.doi}}
|
||
</p>
|
||
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
|
||
@click="showDetail(scope.row)">Manuscript Detail</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="accept_sn" label="SN" width="180px"></el-table-column>
|
||
<el-table-column prop="" label="Title">
|
||
<template slot-scope="scope">
|
||
<p v-if="scope.row.title==''">
|
||
Article{{scope.row.p_article_id}}
|
||
</p>
|
||
<p else>
|
||
{{scope.row.title}}
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label=" " align="center" width="200px">
|
||
<template slot-scope="scope">
|
||
<el-button @click="changeEnter(scope.row)" size="mini" type="primary" plain
|
||
icon="el-icon-paperclip">Enter</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="pagination">
|
||
<el-pagination background layout="total, prev, pager, next" :current-page="query_4.pageIndex"
|
||
:page-size="query_4.pageSize" :total="Total_4" @current-change="handlePageChange_4">
|
||
</el-pagination>
|
||
</div>
|
||
</div>
|
||
<div v-if="activeIndex=='5'">
|
||
<div class="handle-box">
|
||
<el-select v-model="query_5.issn" @change="handleSearch_5" placeholder="Please select a journal"
|
||
style="width: 250px;">
|
||
<el-option v-for="item in jourList_5" :key="item.issn" :label="item.title" :value="item.issn">
|
||
</el-option>
|
||
</el-select>
|
||
<el-select v-model="query_5.journal_stage_id" @change="handleSearch_5"
|
||
placeholder="Please select a stage" style="width: 250px;margin-left: 15px;">
|
||
<el-option :key="0" label="All stages" :value="0"></el-option>
|
||
<el-option v-for="item in stageList_5" :key="item.journal_stage_id"
|
||
:label="item.stage_year+' Vol.'+item.stage_vol +' issue.'+item.stage_no+' '+item.stage_pagename+item.stage_page"
|
||
:value="item.journal_stage_id">
|
||
</el-option>
|
||
</el-select>
|
||
<el-input v-model="query_5.seach" placeholder="Please enter keywords..."
|
||
style="width: 200px;margin-left: 15px;"></el-input>
|
||
<el-button type="primary" @click="handleSearch_5" style="margin-left: 15px;">
|
||
<i class="el-icon-search" style="margin-right: 5px;"></i>Search
|
||
</el-button>
|
||
</div>
|
||
<el-table :data="tableData_5" border stripe class="table" ref="multipleTable"
|
||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||
<el-table-column width="50" label="No." prop="npp" align="center"></el-table-column>
|
||
<el-table-column width="170" label="Stage" align="center">
|
||
<template slot-scope="scope">
|
||
{{scope.row.stage_year}} Vol.{{scope.row.stage_vol}} issue.{{scope.row.stage_no}}
|
||
<br>
|
||
<el-button style="margin-top: 5px;" size="mini" type="success" plain icon="el-icon-view"
|
||
@click="lookView(scope.row)">Preview</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Sort" width="60px" align="center">
|
||
<template slot-scope="scope">
|
||
<p v-html="scope.row.sort"></p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Title">
|
||
<template slot-scope="scope">
|
||
<p v-html="scope.row.title"></p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Guest Journal" width="130px" align="center">
|
||
<template slot-scope="scope">
|
||
<p v-html="scope.row.journal_special_id"></p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="Topics" width="180px">
|
||
<template slot-scope="scope">
|
||
<p v-html=""></p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="" width="130px" align="center">
|
||
<template slot-scope="scope">
|
||
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
|
||
@click="viewRelated(scope.row)">
|
||
Relevant</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="pagination">
|
||
<el-pagination background layout="total, prev, pager, next" :current-page="query_5.pageIndex"
|
||
:page-size="query_5.pageSize" :total="Total_5" @current-change="handlePageChange_5">
|
||
</el-pagination>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 文章详情弹出框 -->
|
||
<el-dialog title="" :visible.sync="detailVisible" width="1200px" class="articlDialog">
|
||
<el-row :gutter="30">
|
||
<el-col :span="16">
|
||
<div class="art_state_">
|
||
<div class="art_state_message">
|
||
<div class="art_state_message_id" style="padding-left: 15px;">
|
||
<font>Journal : <b
|
||
style="margin-right: 25px;">{{journal_state(detailMess.journalname)}}</b></font>
|
||
<font>ID : <b style="margin-right: 25px;">{{detailMess.accept_sn}}</b></font>
|
||
<font>Type : <b style="margin-right: 25px;">{{detailMess.type |jtName}}</b></font>
|
||
<font>Major : <b>{{detailMess.major}}</b></font>
|
||
</div>
|
||
<p>
|
||
<font>Title :</font>
|
||
<b> {{detailMess.title}}</b>
|
||
</p>
|
||
<p v-show="detailMess.type=='A'">
|
||
<font>Ethical Approval :</font><b>{{detailMess.approval?'Yes':'No'}}</b>
|
||
</p>
|
||
<p v-if="detailMess.special_num > 0">
|
||
<font>Special Issues :</font><b>{{ detailMess.special_title }}</b>
|
||
</p>
|
||
|
||
<el-collapse class="auth_colla auth_collna_ew">
|
||
<el-collapse-item :title="authorList_name" name="1">
|
||
<div v-for="(item, index) in detailMess.authorList" class="auth_mess">
|
||
<h4 style="font-weight: bolder;">
|
||
<img src="../../assets/img/state_one.png" v-if="item.isSuper"
|
||
style="width: 15px;margin: 0 2px 0 0;vertical-align: text-bottom;">
|
||
{{item.firstname}} {{item.lastname}}
|
||
{{item.isSuper?'#':''}}{{item.isReport?'*':''}}
|
||
</h4>
|
||
<div>
|
||
<p v-if="item.email">
|
||
<img src="../../assets/img/state_email.png" v-if="item.isReport"
|
||
style="width: 14px;margin: 0 8px 0 0;vertical-align: text-bottom;">
|
||
<font>Email : </font>{{item.email}}
|
||
</p>
|
||
<p v-if="item.orcid">
|
||
<font>ORCID iD : </font>{{item.orcid}}
|
||
</p>
|
||
<p>
|
||
<font>First author : </font>
|
||
<b v-if="item.isSuper">Yes</b>
|
||
<b v-if="!item.isSuper">No</b>
|
||
</p>
|
||
<p>
|
||
<font>Corresponding Author :</font>
|
||
<b v-if="item.isReport">Yes</b>
|
||
<b v-if="!item.isReport">No</b>
|
||
</p>
|
||
<p v-if="item.address">
|
||
<font>Address : </font>{{item.address}}
|
||
</p>
|
||
<p v-if="item.company">
|
||
<font>Affiliation : </font>{{item.company}}
|
||
</p>
|
||
<p v-if="item.department">
|
||
<font>Department : </font>{{item.department}}
|
||
</p>
|
||
<p v-if="item.title">
|
||
<font>Title : </font>{{item.title}}
|
||
</p>
|
||
<p v-if="item.country">
|
||
<font>Country : </font>{{item.country}}
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</el-collapse-item>
|
||
</el-collapse>
|
||
<el-collapse class="auth_colla auth_collna_ew" style="margin-top: -15px;">
|
||
<el-collapse-item name="2">
|
||
<template slot="title">
|
||
Abstract
|
||
<font v-if="detailMess.keywords" style="margin-left: 3px;">, Keywords</font>
|
||
<font v-if="detailMess.fund" style="margin-left: 3px;">, Fund</font>
|
||
</template>
|
||
<p>
|
||
<font>Abstract :</font><b>{{detailMess.abstrart}}</b>
|
||
</p>
|
||
<p v-if="detailMess.keywords">
|
||
<font>Keywords :</font><b>{{detailMess.keywords}}</b>
|
||
</p>
|
||
<p v-if="detailMess.fund">
|
||
<font>Fund :</font><b>{{detailMess.fund}}</b>
|
||
</p>
|
||
</el-collapse-item>
|
||
</el-collapse>
|
||
|
||
</div>
|
||
|
||
<div class="art_file_">
|
||
<el-row :gutter="24">
|
||
<el-col :span="24" v-if="coverLetterFileList">
|
||
<h4>Cover letter : </h4>
|
||
<p class="fi_new">
|
||
<a v-for="item in coverLetterFileList" :href="mediaUrl + item.file_url">
|
||
<img src="../../assets/img/icon_0.png">
|
||
<span>
|
||
<font>Uploader : </font>{{item.username}}
|
||
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||
</span>
|
||
<i class="el-icon-download download"></i>
|
||
</a>
|
||
</p>
|
||
<br clear="both">
|
||
</el-col>
|
||
<el-col :span="24" v-if="picturesAndTablesFileList">
|
||
<h4>Figures : </h4>
|
||
<p class="fi_new">
|
||
<a v-for="item in picturesAndTablesFileList" :href="mediaUrl + item.file_url">
|
||
<img src="../../assets/img/icon_0.png">
|
||
<span>
|
||
<font>Uploader : </font>{{item.username}}
|
||
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||
</span>
|
||
<i class="el-icon-download download"></i>
|
||
</a>
|
||
</p>
|
||
<br clear="both">
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="24">
|
||
<el-col :span="24" v-if="totalpageFileList">
|
||
<h4>Title page : </h4>
|
||
<p class="fi_new">
|
||
<a v-for="item in totalpageFileList" :href="mediaUrl + item.file_url">
|
||
<img src="../../assets/img/icon_0.png">
|
||
<span>
|
||
<font>Uploader : </font>{{item.username}}
|
||
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||
</span>
|
||
<i class="el-icon-download download"></i>
|
||
</a>
|
||
</p>
|
||
<br clear="both">
|
||
</el-col>
|
||
<el-row :gutter="24" v-if="supplementaryFileList">
|
||
<el-col :span="24">
|
||
<h4>Supplementary Material : </h4>
|
||
<p class="fi_new">
|
||
<a v-for="item in supplementaryFileList" :href="mediaUrl + item.file_url">
|
||
<img src="../../assets/img/icon_0.png">
|
||
<span>
|
||
<font>Uploader : </font>{{item.username}}
|
||
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||
</span>
|
||
<i class="el-icon-download download"></i>
|
||
</a>
|
||
</p>
|
||
<br clear="both">
|
||
</el-col>
|
||
</el-row>
|
||
<el-col :span="24">
|
||
<h4>Manuscirpt : </h4>
|
||
<p class="fi_new">
|
||
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
|
||
<img src="../../assets/img/icon_0.png">
|
||
<span>
|
||
<font>Uploader : </font>{{item.username}}
|
||
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||
</span>
|
||
<i class="el-icon-download download"></i>
|
||
</a>
|
||
</p>
|
||
<br clear="both">
|
||
</el-col>
|
||
</el-row>
|
||
|
||
<el-row v-if="responseFileList!=''">
|
||
<div
|
||
style="height: 1px;width: 98%;background-color: #EBEEF5;margin: 5px auto 20px auto;">
|
||
</div>
|
||
|
||
<el-col :span="24">
|
||
<h4>Response to reviewers : </h4>
|
||
<p class="fi_new">
|
||
<a v-for="item in responseFileList" :href="mediaUrl + item.file_url">
|
||
<img src="../../assets/img/icon_0.png">
|
||
<span>
|
||
<font>Uploader : </font>{{detailMess.username}}
|
||
<i><i class="el-icon-time"></i>{{formatDate(item.artr_ctime)}}</i>
|
||
</span>
|
||
<i class="el-icon-download download"></i>
|
||
</a>
|
||
</p>
|
||
</el-col>
|
||
</el-row>
|
||
</div>
|
||
</div>
|
||
<div class="art_caozuo_">
|
||
<p>
|
||
<span>Status : </span>
|
||
<b>{{stateFormat(detailMess.state)}}</b>
|
||
</p>
|
||
<p>
|
||
<span>Remarks : </span>
|
||
<b>{{detailMess.remarks}}</b>
|
||
</p>
|
||
<p>
|
||
<span>Repetition : </span>
|
||
<b>{{detailMess.repetition}}%</b>
|
||
<a :href="mediaUrl + detailMess.repeurl" v-if="detailMess.repeurl" class="zip_load"
|
||
target="_blank">
|
||
<img src="../../assets/img/icon_0.png">
|
||
<span>Duplicate check file</span>
|
||
<i class="el-icon-download download"></i>
|
||
</a>
|
||
</p>
|
||
</div>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<div class="kuang_communtion">
|
||
<h2>
|
||
Communication
|
||
</h2>
|
||
<div v-for="(item, index) in talkMsgs" class="kuang_communtion_conmt">
|
||
<div v-if="item.user_id == msgform.user_id" class="talk_aued">
|
||
<p>
|
||
Author :
|
||
</p>
|
||
<el-card>Dear Editor,
|
||
<p style="white-space: pre-wrap;">{{ item.ad_content }}</p>
|
||
</el-card>
|
||
<b>{{formatDate(item.ad_ctime)}}</b>
|
||
</div>
|
||
<div v-if="item.user_id != msgform.user_id" class="talk_aued talk_edit">
|
||
<p>
|
||
Editor :
|
||
</p>
|
||
<el-card>
|
||
<p style="white-space: pre-wrap;">{{ item.ad_content }}</p>
|
||
</el-card>
|
||
<b>{{formatDate(item.ad_ctime)}}</b>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="tree_box">
|
||
<h2 style="margin: 0 0 20px 0;font-size: 18px;letter-spacing: -0.8px;">Manuscript Tracking</h2>
|
||
<div class="block">
|
||
<el-timeline>
|
||
<el-timeline-item :timestamp="formatDate(detailMess.ctime)" placement="top">
|
||
<el-card>
|
||
<p style="line-height: 20px;">
|
||
Manuscript submission :
|
||
<b>{{detailMess.account}}</b>
|
||
submitted to
|
||
<b>{{journal_state(detailMess.journalname)}}</b>
|
||
</p>
|
||
</el-card>
|
||
</el-timeline-item>
|
||
<el-timeline-item v-for="(activity, index) in msgs" :key="index"
|
||
:timestamp="formatDate(activity.ctime)" placement="top">
|
||
<el-card v-if="activity.ftype==0">
|
||
<p>Status change : {{stateFormat(activity.state_to)}}</p>
|
||
<p v-if="activity.content!=''">{{activity.content}}</p>
|
||
</el-card>
|
||
<el-card v-else>
|
||
<p style="margin-bottom: 5px;font-weight: bold;">Author message :</p>
|
||
<p style="line-height: 18px;">{{activity.content}}</p>
|
||
</el-card>
|
||
</el-timeline-item>
|
||
</el-timeline>
|
||
</div>
|
||
</div>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
</el-dialog>
|
||
|
||
|
||
<!-- 审稿意见 -->
|
||
<el-dialog title="" :visible.sync="reviewVisible" width="1000px">
|
||
<p style="margin: 0 0 20px 0;font-size: 16px;">{{detailMess.title}}</p>
|
||
<el-table :data="reviewData" border stripe class="table" ref="multipleTable"
|
||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||
<el-table-column type="index" label="No." align="center" width="50"></el-table-column>
|
||
<el-table-column label="Reviewer" width="400">
|
||
<template slot-scope="scope">
|
||
<p class="tab_tie_col">
|
||
<span>Realname: </span>
|
||
<el-badge is-dot :hidden="scope.row.reviewer_act == 1 ? false : true" class="item">
|
||
{{ scope.row.reviewer }}
|
||
</el-badge>
|
||
</p>
|
||
<p class="tab_tie_col">
|
||
<span>Country: </span>{{scope.row.country}}
|
||
</p>
|
||
<p class="tab_tie_col">
|
||
<span>Company: </span>{{scope.row.company}}
|
||
</p>
|
||
<p class="tab_tie_col">
|
||
<span>Major: </span>{{scope.row.major_str}}
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="field" label="Field"></el-table-column>
|
||
<el-table-column label="state" align="center" width="95">
|
||
<template slot-scope="scope">
|
||
{{stateFormat(scope.row.state)}}
|
||
<font style="color: #aaa;display: block;line-height: 18px;font-size: 13px;margin: 5px 0 0 0;">
|
||
{{formatDate(scope.row.ctime)}}
|
||
</font>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="" width="150" align="center">
|
||
<template slot-scope="scope">
|
||
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
|
||
@click="initquesion(scope.row.art_rev_id)">See Feedback</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="pagination">
|
||
<el-pagination background layout="total, prev, pager, next" :current-page="query_review.pageIndex"
|
||
:page-size="query_review.pageSize" :total="Total_review" @current-change="handlePageChange_review">
|
||
</el-pagination>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!-- 审稿问卷 -->
|
||
<el-dialog title="Feedback questionnaire" :visible.sync="questionVisible" width="900px">
|
||
<el-form :model="questionform" ref="question" label-width="300px" label-position="top">
|
||
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
||
<el-row :gutter="24">
|
||
<el-col :span="12">
|
||
<el-form-item label="1.Originality of the topic">
|
||
<el-radio-group v-model="questionform.qu1">
|
||
<el-radio :label="1">Excellent</el-radio>
|
||
<el-radio :label="2">Good</el-radio>
|
||
<el-radio :label="3">Fair</el-radio>
|
||
<el-radio :label="4">Poor</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item label="2.Importance in its Field">
|
||
<el-radio-group v-model="questionform.qu3">
|
||
<el-radio :label="1">Excellent</el-radio>
|
||
<el-radio :label="2">Good</el-radio>
|
||
<el-radio :label="3">Fair</el-radio>
|
||
<el-radio :label="4">Poor</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
|
||
<el-radio-group v-model="questionform.qu6">
|
||
<el-radio :label="1">Excellent</el-radio>
|
||
<el-radio :label="2">Good</el-radio>
|
||
<el-radio :label="3">Fair</el-radio>
|
||
<el-radio :label="4">Poor</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item label="4.English language">
|
||
<el-radio-group v-model="questionform.qu8">
|
||
<el-radio :label="1">Excellent</el-radio>
|
||
<el-radio :label="2">Good</el-radio>
|
||
<el-radio :label="3">Fair</el-radio>
|
||
<el-radio :label="4">Poor</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item label="5.Readily Understandable">
|
||
<el-radio-group v-model="questionform.qu5">
|
||
<el-radio :label="1">Excellent</el-radio>
|
||
<el-radio :label="2">Good</el-radio>
|
||
<el-radio :label="3">Fair</el-radio>
|
||
<el-radio :label="4">Poor</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-collapse>
|
||
<el-form-item label="6.Does the title represent manuscript's contents?">
|
||
<el-col :span="8">
|
||
<el-radio-group v-model="questionform.qu9">
|
||
<el-radio :label="true">Yes</el-radio>
|
||
<el-radio :label="false">No</el-radio>
|
||
</el-radio-group>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-collapse-item name="1" style="margin-top: -10px;">
|
||
<template slot="title">
|
||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||
</template>
|
||
<el-input type="textarea" placeholder="please input content"
|
||
v-model="questionform.qu9contents" :rows="4"></el-input>
|
||
</el-collapse-item>
|
||
</el-col>
|
||
</el-form-item>
|
||
</el-collapse>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
|
||
<el-collapse>
|
||
<el-form-item label="7.Is the Abstract accurate and concise?">
|
||
<el-col :span="4">
|
||
<el-radio-group v-model="questionform.qu10">
|
||
<el-radio :label="true">Yes</el-radio>
|
||
<el-radio :label="false">No</el-radio>
|
||
</el-radio-group>
|
||
</el-col>
|
||
<el-col :span="20">
|
||
<el-collapse-item name="2" style="margin-top: -10px;">
|
||
<template slot="title">
|
||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||
</template>
|
||
<el-input type="textarea" placeholder="please input content"
|
||
v-model="questionform.qu10contents" :rows="4"></el-input>
|
||
</el-collapse-item>
|
||
</el-col>
|
||
</el-form-item>
|
||
<el-form-item label="8.Are the approach/ methods properly described?">
|
||
<el-col :span="4">
|
||
<el-radio-group v-model="questionform.qu11">
|
||
<el-radio :label="true">Yes</el-radio>
|
||
<el-radio :label="false">No</el-radio>
|
||
</el-radio-group>
|
||
</el-col>
|
||
<el-col :span="20">
|
||
<el-collapse-item name="3" style="margin-top: -10px;">
|
||
<template slot="title">
|
||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||
</template>
|
||
<el-input type="textarea" placeholder="please input content"
|
||
v-model="questionform.qu11contents" :rows="4"></el-input>
|
||
</el-collapse-item>
|
||
</el-col>
|
||
</el-form-item>
|
||
<el-form-item label="9.Are the conclusions and interpretations sound?">
|
||
<el-col :span="4">
|
||
<el-radio-group v-model="questionform.qu12">
|
||
<el-radio :label="true">Yes</el-radio>
|
||
<el-radio :label="false">No</el-radio>
|
||
</el-radio-group>
|
||
</el-col>
|
||
<el-col :span="20">
|
||
<el-collapse-item name="4" style="margin-top: -10px;">
|
||
<template slot="title">
|
||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||
</template>
|
||
<el-input type="textarea" placeholder="please input content"
|
||
v-model="questionform.qu12contents" :rows="4"></el-input>
|
||
</el-collapse-item>
|
||
</el-col>
|
||
</el-form-item>
|
||
<el-form-item label="10.Are the references properly cited?">
|
||
<el-col :span="4">
|
||
<el-radio-group v-model="questionform.qu13">
|
||
<el-radio :label="true">Yes</el-radio>
|
||
<el-radio :label="false">No</el-radio>
|
||
</el-radio-group>
|
||
</el-col>
|
||
<el-col :span="20">
|
||
<el-collapse-item name="5" style="margin-top: -10px;">
|
||
<template slot="title">
|
||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||
</template>
|
||
<el-input type="textarea" placeholder="please input content"
|
||
v-model="questionform.qu13contents" :rows="4"></el-input>
|
||
</el-collapse-item>
|
||
</el-col>
|
||
</el-form-item>
|
||
|
||
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||
<el-form-item label="Overall the Paper is Rated">
|
||
(Poor------------------------Excellent)
|
||
<br />
|
||
<el-radio-group v-model="questionform.rated" size="small">
|
||
<el-radio-button label="1"></el-radio-button>
|
||
<el-radio-button label="2"></el-radio-button>
|
||
<el-radio-button label="3"></el-radio-button>
|
||
<el-radio-button label="4"></el-radio-button>
|
||
<el-radio-button label="5"></el-radio-button>
|
||
<el-radio-button label="6"></el-radio-button>
|
||
<el-radio-button label="7"></el-radio-button>
|
||
<el-radio-button label="8"></el-radio-button>
|
||
<el-radio-button label="9"></el-radio-button>
|
||
<el-radio-button label="10"></el-radio-button>
|
||
</el-radio-group>
|
||
<span style="margin-left: 20px;">>Your score:{{questionform.rated}}</span>
|
||
</el-form-item>
|
||
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||
<el-radio-group v-model="questionform.recommend" style="line-height: 30px;">
|
||
<el-radio :label="1">Accept with minor revision</el-radio>
|
||
<br />
|
||
<el-radio :label="2">Accept with major revision</el-radio>
|
||
<br />
|
||
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||
<br />
|
||
<el-radio :label="4">Reject, with no resubmission</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
||
<el-radio-group v-model="questionform.other" style="line-height: 30px;">
|
||
<el-radio :label="1">Imperfect style</el-radio>
|
||
<br />
|
||
<el-radio :label="2">Too long</el-radio>
|
||
<br />
|
||
<el-radio :label="3">References incorrectly presented</el-radio>
|
||
<br />
|
||
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item label="Comments for the Authors">
|
||
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment"
|
||
:rows="8"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="Confidential Comments to the Editor">
|
||
<el-input type="textarea" placeholder="please input content" v-model="questionform.confident"
|
||
:rows="8"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
||
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px;">
|
||
<el-radio :label="0">Disclose name</el-radio>
|
||
<br />
|
||
<el-radio :label="1">Remain anonymous</el-radio>
|
||
</el-radio-group>
|
||
<p style="line-height: 20px;color: #aaa;font-size: 13px;margin: 12px 0 0 0;">
|
||
If you agree to disclose your name, we will acknowledge you by name in the published
|
||
PDF. However, if you prefer to remain anonymous, we will still express our gratitude
|
||
by thanking you as an anonymous reviewer.
|
||
<br />For example, {{detailMess.title}} would like to thank AAAAAAAA, BBBBBBBB, and other
|
||
anonymous reviewers for their
|
||
invaluable contributions to the peer review process of this paper.
|
||
</p>
|
||
</el-form-item>
|
||
</el-collapse>
|
||
</el-form>
|
||
</el-dialog>
|
||
|
||
<!-- 相关期刊 -->
|
||
<el-dialog title="" :visible.sync="RelatVisible" width="800px">
|
||
<p style="font-weight: bold;font-size: 16px;margin-bottom: 30px;" v-html="RelatMes.title"></p>
|
||
<p class="reta_tit">Related articles selected</p>
|
||
<div>
|
||
<div v-for="item in chooseData_5" class="choose_list">
|
||
<b>{{item.journal_title}}</b>
|
||
<span>——</span>
|
||
{{ item.title }}
|
||
</div>
|
||
<p v-if="chooseData_5==''" style="color: #777;padding: 5px 0 0 15px;">No Articles</p>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
name: 'articleListEditor',
|
||
data() {
|
||
return {
|
||
baseUrl: this.Common.baseUrl,
|
||
mediaUrl: this.Common.mediaUrl,
|
||
activeIndex: 1,
|
||
preJouList: true,
|
||
query_1: {
|
||
// username: localStorage.getItem('U_name'),
|
||
username: 'liuna',
|
||
journal: 0,
|
||
special_num: 0,
|
||
name: '',
|
||
sn: '',
|
||
state: -1,
|
||
act: 1,
|
||
pageIndex: 1,
|
||
pageSize: 50
|
||
},
|
||
tableData_1: [],
|
||
Total_1: 0,
|
||
jourList_1: [],
|
||
itemGuest_1: [],
|
||
query_2: {
|
||
// username: localStorage.getItem('U_name'),
|
||
username: 'liuna',
|
||
// editor_id: localStorage.getItem('U_id'),
|
||
editor_id: 19,
|
||
journal_id: 0,
|
||
ts_state: 0,
|
||
pageIndex: 1,
|
||
pageSize: 50
|
||
},
|
||
tableData_2: [],
|
||
jourList_2: [],
|
||
Total_2: 0,
|
||
query_3: {
|
||
// username: localStorage.getItem('U_name'),
|
||
username: 'liuna',
|
||
issn: 0,
|
||
},
|
||
tableData_3: [],
|
||
jourList_3: [],
|
||
query_4: {
|
||
// username: localStorage.getItem('U_name'),
|
||
// editor_id: localStorage.getItem('U_id'),
|
||
username: 'liuna',
|
||
editor_id: 19,
|
||
journal_id: 0,
|
||
ts_state: 0,
|
||
pageIndex: 1,
|
||
pageSize: 50
|
||
},
|
||
tableData_4: [],
|
||
jourList_4: [],
|
||
Total_4: 0,
|
||
query_5: {
|
||
issn: '',
|
||
journal_stage_id: 0,
|
||
seach: '',
|
||
pageIndex: 1,
|
||
pageSize: 50
|
||
},
|
||
tableData_5: [],
|
||
jourList_5: [],
|
||
stageList_5: [],
|
||
Total_5: 0,
|
||
topicList_5: [],
|
||
chooseData_5: [],
|
||
query_review: {
|
||
pageIndex: 1,
|
||
pageSize: 10
|
||
},
|
||
Total_review: 0,
|
||
RelatMes: {},
|
||
RelatVisible: false,
|
||
detailVisible: false,
|
||
reviewVisible: false,
|
||
reviewData: [],
|
||
detailMess: {},
|
||
authorList_name: '',
|
||
coverLetterFileList: [],
|
||
picturesAndTablesFileList: [],
|
||
totalpageFileList: [],
|
||
manuscirptFileList: [],
|
||
supplementaryFileList: [],
|
||
responseFileList: [],
|
||
talkMsgs: [],
|
||
msgs: [],
|
||
msgform: {
|
||
username: localStorage.getItem('U_name'),
|
||
article_id: this.$route.query.id,
|
||
user_id: '',
|
||
ad_content: ''
|
||
},
|
||
talkMsgs: [],
|
||
questionVisible: false,
|
||
questionform: {
|
||
// rev_qu_id: '',
|
||
// art_rev_id: this.$route.query.id,
|
||
qu1: '',
|
||
qu2: '',
|
||
qu3: '',
|
||
qu4: '',
|
||
qu5: '',
|
||
qu6: '',
|
||
qu7: '',
|
||
qu8: '',
|
||
qu9: '',
|
||
qu9contents: '',
|
||
qu10: '',
|
||
qu10contents: '',
|
||
qu11: '',
|
||
qu11contents: '',
|
||
qu12: '',
|
||
qu12contents: '',
|
||
qu13: '',
|
||
qu13contents: '',
|
||
qu14: '',
|
||
qu14contents: '',
|
||
qu15: '',
|
||
qu15contents: '',
|
||
rated: '',
|
||
recommend: '',
|
||
other: '',
|
||
confident: '',
|
||
comment: ''
|
||
}
|
||
};
|
||
},
|
||
|
||
created() {
|
||
this.getDate();
|
||
if (localStorage.getItem('U_point') != null) {
|
||
this.activeIndex = localStorage.getItem('U_point')
|
||
localStorage.removeItem('U_point')
|
||
}
|
||
this.getDate_1();
|
||
},
|
||
methods: {
|
||
// 获取数据
|
||
getDate() {
|
||
// 连续出刊是否展示
|
||
// this.$api
|
||
// .post('api/Article/getContinuityJournals', {
|
||
// 'editor_id': localStorage.getItem('U_id')
|
||
// })
|
||
// .then(res => {
|
||
// if (res.data.journals.length > 0) {
|
||
// this.preJouList = true
|
||
// }
|
||
// })
|
||
// .catch(err => {
|
||
// console.log(err);
|
||
// });
|
||
|
||
// 获取全部期刊
|
||
this.$api
|
||
.post('api/Journal/getAllJournal')
|
||
.then(res => {
|
||
this.jourList_1 = res.data.journals;
|
||
this.jourList_2 = res.data.journals;
|
||
this.jourList_3 = res.data.journals;
|
||
this.jourList_4 = res.data.journals;
|
||
this.jourList_5 = res.data.journals;
|
||
|
||
this.query_3.issn = this.jourList_3[0].issn
|
||
this.query_5.issn = this.jourList_3[0].issn
|
||
|
||
this.getStage();
|
||
})
|
||
.catch(err => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
|
||
getStage() {
|
||
// 获取全部分期
|
||
this.$api
|
||
.post('api/Publish/getAllStages', this.query_5)
|
||
.then(res => {
|
||
this.stageList_5 = res.data.stages;
|
||
})
|
||
.catch(err => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
|
||
// 点击切换
|
||
tabIndex(e) {
|
||
this.activeIndex = e
|
||
if (e == 1) {
|
||
this.getDate_1();
|
||
} else if (e == 2) {
|
||
this.getDate_2();
|
||
} else if (e == 3) {
|
||
this.getDate_3();
|
||
} else if (e == 4) {
|
||
this.getDate_4();
|
||
} else if (e == 5) {
|
||
this.getDate_5();
|
||
}
|
||
},
|
||
|
||
// 获取子级的切换
|
||
changeEvent(e) {
|
||
this.tabIndex(e)
|
||
},
|
||
|
||
// 1-----------文章列表数据
|
||
getDate_1() {
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Article/getArticleForEditor', this.query_1)
|
||
.then(res => {
|
||
this.Total_1 = res.total;
|
||
this.tableData_1 = res.data;
|
||
for (let i = 0; i < this.tableData_1.length; i++) {
|
||
this.tableData_1[i].reportList = []
|
||
if (this.tableData_1[i].reports.length == 1) {
|
||
for (let j = 0; j < this.tableData_1[i].reports.length; j++) {
|
||
if (this.tableData_1[i].reports[j].author_account != '' && this.tableData_1[i]
|
||
.reports[
|
||
j].author_account != null) {
|
||
if (this.tableData_1[i].reports[j].author_account.google_time == 0) {
|
||
this.tableData_1[i].reports[j].Hindex = 0
|
||
this.tableData_1[i].reportList.push(this.tableData_1[i].reports[j])
|
||
}
|
||
}
|
||
};
|
||
} else if (this.tableData_1[i].reports.length > 1) {
|
||
for (let j = 0; j < this.tableData_1[i].reports.length; j++) {
|
||
if (this.tableData_1[i].reports[j].author_account != '' && this.tableData_1[i]
|
||
.reports[
|
||
j].author_account != null) {
|
||
this.tableData_1[i].reports[j].Hindex = this.tableData_1[i].reports[j]
|
||
.author_account.google_index
|
||
if (this.tableData_1[i].reports[j].author_account.google_time == 0) {
|
||
this.tableData_1[i].reportList = this.tableData_1[i].reports
|
||
}
|
||
}
|
||
};
|
||
}
|
||
};
|
||
loading.close();
|
||
})
|
||
.catch(err => {
|
||
loading.close();
|
||
});
|
||
},
|
||
|
||
|
||
// 1-----------改变期刊
|
||
chageJour_1() {
|
||
if (this.query_1.journal == 0) {
|
||
this.itemGuest_1 = [];
|
||
} else {
|
||
this.$api
|
||
.post('api/Special/getSpecial', {
|
||
'journal_id': this.query_1.journal
|
||
})
|
||
.then(res => {
|
||
this.itemGuest_1 = res.data.specials;
|
||
})
|
||
.catch(err => {
|
||
console.log(err);
|
||
});
|
||
}
|
||
this.query_1.special_num = 0
|
||
this.$set(this.query_1, 'pageIndex', 1);
|
||
this.getDate_1()
|
||
},
|
||
|
||
// 1-----------触发搜索按钮
|
||
handleSearch_1() {
|
||
this.$set(this.query_1, 'pageIndex', 1);
|
||
this.getDate_1();
|
||
},
|
||
|
||
// 1-----------跳转邮件-历史列表
|
||
linkEmailist(row) {
|
||
this.$router.push({
|
||
path: 'articleDetailEmailist',
|
||
query: {
|
||
id: row.article_id
|
||
}
|
||
});
|
||
},
|
||
|
||
// 2-----------触发搜索按钮
|
||
handleSearch_2() {
|
||
this.$set(this.query_2, 'pageIndex', 1);
|
||
this.getDate_2()
|
||
},
|
||
|
||
// 2-----------文章列表数据
|
||
getDate_2() {
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Production/getProductionList', this.query_2)
|
||
.then(res => {
|
||
this.tableData_2 = res.data.productions;
|
||
this.Total_2 = res.data.count;
|
||
loading.close();
|
||
})
|
||
.catch(err => {
|
||
loading.close();
|
||
});
|
||
},
|
||
|
||
// 3-----------文章列表数据
|
||
getDate_3() {
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Publish/getOnlineList', {
|
||
'issn': this.query_3.issn
|
||
})
|
||
.then(res => {
|
||
this.tableData_3 = res.data.stages
|
||
loading.close();
|
||
})
|
||
.catch(err => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
|
||
// 3-----------跳转页面
|
||
lookView(e) {
|
||
let urlBlan = 'https://www.tmrjournals.cn/article.html?J_num=' + e.journal_id + '&a_id=' + e
|
||
.article_id
|
||
window.open(urlBlan, '_blank')
|
||
},
|
||
|
||
// 4-----------触发搜索按钮
|
||
handleSearch_4() {
|
||
this.$set(this.query_4, 'pageIndex', 1);
|
||
this.getDate_4();
|
||
},
|
||
|
||
// 4-----------文章列表数据
|
||
getDate_4() {
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Production/getProductionList', this.queryType)
|
||
.then(res => {
|
||
this.tableData_4 = res.data.productions;
|
||
this.Total_4 = res.data.count;
|
||
loading.close();
|
||
})
|
||
.catch(err => {
|
||
loading.close();
|
||
});
|
||
},
|
||
|
||
// 5-----------触发搜索按钮
|
||
handleSearch_5() {
|
||
this.$set(this.query_5, 'pageIndex', 1);
|
||
this.getDate_5()
|
||
},
|
||
|
||
// 5-----------文章列表数据
|
||
getDate_5() {
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Publish/getPublicAiticles', this.query_5)
|
||
.then(res => {
|
||
this.tableData_5 = res.data.articleList;
|
||
this.Total_5 = res.data.count
|
||
loading.close();
|
||
})
|
||
.catch(err => {
|
||
loading.close();
|
||
});
|
||
},
|
||
|
||
// 5-----------相关文章
|
||
viewRelated(e) {
|
||
this.RelatMes.title = e.title
|
||
this.RelatMes.article_id = e.article_id
|
||
this.$api
|
||
.post('api/Publish/getArticleRelates', this.RelatMes)
|
||
.then(res => {
|
||
if (res.code == 0) {
|
||
this.chooseData_5 = res.data.articles
|
||
this.RelatVisible = true
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch(err => {
|
||
this.$message.error(err);
|
||
});
|
||
},
|
||
|
||
// 时间
|
||
formatDate(timestamp) {
|
||
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||
var Y = date.getFullYear() + '-';
|
||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||
return Y + M + D;
|
||
},
|
||
|
||
//格式化状态输出
|
||
stateFormat(e) {
|
||
let str = '';
|
||
switch (e) {
|
||
case 0:
|
||
str = this.$t('artstate.state0');
|
||
break;
|
||
case 1:
|
||
str = this.$t('artstate.state1');
|
||
break;
|
||
case 2:
|
||
str = this.$t('artstate.state2');
|
||
break;
|
||
case 3:
|
||
str = this.$t('artstate.state3');
|
||
break;
|
||
case 4:
|
||
str = this.$t('artstate.state4');
|
||
break;
|
||
case 5:
|
||
str = this.$t('artstate.state5');
|
||
break;
|
||
case 6:
|
||
str = this.$t('artstate.state6');
|
||
break;
|
||
default:
|
||
str = 'error!!';
|
||
}
|
||
return str;
|
||
},
|
||
|
||
// 算平均分
|
||
avegeCount(arry) {
|
||
let str = 0;
|
||
let all = 0
|
||
for (let i = 0; i < arry.length; i++) {
|
||
all += arry[i].rated
|
||
};
|
||
str = (all / arry.length).toFixed(1)
|
||
return str;
|
||
},
|
||
|
||
// 期刊标记
|
||
journal_state(e) {
|
||
var frag = e;
|
||
if (this.detailMess.special_num > 0) {
|
||
frag += "(Special Issues)";
|
||
}
|
||
return frag;
|
||
},
|
||
|
||
// 文章类型
|
||
|
||
|
||
// 稿件预览
|
||
showDetail(e) {
|
||
this.now_year = new Date().getFullYear()
|
||
this.$api
|
||
.post('api/Article/getArticleDetail', {
|
||
articleId: e.article_id,
|
||
human: 'editor'
|
||
})
|
||
.then(res => {
|
||
this.detailMess = res.article;
|
||
this.detailMess.authorList = []
|
||
this.detailMess.approval = res.article.approval == 1 ? true : false;
|
||
this.detailMess.transList = res.transfer;
|
||
this.detailMess.major = res.major;
|
||
this.msgs = res.msg;
|
||
var alist = res.authors;
|
||
let alist_name = [];
|
||
for (var i in alist) {
|
||
let index_h = 0
|
||
let index_c = "#000"
|
||
this.detailMess.authorList.push({
|
||
art_aut_id: alist[i].art_aut_id,
|
||
firstname: alist[i].firstname,
|
||
lastname: alist[i].lastname,
|
||
orcid: alist[i].orcid,
|
||
company: alist[i].company,
|
||
department: alist[i].department,
|
||
title: alist[i].author_title,
|
||
country: alist[i].country,
|
||
email: alist[i].email,
|
||
address: alist[i].address,
|
||
isSuper: alist[i].is_super == 1 ? true : false,
|
||
isReport: alist[i].is_report == 1 ? true : false,
|
||
});
|
||
|
||
if (i == alist.length - 1) {
|
||
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname)
|
||
} else {
|
||
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ')
|
||
}
|
||
}
|
||
this.authorList_name = "Author : " + alist_name.join("");
|
||
|
||
this.detailVisible = true
|
||
})
|
||
.catch(err => {
|
||
console.log(err);
|
||
});
|
||
|
||
// 文件列表
|
||
this.$api
|
||
.post('api/Article/getFilelistByArticleID', {
|
||
articleId: e.article_id
|
||
})
|
||
.then(res => {
|
||
this.coverLetterFileList = res.coverLetter;
|
||
this.picturesAndTablesFileList = res.picturesAndTables;
|
||
this.manuscirptFileList = res.manuscirpt;
|
||
this.totalpageFileList = res.totalpage;
|
||
this.supplementaryFileList = res.supplementary;
|
||
})
|
||
.catch(err => {
|
||
console.log(err);
|
||
});
|
||
|
||
// 获取作者发给审稿人邮件列表
|
||
this.$api
|
||
.post('api/Article/getArticleResponseFiles', {
|
||
article_id: e.article_id
|
||
})
|
||
.then(res => {
|
||
this.responseFileList = res.data.files;
|
||
})
|
||
.catch(err => {
|
||
console.log(err);
|
||
});
|
||
|
||
// 留言板列表
|
||
this.$api
|
||
.post('api/Article/getArticleDialogs', {
|
||
article_id: e.article_id
|
||
})
|
||
.then((res) => {
|
||
this.talkMsgs = res.data.dialogs;
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
|
||
},
|
||
|
||
// 审稿信息预览
|
||
articleReviewer(e) {
|
||
this.detailMess.title = e.title
|
||
this.query_review.articleId = e.article_id
|
||
this.query_review.article_id = e.article_id
|
||
this.$api
|
||
.post('api/Article/getReviewerList', this.query_review)
|
||
.then((res) => {
|
||
this.Total_review = res.totle;
|
||
this.reviewData = res.data;
|
||
this.reviewVisible = true
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
|
||
|
||
//初始化问卷
|
||
initquesion(e) {
|
||
this.$api
|
||
.post('api/Reviewer/getQuestion', {
|
||
artrevid: e
|
||
}).then((res) => {
|
||
if (res.code == 0) {
|
||
this.questionform = res.data;
|
||
this.questionform.rev_qu_id = res.data.rev_qu_id;
|
||
this.questionform.qu1 = res.data.qu1;
|
||
this.questionform.qu2 = res.data.qu2;
|
||
this.questionform.qu3 = res.data.qu3;
|
||
this.questionform.qu4 = res.data.qu4;
|
||
this.questionform.qu5 = res.data.qu5;
|
||
this.questionform.qu6 = res.data.qu6;
|
||
this.questionform.qu7 = res.data.qu7;
|
||
this.questionform.qu8 = res.data.qu8;
|
||
this.questionform.qu9 = res.data.qu9 == 0 ? false : true;
|
||
this.questionform.qu9contents = res.data.qu9_contents;
|
||
this.questionform.qu10 = res.data.qu10 == 0 ? false : true;
|
||
this.questionform.qu10contents = res.data.qu10_contents;
|
||
this.questionform.qu11 = res.data.qu11 == 0 ? false : true;
|
||
this.questionform.qu11contents = res.data.qu11_contents;
|
||
this.questionform.qu12 = res.data.qu12 == 0 ? false : true;
|
||
this.questionform.qu12contents = res.data.qu12_contents;
|
||
this.questionform.qu13 = res.data.qu13 == 0 ? false : true;
|
||
this.questionform.qu13contents = res.data.qu13_contents;
|
||
this.questionform.qu14 = res.data.qu14 == 0 ? false : true;
|
||
this.questionform.qu14contents = res.data.qu14_contents;
|
||
this.questionform.qu15 = res.data.qu15 == 0 ? false : true;
|
||
this.questionform.qu15contents = res.data.qu15_contents;
|
||
this.questionform.rated = res.data.rated;
|
||
this.questionform.recommend = res.data.recommend;
|
||
this.questionform.other = res.data.other;
|
||
this.questionform.confident = res.data.confidential;
|
||
this.questionform.comment = res.data.comments;
|
||
this.questionform.is_anonymous = res.data.is_anonymous;
|
||
this.questionform.type= res.data.type;this.questionform.score = res.data.score;
|
||
this.questionVisible = true
|
||
}
|
||
});
|
||
},
|
||
|
||
// 分页导航-1
|
||
handlePageChange_1(val) {
|
||
this.$set(this.query_1, 'pageIndex', val);
|
||
this.getDate_1();
|
||
},
|
||
// 分页导航-2
|
||
handlePageChange_2(val) {
|
||
this.$set(this.query_2, 'pageIndex', val);
|
||
this.getDate_2();
|
||
},
|
||
// 分页导航-4
|
||
handlePageChange_4(val) {
|
||
this.$set(this.query_4, 'pageIndex', val);
|
||
this.getDate_4();
|
||
},
|
||
// 分页导航-5
|
||
handlePageChange_5(val) {
|
||
this.$set(this.query_5, 'pageIndex', val);
|
||
this.getDate_5();
|
||
},
|
||
// 分页导航-review
|
||
handlePageChange_review(val) {
|
||
this.$set(this.query_review, 'pageIndex', val);
|
||
},
|
||
}
|
||
|
||
};
|
||
</script>
|
||
|
||
<style scoped>
|
||
.tab_all {
|
||
border-bottom: 1px solid #ddd;
|
||
}
|
||
|
||
.tab_Normal {
|
||
font-size: 15px;
|
||
border: 1px solid #fff;
|
||
border-top: 3px solid #fff;
|
||
border-bottom: none;
|
||
float: left;
|
||
margin: 10px 0 -1px 0;
|
||
padding: 20px 30px;
|
||
cursor: pointer;
|
||
background-color: #fafafa;
|
||
}
|
||
|
||
.tab_Normal:hover {
|
||
text-decoration: underline;
|
||
|
||
}
|
||
|
||
.tab_Select {
|
||
background-color: #fff;
|
||
border: 1px solid #ddd;
|
||
border-top: 3px solid #6dafcf;
|
||
border-bottom: 1px solid #fff;
|
||
}
|
||
|
||
.tab_Select:hover {}
|
||
|
||
|
||
.handle-box {
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.handle-box .el-select {
|
||
margin: 0 5px 10px 0;
|
||
|
||
}
|
||
|
||
.handle-box .el-input {
|
||
margin: 0 5px 10px 0;
|
||
}
|
||
|
||
.table {
|
||
width: 100%;
|
||
font-size: 14px;
|
||
word-wrap: break-word;
|
||
word-break: normal;
|
||
}
|
||
|
||
.red {
|
||
color: #ff0000;
|
||
}
|
||
|
||
.actList {
|
||
font-size: 15px;
|
||
line-height: 28px;
|
||
margin-bottom: 15px;
|
||
color: #333;
|
||
margin-left: 10px;
|
||
|
||
}
|
||
|
||
.actList font:hover {
|
||
cursor: pointer;
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.actList b.sort {
|
||
margin-left: 10px;
|
||
color: #006699;
|
||
}
|
||
|
||
.actList i.ediCon {
|
||
margin-left: 10px;
|
||
color: #006699;
|
||
}
|
||
|
||
.actList i.ediCon:hover {
|
||
cursor: pointer;
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.art_state_ {
|
||
padding: 20px 20px 1px 20px;
|
||
}
|
||
|
||
.art_state_ .art_state_message_id {
|
||
margin-bottom: 15px;
|
||
color: #777;
|
||
line-height: 22px;
|
||
padding: 0 0 15px 5px;
|
||
}
|
||
|
||
.art_state_message_id>font {
|
||
display: inline-block;
|
||
}
|
||
|
||
|
||
.art_state_message_id b {
|
||
letter-spacing: -1px;
|
||
color: #333;
|
||
}
|
||
|
||
.art_caozuo_>p {
|
||
margin: 0 0 15px 10px;
|
||
}
|
||
|
||
.art_caozuo_>p:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
|
||
.art_caozuo_>p>span {
|
||
color: #777;
|
||
margin: 0 15px 0 0;
|
||
}
|
||
|
||
|
||
.art_file_ h4 {
|
||
margin: 1px 0 5px 15px;
|
||
float: left;
|
||
color: #777;
|
||
font-weight: normal;
|
||
}
|
||
|
||
.art_file_ p.fi_new {
|
||
margin: 0 0 0 10px;
|
||
margin-bottom: 10px;
|
||
float: left;
|
||
}
|
||
|
||
.art_file_ p.fi_new>a {
|
||
color: #333;
|
||
display: block;
|
||
margin: 0 0 10px 0;
|
||
}
|
||
|
||
.art_file_ p.fi_new>a:hover {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.art_file_ p.fi_new>a>img {
|
||
width: 15px;
|
||
vertical-align: text-bottom;
|
||
margin: 0 5px 0 0;
|
||
}
|
||
|
||
.art_file_ p.fi_new>a>span>font {
|
||
color: #888;
|
||
margin: 0 5px 0 0;
|
||
font-size: 13px;
|
||
letter-spacing: -1px;
|
||
}
|
||
|
||
.art_file_ p.fi_new>a>span>i {
|
||
font-size: 12px;
|
||
color: #888;
|
||
margin: 0 0 0 3px;
|
||
font-style: normal;
|
||
}
|
||
|
||
.art_file_ p.fi_new>a>span>i>i {
|
||
margin: 0 5px 0 0;
|
||
}
|
||
|
||
.art_file_ .download {
|
||
font-weight: bold;
|
||
color: #75abf1;
|
||
margin: 0 0 0 10px;
|
||
}
|
||
|
||
.tree_box {
|
||
border: 1px solid #dcdfe6;
|
||
border-radius: 5px;
|
||
background-color: #fff;
|
||
padding: 20px;
|
||
}
|
||
|
||
/deep/ .articlDialog .el-dialog {
|
||
background: #fafafa;
|
||
}
|
||
|
||
.reta_tit {
|
||
margin: 30px 0 15px 0;
|
||
font-weight: bold;
|
||
letter-spacing: -0.5px;
|
||
font-size: 15px;
|
||
}
|
||
|
||
.choose_list {
|
||
padding: 14px 15px;
|
||
margin-bottom: 10px;
|
||
border-bottom: 1px solid #ebf5ff;
|
||
background-color: #f8fbff;
|
||
-webkit-box-shadow: 2px 30px 15px -20px #ebf5ff inset;
|
||
box-shadow: inset 2px 30px 15px -20px #ebf5ff;
|
||
line-height: 22px;
|
||
word-break: normal;
|
||
}
|
||
|
||
.tab_tie_col {
|
||
margin-bottom: 5px;
|
||
color: #333;
|
||
word-wrap: break-word;
|
||
word-break: normal;
|
||
}
|
||
|
||
.tab_tie_col>span {
|
||
color: #888;
|
||
margin: 0 5px 0 0;
|
||
font-size: 13px;
|
||
}
|
||
</style>
|