Merge branch 'zy-edit' of https://gitee.com/wjl2008_admin/tougao_web
This commit is contained in:
@@ -1450,3 +1450,11 @@ wmath {
|
||||
z-index: 99999 !important;
|
||||
position: fixed !important;
|
||||
}
|
||||
.sticky-header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000; /* 保证在上层 */
|
||||
background-color: transparent;
|
||||
/* padding: 10px; */
|
||||
box-shadow: 0 2px 2px rgba(221, 221, 221, 0.2);
|
||||
}
|
||||
@@ -273,6 +273,7 @@ const en = {
|
||||
state4: 'Revision',
|
||||
state5: 'Accept',
|
||||
state6: 'Pre-accept',
|
||||
// state7: 'Final Decision',
|
||||
act1: 'Dealing',
|
||||
act2: 'Finished'
|
||||
},
|
||||
|
||||
@@ -266,6 +266,7 @@ const zh = {
|
||||
state4: '退修',
|
||||
state5: '接收',
|
||||
state6: '终审',
|
||||
// state7: '终审',
|
||||
act1: '审查中',
|
||||
act2: '已完结'
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<div :style="[2,5].includes(activeIndex) ?'height:100%':''">
|
||||
<!-- <div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
@@ -7,6 +7,8 @@
|
||||
</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>
|
||||
@@ -25,8 +27,11 @@
|
||||
<!-- <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="padding: 20px 15px">
|
||||
<div class="container" style="padding: 20px 15px 10px;box-sizing: border-box;"
|
||||
:style="[2,5].includes(activeIndex) ?'height:calc(100% - 60px)':''"
|
||||
>
|
||||
|
||||
<articleListA v-if="activeIndex == '1'" :journals="journals[0]"></articleListA>
|
||||
<articleListB v-if="activeIndex == '2'" :journals="journals[1]" @changeEvent="changeEvent"></articleListB>
|
||||
@@ -153,6 +158,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.tab_all {
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
@@ -182,4 +188,7 @@ export default {
|
||||
|
||||
.tab_Select:hover {
|
||||
}
|
||||
.sticky-header{
|
||||
background-color: #fafafa;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div style="min-width: 1280px">
|
||||
<div style="min-width: 1280px;" class="articleListEditorA">
|
||||
<div class="handle-box">
|
||||
<el-badge
|
||||
:value="item.num"
|
||||
@@ -51,8 +51,60 @@
|
||||
<el-input v-model="query.sn" placeholder="SN" style="width: 250px; margin-right: 10px"></el-input>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch" style="margin: 0 0 10px 0">Search </el-button>
|
||||
</div>
|
||||
|
||||
<div v-if="!PreAcpVisible">
|
||||
<div v-for="(item, ikgn) in tableData" class="mangu_list" style="position: relative">
|
||||
<div v-for="(item, ikgn) in tableData">
|
||||
<p
|
||||
style="background-color: #0077b8e6; border-top-left-radius: 8px; border-top-right-radius: 8px"
|
||||
class="articleBaseInfo articleTopBaseInfo"
|
||||
>
|
||||
<font class="labelTitle">ID : </font>
|
||||
<span
|
||||
style="
|
||||
background-color: #ff0000cc;
|
||||
width: 20px;
|
||||
color: #fff;
|
||||
margin: 0 2px 0 0;
|
||||
font-weight: bold;
|
||||
padding: 2px 4px;
|
||||
"
|
||||
v-if="item.special_num > 0"
|
||||
>S
|
||||
</span>
|
||||
{{ item.accept_sn }}
|
||||
|
||||
<sapn style="margin: 0 4px">| </sapn>
|
||||
<sapn style="font-size: 12px"> {{ item.type | jtName }}</sapn>
|
||||
<sapn style="margin: 0 4px">| </sapn>
|
||||
<sapn style="font-size: 12px">
|
||||
<font v-for="(iken, index) in item.countrys">
|
||||
{{ iken }}
|
||||
<font v-if="index != item.countrys.length - 1">,</font>
|
||||
</font>
|
||||
</sapn>
|
||||
<b @click="openTracking(item)" class="btnCliArt" style="color: #f0f0f0; font-size: 12px; margin-left: 10px">
|
||||
<i class="el-icon-data-line"></i> Manuscript Tracking
|
||||
</b>
|
||||
<sapn style="float: right">
|
||||
<span class="labelTitle" style="font-weight: 500">Plagiarism Check :</span>
|
||||
<font style="margin-right: 16px; font-size: 15px; font-weight: bold"> {{ item.repetition }} % </font>
|
||||
<b @click="changeRepe(item)" class="btnCliArt" style="color: #eaf6fb"> <i class="el-icon-edit"></i> Change </b>
|
||||
</sapn>
|
||||
<sapn style="margin: 0 10px; float: right">| </sapn>
|
||||
<sapn style="float: right">
|
||||
<span class="labelTitle" style="font-weight: 500">Status :</span>
|
||||
<font style="margin-right: 15px; font-size: 16px; font-weight: bold; letter-spacing: -0.5px">
|
||||
{{ stateFormat(item.state) }}
|
||||
</font>
|
||||
<b v-if="item.state != 5" @click="testvis(item)" class="btnCliArt" style="color: #eaf6fb">
|
||||
<i class="el-icon-edit"></i> Change
|
||||
</b>
|
||||
<b v-if="item.state == 5" @click="prodBegin(item)" class="btnCliArt" style="color: #eaf6fb">
|
||||
<i class="el-icon-paperclip"></i> Begin Produce
|
||||
</b>
|
||||
</sapn>
|
||||
</p>
|
||||
<div class="mangu_list" style="position: relative">
|
||||
<img
|
||||
v-if="item.ai_review != '' && item.ai_review"
|
||||
src="@/assets/img/ai.png"
|
||||
@@ -66,28 +118,23 @@
|
||||
style="opacity: 0.5; cursor: pointer; width: 30px; height: 30px; position: absolute; right: 6px; top: 6px"
|
||||
/>
|
||||
<div>
|
||||
<font style="color: #666b7a">ID : </font>
|
||||
<!-- <font style="color: #666b7a">ID : </font>
|
||||
<span
|
||||
style="background-color: #006699; width: 20px; color: #fff; margin: 0 2px 0 0; font-weight: bold; padding: 2px 4px"
|
||||
v-if="item.special_num > 0"
|
||||
>S
|
||||
</span>
|
||||
{{ item.accept_sn }}
|
||||
<!-- <b @click="showdetaileditor(item)" class="btnCliArt" style="margin-left: 15px;">
|
||||
<i class="el-icon-collection"></i> Detail
|
||||
</b> -->
|
||||
{{ item.accept_sn }} -->
|
||||
|
||||
<span style="color: #666b7a; margin-left: 40px">Type :</span>
|
||||
<!-- <span style="color: #666b7a; margin-left: 40px">Type :</span>
|
||||
<font>
|
||||
{{ item.type | jtName }}
|
||||
</font>
|
||||
<span style="color: #666b7a; margin-left: 40px">Countries :</span>
|
||||
<!-- <span :class="item.countrys.length > 1 ? 'Countries': ''" > -->
|
||||
<font v-for="(iken, index) in item.countrys">
|
||||
{{ iken }}
|
||||
<font v-if="index != item.countrys.length - 1">,</font>
|
||||
</font>
|
||||
<!-- </span> -->
|
||||
<span style="color: #666b7a; margin-left: 40px">Status :</span>
|
||||
<font style="margin-right: 15px; font-size: 16px; font-weight: bold; letter-spacing: -0.5px">
|
||||
{{ stateFormat(item.state) }}
|
||||
@@ -98,24 +145,64 @@
|
||||
</b>
|
||||
<span style="color: #666b7a; margin-left: 40px">Plagiarism Check :</span>
|
||||
<font style="margin-right: 16px; font-size: 15px; font-weight: bold"> {{ item.repetition }} % </font>
|
||||
<b @click="changeRepe(item)" class="btnCliArt"> <i class="el-icon-edit"></i> Change </b>
|
||||
<b @click="openTracking(item)" class="btnCliArt" style="margin-left: 50px">
|
||||
<b @click="changeRepe(item)" class="btnCliArt"> <i class="el-icon-edit"></i> Change </b> -->
|
||||
<!-- <b @click="openTracking(item)" class="btnCliArt" style="margin-left: 50px">
|
||||
<i class="el-icon-data-line"></i> Manuscript Tracking
|
||||
</b>
|
||||
</b> -->
|
||||
</div>
|
||||
<div class="man_title">
|
||||
<el-badge is-dot :hidden="item.author_act == 1 ? false : true">
|
||||
<b @click="showdetaileditor(item)">
|
||||
{{ item.title }}
|
||||
</b>
|
||||
</el-badge>
|
||||
<b @click="corrSpe(item)" class="btnCliArt" style="margin-left: 20px">
|
||||
<b @click="showdetaileditor(item)"> {{ item.title }} </b>
|
||||
|
||||
<b @click="corrSpe(item)" class="btnCliArt" style="margin-left: 20px; white-space: nowrap">
|
||||
<i class="el-icon-paperclip"></i> Author's previous articles
|
||||
</b>
|
||||
</div>
|
||||
<el-button
|
||||
:type="item.state == 0 ? 'primary' : 'info'"
|
||||
plain
|
||||
size="mini"
|
||||
@click="BoxMajor(item)"
|
||||
style="margin-left: 10px"
|
||||
>
|
||||
<i class="el-icon-edit" v-if="item.state == 0"></i>
|
||||
<i class="el-icon-view" v-else></i>
|
||||
|
||||
<div style="display: flex; margin-left: auto">
|
||||
<div class="fixCard" :style="`width: ${query.state == 0 ? '33% !important' : '33% !important'};`">
|
||||
Research areas
|
||||
</el-button>
|
||||
<!-- <b @click="BoxMajor(item)" class="btnCliArt" style="margin-left: 20px; white-space: nowrap"> Research areas </b> -->
|
||||
</el-badge>
|
||||
</div>
|
||||
<!-- <div style="margin: 0 0 10px">
|
||||
<b>
|
||||
<font class="labelTitle">Corresponding Author </font>
|
||||
</b>
|
||||
<span style="margin-left: 10px">
|
||||
<b @click="articleCommun(item)" class="btnCliArt" style="">
|
||||
<i class="el-icon-chat-line-square"></i> Communication
|
||||
</b>
|
||||
</span>
|
||||
|
||||
<span style="text-align: left;margin-left: 10px"
|
||||
><font class="labelTitle">Name : </font>
|
||||
<span v-if="item.realname != ''">
|
||||
{{ item.realname }}
|
||||
<span v-if="item.phone != ''" style="margin-left: 5px; color: #666">({{ item.phone }})</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span v-if="item.email != ''" style="margin-left: 10px"
|
||||
><font class="labelTitle">Email : </font>
|
||||
<b @click="linkEmail(item)" class="btnCliArt" style=""> {{ item.email }} </b>
|
||||
<b @click="linkEmailist(item)" v-if="item.emailh == 1" class="btnCliArt" style="margin-left: 15px">
|
||||
<i class="el-icon-refresh-left"></i> History
|
||||
</b>
|
||||
</span>
|
||||
</div> -->
|
||||
<div style="display: flex; margin-left: auto; flex-wrap: nowrap">
|
||||
<div
|
||||
class="fixCard"
|
||||
:style="`width:${item.state == 0 ? '350px !important;flex-shrink: 0' : '320px !important;flex-shrink: 0'}`"
|
||||
>
|
||||
<b style="font-size: 16px; letter-spacing: -0.5px">Manuscript Files</b>
|
||||
<p style="height: 10px"></p>
|
||||
<div class="fi_new" v-if="item.file.coverLetter">
|
||||
@@ -133,17 +220,25 @@
|
||||
@click="changeFileUpdown(0, ikgn, 'file_cover')"
|
||||
></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.coverLetter" v-if="item.file_cover == 1">
|
||||
|
||||
<div>
|
||||
<div v-for="(ikrm, ikrmIndex) in item.file.coverLetter" v-if="item.file_cover == 1">
|
||||
<img src="../../assets/img/icon_0.png" />
|
||||
<span>
|
||||
<font>Uploader : </font>{{ ikrm.username }}
|
||||
<i><i class="el-icon-time"></i>{{ formatDate(ikrm.ctime) }}</i>
|
||||
<span @click="openFile(mediaUrl + ikrm.file_url)" class="openFile">
|
||||
<!-- <font>Uploader {{ ikrmIndex+1 }} </font> -->
|
||||
<!-- {{ ikrm.username }} -->
|
||||
<i>
|
||||
<!-- <i class="el-icon-time"></i> -->
|
||||
|
||||
{{ formatDate(ikrm.ctime) }}</i
|
||||
>
|
||||
</span>
|
||||
<a :href="mediaUrl + ikrm.file_url">
|
||||
<i class="el-icon-download download"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fi_new" v-if="item.file.picturesAndTables">
|
||||
<p>
|
||||
Figures
|
||||
@@ -159,17 +254,21 @@
|
||||
@click="changeFileUpdown(0, ikgn, 'file_figer')"
|
||||
></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.picturesAndTables" v-if="item.file_figer == 1">
|
||||
|
||||
<div>
|
||||
<div v-for="(ikrm, ikrmIndex) in item.file.picturesAndTables" v-if="item.file_figer == 1">
|
||||
<img src="../../assets/img/icon_0.png" />
|
||||
<span>
|
||||
<font>Uploader : </font>{{ ikrm.username }}
|
||||
<i><i class="el-icon-time"></i>{{ formatDate(ikrm.ctime) }}</i>
|
||||
<span @click="openFile(mediaUrl + ikrm.file_url)" class="openFile">
|
||||
<!-- <font>Uploader {{ ikrmIndex+1 }} </font> -->
|
||||
<!-- {{ ikrm.username }} -->
|
||||
<i> <!-- <i class="el-icon-time"></i> -->{{ formatDate(ikrm.ctime) }}</i>
|
||||
</span>
|
||||
<a :href="mediaUrl + ikrm.file_url">
|
||||
<i class="el-icon-download download"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fi_new" v-if="item.file.totalpage">
|
||||
<p>
|
||||
Title page
|
||||
@@ -185,17 +284,21 @@
|
||||
@click="changeFileUpdown(0, ikgn, 'file_total')"
|
||||
></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.totalpage" v-if="item.file_total == 1">
|
||||
|
||||
<div>
|
||||
<div v-for="(ikrm, ikrmIndex) in item.file.totalpage" v-if="item.file_total == 1">
|
||||
<img src="../../assets/img/icon_0.png" />
|
||||
<span>
|
||||
<font>Uploader : </font>{{ ikrm.username }}
|
||||
<i><i class="el-icon-time"></i>{{ formatDate(ikrm.ctime) }}</i>
|
||||
<span @click="openFile(mediaUrl + ikrm.file_url)" class="openFile">
|
||||
<!-- <font>Uploader {{ikrmIndex}} </font> -->
|
||||
<!-- {{ ikrm.username }} -->
|
||||
<i> <!-- <i class="el-icon-time"></i> -->{{ formatDate(ikrm.ctime) }}</i>
|
||||
</span>
|
||||
<a :href="mediaUrl + ikrm.file_url">
|
||||
<i class="el-icon-download download"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fi_new" v-if="item.file.manuscirpt">
|
||||
<p>
|
||||
Manuscirpt
|
||||
@@ -211,17 +314,21 @@
|
||||
@click="changeFileUpdown(0, ikgn, 'file_maun')"
|
||||
></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.manuscirpt" v-if="item.file_maun == 1">
|
||||
<div>
|
||||
<div v-for="(ikrm, ikrmIndex) in item.file.manuscirpt" v-if="item.file_maun == 1">
|
||||
<img src="../../assets/img/icon_0.png" />
|
||||
<span>
|
||||
<font>Uploader : </font>{{ ikrm.username }}
|
||||
<i><i class="el-icon-time"></i>{{ formatDate(ikrm.ctime) }}</i>
|
||||
<span @click="openFile(mediaUrl + ikrm.file_url)" class="openFile">
|
||||
<!-- <font>Uploader {{ ikrmIndex+1 }} </font> -->
|
||||
|
||||
<!-- {{ ikrm.username }} -->
|
||||
<i> <!-- <i class="el-icon-time"></i> -->{{ formatDate(ikrm.ctime) }}</i>
|
||||
</span>
|
||||
<a :href="mediaUrl + ikrm.file_url">
|
||||
<i class="el-icon-download download"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fi_new" v-if="item.file.supplementary">
|
||||
<p>
|
||||
Supplementary Material
|
||||
@@ -237,11 +344,13 @@
|
||||
@click="changeFileUpdown(0, ikgn, 'file_supper')"
|
||||
></b>
|
||||
</p>
|
||||
<div v-for="ikrm in item.file.supplementary" v-if="item.file_supper == 1">
|
||||
<div>
|
||||
<div v-for="(ikrm, ikrmIndex) in item.file.supplementary" v-if="item.file_supper == 1">
|
||||
<img src="../../assets/img/icon_0.png" />
|
||||
<span>
|
||||
<font>Uploader : </font>{{ ikrm.username }}
|
||||
<i><i class="el-icon-time"></i>{{ formatDate(ikrm.ctime) }}</i>
|
||||
<span @click="openFile(mediaUrl + ikrm.file_url)" class="openFile">
|
||||
<!-- <font>Uploader {{ ikrmIndex+1 }} </font> -->
|
||||
<!-- { ikrm.username }} -->
|
||||
<i> <!-- <i class="el-icon-time"></i> -->{{ formatDate(ikrm.ctime) }}</i>
|
||||
</span>
|
||||
<a :href="mediaUrl + ikrm.file_url">
|
||||
<i class="el-icon-download download"></i>
|
||||
@@ -249,10 +358,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 1%"></div>
|
||||
<div class="fixCard" style="width: 36%">
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="fixCard"
|
||||
:style="`width: ${
|
||||
item.state == 0 ? 'calc(100% - 350px - 230px - 18px)' : 'calc(100% - 350px - 230px - 18px)'
|
||||
}`"
|
||||
>
|
||||
<b style="font-size: 16px; letter-spacing: -0.5px">AI scoring</b>
|
||||
<p style="font-size: 18px; font-weight: bold; margin-bottom: 5px; color: #db890e" v-if="item.reportList.length > 0">
|
||||
<p
|
||||
style="font-size: 18px; font-weight: bold; margin-bottom: 5px; color: #db890e"
|
||||
v-if="item.reportList.length > 0"
|
||||
>
|
||||
<font style="font-size: 14px; font-weight: normal; color: #333">Initial review score :</font>
|
||||
{{ item.scoring }}
|
||||
<i class="el-icon-refresh refreshBtn" @click="refreshScore(item)"></i>
|
||||
@@ -347,18 +465,21 @@
|
||||
</p>
|
||||
</div>
|
||||
<template v-if="query.state != 0">
|
||||
<div style="width: 1%"></div>
|
||||
<div class="fixCard" style="width: 17%">
|
||||
<div class="fixCard" style="width: 230px; flex-shrink: 0">
|
||||
<b style="font-size: 16px; letter-spacing: -0.5px">Reviewer Decision</b>
|
||||
<p style="height: 5px"></p>
|
||||
<p v-for="(iken, index) in item.reviewScore" style="line-height: 28px" :key="index">
|
||||
Reviewer{{ index + 1 }} score : <b style="color: #db890e; font-size: 18px">{{ iken.rated }}</b
|
||||
><el-button style="margin-left: 10px" type="text" @click="crateRevision(iken)" v-if="iken.can_repeat == 1"
|
||||
<p v-for="(iken, index) in item.reviewScore" style="line-height: 24px" :key="index">
|
||||
Reviewer{{ index + 1 }} : <b style="color: #db890e; font-size: 18px">{{ iken.rated }}</b
|
||||
><el-button
|
||||
style="margin-left: 10px"
|
||||
type="text"
|
||||
@click="crateRevision(iken)"
|
||||
v-if="iken.can_repeat == 1"
|
||||
>Re-review</el-button
|
||||
>
|
||||
</p>
|
||||
<p v-if="item.reviewScore.length > 0" style="font-size: 15px; margin: 0 0 5px 0">
|
||||
Average : <b style="font-size: 18px; color: #db890e">{{ avegeCount(item.reviewScore) }}</b>
|
||||
Average score: <b style="font-size: 18px; color: #db890e">{{ avegeCount(item.reviewScore) }}</b>
|
||||
</p>
|
||||
<p>
|
||||
<span v-for="(iken, index) in item.review" style="display: inline-block; padding: 5px">
|
||||
@@ -369,12 +490,24 @@
|
||||
</font>
|
||||
<font
|
||||
v-if="iken.state == 1 || iken.state == 3"
|
||||
style="width: 12px; height: 12px; display: block; border-radius: 10px; background-color: #67c23a"
|
||||
style="
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
display: block;
|
||||
border-radius: 10px;
|
||||
background-color: #67c23a;
|
||||
"
|
||||
>
|
||||
</font>
|
||||
<font
|
||||
v-if="iken.state == 2"
|
||||
style="width: 12px; height: 12px; display: block; border-radius: 10px; background-color: #f56c6c"
|
||||
style="
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
display: block;
|
||||
border-radius: 10px;
|
||||
background-color: #f56c6c;
|
||||
"
|
||||
>
|
||||
</font>
|
||||
</span>
|
||||
@@ -387,8 +520,37 @@
|
||||
</div></template
|
||||
>
|
||||
|
||||
<div style="width: 1%"></div>
|
||||
<div class="fixCard" style="width: 26%">
|
||||
<!-- <div class="fixCard" style="width: 320px; flex-shrink: 0" v-if="query.state == 0">
|
||||
<b style="font-size: 16px; letter-spacing: -0.5px">Research areas</b>
|
||||
<p style="height: 10px"></p>
|
||||
<div style="text-align: left">
|
||||
<div
|
||||
@click="BoxMajor(item, majorData[item.article_id])"
|
||||
v-if="item.article_id"
|
||||
style="display: flex; align-items: center; justify-content: space-between; cursor: pointer"
|
||||
>
|
||||
|
||||
<div>
|
||||
<div v-if="majorData[item.article_id]" class="majorDataBox">
|
||||
<p v-for="(v, i) in majorData[item.article_id]" style="border-top: 1px solid #b3d8ff">
|
||||
<span style="font-weight: bold">{{ i + 1 }}.</span>
|
||||
<span style="color:#666"> {{ v.str.replace('Medicine >', '').trim() }}</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span>Loading...</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<b style="margin-left: 10px; color: #006699" class="el-icon-edit"></b>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="fixCard" style="width: 320px; flex-shrink: 0">
|
||||
<b style="font-size: 16px; letter-spacing: -0.5px">Corresponding Author</b>
|
||||
<p style="height: 10px"></p>
|
||||
<div style="text-align: left">
|
||||
@@ -398,10 +560,9 @@
|
||||
<span v-if="item.phone != ''" style="margin-left: 5px; color: #666">({{ item.phone }})</span>
|
||||
</p>
|
||||
<p v-if="item.email != ''" style="margin: 8px 0 5px 0; line-height: 22px">
|
||||
<b @click="linkEmail(item)" class="btnCliArt" style="">
|
||||
<font style="color: #999">Email :</font>
|
||||
{{ item.email }}
|
||||
<b @click="linkEmail(item)" class="btnCliArt" style="margin-left: 15px">
|
||||
<i class="el-icon-message"></i> Email
|
||||
</b>
|
||||
<b @click="linkEmailist(item)" v-if="item.emailh == 1" class="btnCliArt" style="margin-left: 15px">
|
||||
<i class="el-icon-refresh-left"></i> History
|
||||
@@ -409,7 +570,9 @@
|
||||
</p>
|
||||
</div>
|
||||
<p style="margin-top: 20px">
|
||||
<b @click="articleCommun(item)" class="btnCliArt"> <i class="el-icon-chat-line-square"></i> Communication </b>
|
||||
<b @click="articleCommun(item)" class="btnCliArt">
|
||||
<i class="el-icon-chat-line-square"></i> Communication
|
||||
</b>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -421,6 +584,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 预接收表 -->
|
||||
<el-table
|
||||
v-if="PreAcpVisible"
|
||||
@@ -433,7 +597,7 @@
|
||||
empty-text="New messages (0)"
|
||||
>
|
||||
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
||||
<el-table-column width="160" label="Doi" align="center">
|
||||
<!-- <el-table-column width="160" label="Doi" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p style="margin-bottom: 5px">
|
||||
{{ scope.row.doi }}
|
||||
@@ -442,15 +606,30 @@
|
||||
>Detail</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column prop="accept_sn" label="SN" width="240px">
|
||||
<template slot-scope="scope">
|
||||
<p>
|
||||
{{ scope.row.accept_sn }}
|
||||
<el-button
|
||||
size="mini"
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-tickets"
|
||||
@click="showdetaileditor(scope.row)"
|
||||
style="margin-left: 10px; padding: 4px; float: right"
|
||||
>Detail</el-button
|
||||
>
|
||||
</p>
|
||||
<p v-if="scope.row.doi" style="color: #006699"><span>Doi: </span>{{ scope.row.doi }}</p>
|
||||
</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 prop="" label="" width="130">
|
||||
@@ -461,7 +640,6 @@
|
||||
style="
|
||||
color: #f56c6c;
|
||||
|
||||
|
||||
font-size: 12px;
|
||||
|
||||
box-sizing: border-box;
|
||||
@@ -481,19 +659,15 @@
|
||||
font-size: 12px;
|
||||
|
||||
box-sizing: border-box;
|
||||
|
||||
|
||||
"
|
||||
>
|
||||
Paid already
|
||||
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label=" " align="center" width="140">
|
||||
<el-table-column label=" " align="center" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="changeEnter(scope.row)" size="mini" type="primary" plain icon="el-icon-edit">Edit</el-button>
|
||||
</template>
|
||||
@@ -789,12 +963,13 @@
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="Remarks" :visible.sync="editbox" width="550px">
|
||||
<el-dialog title="Remarks" :visible.sync="editbox" width="1000px">
|
||||
<el-form ref="remark" :model="remark" label-width="85px">
|
||||
<el-form-item label="Title :">
|
||||
<p style="line-height: 20px; margin-top: 6px">{{ remark.title }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Content :">
|
||||
<!-- <commonRemarkList :list="remark.contentList" @load="(e) => (this.remark.contentList = e)"></commonRemarkList> -->
|
||||
<el-input type="textarea" rows="5" v-model="remark.content"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -1199,19 +1374,52 @@
|
||||
<el-button type="primary" @click="isShowAI = false">Close</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
:title="majorMes.disabled ? 'Article Research areas' : 'Edit Article Research areas'"
|
||||
:visible.sync="majorBox"
|
||||
width="800px"
|
||||
>
|
||||
<el-form ref="remark" :model="majorMes" label-width="120px">
|
||||
<el-form-item label="Title :">
|
||||
<p style="line-height: 20px">
|
||||
<span style="color: #333; font-weight: bold">{{ majorMes.title }}</span>
|
||||
</p>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="Email :">
|
||||
<p style="line-height: 20px; margin-top: 6px">{{ majorMes.email }}</p>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="Research areas :">
|
||||
|
||||
<common-major-list
|
||||
:disabled="majorMes.disabled"
|
||||
:list="majorValueList"
|
||||
@load="(e) => (this.majorValueList = e)"
|
||||
></common-major-list>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="majorBox = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveMajor" v-if="!majorMes.disabled">Save</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Loading } from 'element-ui';
|
||||
import timetalk from './time_talk';
|
||||
import commonRemarkList from './articleListEditor_A_list.vue';
|
||||
export default {
|
||||
components: {
|
||||
timetalk
|
||||
timetalk,
|
||||
commonRemarkList
|
||||
},
|
||||
props: ['journals'],
|
||||
data() {
|
||||
return {
|
||||
majorValueList: [],
|
||||
majorBox: false,
|
||||
majorMes: {},
|
||||
isShowAI: false,
|
||||
currentArticleData: {},
|
||||
rules: {},
|
||||
@@ -1255,9 +1463,14 @@ export default {
|
||||
{
|
||||
state: 4
|
||||
},
|
||||
// {
|
||||
// state: 7
|
||||
// },
|
||||
|
||||
{
|
||||
state: 6
|
||||
},
|
||||
|
||||
{
|
||||
state: 5
|
||||
},
|
||||
@@ -1356,11 +1569,11 @@ export default {
|
||||
}
|
||||
],
|
||||
bankVisible: false,
|
||||
majorData: {},
|
||||
googleSearchInfo: ''
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
||||
this.getdate();
|
||||
},
|
||||
computed: {
|
||||
@@ -1369,11 +1582,78 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
saveMajor() {
|
||||
this.$api
|
||||
.post('api/Article/updateArticleField', {
|
||||
article_id: this.majorMes.article_id,
|
||||
article_field: this.majorValueList.map((item) => item.selectedValue[item.selectedValue.length - 1]).toString(',')
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.status == 1) {
|
||||
this.$message.success('Success');
|
||||
this.majorBox = false;
|
||||
// this.fetchMajorData(this.majorMes.article_id);
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
});
|
||||
},
|
||||
async fetchMajorData(article_id) {
|
||||
// if (!this.majorData[userId]) {
|
||||
// 判断是否已经加载过该用户的数据
|
||||
const data = await this.getMajorData(article_id); // 获取数据
|
||||
|
||||
this.$set(this.majorData, article_id, data); // 使用 Vue.set 确保数据是响应式的
|
||||
// }
|
||||
},
|
||||
// 修改标记
|
||||
async getMajorData(article_id) {
|
||||
try {
|
||||
const res = await this.$api.post('api/Article/getArticleDetail', { articleId: article_id, human: 'editor' });
|
||||
if (res.article && res.article.majors.length > 0) {
|
||||
return res.article.majors; // 返回数据
|
||||
} else {
|
||||
return []; // 如果没有数据,返回空数组
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error fetching data:', error);
|
||||
return []; // 如果发生错误,返回空数组
|
||||
}
|
||||
},
|
||||
BoxMajor(e, data) {
|
||||
this.majorMes.disabled = e.state == 0 ? false : true;
|
||||
// this.majorMes.realname = e.realname;
|
||||
// this.majorMes.user_id = e.user_id;
|
||||
this.majorMes.title = e.title;
|
||||
this.majorMes.article_id = e.article_id;
|
||||
|
||||
this.$api
|
||||
.post('api/Article/getArticleField', {
|
||||
article_id: e.article_id
|
||||
})
|
||||
.then((res) => {
|
||||
if (this.majorMes.disabled) {
|
||||
this.majorValueList = [...res.data].map((item)=>({...item,str:item.major_title}));
|
||||
} else {
|
||||
this.majorValueList = [...res.data].map((item) => ({
|
||||
selectedValue: Array.isArray(item.shu)
|
||||
? item.shu
|
||||
: typeof item.shu === 'string'
|
||||
? item.shu.split(',').map(Number)
|
||||
: [item.shu]
|
||||
}));
|
||||
}
|
||||
|
||||
this.majorBox = true;
|
||||
});
|
||||
},
|
||||
openFile(url) {
|
||||
window.open(url, '_blank');
|
||||
},
|
||||
openAI(data) {
|
||||
this.isShowAI = true;
|
||||
this.currentArticleData = { ...data };
|
||||
console.log('this.currentArticleData at line 1312:', this.currentArticleData);
|
||||
|
||||
},
|
||||
creatAI(data, i) {
|
||||
const loading = this.$loading({
|
||||
@@ -1382,23 +1662,23 @@ export default {
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
console.log('data at line 1336:', data)
|
||||
console.log('data at line 1336:', data);
|
||||
this.$api
|
||||
// api/Article/addArticle
|
||||
.post('api/Aireview/review', {
|
||||
article_id: data.article_id,
|
||||
|
||||
article_id: data.article_id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data.content) {
|
||||
this.tableData[i].ai_review=res.data.content
|
||||
loading.close()
|
||||
this.tableData[i].ai_review = res.data.content;
|
||||
loading.close();
|
||||
this.openAI({ ...data, ai_review: res.data.content });
|
||||
}
|
||||
}).catch((err) => {
|
||||
loading.close()
|
||||
this.$message.error('AI analysis failed')
|
||||
})
|
||||
.catch((err) => {
|
||||
loading.close();
|
||||
this.$message.error('AI analysis failed');
|
||||
});
|
||||
},
|
||||
// 保存个人信息
|
||||
saveUserIndex() {
|
||||
@@ -1574,6 +1854,10 @@ export default {
|
||||
this.Total = res.total;
|
||||
this.tableData = res.data;
|
||||
for (let i = 0; i < this.tableData.length; i++) {
|
||||
// if (this.query.state == 0) {
|
||||
// this.fetchMajorData(this.tableData[i].article_id); // 加载第一个用户的数据
|
||||
// }
|
||||
|
||||
this.tableData[i].file_cover = 1;
|
||||
this.tableData[i].file_figer = 1;
|
||||
this.tableData[i].file_total = 1;
|
||||
@@ -1944,6 +2228,13 @@ export default {
|
||||
this.remark.title = e.title;
|
||||
this.remark.articleId = e.article_id;
|
||||
this.remark.content = e.remarks;
|
||||
// var remarksList = e.remarks.split(/。|\n|\r\n/);
|
||||
// var remarksList = e.remarks.split('。');
|
||||
// this.remark.contentList = remarksList
|
||||
// .filter((item) => item.trim() !== '') // 过滤空内容
|
||||
// .map((item) => {
|
||||
// return { text: item + '' }; // 补回句号,或根据需要自定义
|
||||
// });
|
||||
},
|
||||
// 查重弹出框
|
||||
changeRepe(e) {
|
||||
@@ -2199,7 +2490,23 @@ export default {
|
||||
},
|
||||
// 修改标记
|
||||
saveRemark() {
|
||||
this.$api.post('api/Article/editArticleRemark', this.remark).then((res) => {
|
||||
console.log('this.remark at line 2212:', this.remark);
|
||||
const mergedText = this.remark.contentList
|
||||
.filter((item) => item.text && item.text.trim() !== '') // 过滤掉空或全空格项
|
||||
.map((item) => {
|
||||
const text = item.text.trim();
|
||||
return text.endsWith('。') ? text : text + '。';
|
||||
})
|
||||
.join('');
|
||||
|
||||
console.log('拼接结果:', mergedText);
|
||||
|
||||
this.$api
|
||||
.post('api/Article/editArticleRemark', {
|
||||
...this.remark,
|
||||
content: mergedText
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('success');
|
||||
this.editbox = false;
|
||||
@@ -2290,7 +2597,6 @@ export default {
|
||||
|
||||
//文章类型
|
||||
|
||||
|
||||
// 算平均分
|
||||
avegeCount(arry) {
|
||||
let str = 0;
|
||||
@@ -2504,14 +2810,20 @@ export default {
|
||||
|
||||
.mangu_list {
|
||||
color: #333;
|
||||
margin: 0 0 20px 0;
|
||||
margin: 0 0 35px 0;
|
||||
font-size: 14px;
|
||||
padding: 10px 20px;
|
||||
border-radius: 5px;
|
||||
border-bottom-right-radius: 8px;
|
||||
border-bottom-left-radius: 8px;
|
||||
/* border-radius: 5px; */
|
||||
border: 1px solid #ebeef5;
|
||||
/* border: 1px solid #0077b8e6; */
|
||||
background-color: #fff;
|
||||
position: relative;
|
||||
}
|
||||
.mangu_list:hover {
|
||||
border: 1px solid #0077b8e6;
|
||||
}
|
||||
|
||||
.mangu_list:nth-child(2n + 1) {
|
||||
background-color: #fafafa;
|
||||
@@ -2527,7 +2839,7 @@ export default {
|
||||
}
|
||||
|
||||
.mangu_list .man_title {
|
||||
margin: 2px 100px 20px 0;
|
||||
margin: 2px 40px 10px 0;
|
||||
font-weight: bolder;
|
||||
letter-spacing: -0.5px;
|
||||
font-size: 16px;
|
||||
@@ -2541,8 +2853,10 @@ export default {
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new {
|
||||
margin: 0 0 0 10px;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 0 0 0 00px;
|
||||
margin-bottom: 1px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -2550,48 +2864,48 @@ export default {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new > div {
|
||||
.mangu_list div.fi_new div > div {
|
||||
color: #333;
|
||||
display: block;
|
||||
margin: 0 0 5px 0;
|
||||
margin: 5px 0 0px 5px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new > div > img {
|
||||
.mangu_list div.fi_new div > div > img {
|
||||
width: 15px;
|
||||
vertical-align: text-bottom;
|
||||
margin: 0 5px 0 0;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new > div > span > font {
|
||||
.mangu_list div.fi_new div > div > span > font {
|
||||
color: #888;
|
||||
margin: 0 5px 0 0;
|
||||
font-size: 13px;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new > div > span > i {
|
||||
.mangu_list div.fi_new div > div > span > i {
|
||||
font-size: 12px;
|
||||
color: #888;
|
||||
margin: 0 0 0 3px;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new > div > span > i > i {
|
||||
.mangu_list div.fi_new div > div > span > i > i {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new > div > a {
|
||||
.mangu_list div.fi_new div > div > a {
|
||||
margin: 0 5px 0 0;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new .download {
|
||||
font-weight: bold;
|
||||
color: #75abf1;
|
||||
margin: 0 0 0 10px;
|
||||
margin: 0 0 0 4px;
|
||||
}
|
||||
|
||||
.mangu_list div.fi_new > div > a:hover .download {
|
||||
.mangu_list div.fi_new div > div > a:hover .download {
|
||||
color: #006699;
|
||||
}
|
||||
|
||||
@@ -2610,7 +2924,12 @@ export default {
|
||||
.mangu_list .fixCard {
|
||||
text-align: center;
|
||||
background: #0066990d;
|
||||
padding:14px 20px;
|
||||
padding: 14px 10px;
|
||||
margin-left: 6px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.mangu_list .fixCard:nth-child(1) {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.gugeList {
|
||||
@@ -2782,4 +3101,38 @@ export default {
|
||||
transform: translateY(-4px);
|
||||
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.openFile {
|
||||
cursor: pointer;
|
||||
}
|
||||
.openFile :hover i {
|
||||
color: #333 !important;
|
||||
}
|
||||
.articleBaseInfo {
|
||||
text-align: left !important;
|
||||
line-height: 28px;
|
||||
color: #333;
|
||||
}
|
||||
.articleTopBaseInfo {
|
||||
color: #fff;
|
||||
padding: 0 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.articleBaseInfo .labelTitle {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
.articleTopBaseInfo .labelTitle {
|
||||
color: #fff !important;
|
||||
font-size: 16px;
|
||||
}
|
||||
.articleListEditorA .el-button--mini,
|
||||
.el-button--mini.is-round {
|
||||
padding: 6px 10px;
|
||||
}
|
||||
.majorDataBox p:nth-child(1) {
|
||||
border-top: none !important;
|
||||
}
|
||||
.mangu_list div.fi_new div > div:nth-child(1) {
|
||||
margin-top: 0px;
|
||||
}
|
||||
</style>
|
||||
|
||||
172
src/components/page/articleListEditor_A_list.vue
Normal file
172
src/components/page/articleListEditor_A_list.vue
Normal file
@@ -0,0 +1,172 @@
|
||||
<template>
|
||||
<div class="block commonMajor" style="width: 100%;overflow: hidden;">
|
||||
<el-button type="primary" plain size="mini" @click="handleAdd" style="float:right;margin-bottom: 20px;"><i class="el-icon-plus" ></i>Add Remark </el-button>
|
||||
<div
|
||||
v-for="(field, index) in fields"
|
||||
:key="index"
|
||||
class="cascader-container"
|
||||
style="margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between"
|
||||
>
|
||||
<span style="margin-right: 10px; font-size: 12px; color: #006699; font-weight: bold">{{ Number(index+1) }}、</span>
|
||||
<el-input style="width: calc(100% - 80px)" type="textarea" :autosize="{minRows: 1, maxRows: 3}" v-model="field.text" :key="index"></el-input>
|
||||
|
||||
<!-- <el-cascader
|
||||
:ref="`cascader${index}`"
|
||||
@change="handleChange(index)"
|
||||
v-model="field.selectedValue"
|
||||
:placeholder="'Please select Field '"
|
||||
:options="options"
|
||||
:props="getProps()"
|
||||
style="width: calc(100% - 120px)"
|
||||
></el-cascader> -->
|
||||
|
||||
<!-- Delete button -->
|
||||
<el-button size="mini" type="danger" style="margin-left: 10px;" @click="handleDelete(index)"><i class="el-icon-delete"></i></el-button>
|
||||
</div>
|
||||
<!-- <el-dialog title="Add Field " :visible.sync="coreVisible1" width="780px" :close-on-click-modal="false">
|
||||
<el-form :model="coreForm1" :rules="rules1" ref="core_Form1" label-width="140px" >
|
||||
<el-form-item prop="major">
|
||||
<span slot="label">
|
||||
<i style="color: #f56c6c; margin-right: 4px">*</i>
|
||||
Field
|
||||
</span>
|
||||
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="coreVisible1 = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="onSubmit_core1(coreForm1)">Save</el-button>
|
||||
</span>
|
||||
</el-dialog> -->
|
||||
|
||||
<!-- 渲染多个 el-cascader 组件 -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
userId: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
list: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
list: {
|
||||
handler(e) {
|
||||
|
||||
this.fields=this.list.length>0?[...this.list]:[{}]
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
rules1:{},
|
||||
coreVisible1: false,
|
||||
coreForm1: {
|
||||
majorList: []
|
||||
},
|
||||
fields: [], // 用于存储多个领域的选项数据
|
||||
options: [] // 用于存储级联选择的选项数据
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.loadFields(); // 初始化时加载数据
|
||||
},
|
||||
methods: {
|
||||
|
||||
|
||||
// 动态添加一个新的 Cascader
|
||||
handleAdd() {
|
||||
this.$nextTick(() => {
|
||||
// this.fields=[]
|
||||
const today = new Date();
|
||||
const formattedDate = today.getFullYear() + '.' +
|
||||
String(today.getMonth() + 1).padStart(2, '0') + '.' +
|
||||
String(today.getDate()).padStart(2, '0');
|
||||
|
||||
this.fields.push({ text: '' });
|
||||
|
||||
|
||||
this.$emit('load',this.fields)
|
||||
// this.coreVisible1 = true;
|
||||
});
|
||||
},
|
||||
|
||||
// 删除指定的 Cascader
|
||||
handleDelete(index) {
|
||||
this.fields.splice(index, 1); // 删除指定索引的字段
|
||||
this.$emit('load',this.fields)
|
||||
},
|
||||
|
||||
// 获取 Cascader 配置
|
||||
getProps() {
|
||||
return {
|
||||
value: 'value',
|
||||
label: 'label',
|
||||
children: 'children',
|
||||
checkStrictly: true, // 允许任意选择一级
|
||||
expandTrigger: 'hover' // 使用 hover 触发展开
|
||||
};
|
||||
},
|
||||
|
||||
// API 调用,获取子节点数据
|
||||
getMajor(majorId) {
|
||||
return this.$api
|
||||
.post('api/Ucenter/getMajor', { major_id: majorId })
|
||||
.then((response) => response.data)
|
||||
.catch((error) => {
|
||||
console.error('API Error:', error);
|
||||
return [];
|
||||
});
|
||||
},
|
||||
|
||||
// 加载多个领域数据
|
||||
loadFields() {
|
||||
this.$api.post('api/Major/getMajorList', {}).then((res) => {
|
||||
const transformData = (data) => {
|
||||
return data.map((item) => {
|
||||
const transformedItem = {
|
||||
...item,
|
||||
value: item.major_id,
|
||||
label: `${item.major_title}`
|
||||
};
|
||||
|
||||
// 如果存在 children,递归处理
|
||||
if (item.children && item.children.length > 0) {
|
||||
transformedItem.children = transformData(item.children);
|
||||
}
|
||||
|
||||
return transformedItem;
|
||||
});
|
||||
};
|
||||
|
||||
// 执行递归,获取选项数据
|
||||
const data = transformData(res.data.majors.find((item) => item.major_id == 1).children);
|
||||
this.options = [...data]; // 将选项数据赋给 options
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 你可以根据需要自定义样式 */
|
||||
.cascader-container {
|
||||
width: 100%;
|
||||
/* margin-top: 40px; */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
::v-deep input[aria-hidden='true'] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@@ -1,32 +1,54 @@
|
||||
<template>
|
||||
<div>
|
||||
<div style="height: 100%">
|
||||
<div class="handle-box">
|
||||
<el-select v-model="queryType.journal_id" @change="getDateType" placeholder="Please select journal"
|
||||
style="width: 300px;">
|
||||
<el-select v-model="queryType.journal_id" @change="getDateType" placeholder="Please select journal" style="width: 300px">
|
||||
<el-option :key="0" label="All journals" :value="0"></el-option>
|
||||
<el-option v-for="item in journals" :key="item.journal_id" :label="item.title"
|
||||
:value="item.journal_id"></el-option>
|
||||
<el-option v-for="item in journals" :key="item.journal_id" :label="item.title" :value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<el-table :data="dataType" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header"
|
||||
empty-text="New messages (0)">
|
||||
<div style="height: calc(100% - 100px)">
|
||||
<el-table
|
||||
:data="dataType"
|
||||
border
|
||||
stripe
|
||||
class="table"
|
||||
ref="multipleTable"
|
||||
header-cell-class-name="table-header"
|
||||
height="100%"
|
||||
empty-text="New messages (0)"
|
||||
>
|
||||
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
||||
<el-table-column width="160" label="Doi" align="center">
|
||||
<el-table-column prop="accept_sn" label="SN" width="240px">
|
||||
<template slot-scope="scope">
|
||||
<p style="margin-bottom: 5px;">
|
||||
<p>
|
||||
{{ scope.row.accept_sn }}
|
||||
<el-button
|
||||
size="mini"
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-tickets"
|
||||
@click="showdetaileditor(scope.row)"
|
||||
style="margin-left: 10px; padding: 4px; float: right"
|
||||
>Detail</el-button
|
||||
>
|
||||
</p>
|
||||
<p v-if="scope.row.doi" style="color: #006699"><span>Doi: </span>{{ scope.row.doi }}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column width="160" label="Doi" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p >
|
||||
{{scope.row.doi}}
|
||||
|
||||
</p>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
|
||||
@click="showdetaileditor(scope.row)">Detail</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="accept_sn" label="SN" width="180px"></el-table-column>
|
||||
</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 v-if="scope.row.title == ''">Article{{ scope.row.p_article_id }}</p>
|
||||
<p else>
|
||||
{{ scope.row.title }}
|
||||
</p>
|
||||
@@ -34,10 +56,10 @@
|
||||
</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>
|
||||
<el-button size="mini" @click="typeDelete(scope.row)" type="danger" plain icon="el-icon-delete">
|
||||
Delete</el-button>
|
||||
<el-button @click="changeEnter(scope.row)" size="mini" type="primary" plain icon="el-icon-paperclip"
|
||||
>Enter</el-button
|
||||
>
|
||||
<el-button size="mini" @click="typeDelete(scope.row)" type="danger" plain icon="el-icon-delete"> Delete</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="Remarks" align="center">
|
||||
@@ -49,16 +71,22 @@
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
<div class="pagination">
|
||||
<el-pagination background layout="total, prev, pager, next" :current-page="queryType.pageIndex"
|
||||
:page-size="queryType.pageSize" :total="TotalType" @current-change="handPage_type"></el-pagination>
|
||||
<el-pagination
|
||||
background
|
||||
layout="total, prev, pager, next"
|
||||
:current-page="queryType.pageIndex"
|
||||
:page-size="queryType.pageSize"
|
||||
:total="TotalType"
|
||||
@current-change="handPage_type"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- remark标记 -->
|
||||
<el-dialog title="Remarks" :visible.sync="remarkBox" width="550px">
|
||||
<el-form ref="remark" :model="remark" label-width="85px">
|
||||
<el-form-item label="Title :">
|
||||
<p style="line-height: 20px;margin-top: 6px;">{{remark.title}}</p>
|
||||
<p style="line-height: 20px; margin-top: 6px">{{ remark.title }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Content :">
|
||||
<el-input type="textarea" rows="5" v-model="remark.content"></el-input>
|
||||
@@ -69,7 +97,6 @@
|
||||
<el-button type="primary" @click="saveRemark">Save</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -77,13 +104,9 @@
|
||||
import 'quill/dist/quill.core.css';
|
||||
import 'quill/dist/quill.snow.css';
|
||||
import 'quill/dist/quill.bubble.css';
|
||||
import {
|
||||
quillEditor
|
||||
} from 'vue-quill-editor';
|
||||
import { quillEditor } from 'vue-quill-editor';
|
||||
import Clipboard from 'clipboard';
|
||||
import {
|
||||
Loading
|
||||
} from 'element-ui';
|
||||
import { Loading } from 'element-ui';
|
||||
export default {
|
||||
props: ['journals'],
|
||||
data() {
|
||||
@@ -107,7 +130,7 @@
|
||||
remarkBox: false,
|
||||
remark: {
|
||||
content: ''
|
||||
},
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@@ -127,12 +150,12 @@
|
||||
});
|
||||
this.$api
|
||||
.post('api/Production/getProductionList', this.queryType)
|
||||
.then(res => {
|
||||
.then((res) => {
|
||||
this.dataType = res.data.productions;
|
||||
this.TotalType = res.data.count;
|
||||
loading.close();
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
loading.close();
|
||||
});
|
||||
@@ -145,7 +168,7 @@
|
||||
},
|
||||
// 稿件信息展示
|
||||
showdetaileditor(row) {
|
||||
let stat_num = 'articleDetailEditor'
|
||||
let stat_num = 'articleDetailEditor';
|
||||
this.$router.push({
|
||||
path: stat_num,
|
||||
query: {
|
||||
@@ -162,8 +185,7 @@
|
||||
},
|
||||
// 修改标记
|
||||
saveRemark() {
|
||||
this.$api.post('api/Article/editArticleRemark', this.remark)
|
||||
.then(res => {
|
||||
this.$api.post('api/Article/editArticleRemark', this.remark).then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('success');
|
||||
this.remarkBox = false;
|
||||
@@ -185,13 +207,13 @@
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/Production/delProduction', {
|
||||
'p_article_id': e.p_article_id
|
||||
p_article_id: e.p_article_id
|
||||
})
|
||||
.then(res => {
|
||||
.then((res) => {
|
||||
this.$message.success('Delete successfully!');
|
||||
this.getDateType();
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
})
|
||||
@@ -201,12 +223,8 @@
|
||||
// 跳页录入排版
|
||||
changeEnter(val) {
|
||||
this.$router.push('/articleListEditor_B1?id=' + val.p_article_id);
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -215,7 +233,6 @@
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
@@ -225,15 +242,14 @@
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.pane_act>div {}
|
||||
.pane_act > div {
|
||||
}
|
||||
|
||||
.pane_act > div > div > h3 {
|
||||
font-size: 14px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.chanFerAll {
|
||||
position: relative;
|
||||
/* height: 500px;
|
||||
@@ -244,7 +260,8 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.chanFerAll .ref_list:nth-child(2n) {}
|
||||
.chanFerAll .ref_list:nth-child(2n) {
|
||||
}
|
||||
|
||||
.chanFerAll .ref_list:nth-child(2n + 1) {
|
||||
background-color: #ecf5ff;
|
||||
@@ -254,13 +271,12 @@
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.ref_list > div:nth-child(1) {
|
||||
margin: 0 0 15px 0;
|
||||
}
|
||||
|
||||
.ref_list>div:nth-child(1) input {}
|
||||
.ref_list > div:nth-child(1) input {
|
||||
}
|
||||
|
||||
.ref_list > div:nth-child(1) button {
|
||||
float: right;
|
||||
@@ -270,7 +286,6 @@
|
||||
margin: 0 0 15px 0;
|
||||
}
|
||||
|
||||
|
||||
.RefProBar {
|
||||
position: absolute;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="tab_post">
|
||||
|
||||
<div v-for="(item, index) in tabsList" @click="jumpTab(index, item)" :class="tabName == item.refName ? 'P_style' : ''">
|
||||
<h5>
|
||||
<span>{{ index + 1 }}</span>
|
||||
@@ -1394,7 +1395,7 @@ export default {
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.opMedical=this.$commonJS.opMedicalList()
|
||||
this.opMedical = this.$commonJS.opMedicalList();
|
||||
this.getHight();
|
||||
window.addEventListener('resize', this.getHight);
|
||||
this.getData();
|
||||
@@ -2843,7 +2844,9 @@ export default {
|
||||
// 判断滚动条滚动距离是否大于当前滚动项可滚动距离
|
||||
let judge = e.target.scrollTop >= scrollItems[i].offsetTop - scrollItems[0].offsetTop;
|
||||
if (judge) {
|
||||
console.log('judge at line 2846:', judge)
|
||||
this.tabIndex = i.toString();
|
||||
console.log('this.tabIndex at line 2848:', this.tabIndex)
|
||||
// 找对应的tab-name值
|
||||
this.tabName = this.tabsList[this.tabIndex].refName;
|
||||
// this.tabClick = this.tabsList[this.tabIndex].refName
|
||||
@@ -3144,7 +3147,10 @@ export default {
|
||||
.chanFerAll {
|
||||
float: left;
|
||||
position: relative;
|
||||
width: 61.5%;
|
||||
/* width: 61.5%; */
|
||||
|
||||
min-width: 61.5%;
|
||||
width: calc(76% - 50px) !important;
|
||||
}
|
||||
|
||||
.chanFerAll .chanFerBtn {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<div style="height: 100%;">
|
||||
<div class="handle-box">
|
||||
<el-select v-model="queryType.issn" @change="getJourChange" placeholder="Please select a journal" style="width: 250px">
|
||||
<el-option v-for="item in journals" :key="item.issn" :label="item.title" :value="item.issn"> </el-option>
|
||||
@@ -26,7 +26,8 @@
|
||||
<i class="el-icon-search" style="margin-right: 5px"></i>Search
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
<div style="height: calc(100% - 100px);">
|
||||
<el-table height="100%"
|
||||
:data="dataTable"
|
||||
border
|
||||
stripe
|
||||
@@ -36,13 +37,20 @@
|
||||
empty-text="New messages (0)"
|
||||
>
|
||||
<el-table-column width="80" label="No." prop="npp" align="center"></el-table-column>
|
||||
<el-table-column width="140" label="Stage" align="center">
|
||||
<el-table-column width="240" 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: 10px" size="mini" type="success" plain icon="el-icon-view" @click="lookView(scope.row)">
|
||||
Preview</el-button
|
||||
<el-button
|
||||
|
||||
size="mini"
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-view"
|
||||
@click="lookView(scope.row)"
|
||||
style="margin-left: 10px;padding:4px;float: right;"
|
||||
>Preview</el-button
|
||||
>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Title">
|
||||
@@ -65,9 +73,9 @@
|
||||
<p style="cursor: pointer; color: #006699 !important" @click="goCite(scope.row)">
|
||||
{{ scope.row.cite_num ? scope.row.cite_num.length : 0 }}
|
||||
|
||||
<!-- <span style="margin-left: 4px; cursor: pointer; color: #006699 !important; font-weight: bold">
|
||||
<span style="margin-left: 4px; cursor: pointer; color: #006699 !important; font-weight: bold">
|
||||
<i class="el-icon-edit"></i>
|
||||
</span> -->
|
||||
</span>
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -130,6 +138,8 @@
|
||||
@current-change="handlePageChange"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 修改信息 -->
|
||||
<el-dialog title="" :visible.sync="EditVisible" width="750px" :close-on-click-modal="false">
|
||||
|
||||
@@ -3,77 +3,160 @@
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item> <i class="el-icon-lx-calendar"></i> Manuscript reviewer list </el-breadcrumb-item>
|
||||
<el-breadcrumb-item>
|
||||
<div>
|
||||
<span>ID:{{ articleBaseInfo.accept_sn }} </span>
|
||||
</div>
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="handle-box">
|
||||
<div>
|
||||
<el-button type="primary" icon="el-icon-plus" @click="openAddRev">Reviewer Bank</el-button>
|
||||
|
||||
<el-button type="primary" icon="el-icon-plus" @click="openSuggRev">Reviewers Suggested By Author
|
||||
({{tableSuggest.length}})</el-button>
|
||||
<el-button
|
||||
:type="tableSuggest.length > 0 ? 'primary' : 'info'"
|
||||
:plain="tableSuggest.length == 0"
|
||||
:disabled="tableSuggest.length == 0"
|
||||
icon="el-icon-plus"
|
||||
@click="tableSuggest.length > 0 ? openSuggRev() : ''"
|
||||
>Reviewers Suggested By Author ({{ tableSuggest.length }})</el-button
|
||||
>
|
||||
</div>
|
||||
|
||||
<!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="editVisible1 = true">Supplement</el-button> -->
|
||||
</div>
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
|
||||
stripe
|
||||
size="mini"
|
||||
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="Base Information" width="280px">
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col">
|
||||
<span>Name: </span>
|
||||
<el-badge is-dot :hidden="scope.row.reviewer_act == 1 ? false : true" class="item">
|
||||
<b style="font-size: 15px; letter-spacing: -0.5px">{{ scope.row.reviewer }}</b>
|
||||
</el-badge>
|
||||
</p>
|
||||
<p class="tab_tie_col">
|
||||
<span>Realname: </span>
|
||||
{{ scope.row.realname }}
|
||||
</p>
|
||||
|
||||
<p class="tab_tie_col"><span>Country: </span>{{ scope.row.country }}</p>
|
||||
<p class="tab_tie_col"><span>Email: </span>{{ scope.row.email }}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Other Information">
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col">
|
||||
<span>Field: </span>
|
||||
{{ scope.row.field }}
|
||||
</p>
|
||||
|
||||
<p class="tab_tie_col" v-if="scope.row.company">
|
||||
<span>Company: </span>
|
||||
{{ scope.row.company }}
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="art_rev_id" label="ID" align="center" width="60"></el-table-column> -->
|
||||
<el-table-column label="Reviewer" align="center" width="130">
|
||||
<!-- <el-table-column label="Reviewer" align="center" width="130">
|
||||
<template slot-scope="scope">
|
||||
<el-badge is-dot :hidden="scope.row.reviewer_act == 1 ? false : true" class="item">
|
||||
{{ scope.row.reviewer }}
|
||||
</el-badge>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="country" label="Country" align="center" width="100"></el-table-column>
|
||||
<el-table-column prop="email" label="Email" align="center"></el-table-column>
|
||||
<el-table-column prop="company" label="Company" align="center"></el-table-column>
|
||||
<el-table-column prop="major_str" label="Major"></el-table-column>
|
||||
<el-table-column prop="field" label="Field"></el-table-column>
|
||||
<el-table-column label="state" align="center" width="95">
|
||||
</el-table-column> -->
|
||||
<!-- <el-table-column prop="country" label="Country" align="center" width="100"></el-table-column> -->
|
||||
<!-- <el-table-column prop="email" label="Email" align="center"></el-table-column> -->
|
||||
<!-- <el-table-column prop="company" label="Company" align="center"></el-table-column> -->
|
||||
<!-- <el-table-column prop="major_str" label="Major"></el-table-column> -->
|
||||
<el-table-column label="Research areas" width="310">
|
||||
<template slot-scope="scope">
|
||||
{{revstate(scope.row)}}
|
||||
<font style="color: #aaa;display: block;line-height: 18px;font-size: 13px;margin: 5px 0 0 0;">
|
||||
{{formatDate(scope.row.ctime)}}</font>
|
||||
<commonMajorTableList
|
||||
:user_id="scope.row.reviewer_id"
|
||||
:baseInfo="scope.row"
|
||||
:key="scope.row.reviewer_id"
|
||||
:disabled="true"
|
||||
></commonMajorTableList>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" width="110" align="center">
|
||||
<!-- <el-table-column prop="field" label="Field"></el-table-column> -->
|
||||
<el-table-column label="State" align="center" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
|
||||
@click="showdetail(scope.row)">Detail</el-button>
|
||||
<span style="font-size: 16px;"v-html="revstate(scope.row)"></span>
|
||||
|
||||
<font
|
||||
style="color: #aaa; display: block; line-height: 18px; font-size: 13px; "
|
||||
v-html="formatDate(scope.row.ctime)"
|
||||
>
|
||||
</font>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-show="scope.row.state!=4"ize="mini" type="primary" plain icon="el-icon-tickets" @click="showdetail(scope.row)">Detail</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="pagination">
|
||||
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
|
||||
:page-size="query.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
|
||||
<el-pagination
|
||||
background
|
||||
layout="total, prev, pager, next"
|
||||
:current-page="query.pageIndex"
|
||||
:page-size="query.pageSize"
|
||||
:total="Total"
|
||||
@current-change="handlePageChange"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog title="Add Suggest Reviewer" :visible.sync="AddSuggest" width="800px">
|
||||
<el-table :data="tableSuggest" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||||
<el-table
|
||||
:data="tableSuggest"
|
||||
border
|
||||
stripe
|
||||
class="table"
|
||||
ref="multipleTable"
|
||||
header-cell-class-name="table-header"
|
||||
empty-text="New messages (0)"
|
||||
>
|
||||
<el-table-column prop="account" label="Email"></el-table-column>
|
||||
<el-table-column prop="realname" label="Realname"></el-table-column>
|
||||
<el-table-column prop="cmajor" label="Major"></el-table-column>
|
||||
<el-table-column label="" width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-check" @click="selSuggest(scope.row)">
|
||||
Select</el-button>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-check" @click="selSuggest(scope.row)"> Select</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="AddSuggest = false">Cancel</el-button>
|
||||
<el-button @click="AddSuggest = false">Cancel</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog title="add reviewer" :closeOnClickModal="false" :visible.sync="editVisible" width="80%"
|
||||
v-loading="loading" element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
|
||||
element-loading-background="rgba(0, 0, 0, 0.8)">
|
||||
<el-dialog
|
||||
title="add reviewer"
|
||||
:closeOnClickModal="false"
|
||||
:visible.sync="editVisible"
|
||||
width="80%"
|
||||
v-loading="loading"
|
||||
element-loading-text="Loading..."
|
||||
element-loading-spinner="el-icon-loading"
|
||||
element-loading-background="rgba(0, 0, 0, 0.8)"
|
||||
>
|
||||
<el-form ref="editform" :model="editform" label-width="100px">
|
||||
<el-form-item label="state">
|
||||
<el-select v-model="editform.uid" filterable @change="changereviewer()" placeholder="Please select">
|
||||
<el-option :key="0" label="please select" :value="0"></el-option>
|
||||
<el-option v-for="item in reviewerList" :key="item.user_id" :label="item.account"
|
||||
:value="item.user_id"></el-option>
|
||||
<el-option v-for="item in reviewerList" :key="item.user_id" :label="item.account" :value="item.user_id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Country" v-if="editform.uid != 0">
|
||||
@@ -97,9 +180,15 @@
|
||||
<el-button type="primary" @click="saveEdit">save</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog title="Supplement" :visible.sync="editVisible1" width="40%" v-loading="loading"
|
||||
element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
|
||||
element-loading-background="rgba(0, 0, 0, 0.8)">
|
||||
<el-dialog
|
||||
title="Supplement"
|
||||
:visible.sync="editVisible1"
|
||||
width="40%"
|
||||
v-loading="loading"
|
||||
element-loading-text="Loading..."
|
||||
element-loading-spinner="el-icon-loading"
|
||||
element-loading-background="rgba(0, 0, 0, 0.8)"
|
||||
>
|
||||
<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">
|
||||
@@ -163,12 +252,14 @@
|
||||
</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 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>
|
||||
@@ -176,7 +267,6 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-collapse>
|
||||
<el-form-item label="7.Is the Abstract accurate and concise?">
|
||||
<el-col :span="4">
|
||||
@@ -186,12 +276,14 @@
|
||||
</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 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>
|
||||
@@ -203,12 +295,14 @@
|
||||
</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 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>
|
||||
@@ -220,12 +314,14 @@
|
||||
</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 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>
|
||||
@@ -237,12 +333,14 @@
|
||||
</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 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>
|
||||
@@ -263,10 +361,10 @@
|
||||
<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>
|
||||
<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-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>
|
||||
@@ -277,7 +375,7 @@
|
||||
</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-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>
|
||||
@@ -288,25 +386,22 @@
|
||||
</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-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-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-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, {{txt_mess.title}} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers for their
|
||||
invaluable contributions to the peer review process of this paper.
|
||||
<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, {{ txt_mess.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-form-item>
|
||||
@@ -319,10 +414,16 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import commonMajorTableList from '../page/components/major/tableList.vue';
|
||||
export default {
|
||||
components: {
|
||||
commonMajorTableList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
majorData: [],
|
||||
baseUrl: this.Common.baseUrl,
|
||||
articleBaseInfo: {},
|
||||
questionform: {
|
||||
uid: 0,
|
||||
articleId: this.$route.query.id,
|
||||
@@ -390,6 +491,7 @@
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.initArticle();
|
||||
this.getdate();
|
||||
this.initreviewerList();
|
||||
},
|
||||
@@ -399,6 +501,17 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initArticle() {
|
||||
this.$api
|
||||
.post('api/Article/getArticleDetail', {
|
||||
articleId: this.query.article_id,
|
||||
human: 'editor'
|
||||
})
|
||||
.then((res) => {
|
||||
this.articleBaseInfo = res.article;
|
||||
});
|
||||
},
|
||||
|
||||
// 获取编辑列表数据
|
||||
getdate() {
|
||||
this.$api
|
||||
@@ -475,11 +588,12 @@
|
||||
addArtRev() {
|
||||
if (this.questionform.uid == 0) {
|
||||
this.$message.error('Please select a reviewer');
|
||||
} else if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
|
||||
} else if (this.questionform.is_anonymous == '' && this.questionform.is_anonymous != '0') {
|
||||
this.$message.error('Please choose disclose your name or remain anonymous.');
|
||||
} else {
|
||||
this.loading = true;
|
||||
this.$api.post('api/Article/addArtRev', this.questionform)
|
||||
this.$api
|
||||
.post('api/Article/addArtRev', this.questionform)
|
||||
.then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code == 0) {
|
||||
@@ -496,7 +610,7 @@
|
||||
},
|
||||
// 添加推荐审稿人
|
||||
openSuggRev() {
|
||||
this.AddSuggest = true
|
||||
this.AddSuggest = true;
|
||||
},
|
||||
selSuggest(e) {
|
||||
this.loading = true;
|
||||
@@ -509,7 +623,7 @@
|
||||
this.loading = false;
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Add Success');
|
||||
this.AddSuggest = false
|
||||
this.AddSuggest = false;
|
||||
this.getdate();
|
||||
} else {
|
||||
this.$message.error('Add Error');
|
||||
@@ -579,7 +693,7 @@
|
||||
} else if (row.state == 3) {
|
||||
frag = 'Accept';
|
||||
} else if (row.state == 4) {
|
||||
frag = 'invalid';
|
||||
frag = '<text style="color:#aaa">invalid</text>';
|
||||
} else if (row.state == 5) {
|
||||
frag = 'invitation';
|
||||
}
|
||||
@@ -596,14 +710,29 @@
|
||||
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
|
||||
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
|
||||
return Y + M + D + ' ' + h + ':' + m + ':' + s;
|
||||
},
|
||||
return Y + M + D + '<br/>' + h + ':' + m + ':' + s;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.container {
|
||||
padding: 10px;
|
||||
}
|
||||
.reviewerListBox {
|
||||
color: rgba(0, 119, 184, 1);
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
.reviewerListBox .labelTitle {
|
||||
color: rgba(0, 119, 184, 1);
|
||||
}
|
||||
.handle-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
@@ -651,4 +780,16 @@
|
||||
.el-table .red-row {
|
||||
background: #f05555;
|
||||
}
|
||||
.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>
|
||||
|
||||
@@ -23,13 +23,23 @@
|
||||
header-cell-class-name="table-header"
|
||||
empty-text="New messages (0)"
|
||||
>
|
||||
<el-table-column label="Base Information">
|
||||
<el-table-column width="360" label="Base Information">
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col">
|
||||
<span>Realname: </span><b style="font-size: 15px">{{ scope.row.realname }}</b>
|
||||
<span>Realname: </span><b style="font-size: 14px">{{ scope.row.realname }}</b><el-button
|
||||
|
||||
size="mini"
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-tickets"
|
||||
@click="openDetail(scope.row)"
|
||||
style="margin-left: 10px;padding:4px;float: right;"
|
||||
>Detail</el-button
|
||||
>
|
||||
</p>
|
||||
<p class="tab_tie_col"><span>Account: </span>{{ scope.row.account }}</p>
|
||||
<p class="tab_tie_col"><span>Email: </span>{{ scope.row.email }}</p>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Other Information">
|
||||
@@ -39,6 +49,16 @@
|
||||
<!-- <p class="tab_tie_col" v-if="scope.row.majorstr != ''"><span>Major: </span>{{ scope.row.majorstr }}</p> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Research areas" width="310">
|
||||
<template slot-scope="scope">
|
||||
<commonMajorTableList
|
||||
:user_id="scope.row.user_id"
|
||||
:baseInfo="scope.row"
|
||||
:key="scope.row.user_id"
|
||||
:disabled="true"
|
||||
></commonMajorTableList>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="rs_num" label="Review Record" width="180">
|
||||
<template slot-scope="scope">
|
||||
Major review: {{ scope.row.major_times }} ({{ scope.row.major_rate }}%)
|
||||
@@ -66,9 +86,9 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="rd_num" label="Fail number" width="140"></el-table-column> -->
|
||||
<el-table-column label="" width="200" align="center">
|
||||
<el-table-column label="" width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="success" plain icon="el-icon-tickets" @click="openDetail(scope.row)">Detail</el-button>
|
||||
<!-- <el-button size="mini" type="success" plain icon="el-icon-tickets" @click="openDetail(scope.row)">Detail</el-button> -->
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-check" @click="openSelect(scope.row)"> Select</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -87,7 +107,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
import commonMajorTableList from '../page/components/major/tableList.vue';
|
||||
|
||||
export default {components: {
|
||||
|
||||
commonMajorTableList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
messform: {
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<!-- <el-page-header @back="goBack" content="Add manuscript reviewer">
|
||||
</el-page-header> -->
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item> <i class="el-icon-lx-calendar"></i> Add manuscript reviewer</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div
|
||||
class="container"
|
||||
class="container" style="padding: 20px;"
|
||||
v-loading="loading"
|
||||
element-loading-text="Loading..."
|
||||
element-loading-spinner="el-icon-loading"
|
||||
element-loading-background="rgba(255, 255, 255, 0.8)"
|
||||
|
||||
>
|
||||
<span
|
||||
style="float: right; display: flex; align-items: center; color: #6843ff; font-weight: bold"
|
||||
@click="isSelectAI = !isSelectAI"
|
||||
> <el-checkbox v-model="isSelectAI"></el-checkbox><img src="@/assets/img/ai.png" style="width: 30px; height: 30px; margin-left: 10px" /> </span
|
||||
>
|
||||
<el-checkbox v-model="isSelectAI"></el-checkbox
|
||||
><img src="@/assets/img/ai.png" style="width: 30px; height: 30px; margin-left: 10px" />
|
||||
</span>
|
||||
|
||||
<!-- <el-select v-model="messform.major_a" placeholder="Please select major" @change="majorChange(1)"
|
||||
style="width: 200px;margin: 0 10px 0 0;">
|
||||
@@ -39,9 +42,8 @@
|
||||
:value="item.major_id"></el-option>
|
||||
</el-select> -->
|
||||
|
||||
|
||||
|
||||
<div v-if="!isSelectAI"><span style="font-size: 14px; color: #606266; margin: 0 10px 0 0">Research direction :</span>
|
||||
<div v-if="!isSelectAI">
|
||||
<span style="font-size: 14px; color: #606266; margin: 0 10px 0 0">Research direction :</span>
|
||||
<el-cascader
|
||||
placeholder="Please select major"
|
||||
v-model="selectFileds"
|
||||
@@ -74,10 +76,21 @@
|
||||
header-cell-class-name="table-header"
|
||||
empty-text="New messages (0)"
|
||||
>
|
||||
<el-table-column label="Base Information">
|
||||
<el-table-column width="360" label="Base Information">
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col">
|
||||
<span>Realname: </span><b style="font-size: 15px">{{ scope.row.realname }}</b>
|
||||
<span>Realname: </span><b style="font-size: 14px">{{ scope.row.realname }}</b>
|
||||
|
||||
<el-button
|
||||
|
||||
size="mini"
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-tickets"
|
||||
@click="openDetail(scope.row)"
|
||||
style="margin-left: 10px;padding:4px;float: right;"
|
||||
>Detail</el-button
|
||||
>
|
||||
</p>
|
||||
<p class="tab_tie_col"><span>Account: </span>{{ scope.row.account }}</p>
|
||||
<p class="tab_tie_col"><span>Email: </span>{{ scope.row.email }}</p>
|
||||
@@ -87,24 +100,41 @@
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col" v-if="scope.row.company != ''"><span>Affiliation: </span>{{ scope.row.company }}</p>
|
||||
<p class="tab_tie_col" v-if="scope.row.field != ''"><span>Field: </span>{{ scope.row.field }}</p>
|
||||
<p class="tab_tie_col" v-if="scope.row.majorstr != ''"><span>Major: </span>{{ scope.row.majorstr }}</p>
|
||||
<!-- <p class="tab_tie_col" v-if="scope.row.majorstr != ''"><span>Major: </span>{{ scope.row.majorstr }}</p> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="rs_num" label="Reviewed Times" width="140">
|
||||
<el-table-column label="Research areas" width="310">
|
||||
<template slot-scope="scope">
|
||||
<commonMajorTableList
|
||||
:user_id="scope.row.reviewer_id"
|
||||
:baseInfo="scope.row"
|
||||
:key="scope.row.reviewer_id"
|
||||
:disabled="true"
|
||||
></commonMajorTableList>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="rs_num" label="Reviewed Times" width="160">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.rs_num }}
|
||||
<font style="margin-left: 5px">(Reviewing:{{ scope.row.now }})</font>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column prop="rd_num" label="Fail number" width="140"></el-table-column> -->
|
||||
<el-table-column label="" width="200" align="center">
|
||||
<el-table-column label="" width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="success" plain icon="el-icon-tickets" @click="openDetail(scope.row)"
|
||||
>Detail</el-button
|
||||
>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-check" @click="openSelect(scope.row)">
|
||||
Select</el-button
|
||||
<div style="display: flex; align-items: center; flex-wrap: wrap; flex-direction: column">
|
||||
<el-button
|
||||
style="margin-bottom: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-check"
|
||||
@click="openSelect(scope.row)"
|
||||
>Select</el-button
|
||||
>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -120,7 +150,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="isSelectAI">
|
||||
<commonAI @openSelect="openSelect" @openDetail="openDetail" @loading="(status)=>loading=status"></commonAI>
|
||||
<commonAI @openSelect="openSelect" @openDetail="openDetail" @loading="(status) => (loading = status)"></commonAI>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog
|
||||
@@ -145,8 +175,11 @@
|
||||
<el-form-item label="Affiliation :">
|
||||
<span>{{ mesOpen.company }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="Major :">
|
||||
<span>{{ mesOpen.major_title }}</span>
|
||||
<el-form-item label="Research areas :">
|
||||
<p v-for="(v, i) in majorData" >
|
||||
<span style="font-weight: bold">{{ i + 1 }}.</span>
|
||||
{{ v.major_title.replace('Medicine >', '').trim() }}
|
||||
</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Field :">
|
||||
<span>{{ mesOpen.field }}</span>
|
||||
@@ -164,9 +197,11 @@
|
||||
|
||||
<script>
|
||||
import commonAI from './articleReviewerAIAdd.vue';
|
||||
import commonMajorTableList from '../page/components/major/tableList.vue';
|
||||
export default {
|
||||
components: {
|
||||
commonAI
|
||||
commonAI,
|
||||
commonMajorTableList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -208,6 +243,16 @@ export default {
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
goBack() {
|
||||
this.$router.push({
|
||||
path: 'articleReviewer',
|
||||
query: {
|
||||
id: this.$route.query.id
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
fieldChange(e) {
|
||||
this.messform.major_id = this.selectFileds[this.selectFileds.length - 1];
|
||||
},
|
||||
@@ -246,11 +291,35 @@ export default {
|
||||
// console.log(this.messform)
|
||||
this.getDate();
|
||||
},
|
||||
|
||||
async fetchMajorData(userId) {
|
||||
// if (!this.majorData[userId]) {
|
||||
// 判断是否已经加载过该用户的数据
|
||||
this.majorData = await this.getMajorData(userId);
|
||||
console.log('this.majorData at line 279:', this.majorData)
|
||||
this.$forceUpdate();
|
||||
// }
|
||||
},
|
||||
// 修改标记
|
||||
async getMajorData(userId) {
|
||||
try {
|
||||
const res = await this.$api.post('api/Reviewer/getUserField', { user_id: userId });
|
||||
this.loading = false; // 开始加载数据
|
||||
if (res.status === 1) {
|
||||
return res.data; // 返回数据
|
||||
} else {
|
||||
return []; // 如果没有数据,返回空数组
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error fetching data:', error);
|
||||
return []; // 如果发生错误,返回空数组
|
||||
}
|
||||
},
|
||||
// 审稿人详情
|
||||
openDetail(row) {
|
||||
this.mesOpen={}
|
||||
this.mesOpen = {};
|
||||
this.mesOpenVisble = true;
|
||||
this.majorData=[]
|
||||
|
||||
this.$api
|
||||
.post('api/Article/getReviewerdetail', {
|
||||
uid: row.user_id
|
||||
@@ -260,7 +329,7 @@ export default {
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
});this.fetchMajorData(row.user_id);
|
||||
},
|
||||
// 保存添加操作
|
||||
openSelect(row) {
|
||||
@@ -381,4 +450,8 @@ export default {
|
||||
margin: 0 5px 0 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
::v-deep .el-page-header__left, ::v-deep .el-page-header__content{
|
||||
font-size:14px !important ;
|
||||
color:#606266 !important ;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
<template>
|
||||
<div class="block commonMajor" style="width: 100%;overflow: hidden;">
|
||||
<el-button type="primary" plain size="mini" @click="handleAdd" style="float:right;margin-bottom: 20px;"><i class="el-icon-plus" ></i>Add Field </el-button>
|
||||
<div class="block commonMajor" style="width: 100%; overflow: hidden">
|
||||
|
||||
<div v-if="!disabled">
|
||||
<el-button type="primary" plain size="mini" @click="handleAdd" style="float: right; margin-bottom: 20px"
|
||||
><i class="el-icon-plus"></i>Add Field
|
||||
</el-button>
|
||||
<div
|
||||
v-for="(field, index) in fields"
|
||||
:key="index"
|
||||
@@ -20,8 +24,32 @@
|
||||
></el-cascader>
|
||||
|
||||
<!-- Delete button -->
|
||||
<el-button v-if="!disabled" size="mini" type="danger" style="margin-left: 10px;" @click="handleDelete(index)"><i class="el-icon-delete"></i></el-button>
|
||||
<el-button size="mini" type="danger" style="margin-left: 10px" @click="handleDelete(index)"
|
||||
><i class="el-icon-delete"></i
|
||||
></el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
<div
|
||||
v-for="(field, index) in fields"
|
||||
:key="index"
|
||||
class="cascader-container"
|
||||
style="display: flex; align-items: center; justify-content: space-between"
|
||||
>
|
||||
<span style="margin-right: 10px; font-size: 12px; color: #006699; font-weight: bold">Field {{ Number(index + 1) }} :</span>
|
||||
|
||||
|
||||
|
||||
<div style="width: calc(100% - 60px)">
|
||||
{{field.str.replace('Medicine >', '').trim() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- <el-dialog title="Add Field " :visible.sync="coreVisible1" width="780px" :close-on-click-modal="false">
|
||||
<el-form :model="coreForm1" :rules="rules1" ref="core_Form1" label-width="140px" >
|
||||
<el-form-item prop="major">
|
||||
@@ -57,17 +85,15 @@ export default {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
list: {
|
||||
handler(e) {
|
||||
|
||||
this.fields=this.list.length>0?[...this.list]:[{}]
|
||||
this.fields = this.list.length > 0 ? [...this.list] : [{}];
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -92,7 +118,7 @@ export default {
|
||||
this.$refs[`cascader${i}`][0].dropDownVisible = false;
|
||||
this.coreForm1.majorList = this.fields[i].selectedValue;
|
||||
|
||||
this.$emit('load',this.fields)
|
||||
this.$emit('load', this.fields);
|
||||
|
||||
this.$forceUpdate();
|
||||
});
|
||||
@@ -116,7 +142,7 @@ this.coreForm1.majorList = this.fields[i].selectedValue;
|
||||
this.$message.success('Personal information modified successfully!');
|
||||
this.coreVisible1 = false;
|
||||
// this.tipVisible = false;
|
||||
this.$emit('load')
|
||||
this.$emit('load');
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
@@ -135,7 +161,7 @@ this.coreForm1.majorList = this.fields[i].selectedValue;
|
||||
this.$nextTick(() => {
|
||||
// this.fields=[]
|
||||
this.fields.push({ selectedValue: [] }); // 添加一个新的字段
|
||||
this.$emit('load',this.fields)
|
||||
this.$emit('load', this.fields);
|
||||
// this.coreVisible1 = true;
|
||||
});
|
||||
},
|
||||
@@ -143,7 +169,7 @@ this.coreForm1.majorList = this.fields[i].selectedValue;
|
||||
// 删除指定的 Cascader
|
||||
handleDelete(index) {
|
||||
this.fields.splice(index, 1); // 删除指定索引的字段
|
||||
this.$emit('load',this.fields)
|
||||
this.$emit('load', this.fields);
|
||||
},
|
||||
|
||||
// 获取 Cascader 配置
|
||||
|
||||
151
src/components/page/components/major/tableList.vue
Normal file
151
src/components/page/components/major/tableList.vue
Normal file
@@ -0,0 +1,151 @@
|
||||
<template>
|
||||
<div>
|
||||
<div
|
||||
@click="BoxMajor()"
|
||||
v-if="user_id"
|
||||
style="display: flex; align-items: center; justify-content: space-between"
|
||||
:style="{ cursor: disabled ? '' : 'pointer' }"
|
||||
>
|
||||
<!-- 使用 user_id 来获取用户的 majorData -->
|
||||
<div>
|
||||
<div v-if="!loading" class="majorDataBox">
|
||||
<p v-for="(v, i) in majorData" style="border-top: 1px solid #b3d8ff">
|
||||
<span style="font-weight: bold">{{ i + 1 }}.</span>
|
||||
{{ v.major_title.replace('Medicine >', '').trim().split('>').pop().trim() }}
|
||||
</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span>Loading...</span>
|
||||
<!-- 如果数据还在加载,显示 "Loading..." -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<b style="margin-left: 10px; color: #006699" class="el-icon-edit" v-if="!disabled"></b>
|
||||
</div>
|
||||
|
||||
<el-dialog :title="disabled?'Research areas':'Edit Research areas'" :visible.sync="majorBox" width="800px">
|
||||
<el-form ref="remark" :model="majorMes" label-width="120px">
|
||||
<el-form-item label="Reviewer :">
|
||||
<p style="line-height: 20px; margin-top: 6px">
|
||||
<span style="color: #333; font-weight: bold">{{ majorMes.realname }}</span>
|
||||
( {{ majorMes.email }} )
|
||||
</p>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="Email :">
|
||||
<p style="line-height: 20px; margin-top: 6px">{{ majorMes.email }}</p>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="Research areas :">
|
||||
|
||||
<common-major-list :disabled="disabled" :list="majorValueList" @load="(e) => (this.majorValueList = e)"></common-major-list>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="majorBox = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveMajor" v-if="!disabled">Save</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 评级弹出框 -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: ['user_id', 'baseInfo', 'disabled'],
|
||||
data() {
|
||||
return {
|
||||
majorValueList: [],
|
||||
majorData: [],
|
||||
majorMes: {},
|
||||
majorBox: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.loading = true; // 开始加载数据
|
||||
// this.initMajor()
|
||||
},
|
||||
mounted() {
|
||||
this.fetchMajorData(this.user_id); // 加载第一个用户的数据
|
||||
},
|
||||
methods: {
|
||||
BoxMajor() {
|
||||
this.majorBox = true;
|
||||
this.majorMes.realname = this.baseInfo.realname;
|
||||
this.majorMes.user_id = this.baseInfo.user_id;
|
||||
this.majorMes.email = this.baseInfo.email;
|
||||
if (this.disabled) {
|
||||
this.majorValueList = [...this.majorData].map((item)=>{return {...item,str:item.major_title}});
|
||||
console.log('this.majorValueList at line 79:', this.majorValueList)
|
||||
} else {
|
||||
this.majorValueList = [...this.majorData].map((item) => ({
|
||||
selectedValue: Array.isArray(item.shu)
|
||||
? item.shu
|
||||
: typeof item.shu === 'string'
|
||||
? item.shu.split(',').map(Number)
|
||||
: [item.shu]
|
||||
}));
|
||||
}
|
||||
|
||||
},
|
||||
async fetchMajorData(userId) {
|
||||
// if (!this.majorData[userId]) {
|
||||
// 判断是否已经加载过该用户的数据
|
||||
this.majorData = await this.getMajorData(userId);
|
||||
this.$forceUpdate();
|
||||
// }
|
||||
},
|
||||
// 修改标记
|
||||
async getMajorData(userId) {
|
||||
try {
|
||||
const res = await this.$api.post('api/Reviewer/getUserField', { user_id: userId });
|
||||
this.loading = false; // 开始加载数据
|
||||
if (res.status === 1) {
|
||||
return res.data; // 返回数据
|
||||
} else {
|
||||
return []; // 如果没有数据,返回空数组
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error fetching data:', error);
|
||||
return []; // 如果发生错误,返回空数组
|
||||
}
|
||||
},
|
||||
saveMajor() {
|
||||
this.$api
|
||||
.post('api/Reviewer/updateUserField', {
|
||||
user_id: this.majorMes.user_id,
|
||||
user_field: this.majorValueList.map((item) => item.selectedValue[item.selectedValue.length - 1]).toString(',')
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.status == 1) {
|
||||
this.$message.success('Success');
|
||||
this.majorBox = false;
|
||||
this.fetchMajorData(this.majorMes.user_id);
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.deteleBtn {
|
||||
color: #ce1111;
|
||||
margin-left: 18px;
|
||||
}
|
||||
|
||||
.deteleBtn i {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.deteleBtn:hover {
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
.majorDataBox p:nth-child(1) {
|
||||
border-top: none !important;
|
||||
}
|
||||
</style>
|
||||
116
src/components/page/components/reviewArticle/index.vue
Normal file
116
src/components/page/components/reviewArticle/index.vue
Normal file
@@ -0,0 +1,116 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- <oldForm></oldForm> -->
|
||||
<newForm></newForm>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import oldForm from './old.vue';
|
||||
import newForm from './new.vue';
|
||||
export default {
|
||||
components: {
|
||||
oldForm,
|
||||
newForm,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
articleId: null,
|
||||
txt_mess: {},
|
||||
questionform: {
|
||||
rev_qu_id: '',
|
||||
art_rev_id: this.$route.query.Art_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: '',
|
||||
is_anonymous: ''
|
||||
},
|
||||
btn_submit: 0,
|
||||
journal_id: null,
|
||||
rules: {
|
||||
qu6: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
|
||||
recommend: [{ required: true, message: 'please select', trigger: 'blur' }]
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
// Fetch article data
|
||||
this.$api
|
||||
.post('api/Reviewer/getartrevdate', {
|
||||
revid: this.Art_id,
|
||||
human: 'reviewer'
|
||||
})
|
||||
.then((res) => {
|
||||
this.txt_mess = res;
|
||||
this.journal_id = res.journal_id;
|
||||
});
|
||||
},
|
||||
questionSubmit() {
|
||||
if (this.questionform.is_anonymous === '') {
|
||||
this.$message.error('Please choose disclose your name or remain anonymous.');
|
||||
return false;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$refs.question.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code === 0) {
|
||||
this.$message.success('Success!!');
|
||||
this.$router.push('/per_text_success');
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.jouLink {
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
}
|
||||
::v-deep .el-collapse {
|
||||
border-top: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
455
src/components/page/components/reviewArticle/new copy.vue
Normal file
455
src/components/page/components/reviewArticle/new copy.vue
Normal file
@@ -0,0 +1,455 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
|
||||
<!-- 评估部分 -->
|
||||
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
||||
|
||||
<!-- 1. Originality of the topic -->
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="1. Originality of the topic" prop="qu1">
|
||||
<el-radio-group v-model="questionform.qu1">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="0.5">Good</el-radio>
|
||||
<el-radio :label="0">Fair</el-radio>
|
||||
<el-radio :label="-0.5">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- 2. Importance in its Field -->
|
||||
<el-col :span="24">
|
||||
<el-form-item label="2. Importance in its Field" prop="qu2">
|
||||
<el-radio-group v-model="questionform.qu2">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="0.5">Good</el-radio>
|
||||
<el-radio :label="0">Fair</el-radio>
|
||||
<el-radio :label="-0.5">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- 3. Does the manuscript fall within the aim and scope of the journal? -->
|
||||
<el-col :span="24">
|
||||
<el-form-item label="3. Does the manuscript fall within the aim and scope of the journal?" prop="qu3">
|
||||
<el-radio-group v-model="questionform.qu3">
|
||||
<el-radio :label="0.5">Yes</el-radio>
|
||||
<el-radio :label="-10">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- 4. English language -->
|
||||
<el-col :span="24">
|
||||
<el-form-item label="4. English language" prop="qu4">
|
||||
<el-radio-group v-model="questionform.qu4">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="0.5">Good</el-radio>
|
||||
<el-radio :label="0">Fair</el-radio>
|
||||
<el-radio :label="-0.5">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- Collapse sections for comments -->
|
||||
<el-collapse>
|
||||
<!-- 5. Does the title represent manuscript's contents? -->
|
||||
<el-form-item label="5. Does the title represent manuscript's contents?" prop="qu5">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu5">
|
||||
<el-radio :label="0.5">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="1">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu5contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 6. Is the Abstract accurate and concise? -->
|
||||
<el-form-item label="6. Is the Abstract accurate and concise?" prop="qu6">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu6">
|
||||
<el-radio :label="0.5">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="2">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu6contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 7. Does the Introduction highlight the latest advancements and address existing challenges in the current research? -->
|
||||
<el-form-item
|
||||
label="7. Does the Introduction highlight the latest advancements and address existing challenges in the current research?"
|
||||
prop="qu7"
|
||||
>
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu7">
|
||||
<el-radio :label="0.5">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="3">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu7contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 8. Does the Introduction cite the most recent and pertinent reference directly related to the research? -->
|
||||
<el-form-item label="8. Does it cite the most recent and pertinent reference directly related to the research?" prop="qu8">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu8">
|
||||
<el-radio :label="0.5">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="4">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu8contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 9. Does the experimental design provide sufficient scientific support for the article? -->
|
||||
<el-form-item
|
||||
label="9. Materials and Methods: Does the experimental design provide sufficient scientific support for the article (e.g., by using diverse cell lines with clear origins, ensuring natural drugs are authenticated, integrating in vitro and in vivo studies, and examining the issue at multiple levels including proteins and nucleic acids)?"
|
||||
prop="qu9"
|
||||
>
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu9">
|
||||
<el-radio :label="0.5">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="5">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu9contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 10. Does the experimental design adopt the latest cutting-edge research methods and technologies? -->
|
||||
<el-form-item
|
||||
label="10. Does the experimental design adopt the latest cutting-edge research methods and technologies?"
|
||||
prop="qu10"
|
||||
>
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu10">
|
||||
<el-radio :label="0.5">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="6">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu10contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 11. Is the appropriate statistical analysis used? -->
|
||||
<el-form-item label="11. Is the appropriate statistical analysis used?" prop="qu11">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu11">
|
||||
<el-radio :label="1">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="7">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu11contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 12. Are the Figures or Tables clear, visually appealing, and easy to understand? -->
|
||||
<el-form-item label="12. Are the Figures or Tables clear, visually appealing, and easy to understand?" prop="qu12">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu12">
|
||||
<el-radio :label="1">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="8">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu12contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="13. Is the interpretation reliable (can the results adequately support the conclusions, are the conclusions overstated, and is there any selective reporting of results that could mislead readers)?"
|
||||
prop="qu13"
|
||||
>
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu13">
|
||||
<el-radio :label="1">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="9">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu13contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="14. If there are notable limitations or imperfections in the research, does the author explicitly acknowledge these shortcomings?"
|
||||
prop="qu14"
|
||||
>
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu14">
|
||||
<el-radio :label="0.5">Yes</el-radio>
|
||||
<el-radio :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="10">
|
||||
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="questionform.qu14contents"
|
||||
:rows="4"
|
||||
placeholder="please input content"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
|
||||
<!-- 推荐部分 -->
|
||||
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||
<el-form-item label="Overall the Paper is Rated">
|
||||
( <span style="color: #e41411">←←←←← Bad ←←← Poor</span>
|
||||
<span style="width: 10px; display: inline-block"></span>
|
||||
<span style="color: #369916">Accept → Superior → Excellent</span> )<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">
|
||||
<el-radio-group v-model="questionform.recommend">
|
||||
<el-radio :label="1">Minor revision</el-radio>
|
||||
<el-radio :label="2">Major revision</el-radio>
|
||||
<el-radio v-if="journal_id == 1 || journal_id == 23 || journal_id == 10" :label="3">
|
||||
Reject in current form, but may be resubmitted
|
||||
</el-radio>
|
||||
<el-radio v-if="journal_id != 1 && journal_id != 23 && journal_id != 10" :label="4">Reject</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
||||
<el-radio-group v-model="questionform.recommend">
|
||||
<el-radio :label="1">Imperfect style</el-radio>
|
||||
<el-radio :label="2">Too long</el-radio>
|
||||
<el-radio :label="3"> References incorrectly presented </el-radio>
|
||||
<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, {{ txt_mess.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-form-item v-if="this.btn_submit == 0">
|
||||
<el-button type="primary" @click="questionSubmit">submit</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
articleId: null,
|
||||
txt_mess: {},
|
||||
questionform: {
|
||||
rev_qu_id: '',
|
||||
art_rev_id: this.$route.query.Art_id,
|
||||
qu1: '', // Originality of the topic
|
||||
qu2: '', // Importance in its Field
|
||||
qu3: '', // Does the manuscript fall within the aim and scope of the journal?
|
||||
qu4: '', // English language
|
||||
qu5: '', // Readily Understandable
|
||||
qu6: '', // Does the title represent manuscript's contents?
|
||||
qu6contents: '', // Title Comments
|
||||
qu7: '', // Abstract
|
||||
qu7contents: '', // Abstract Comments
|
||||
qu8: '', // Introduction
|
||||
qu8contents: '', // Introduction Comments
|
||||
qu9: '', // Materials and Methods
|
||||
qu9contents: '', // Methods Comments
|
||||
qu10: '', // Results
|
||||
qu10contents: '', // Results Comments
|
||||
qu11: '', // Discussion
|
||||
qu11contents: '', // Discussion Comments
|
||||
qu12: '', // Discussion
|
||||
qu12contents: '', // Discussion Comments
|
||||
qu13: '', // Discussion
|
||||
qu13contents: '', // Discussion Comments
|
||||
qu14: '', // Discussion
|
||||
qu14contents: '', // Discussion Comments
|
||||
|
||||
rated: '', // Overall Rating
|
||||
recommend: '', // Recommendations
|
||||
other: '', // Specific Criticisms
|
||||
confident: '', // Confidential Comments to the Editor
|
||||
comment: '', // Comments for the Authors
|
||||
is_anonymous: '' // Anonymous or Not
|
||||
},
|
||||
btn_submit: 0,
|
||||
journal_id: null,
|
||||
rules: {
|
||||
qu1: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
qu2: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
qu3: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
qu4: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
qu5: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
recommend: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
comment: [{ required: true, message: 'please input content', trigger: 'blur' }]
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
// 获取文章数据
|
||||
this.$api
|
||||
.post('api/Reviewer/getartrevdate', {
|
||||
revid: this.Art_id,
|
||||
human: 'reviewer'
|
||||
})
|
||||
.then((res) => {
|
||||
this.txt_mess = res;
|
||||
this.journal_id = res.journal_id;
|
||||
});
|
||||
},
|
||||
questionSubmit() {
|
||||
if (this.questionform.is_anonymous === '') {
|
||||
this.$message.error('Please choose disclose your name or remain anonymous.');
|
||||
return false;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$refs.question.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code === 0) {
|
||||
this.$message.success('Success!!');
|
||||
this.$router.push('/per_text_success');
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.jouLink {
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
451
src/components/page/components/reviewArticle/new.vue
Normal file
451
src/components/page/components/reviewArticle/new.vue
Normal file
@@ -0,0 +1,451 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-form :model="questionform" :rules="rules" 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="24">
|
||||
<el-form-item label="1.Originality of the topic" prop="xx">
|
||||
<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="24">
|
||||
<el-form-item label="2.Importance in its Field" prop="xx">
|
||||
<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-collapse>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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-col>
|
||||
</el-collapse>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="4.English language" prop="xx">
|
||||
<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-row>
|
||||
|
||||
<el-collapse>
|
||||
<el-form-item label="5.Does the title represent manuscript's contents?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<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="20">
|
||||
<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-collapse>
|
||||
<el-form-item label="6.Is the Abstract accurate and concise?" prop="xx">
|
||||
<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="7.Does it highlight the latest advancements and address existing challenges in the current research?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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="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-form-item label="8.Does it cite the most recent and pertinent reference directly related to the research?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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="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-form-item label="9.Materials and Methods: Does the experimental design provide sufficient scientific support for the article?" prop="xx">
|
||||
<p style="width: 100%;" class="titleInfo">e.g., by using diverse cell lines with clear origins, ensuring natural drugs are authenticated, integrating in vitro and in vivo studies, and examining the issue at multiple levels including proteins and nucleic acids</p>
|
||||
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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="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-form-item label="10.Does the experimental design adopt the latest cutting-edge research methods and technologies?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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="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-form-item label="11.Is the appropriate statistical analysis used?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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="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-form-item label="12.Are the Figures or Tables clear, visually appealing, and easy to understand?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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="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-form-item label="13.Is the interpretation reliable (can the results adequately support the conclusions, are the conclusions overstated, and is there any selective reporting of results that could mislead readers)?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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="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-form-item label="14.If there are notable limitations or imperfections in the research, does the author explicitly acknowledge these shortcomings?" prop="xx">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.xx">
|
||||
<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="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-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||
<el-form-item label="Overall the Paper is Rated" prop="rated">
|
||||
( <span style="color: #e41411">←←←←← Bad ←←← Poor</span>
|
||||
<span style="width: 10px; display: inline-block"></span>
|
||||
<span style="color: #369916">Accept → Superior → Excellent</span>)
|
||||
<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">Minor revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="2">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</el-radio>
|
||||
|
||||
|
||||
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="OTHER SPECIFIC CRITICISMS" prop="xx">
|
||||
<el-radio-group v-model="questionform.xx" 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" v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="" v-if="articleId">
|
||||
<common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="Comments for the Authors"
|
||||
prop="comment"
|
||||
v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'"
|
||||
>
|
||||
<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, {{ txt_mess.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-form-item v-if="this.btn_submit == 0">
|
||||
<el-button type="primary" @click="questionSubmit">submit</el-button>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
articleId: null,
|
||||
txt_mess: {},
|
||||
questionform: {
|
||||
rev_qu_id: '',
|
||||
art_rev_id: this.$route.query.Art_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: '',
|
||||
is_anonymous: ''
|
||||
},
|
||||
btn_submit: 0,
|
||||
journal_id: null,
|
||||
rules: {
|
||||
qu6: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
|
||||
recommend: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
xx: [{ required: true, message: 'please select', trigger: 'blur' }]
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
// Fetch article data
|
||||
this.$api
|
||||
.post('api/Reviewer/getartrevdate', {
|
||||
revid: this.Art_id,
|
||||
human: 'reviewer'
|
||||
})
|
||||
.then((res) => {
|
||||
this.txt_mess = res;
|
||||
this.journal_id = res.journal_id;
|
||||
});
|
||||
},
|
||||
questionSubmit() {
|
||||
if (this.questionform.is_anonymous === '') {
|
||||
this.$message.error('Please choose disclose your name or remain anonymous.');
|
||||
return false;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$refs.question.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code === 0) {
|
||||
this.$message.success('Success!!');
|
||||
this.$router.push('/per_text_success');
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.jouLink {
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
}
|
||||
.titleInfo{
|
||||
color: #AAA;
|
||||
line-height: 18px;
|
||||
margin-top: -16px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
</style>
|
||||
337
src/components/page/components/reviewArticle/old.vue
Normal file
337
src/components/page/components/reviewArticle/old.vue
Normal file
@@ -0,0 +1,337 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-form :model="questionform" :rules="rules" 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="24">
|
||||
<el-form-item prop="qu6">
|
||||
<span slot="label">
|
||||
1.Does the manuscript fall within the aim and scope of the journal?
|
||||
<a :href="txt_mess.aim_web" target="_blank" class="jouLink">( Aims & Scope ) </a>
|
||||
</span>
|
||||
<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="2.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="3.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="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-row>
|
||||
|
||||
<el-collapse>
|
||||
<el-form-item label="6.Does the title represent manuscript's contents?">
|
||||
<el-col :span="4">
|
||||
<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="20">
|
||||
<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-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" prop="rated">
|
||||
( <span style="color: #e41411">←←←←← Bad ←←← Poor</span>
|
||||
<span style="width: 10px; display: inline-block"></span>
|
||||
<span style="color: #369916">Accept → Superior → Excellent</span>)
|
||||
<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">Minor revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="2">Major revision</el-radio>
|
||||
<br />
|
||||
|
||||
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
|
||||
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Reject</el-radio>
|
||||
</div>
|
||||
|
||||
<div v-else>
|
||||
<el-radio :label="4">Reject</el-radio>
|
||||
</div>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="Comments for the Authors" v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="" v-if="articleId">
|
||||
<common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="Comments for the Authors"
|
||||
prop="comment"
|
||||
v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'"
|
||||
>
|
||||
<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, {{ txt_mess.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-form-item v-if="this.btn_submit == 0">
|
||||
<el-button type="primary" @click="questionSubmit">submit</el-button>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
articleId: null,
|
||||
txt_mess: {},
|
||||
questionform: {
|
||||
rev_qu_id: '',
|
||||
art_rev_id: this.$route.query.Art_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: '',
|
||||
is_anonymous: ''
|
||||
},
|
||||
btn_submit: 0,
|
||||
journal_id: null,
|
||||
rules: {
|
||||
qu6: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
|
||||
recommend: [{ required: true, message: 'please select', trigger: 'blur' }]
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
// Fetch article data
|
||||
this.$api
|
||||
.post('api/Reviewer/getartrevdate', {
|
||||
revid: this.Art_id,
|
||||
human: 'reviewer'
|
||||
})
|
||||
.then((res) => {
|
||||
this.txt_mess = res;
|
||||
this.journal_id = res.journal_id;
|
||||
});
|
||||
},
|
||||
questionSubmit() {
|
||||
if (this.questionform.is_anonymous === '') {
|
||||
this.$message.error('Please choose disclose your name or remain anonymous.');
|
||||
return false;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$refs.question.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code === 0) {
|
||||
this.$message.success('Success!!');
|
||||
this.$router.push('/per_text_success');
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.jouLink {
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
@@ -92,7 +92,8 @@
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card" v-if="this.add_apply == 0">
|
||||
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
|
||||
<common-review-article></common-review-article>
|
||||
<!-- <el-form :model="questionform" :rules="rules" 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="24">
|
||||
@@ -277,29 +278,19 @@
|
||||
<br />
|
||||
<el-radio :label="2">Major revision</el-radio>
|
||||
<br />
|
||||
<!-- TMR BMEC MDM .-->
|
||||
|
||||
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
|
||||
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Reject</el-radio>
|
||||
</div>
|
||||
<!-- 其他期刊 -->
|
||||
|
||||
<div v-else>
|
||||
<el-radio :label="4">Reject</el-radio>
|
||||
</div>
|
||||
</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"
|
||||
v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'"
|
||||
@@ -354,7 +345,7 @@
|
||||
<el-button type="primary" @click="questionSubmit">submit</el-button>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</el-form> -->
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
@@ -206,29 +206,9 @@
|
||||
></b>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="Research areas" width="300">
|
||||
<el-table-column label="Research areas" width="310">
|
||||
<template slot-scope="scope">
|
||||
<div
|
||||
@click="BoxMajor(scope.row, majorData[scope.row.user_id])"
|
||||
v-if="scope.row.user_id"
|
||||
style="display: flex; align-items: center; justify-content: space-between; cursor: pointer"
|
||||
>
|
||||
<!-- 使用 user_id 来获取用户的 majorData -->
|
||||
<div>
|
||||
<div v-if="majorData[scope.row.user_id]" class="majorDataBox">
|
||||
<p v-for="(v, i) in majorData[scope.row.user_id]" style="border-top: 1px solid #b3d8ff">
|
||||
<span style="font-weight: bold">{{ i + 1 }}.</span>
|
||||
{{ v.major_title.replace('Medicine >', '').trim() }}
|
||||
</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span>Loading...</span>
|
||||
<!-- 如果数据还在加载,显示 "Loading..." -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<b style="margin-left: 10px; color: #006699" class="el-icon-edit"></b>
|
||||
</div>
|
||||
<commonMajorTableList :user_id="scope.row.user_id" :baseInfo="scope.row" :key="scope.row.user_id"></commonMajorTableList>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -496,9 +476,11 @@
|
||||
const currentYear = new Date().getFullYear();
|
||||
var ReviewTime = `(${currentYear - 2}–${currentYear})`;
|
||||
import commonReviewer from '../page/components/reviewerList/add.vue';
|
||||
import commonMajorTableList from '../page/components/major/tableList.vue';
|
||||
export default {
|
||||
components: {
|
||||
commonReviewer
|
||||
commonReviewer,
|
||||
commonMajorTableList,
|
||||
},
|
||||
|
||||
data() {
|
||||
@@ -778,7 +760,7 @@ export default {
|
||||
if (res.code == 0) {
|
||||
this.tableData = res.data;
|
||||
for (var i = 0; i < this.tableData.length; i++) {
|
||||
this.fetchMajorData(this.tableData[i].user_id); // 加载第一个用户的数据
|
||||
// this.fetchMajorData(this.tableData[i].user_id); // 加载第一个用户的数据
|
||||
this.getScoreData(i, this.tableData[i].score);
|
||||
}
|
||||
this.link_Total = res.total || 0;
|
||||
|
||||
@@ -138,6 +138,8 @@ Vue.component("Editor", Editor);
|
||||
|
||||
import commonTable from '@/components/page/components/table/table.vue'
|
||||
Vue.component('common-table', commonTable);
|
||||
import commonReviewArticle from '@/components/page/components/reviewArticle/index.vue'
|
||||
Vue.component('common-review-article', commonReviewArticle);
|
||||
import commonLateX from '@/components/page/components/table/LateX.vue'
|
||||
Vue.component('common-late-x', commonLateX);
|
||||
import commonMajor from '@/components/page/components/major/index.vue'
|
||||
|
||||
Reference in New Issue
Block a user