1
This commit is contained in:
19
src/App.vue
19
src/App.vue
@@ -1,10 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<router-view></router-view>
|
<router-view></router-view>
|
||||||
</div>
|
<!-- <keep-alive>
|
||||||
|
<router-view v-if="$route.meta.keepAlive"></router-view>
|
||||||
|
</keep-alive>
|
||||||
|
<router-view v-if="!$route.meta.keepAlive"></router-view> -->
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<style>
|
<style>
|
||||||
@import "./assets/css/main.css";
|
@import "./assets/css/main.css";
|
||||||
@import "./assets/css/color-dark.css"; /*深色主题*/
|
@import "./assets/css/color-dark.css";
|
||||||
/*@import "./assets/css/theme-green/color-green.css"; 浅绿色主题*/
|
/*深色主题*/
|
||||||
</style>
|
/*@import "./assets/css/theme-green/color-green.css"; 浅绿色主题*/
|
||||||
|
</style>
|
||||||
|
|||||||
BIN
src/assets/css/Charisb.ttf
Normal file
BIN
src/assets/css/Charisb.ttf
Normal file
Binary file not shown.
@@ -13,8 +13,11 @@ body,
|
|||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif;
|
/* font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif;
|
||||||
font-family: 'Noto Sans', sans-serif;
|
font-family: 'Noto Sans', sans-serif; */
|
||||||
|
word-wrap: break-word;
|
||||||
|
word-break: normal;
|
||||||
|
font-family: "Helvetica Neue For Number", "Elsevier Gulliver", Georgia, serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@@ -261,13 +264,619 @@ a {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 欢迎句 */
|
/* 欢迎句 */
|
||||||
.mes_alert{
|
.mes_alert {
|
||||||
background-color: #e1edf3 !important;
|
background-color: #e1edf3 !important;
|
||||||
padding: 12px 20px 12px 12px !important;
|
padding: 12px 20px 12px 12px !important;
|
||||||
color: #006699 !important;
|
color: #006699 !important;
|
||||||
font-size: 14px !important;
|
font-size: 14px !important;
|
||||||
}
|
}
|
||||||
.mes_alert .el-alert__description{
|
|
||||||
|
.mes_alert .el-alert__description {
|
||||||
color: #006699 !important;
|
color: #006699 !important;
|
||||||
font-size: 13px !important;
|
font-size: 13px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* 编辑分步骤稿件流程 */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Helvetica Neue For Number';
|
||||||
|
src: url(Charisb.ttf);
|
||||||
|
unicode-range: U+30-39;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container_state {
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0 15px 15px 15px;
|
||||||
|
color: #333;
|
||||||
|
min-width: 800px;
|
||||||
|
font-size: 14px;
|
||||||
|
/* font-family: NexusSans, Arial, Helvetica, Lucida Sans Unicode, Microsoft Sans Serif, Segoe UI Symbol, STIXGeneral, Cambria Math, Arial Unicode MS, sans-serif; */
|
||||||
|
font-family: "Helvetica Neue For Number", "Elsevier Gulliver", Georgia, serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_text {
|
||||||
|
font-family: "Helvetica Neue For Number", "Elsevier Gulliver", Georgia, serif;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 10px 15px 25px 15px;
|
||||||
|
line-height: 19px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_text>p:nth-child(1) b {
|
||||||
|
color: #006699;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.art_state_ {
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message>h3,
|
||||||
|
.art_file>h3,
|
||||||
|
.art_state_repet>h3,
|
||||||
|
.art_state_remark>h3,
|
||||||
|
.art_revlist>h3,
|
||||||
|
.art_reviewer>h3,
|
||||||
|
.art_state_btn>h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
margin: 5px 0 30px 0;
|
||||||
|
letter-spacing: -0.8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_repet>h3,
|
||||||
|
.art_state_btn>h3,
|
||||||
|
.art_reviewer>h3 {
|
||||||
|
color: #006699;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message {
|
||||||
|
margin: 0 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message .auth_mess {
|
||||||
|
margin: 0 0 0 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message .auth_mess h4 {
|
||||||
|
margin: 0 0 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message .auth_mess>div {
|
||||||
|
margin: 0 0 15px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message .auth_mess>div p {
|
||||||
|
margin: 0 0 3px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message p {
|
||||||
|
margin: 0 0 15px 30px;
|
||||||
|
line-height: 22px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message p>font {
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message p>b {
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0 0 0 5px;
|
||||||
|
word-wrap: break-word;
|
||||||
|
word-break: normal;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message>div.art_state_message_id {
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
padding: 0 0 15px 5px;
|
||||||
|
margin: 0 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.art_state_message .det_cssep {
|
||||||
|
background-color: #006699;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 12px;
|
||||||
|
margin: 0 0 0 15px;
|
||||||
|
padding: 2px 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_message .det_cssep:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth_colla {
|
||||||
|
margin: 0 0 15px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.auth_colla .el-collapse-item__arrow {
|
||||||
|
position: absolute;
|
||||||
|
left: 45px;
|
||||||
|
color: #006699;
|
||||||
|
font-weight: bolder;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth_colla .el-collapse-item__header {
|
||||||
|
padding-left: 30px;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth_colla_new .el-collapse-item__arrow {
|
||||||
|
left: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.editor_tree {
|
||||||
|
margin: 20px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor_tree .el-timeline-item__node--large {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor_tree .el-timeline-item__wrapper {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor_tree .el-timeline-item__timestamp.is-top {
|
||||||
|
padding-top: 10px;
|
||||||
|
margin: 0 0 13px 45px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor_tree .el-timeline-item__content {
|
||||||
|
margin: 10px 0 0 45px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor_tree .el-timeline-item__tail {
|
||||||
|
height: auto;
|
||||||
|
bottom: 15px;
|
||||||
|
top: 45px;
|
||||||
|
border-left: 3px solid #E4E7ED;
|
||||||
|
/* border-left: 2px solid #66a3c2; */
|
||||||
|
left: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor_tree p>font>b {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion,
|
||||||
|
.kuang_tracking {
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 5px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion {
|
||||||
|
margin: 0 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_tracking {}
|
||||||
|
|
||||||
|
.kuang_communtion>h2,
|
||||||
|
.kuang_tracking>h2 {
|
||||||
|
font-size: 18px;
|
||||||
|
margin: 0 0 15px 0;
|
||||||
|
letter-spacing: -0.8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion>h2>a {
|
||||||
|
float: right;
|
||||||
|
background-color: rgb(0, 102, 153);
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 2px 5px;
|
||||||
|
font-weight: normal;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion>h2>a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion .kuang_communtion_conmt {
|
||||||
|
max-height: 350px;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion_input {
|
||||||
|
margin-top: 40px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion_input>p {
|
||||||
|
position: absolute;
|
||||||
|
height: 1px;
|
||||||
|
background-color: #dcdfe6;
|
||||||
|
top: -25px;
|
||||||
|
left: -12px;
|
||||||
|
right: -12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion_input>div.kuang_communtion_input_text {
|
||||||
|
color: #aaa;
|
||||||
|
font-size: 12px;
|
||||||
|
position: relative;
|
||||||
|
margin: 0 65px 0 0;
|
||||||
|
padding: 8px 0 0 0;
|
||||||
|
line-height: 16px;
|
||||||
|
letter-spacing: -0.8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kuang_communtion_input>div>button {
|
||||||
|
position: absolute;
|
||||||
|
top: 8px;
|
||||||
|
right: -65px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file {
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
padding: 20px 0 0 0;
|
||||||
|
margin: 25px 0 0 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.art_file>h4 {
|
||||||
|
margin: 10px 0 5px 0;
|
||||||
|
float: left;
|
||||||
|
width: 116px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file>p {
|
||||||
|
margin: 6px 0 0 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file>p>a {
|
||||||
|
color: #333;
|
||||||
|
display: block;
|
||||||
|
margin: 0 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file>p>a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file>p>a>img {
|
||||||
|
width: 15px;
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
margin: 0 10px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file>p>a>span>font {
|
||||||
|
color: #888;
|
||||||
|
margin: 0 5px 0 0;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file>p>a>span>i {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #888;
|
||||||
|
margin: 0 0 0 15px;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file>p>a>span>i>i {
|
||||||
|
margin: 0 8px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file .download{
|
||||||
|
font-weight: bold;
|
||||||
|
color: #75abf1;
|
||||||
|
margin: 0 0 0 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_revlist {
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
padding: 20px 0 0 0;
|
||||||
|
margin: 10px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_reviewer {
|
||||||
|
margin: 15px 0 20px 0;
|
||||||
|
padding: 0 0 10px 0;
|
||||||
|
border-bottom: 1px solid #cce7f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.talk_aued {
|
||||||
|
width: 85%;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.talk_aued>p {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.talk_aued>.el-card {
|
||||||
|
margin: 8px 0 0 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.talk_aued>b {
|
||||||
|
display: block;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 12px;
|
||||||
|
margin: 2px 0 0 0;
|
||||||
|
text-align: right;
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.talk_aued .el-card__body {
|
||||||
|
padding: 6px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.talk_edit {
|
||||||
|
margin-left: 15%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.talk_edit>p {
|
||||||
|
text-align: right;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.art_caozuo_ {
|
||||||
|
border: 1px solid #cce7f3;
|
||||||
|
background-color: #eef6fb;
|
||||||
|
margin-top: 30px;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 5px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file_btn {}
|
||||||
|
|
||||||
|
.art_file_btn .btn_remarks {
|
||||||
|
display: inline-block;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
margin: 0 20px 0 0;
|
||||||
|
padding: 8px 12px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-weight: bolder;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_file_btn .art_file_btn_text {
|
||||||
|
line-height: 18px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #888;
|
||||||
|
margin: 20px 0 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.art_state_repet {
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
padding: 0 0 25px 0;
|
||||||
|
border-bottom: 1px solid #cce7f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_repet>p {
|
||||||
|
margin: -10px 0 0 30px;
|
||||||
|
line-height: 18px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_repet>p>b {
|
||||||
|
margin: 0 0 0 15px;
|
||||||
|
font-size: 20px;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_repet>p>img {
|
||||||
|
width: 15px;
|
||||||
|
vertical-align: baseline;
|
||||||
|
margin: 0 0 0 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.art_state_btn {
|
||||||
|
border-radius: 5px;
|
||||||
|
margin: 10px 0 5px 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div {
|
||||||
|
display: inline-block;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
border-radius: 5px;
|
||||||
|
margin: 0 20px 0 0;
|
||||||
|
padding: 8px 12px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bolder;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div:nth-last-child(1) {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t1 {
|
||||||
|
background-color: #f75822;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t1:hover {
|
||||||
|
background-color: #c1451b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t2 {
|
||||||
|
background-color: #0ebee1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t2:hover {
|
||||||
|
background-color: #0c92ad;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t3 {
|
||||||
|
background-color: #f3170f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t3:hover {
|
||||||
|
background-color: #d31d16;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t4 {
|
||||||
|
background-color: #5a90e1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t4:hover {
|
||||||
|
background-color: #4a73b1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t5 {
|
||||||
|
background-color: #91cc75;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t5:hover {
|
||||||
|
background-color: #73a35c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t6 {
|
||||||
|
background-color: #27727B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div.a_s_t6:hover {
|
||||||
|
background-color: #1a4e54;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_btn div i {
|
||||||
|
margin: 0 8px 0 0;
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_caozuo_ div.btn_remarks {
|
||||||
|
position: absolute;
|
||||||
|
right: -22px;
|
||||||
|
top: -2px;
|
||||||
|
font-size: 13px;
|
||||||
|
background-color: #006699;
|
||||||
|
border-radius: 0px;
|
||||||
|
border-top-right-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_caozuo_ div.btn_remarks:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
background-color: #045883;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_remark {
|
||||||
|
margin: 30px 0 0 0;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_remark>div {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #888;
|
||||||
|
margin: -10px 0 35px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_state_remark>p {
|
||||||
|
line-height: 24px;
|
||||||
|
margin: -10px 0 0 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.art_state_remark img {
|
||||||
|
width: 15px;
|
||||||
|
vertical-align: baseline;
|
||||||
|
margin: 0 0 0 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rev_list {
|
||||||
|
margin: 0 0 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rev_list>p {
|
||||||
|
margin: 0 0 15px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.rev_list>p>a {
|
||||||
|
margin: 0 0 0 20px;
|
||||||
|
color: #006699;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rev_list>p>a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rev_list>p>a>i {
|
||||||
|
margin: 0 5px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.revi_tab_sty th {
|
||||||
|
background-color: #f5f7fa !important;
|
||||||
|
color: #006699 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.revi_pag_sty.is-background .el-pager li:not(.disabled).active {
|
||||||
|
background-color: #e4eaf3 !important;
|
||||||
|
color: #006699 !important;
|
||||||
|
border: 1px solid #e5e6e9 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.revi_tab_sty .rev_lise {
|
||||||
|
color: #006699;
|
||||||
|
font-weight: bold;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.revi_tab_sty .rev_lise:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add_revi {
|
||||||
|
background-color: #f5f7fa !important;
|
||||||
|
border-color: #e5e6e9 !important;
|
||||||
|
color: #006699 !important;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add_revi i {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add_revi:hover {
|
||||||
|
text-decoration: underline !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text_upload_tip {
|
||||||
|
display: inline-block;
|
||||||
|
line-height: 32px;
|
||||||
|
margin: 0 0 0 15px;
|
||||||
|
color: #888 !important;
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
}
|
||||||
|
|||||||
BIN
src/assets/img/liucheng.png
Normal file
BIN
src/assets/img/liucheng.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 66 KiB |
BIN
src/assets/img/right_band.png
Normal file
BIN
src/assets/img/right_band.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 411 B |
BIN
src/assets/img/state_edt.png
Normal file
BIN
src/assets/img/state_edt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 582 B |
BIN
src/assets/img/state_email.png
Normal file
BIN
src/assets/img/state_email.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 793 B |
BIN
src/assets/img/state_one.png
Normal file
BIN
src/assets/img/state_one.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
@@ -85,6 +85,7 @@
|
|||||||
<i class="el-icon-caret-bottom"></i>
|
<i class="el-icon-caret-bottom"></i>
|
||||||
</span>
|
</span>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<!-- <el-dropdown-item divided command="personcenter">Personal Center</el-dropdown-item> -->
|
||||||
<el-dropdown-item divided command="loginout">{{ $t('system.loyout') }}</el-dropdown-item>
|
<el-dropdown-item divided command="loginout">{{ $t('system.loyout') }}</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
@@ -162,6 +163,11 @@
|
|||||||
methods: {
|
methods: {
|
||||||
// 用户名下拉菜单选择事件
|
// 用户名下拉菜单选择事件
|
||||||
handleCommand(command) {
|
handleCommand(command) {
|
||||||
|
// 个人中心
|
||||||
|
if (command == 'personcenter') {
|
||||||
|
this.$router.push('/percenter');
|
||||||
|
}
|
||||||
|
// 退出系统
|
||||||
if (command == 'loginout') {
|
if (command == 'loginout') {
|
||||||
localStorage.removeItem('U_role');
|
localStorage.removeItem('U_role');
|
||||||
localStorage.removeItem('U_id');
|
localStorage.removeItem('U_id');
|
||||||
@@ -319,7 +325,7 @@
|
|||||||
float: left;
|
float: left;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header .logo p {
|
.header .logo p {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|||||||
@@ -99,6 +99,8 @@
|
|||||||
</el-submenu>
|
</el-submenu>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 分角色链接 -->
|
||||||
<template v-if="this.userrole == 0">
|
<template v-if="this.userrole == 0">
|
||||||
<el-menu-item>
|
<el-menu-item>
|
||||||
<a href="http://boss.tmrjournals.com/#/publition?Act=123" target="_blank" style="color: #bfcbd9;">
|
<a href="http://boss.tmrjournals.com/#/publition?Act=123" target="_blank" style="color: #bfcbd9;">
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ const en = {
|
|||||||
state3: 'Reject',
|
state3: 'Reject',
|
||||||
state4: 'Revision',
|
state4: 'Revision',
|
||||||
state5: 'Accepted ',
|
state5: 'Accepted ',
|
||||||
state6: 'fininal decision',
|
state6: 'Fininal decision',
|
||||||
act1: 'Dealing',
|
act1: 'Dealing',
|
||||||
act2: 'Finished'
|
act2: 'Finished'
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -101,12 +101,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="join_link" v-if="this.usercap.includes('editor')">
|
<div class="join_link" v-if="this.usercap.includes('editor')">
|
||||||
<!-- 意见反馈,联系我们 -->
|
<!-- 意见反馈,联系我们 -->
|
||||||
<p>
|
<el-card style="width:100%;margin-top: 20px;" class="new_scard">
|
||||||
<font style="float: left;">Contact Us</font>
|
<div slot="header" class="clearfix">
|
||||||
<b style="color: #606266;line-height: 20px;font-size: 13px;float: left;margin-left: 20px;cursor: unset;">New
|
<span>Contact Us</span>
|
||||||
Zealand <br>Telephone:
|
</div>
|
||||||
+64 02108293806 <br>Email: publisher@tmrjournals.com </b>
|
<p>New Zealand</p>
|
||||||
</p>
|
<p><b style="color: #666;font-size: 14px;cursor: text;">Telephone :</b> +64 02108293806</p>
|
||||||
|
<p><b style="color: #666;font-size: 14px;cursor: text;">Email:</b> publisher@tmrjournals.com</p>
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
@@ -128,13 +130,6 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="9">
|
<el-col :span="9">
|
||||||
<div v-if="!this.usercap.includes('editor')">
|
|
||||||
<el-link type="primary" href="/authorApplyReviewer" v-if="this.userrole != 0">
|
|
||||||
<div class="join_bth">
|
|
||||||
Apply to join the reviewer team
|
|
||||||
</div>
|
|
||||||
</el-link>
|
|
||||||
</div>
|
|
||||||
<div class="join_link" v-if="!this.usercap.includes('editor')">
|
<div class="join_link" v-if="!this.usercap.includes('editor')">
|
||||||
<!-- 如果你想投稿 请点击 -->
|
<!-- 如果你想投稿 请点击 -->
|
||||||
<p v-if="this.usercap.includes('author')" style="white-space:nowrap">Click to <img src="../../assets/img/icon_9.png"
|
<p v-if="this.usercap.includes('author')" style="white-space:nowrap">Click to <img src="../../assets/img/icon_9.png"
|
||||||
@@ -176,6 +171,13 @@
|
|||||||
Zealand <br>Telephone:
|
Zealand <br>Telephone:
|
||||||
+64 02108293806 <br>Email: publisher@tmrjournals.com </b>
|
+64 02108293806 <br>Email: publisher@tmrjournals.com </b>
|
||||||
</p> -->
|
</p> -->
|
||||||
|
<div v-if="!this.usercap.includes('editor')">
|
||||||
|
<el-link type="primary" href="/authorApplyReviewer" v-if="this.userrole != 0">
|
||||||
|
<div class="join_bth">
|
||||||
|
Apply to join the reviewer team
|
||||||
|
</div>
|
||||||
|
</el-link>
|
||||||
|
</div>
|
||||||
<el-card style="width:400px;margin-top: 30px;" class="new_scard">
|
<el-card style="width:400px;margin-top: 30px;" class="new_scard">
|
||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>Contact Us</span>
|
<span>Contact Us</span>
|
||||||
@@ -186,6 +188,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<!--<el-col :span="12">
|
<!--<el-col :span="12">
|
||||||
@@ -324,7 +327,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.top-content span {
|
.top-content span {
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
/* font-family: Arial, Helvetica, sans-serif; */
|
||||||
display: block;
|
display: block;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|||||||
@@ -451,6 +451,9 @@
|
|||||||
}, {
|
}, {
|
||||||
name: 'PROTOCOL',
|
name: 'PROTOCOL',
|
||||||
value: 'PT'
|
value: 'PT'
|
||||||
|
}, {
|
||||||
|
name: 'CASE SERIES',
|
||||||
|
value: 'CS',
|
||||||
}, {
|
}, {
|
||||||
name: 'OTHERS',
|
name: 'OTHERS',
|
||||||
value: 'O',
|
value: 'O',
|
||||||
|
|||||||
@@ -416,6 +416,9 @@
|
|||||||
case 'PT':
|
case 'PT':
|
||||||
frag = 'PROTOCOL';
|
frag = 'PROTOCOL';
|
||||||
break;
|
break;
|
||||||
|
case 'CS':
|
||||||
|
frag = 'CASE SERIES';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
frag = 'OTHERS';
|
frag = 'OTHERS';
|
||||||
}
|
}
|
||||||
@@ -670,7 +673,9 @@
|
|||||||
},
|
},
|
||||||
quetrans() {
|
quetrans() {
|
||||||
if (confirm('Your sure transfer your manuscript?')) {
|
if (confirm('Your sure transfer your manuscript?')) {
|
||||||
this.$api.post('api/article/trans_manu', this.transinfo).then((res) => {
|
this.$api
|
||||||
|
.post('api/article/trans_manu', this.transinfo)
|
||||||
|
.then((res) => {
|
||||||
this.$message.success('success');
|
this.$message.success('success');
|
||||||
this.$router.go(0);
|
this.$router.go(0);
|
||||||
});
|
});
|
||||||
@@ -830,7 +835,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.top-content span {
|
.top-content span {
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
/* font-family: Arial, Helvetica, sans-serif; */
|
||||||
display: block;
|
display: block;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
<div class="form-box" v-loading="loading">
|
<div class="form-box" v-loading="loading">
|
||||||
<el-form ref="articleform" :model="form" label-width="200px">
|
<el-form ref="articleform" :model="form" label-width="140px">
|
||||||
<el-form-item label="Status">
|
<el-form-item label="Status">
|
||||||
<span>{{articleState}}</span>
|
<span>{{articleState}}</span>
|
||||||
<el-button style="margin-left:10px;" type="text" @click="testvis" icon="el-icon-edit">change</el-button>
|
<el-button style="margin-left:10px;" type="text" @click="testvis" icon="el-icon-edit">change</el-button>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<span>{{form.repetition}}%</span>
|
<span>{{form.repetition}}%</span>
|
||||||
<el-button style="margin-left:10px;" type="text" @click="changeRepe" icon="el-icon-edit">change</el-button>
|
<el-button style="margin-left:10px;" type="text" @click="changeRepe" icon="el-icon-edit">change</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="form.accept_sn != ''" label="Manusript ID">
|
<el-form-item v-if="form.accept_sn != ''" label="Manuscript ID">
|
||||||
<span>{{form.accept_sn}}</span>
|
<span>{{form.accept_sn}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Journal">
|
<el-form-item label="Journal">
|
||||||
@@ -255,7 +255,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog title="edit" :visible.sync="editVisible" width="40%" v-loading="loading1">
|
<el-dialog title="edit" :visible.sync="editVisible" width="40%" v-loading="loading1">
|
||||||
<el-form ref="editform" :model="editform" label-width="80px">
|
<el-form ref="editform" :model="editform" label-width="90px">
|
||||||
<el-form-item label="state">
|
<el-form-item label="state">
|
||||||
<el-select v-model="editform.state" placeholder="Please select">
|
<el-select v-model="editform.state" placeholder="Please select">
|
||||||
<el-option v-for="item in items" :key="item.state" :label="item.title" :value="item.state" :disabled="item.disabled"></el-option>
|
<el-option v-for="item in items" :key="item.state" :label="item.title" :value="item.state" :disabled="item.disabled"></el-option>
|
||||||
@@ -267,7 +267,7 @@
|
|||||||
<el-option v-for="item in journals" :key="item.journal_id" :label="item.title" :value="item.journal_id" :disabled="item.journal_id==form.journal"></el-option>
|
<el-option v-for="item in journals" :key="item.journal_id" :label="item.title" :value="item.journal_id" :disabled="item.journal_id==form.journal"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="editormsg">
|
<el-form-item label="editor msg">
|
||||||
<el-input type="textarea" rows="5" v-model="editform.editormsg" placeholder="feedback information"></el-input>
|
<el-input type="textarea" rows="5" v-model="editform.editormsg" placeholder="feedback information"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@@ -459,6 +459,9 @@
|
|||||||
case 'PT':
|
case 'PT':
|
||||||
frag = 'PROTOCOL';
|
frag = 'PROTOCOL';
|
||||||
break;
|
break;
|
||||||
|
case 'CS':
|
||||||
|
frag = 'CASE SERIES';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
frag = 'OTHERS';
|
frag = 'OTHERS';
|
||||||
}
|
}
|
||||||
@@ -784,7 +787,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.el-row {
|
.el-row {
|
||||||
border-bottom: rgb(230, 211, 211) solid 1px;
|
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
line-height: 3.5;
|
line-height: 3.5;
|
||||||
}
|
}
|
||||||
|
|||||||
621
src/components/page/articleDetailEditor_a.vue
Normal file
621
src/components/page/articleDetailEditor_a.vue
Normal file
@@ -0,0 +1,621 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="crumbs">
|
||||||
|
<el-breadcrumb separator="/">
|
||||||
|
<el-breadcrumb-item>
|
||||||
|
<i class="el-icon-lx-calendar"></i> Manuscript Received
|
||||||
|
</el-breadcrumb-item>
|
||||||
|
</el-breadcrumb>
|
||||||
|
</div>
|
||||||
|
<div class="art_state_text">
|
||||||
|
<p style="margin-bottom: 10px;">
|
||||||
|
Dear editor, this manuscript (<b>{{form.accept_sn}}</b>) was submitted by the author (uploader: <b>{{form.username}}</b>)
|
||||||
|
at <b>19:00 New Zealand time {{formatDateNewCHz(form.ctime)}}</b> to the journal <b>{{journal_me}}</b>.
|
||||||
|
Please check the content of the manuscript and start the process.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<b>On this page</b>
|
||||||
|
<br />1. You need to check whether the manuscript subject and type are within the scope of the journal.
|
||||||
|
<br />2. You need to check the plagiarism rate.
|
||||||
|
<br />3. You need to make sure the manuscript meets the ethical guidelines of the Committee on Publication
|
||||||
|
Ethics
|
||||||
|
(COPE).
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="container_state" v-loading="loading">
|
||||||
|
<el-row :gutter="30">
|
||||||
|
<el-col :span="24">
|
||||||
|
<div class="art_state_">
|
||||||
|
<div class="art_state_message">
|
||||||
|
<div class="art_state_message_id">
|
||||||
|
ID : <b style="margin-right: 60px;">{{form.accept_sn}}</b>
|
||||||
|
Status : <b>{{articleState}}</b>
|
||||||
|
</div>
|
||||||
|
<h3>Basic information</h3>
|
||||||
|
<p>
|
||||||
|
<font>Title :</font><b>{{form.title}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Type :</font><b>{{myType}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-show="form.type=='A'">
|
||||||
|
<font>Ethical Approval :</font><b>{{form.approval?'Yes':'No'}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Journal :</font><b>{{journal_me}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="form.special_num > 0">
|
||||||
|
<font>Special Issues :</font><b>{{ form.special_title }}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Major :</font><b>{{form.major}}</b>
|
||||||
|
</p>
|
||||||
|
<el-collapse v-model="activeNames" class="auth_colla">
|
||||||
|
<el-collapse-item :title="authorList_name" name="1">
|
||||||
|
<div v-for="(item, index) in form.authorList" class="auth_mess">
|
||||||
|
<h4 style="font-weight: bolder;">
|
||||||
|
<img src="../../assets/img/state_one.png" v-if="item.isSuper" style="width: 15px;margin: 0 2px 0 0;vertical-align: text-bottom;">
|
||||||
|
{{item.firstname}} {{item.lastname}} {{item.isSuper?'#':''}}{{item.isReport?'*':''}}
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<p v-if="item.email">
|
||||||
|
<img src="../../assets/img/state_email.png" v-if="item.isReport" style="width: 14px;margin: 0 8px 0 0;vertical-align: text-bottom;">
|
||||||
|
<font>Email : </font>{{item.email}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.orcid">
|
||||||
|
<font>ORCID iD : </font>{{item.orcid}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>First author : </font>
|
||||||
|
<b v-if="item.isSuper">Yes</b>
|
||||||
|
<b v-if="!item.isSuper">No</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Corresponding Author :</font>
|
||||||
|
<b v-if="item.isReport">Yes</b>
|
||||||
|
<b v-if="!item.isReport">No</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="item.address">
|
||||||
|
<font>Address : </font>{{item.address}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.company">
|
||||||
|
<font>Institution : </font>{{item.company}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.department">
|
||||||
|
<font>Department : </font>{{item.department}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.title">
|
||||||
|
<font>Title : </font>{{item.title}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.country">
|
||||||
|
<font>Country : </font>{{item.country}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
<p>
|
||||||
|
<font>Abstrart :</font><b>{{form.abstrart}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>KeyWords :</font><b>{{form.keyWords}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="form.fund">
|
||||||
|
<font>Fund :</font><b>{{form.fund}}</b>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="art_file">
|
||||||
|
<h3 style="margin-bottom: 20px;">Files</h3>
|
||||||
|
<h4 v-if="coverLetterFileList">Cover letter : </h4>
|
||||||
|
<p v-if="coverLetterFileList">
|
||||||
|
<a v-for="item in coverLetterFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both" v-if="coverLetterFileList">
|
||||||
|
<h4 v-if="picturesAndTablesFileList">Figures : </h4>
|
||||||
|
<p v-if="picturesAndTablesFileList">
|
||||||
|
<a v-for="item in picturesAndTablesFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both" v-if="picturesAndTablesFileList">
|
||||||
|
<h4>Title page : </h4>
|
||||||
|
<p>
|
||||||
|
<a v-for="item in totalpageFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both">
|
||||||
|
<h4>Manuscirpt : </h4>
|
||||||
|
<p>
|
||||||
|
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="art_caozuo_">
|
||||||
|
<div class="art_state_repet">
|
||||||
|
<h3>Repetition rate check</h3>
|
||||||
|
<p>
|
||||||
|
Dear editor
|
||||||
|
<br>According to the rules of ICMJE and COPE, you need to check the plagiarism rate of the manuscript.
|
||||||
|
<br>The manuscripts or papers in which the plagiarism is detected are handled based on the extent of the
|
||||||
|
plagiarism.
|
||||||
|
<br><30% Plagiarism: The manuscript will be given an ID and the manuscript is sent to the author for content
|
||||||
|
revision.
|
||||||
|
<br>>30% Plagiarism: The manuscript will be rejected without review. The authors are advised to revise the
|
||||||
|
<br>manuscript and resubmit the manuscript.
|
||||||
|
</p>
|
||||||
|
<el-form ref="repetition" :model="repeform" label-width="150px" style="margin: 20px 0 0 15px;">
|
||||||
|
<el-form-item label="Repetition Content :">
|
||||||
|
<el-input maxlength="3" style="width:100px;" v-model="repeform.repefen">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Zip :">
|
||||||
|
<el-upload class="upload-demo" :action="upload_zip" accept=".rar, .zip" name="repezip" :on-success="upSuccess_repezip"
|
||||||
|
:limit="1" :on-exceed="alertlimit" :on-remove="removefilerepezip">
|
||||||
|
<div class="el-upload__text" style="padding:0 5px;">
|
||||||
|
<em>Click Upload</em>
|
||||||
|
</div>
|
||||||
|
<div class="el-upload__tip text_upload_tip" slot="tip">Only pdf and word files can be uploaded(.pdf,.doc,.docx)</div>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-button type="primary" @click="saveRepe" style="margin: 0 0 0 165px;">Save</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="art_state_btn">
|
||||||
|
<h3>Please click the button to choose the next step following the editorial workflow.</h3>
|
||||||
|
<div class="a_s_t1" @click="testvis(1)">
|
||||||
|
With editor
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseUrl: this.Common.baseUrl,
|
||||||
|
mediaUrl: this.Common.mediaUrl,
|
||||||
|
items: '',
|
||||||
|
|
||||||
|
loading: false,
|
||||||
|
editVisible: false,
|
||||||
|
editbox: false,
|
||||||
|
reverse: false,
|
||||||
|
dialogFormVisible: false,
|
||||||
|
editortVisible: false,
|
||||||
|
questionform: {},
|
||||||
|
coverLetterFileList: [],
|
||||||
|
picturesAndTablesFileList: [],
|
||||||
|
totalpageFileList: [],
|
||||||
|
manuscirptFileList: [],
|
||||||
|
authorList_name: '',
|
||||||
|
review_Data: [],
|
||||||
|
Total_review: 0,
|
||||||
|
msgform: {
|
||||||
|
username: localStorage.getItem('U_name'),
|
||||||
|
article_id: this.$route.query.id,
|
||||||
|
ad_content: ''
|
||||||
|
},
|
||||||
|
query_review: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
editform: {
|
||||||
|
editname: localStorage.getItem('U_name'),
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
state: 0,
|
||||||
|
trsjournal: 0,
|
||||||
|
editormsg: ''
|
||||||
|
},
|
||||||
|
repeform: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
repefen: '',
|
||||||
|
zipurl: ''
|
||||||
|
},
|
||||||
|
activeNames: ['2'],
|
||||||
|
journals: [],
|
||||||
|
items: [{
|
||||||
|
state: 0,
|
||||||
|
title: this.$t('artstate.state0'),
|
||||||
|
disabled: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 1,
|
||||||
|
title: this.$t('artstate.state1')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 2,
|
||||||
|
title: this.$t('artstate.state2'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 3,
|
||||||
|
title: this.$t('artstate.state3')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 4,
|
||||||
|
title: this.$t('artstate.state4')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 5,
|
||||||
|
title: this.$t('artstate.state5')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 6,
|
||||||
|
title: this.$t('artstate.state6')
|
||||||
|
}
|
||||||
|
],
|
||||||
|
form: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
journal: '',
|
||||||
|
journalname: '',
|
||||||
|
username: '',
|
||||||
|
title: '',
|
||||||
|
accept_sn: '',
|
||||||
|
abstrart: '',
|
||||||
|
keyWords: '',
|
||||||
|
fund: '',
|
||||||
|
type: '',
|
||||||
|
major: '',
|
||||||
|
approval: false,
|
||||||
|
repetition: '',
|
||||||
|
manuscirpt: '',
|
||||||
|
remarks: '',
|
||||||
|
state: '',
|
||||||
|
ctime: '',
|
||||||
|
authorList: [],
|
||||||
|
transList: []
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created: function() {
|
||||||
|
this.initarticle();
|
||||||
|
this.initFileList();
|
||||||
|
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
myType: function() {
|
||||||
|
let frag = '';
|
||||||
|
switch (this.form.type) {
|
||||||
|
case "A":
|
||||||
|
frag = 'ARTICLE';
|
||||||
|
break;
|
||||||
|
case 'B':
|
||||||
|
frag = 'REVIEW';
|
||||||
|
break;
|
||||||
|
case 'C':
|
||||||
|
frag = 'CASE REPORT';
|
||||||
|
break;
|
||||||
|
case 'P':
|
||||||
|
frag = 'RESEARCH PROPOSAL';
|
||||||
|
break;
|
||||||
|
case 'N':
|
||||||
|
frag = 'NEWS';
|
||||||
|
break;
|
||||||
|
case 'T':
|
||||||
|
frag = 'COMMENT';
|
||||||
|
break;
|
||||||
|
case 'CT':
|
||||||
|
frag = 'CORRECTION';
|
||||||
|
break;
|
||||||
|
case 'HT':
|
||||||
|
frag = 'HYPOTHESIS';
|
||||||
|
break;
|
||||||
|
case 'PF':
|
||||||
|
frag = 'PREFACE';
|
||||||
|
break;
|
||||||
|
case 'ET':
|
||||||
|
frag = 'EDITORIAL';
|
||||||
|
break;
|
||||||
|
case 'RP':
|
||||||
|
frag = 'REPORT';
|
||||||
|
break;
|
||||||
|
case 'EF':
|
||||||
|
frag = 'EMPIRICAL FORMULA';
|
||||||
|
break;
|
||||||
|
case 'EM':
|
||||||
|
frag = 'EVIDENCE-BASED MEDICINE';
|
||||||
|
break;
|
||||||
|
case 'EC':
|
||||||
|
frag = 'EXPERT CONSENSUS';
|
||||||
|
break;
|
||||||
|
case 'LTE':
|
||||||
|
frag = 'LETTER TO EDITOR';
|
||||||
|
break;
|
||||||
|
case 'QI':
|
||||||
|
frag = 'QUESTIONNAIRE INVESTIGATION';
|
||||||
|
break;
|
||||||
|
case 'PT':
|
||||||
|
frag = 'PROTOCOL';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
frag = 'OTHERS';
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
manuscirptUrl: function() {
|
||||||
|
return this.baseUrl + this.form.manuscirpt;
|
||||||
|
},
|
||||||
|
upload_zip: function() {
|
||||||
|
return this.baseUrl + 'api/Article/up_file/type/repezip';
|
||||||
|
},
|
||||||
|
journal_me: function() {
|
||||||
|
var frag = this.form.journalname;
|
||||||
|
if (this.form.special_num > 0) {
|
||||||
|
frag += "(Special Issues)";
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
articleState: function() {
|
||||||
|
let str = '';
|
||||||
|
switch (this.form.state) {
|
||||||
|
case 0:
|
||||||
|
str = this.$t('artstate.state0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = this.$t('artstate.state1');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = this.$t('artstate.state2');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = this.$t('artstate.state3');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = this.$t('artstate.state4');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = this.$t('artstate.state5');
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = this.$t('artstate.state6');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//初始化文章信息
|
||||||
|
initarticle() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleDetail', {
|
||||||
|
articleId: this.editform.articleId,
|
||||||
|
human: 'editor'
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.form.username = res.article.account;
|
||||||
|
this.form.title = res.article.title;
|
||||||
|
this.form.journal = res.article.journal_id;
|
||||||
|
this.form.journalname = res.article.journalname;
|
||||||
|
this.form.abstrart = res.article.abstrart;
|
||||||
|
this.form.accept_sn = res.article.accept_sn;
|
||||||
|
this.form.keyWords = res.article.keywords;
|
||||||
|
this.form.fund = res.article.fund;
|
||||||
|
this.form.type = res.article.type;
|
||||||
|
this.form.special_num = res.article.special_num;
|
||||||
|
this.form.special_title = res.article.special_title;
|
||||||
|
this.form.major = res.major;
|
||||||
|
this.form.approval = res.article.approval == 1 ? true : false;
|
||||||
|
this.form.repetition = res.article.repetition;
|
||||||
|
this.form.remarks = res.article.remarks;
|
||||||
|
this.repeform.repefen = res.article.repetition;
|
||||||
|
this.editform.state = this.form.state = res.article.state;
|
||||||
|
this.form.ctime = res.article.ctime;
|
||||||
|
this.form.transList = res.transfer;
|
||||||
|
let alist = res.authors;
|
||||||
|
let alist_name = [];
|
||||||
|
for (let i in alist) {
|
||||||
|
this.form.authorList.push({
|
||||||
|
art_aut_id: alist[i].art_aut_id,
|
||||||
|
firstname: alist[i].firstname,
|
||||||
|
lastname: alist[i].lastname,
|
||||||
|
orcid: alist[i].orcid,
|
||||||
|
company: alist[i].company,
|
||||||
|
department: alist[i].department,
|
||||||
|
title: alist[i].author_title,
|
||||||
|
country: alist[i].country,
|
||||||
|
email: alist[i].email,
|
||||||
|
address: alist[i].address,
|
||||||
|
isSuper: alist[i].is_super == 1 ? true : false,
|
||||||
|
isReport: alist[i].is_report == 1 ? true : false
|
||||||
|
});
|
||||||
|
if (i == alist.length - 1) {
|
||||||
|
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname)
|
||||||
|
} else {
|
||||||
|
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.authorList_name = "Author : " + alist_name.join("");
|
||||||
|
|
||||||
|
this.form.repetition = '';
|
||||||
|
this.repeform.repefen = '';
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//初始化filelist
|
||||||
|
initFileList() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getFilelistByArticleID', {
|
||||||
|
articleId: this.form.articleId
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.coverLetterFileList = res.coverLetter;
|
||||||
|
this.picturesAndTablesFileList = res.picturesAndTables;
|
||||||
|
this.manuscirptFileList = res.manuscirpt;
|
||||||
|
this.totalpageFileList = res.totalpage;
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//弹出编辑框
|
||||||
|
testvis(e) {
|
||||||
|
if (this.form.repetition == '') {
|
||||||
|
this.$message.error('Please fill in the duplicate check rate!');
|
||||||
|
} else {
|
||||||
|
this.editform.state = e
|
||||||
|
this.editform.state_name = this.statetostr(e)
|
||||||
|
this.$confirm('Are you sure about this process ' + this.editform.state_name + ' ?', 'Tips', {
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.loading = true;
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/editArticleEditor', this.editform)
|
||||||
|
.then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message.success('Success!');
|
||||||
|
let stat_num = ''
|
||||||
|
stat_num = 'articleDetailEditor_b'
|
||||||
|
this.$router.push({
|
||||||
|
path: stat_num,
|
||||||
|
query: {
|
||||||
|
id: this.form.articleId
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
}).catch(() => {});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
testedit() {
|
||||||
|
this.editbox = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
statetostr(mystate) {
|
||||||
|
let str = '';
|
||||||
|
switch (mystate) {
|
||||||
|
case -1:
|
||||||
|
str = 'Manuscript Submission';
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
str = this.$t('artstate.state0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = this.$t('artstate.state1');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = this.$t('artstate.state2');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = this.$t('artstate.state3');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = this.$t('artstate.state4');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = this.$t('artstate.state5');
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = this.$t('artstate.state6');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
//修改查重查重状态
|
||||||
|
saveRepe() {
|
||||||
|
if (this.repeform.zipurl == '') {
|
||||||
|
this.$message.error('please upload zip');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.loading = true;
|
||||||
|
this.$api.post('api/Article/changeRepetition', this.repeform)
|
||||||
|
.then(res => {
|
||||||
|
this.loading = false;
|
||||||
|
this.form.repetition = this.repeform.repefen;
|
||||||
|
this.$message.success('success');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 压缩包上传
|
||||||
|
upSuccess_repezip(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.repeform.zipurl = 'repezip/' + res.upurl;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//超出传送文件个数限制
|
||||||
|
alertlimit() {
|
||||||
|
this.$message.error('The maximum number of uploaded files has been exceeded');
|
||||||
|
},
|
||||||
|
removefilerepezip(file, fileList) {
|
||||||
|
this.repeform.zipurl = '';
|
||||||
|
},
|
||||||
|
formatDate(timestamp) {
|
||||||
|
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||||
|
var Y = date.getFullYear() + '-';
|
||||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
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;
|
||||||
|
},
|
||||||
|
|
||||||
|
formatDateNewCHz(timestamp) {
|
||||||
|
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||||
|
var Y = date.getFullYear();
|
||||||
|
var M = date.getMonth();
|
||||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
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();
|
||||||
|
var M_m = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October',
|
||||||
|
'November', 'December'
|
||||||
|
];
|
||||||
|
return '(' + h + ':' + m + ' Beijing time) on ' + D + ' ' + M_m[M];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
1077
src/components/page/articleDetailEditor_b.vue
Normal file
1077
src/components/page/articleDetailEditor_b.vue
Normal file
File diff suppressed because it is too large
Load Diff
1084
src/components/page/articleDetailEditor_c.vue
Normal file
1084
src/components/page/articleDetailEditor_c.vue
Normal file
File diff suppressed because it is too large
Load Diff
947
src/components/page/articleDetailEditor_d.vue
Normal file
947
src/components/page/articleDetailEditor_d.vue
Normal file
@@ -0,0 +1,947 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="crumbs">
|
||||||
|
<el-breadcrumb separator="/">
|
||||||
|
<el-breadcrumb-item>
|
||||||
|
<i class="el-icon-lx-calendar"></i> Manuscript Reject
|
||||||
|
</el-breadcrumb-item>
|
||||||
|
</el-breadcrumb>
|
||||||
|
</div>
|
||||||
|
<div class="art_state_text">
|
||||||
|
<p>
|
||||||
|
Submitting manuscripts for publication is a critical point in the research cycle, and finding the right one can be
|
||||||
|
challenging for authors.
|
||||||
|
<br>It may be that the first choice of journal turns out not to be the right one, requiring the editor to help
|
||||||
|
authors look elsewhere to publish (Within the scope of TMR Publishing Group).
|
||||||
|
<br>The invitation letter is auto-triggered when the editor selects the suggested journal. The transfer process
|
||||||
|
begins when the author clicks on the "Accept" link in the decision letter.
|
||||||
|
<br>The need for further review is assessed on a case-by-case basis, depending on the extent of revisions required,
|
||||||
|
the new journal’s expectations, how well reviewers’comments are addressed, and the topic. However, the review
|
||||||
|
process tends to be quicker at this stage, it is benefits authors, reviewers, and editors alike.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="container_state" v-loading="loading">
|
||||||
|
<el-row :gutter="30">
|
||||||
|
<el-col :span="15">
|
||||||
|
<div class="art_state_">
|
||||||
|
<div class="art_state_message">
|
||||||
|
<div class="art_state_message_id">
|
||||||
|
ID : <b style="margin-right: 60px;">{{form.accept_sn}}</b>
|
||||||
|
Status : <b>{{articleState}}</b>
|
||||||
|
</div>
|
||||||
|
<h3>Basic information</h3>
|
||||||
|
<p>
|
||||||
|
<font>Title :</font><b>{{form.title}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Type :</font><b>{{myType}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-show="form.type=='A'">
|
||||||
|
<font>Ethical Approval :</font><b>{{form.approval?'Yes':'No'}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Journal :</font><b>{{journal_me}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="form.special_num > 0">
|
||||||
|
<font>Special Issues :</font><b>{{ form.special_title }}</b>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="art_caozuo_" style="margin:30px 0 0 0;" v-if="form.transList">
|
||||||
|
<div class="art_state_btn">
|
||||||
|
<div class="btn_remarks" @click="testedit" style="right: -2px;top: -3px;">Remarks</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="form.transList==''&&form.transinfo==null">
|
||||||
|
<span style="margin: 0 12px 0 0;">Transfer Jouranl :</span>
|
||||||
|
<el-select v-model="editform.trsjournal" placeholder="Please select a journal">
|
||||||
|
<!-- <el-option :key="0" label="no transfer" :value="0"></el-option> -->
|
||||||
|
<el-option v-for="item in journals" :key="item.journal_id" :label="item.title" :value="item.journal_id"
|
||||||
|
:disabled="item.journal_id==form.journal"></el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-button type="primary" @click="saveEdit" style="margin: 0 0 0 15px;">OK</el-button>
|
||||||
|
</div>
|
||||||
|
<div v-if="form.transList!=''||form.transinfo!=null" style="color: #006699;">
|
||||||
|
The manuscript has been transferred to the {{form.transinfo.jourtitle}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="9">
|
||||||
|
<timeaxis :prossMsgs="prossMsgs" :form="form"></timeaxis>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<el-dialog title="Remarks" :visible.sync="editbox" width="40%">
|
||||||
|
<el-form ref="remark" :model="remark" label-width="80px">
|
||||||
|
<el-form-item label="Content :">
|
||||||
|
<el-input type="textarea" rows="5" v-model="remark.content"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="saveRemark">Save</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog title="Repetition" :visible.sync="repebox" width="40%">
|
||||||
|
<el-form ref="repetition" :model="repeform" label-width="80px">
|
||||||
|
<el-form-item label="Content :">
|
||||||
|
<el-input maxlength="3" style="width:100px;" v-model="repeform.repefen">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Zip :">
|
||||||
|
<el-upload class="upload-demo" :action="upload_zip" accept=".rar, .zip" name="repezip" :on-success="upSuccess_repezip"
|
||||||
|
:limit="1" :on-exceed="alertlimit" :on-remove="removefilerepezip">
|
||||||
|
<div class="el-upload__text">
|
||||||
|
<em>click upload</em>
|
||||||
|
</div>
|
||||||
|
<div class="el-upload__tip" slot="tip">Only pdf and word files can be uploaded(.pdf,.doc,.docx)</div>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="saveRepe">Save</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible" width="750px">
|
||||||
|
<el-form :model="questionform" ref="question" label-width="300px" label-position="top">
|
||||||
|
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="1.Originality of the topic">
|
||||||
|
<el-radio-group v-model="questionform.qu1">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="2.Importance in its Field">
|
||||||
|
<el-radio-group v-model="questionform.qu3">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="3.Suitability for the Journal">
|
||||||
|
<el-radio-group v-model="questionform.qu6">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="4.English language">
|
||||||
|
<el-radio-group v-model="questionform.qu8">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="5.Readily Understandable">
|
||||||
|
<el-radio-group v-model="questionform.qu5">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-collapse>
|
||||||
|
<el-form-item label="6.Does the title represent manuscript's contents?">
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-radio-group v-model="questionform.qu9">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="16">
|
||||||
|
<el-collapse-item name="1" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu9contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
</el-collapse>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
|
<el-collapse>
|
||||||
|
<el-form-item label="7.Is the Abstract accurate and concise?">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-radio-group v-model="questionform.qu10">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-collapse-item name="2" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu10contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="8.Are the approach/ methods properly described?">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-radio-group v-model="questionform.qu11">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-collapse-item name="3" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu11contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="9.Are the conclusions and interpretations sound?">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-radio-group v-model="questionform.qu12">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-collapse-item name="4" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu12contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="10.Are the references properly cited?">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-radio-group v-model="questionform.qu13">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-collapse-item name="5" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu13contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||||
|
<el-form-item label="Overall the Paper is Rated">
|
||||||
|
(Poor------------------------Excellent)
|
||||||
|
<br />
|
||||||
|
<el-radio-group v-model="questionform.rated" size="small">
|
||||||
|
<el-radio-button label="1"></el-radio-button>
|
||||||
|
<el-radio-button label="2"></el-radio-button>
|
||||||
|
<el-radio-button label="3"></el-radio-button>
|
||||||
|
<el-radio-button label="4"></el-radio-button>
|
||||||
|
<el-radio-button label="5"></el-radio-button>
|
||||||
|
<el-radio-button label="6"></el-radio-button>
|
||||||
|
<el-radio-button label="7"></el-radio-button>
|
||||||
|
<el-radio-button label="8"></el-radio-button>
|
||||||
|
<el-radio-button label="9"></el-radio-button>
|
||||||
|
<el-radio-button label="10"></el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
<span style="margin-left: 20px;">>Your score:{{questionform.rated}}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||||
|
<el-radio-group v-model="questionform.recommend">
|
||||||
|
<el-radio :label="1">Accept with minor changes</el-radio>
|
||||||
|
<br />
|
||||||
|
<el-radio :label="2">Accept subject to revisions, as noted in comments</el-radio>
|
||||||
|
<br />
|
||||||
|
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||||
|
<br />
|
||||||
|
<el-radio :label="4">Reject, with no resubmission</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
||||||
|
<el-radio-group v-model="questionform.other">
|
||||||
|
<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="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="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="Please choose disclose your name or remain anonymous.">
|
||||||
|
<el-radio-group v-model="questionform.is_anonymous">
|
||||||
|
<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 thank you in published
|
||||||
|
pdf. , we will also thank you as anonymous reviewer if you reject.
|
||||||
|
<br />e.g. {{form.title}} thanks AAAAAAAA, BBBBBBBB and other anonymous reviewers for
|
||||||
|
their contribution to the peer review of this paper.
|
||||||
|
</p>
|
||||||
|
</el-form-item>
|
||||||
|
</el-collapse>
|
||||||
|
</el-form>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import timetalk from './time_talk'
|
||||||
|
import timeaxis from './time_axis'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
timetalk,
|
||||||
|
timeaxis
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseUrl: this.Common.baseUrl,
|
||||||
|
mediaUrl: this.Common.mediaUrl,
|
||||||
|
items: '',
|
||||||
|
state_art_neir: false,
|
||||||
|
state_art_reviewer: false,
|
||||||
|
state_art_upload: false,
|
||||||
|
loading: false,
|
||||||
|
editVisible: false,
|
||||||
|
editbox: false,
|
||||||
|
repebox: false,
|
||||||
|
reverse: false,
|
||||||
|
dialogFormVisible: false,
|
||||||
|
questionform: {},
|
||||||
|
coverLetterFileList: [],
|
||||||
|
picturesAndTablesFileList: [],
|
||||||
|
totalpageFileList: [],
|
||||||
|
manuscirptFileList: [],
|
||||||
|
proposalsFileList: [],
|
||||||
|
authorList_name: '',
|
||||||
|
review_Data: [],
|
||||||
|
Total_review: 0,
|
||||||
|
msgform: {
|
||||||
|
username: localStorage.getItem('U_name'),
|
||||||
|
article_id: this.$route.query.id,
|
||||||
|
ad_content: ''
|
||||||
|
},
|
||||||
|
query_review: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
editform: {
|
||||||
|
editname: localStorage.getItem('U_name'),
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
state: 0,
|
||||||
|
trsjournal: '',
|
||||||
|
editormsg: ''
|
||||||
|
},
|
||||||
|
remark: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
content: ''
|
||||||
|
},
|
||||||
|
repeform: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
repefen: '',
|
||||||
|
zipurl: ''
|
||||||
|
},
|
||||||
|
activeNames: ['2'],
|
||||||
|
journals: [],
|
||||||
|
items: [{
|
||||||
|
state: 0,
|
||||||
|
title: this.$t('artstate.state0'),
|
||||||
|
disabled: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 1,
|
||||||
|
title: this.$t('artstate.state1')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 2,
|
||||||
|
title: this.$t('artstate.state2'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 3,
|
||||||
|
title: this.$t('artstate.state3')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 4,
|
||||||
|
title: this.$t('artstate.state4')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 5,
|
||||||
|
title: this.$t('artstate.state5')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 6,
|
||||||
|
title: this.$t('artstate.state6')
|
||||||
|
}
|
||||||
|
],
|
||||||
|
form: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
journal: '',
|
||||||
|
journalname: '',
|
||||||
|
username: '',
|
||||||
|
title: '',
|
||||||
|
accept_sn: '',
|
||||||
|
abstrart: '',
|
||||||
|
keyWords: '',
|
||||||
|
fund: '',
|
||||||
|
type: '',
|
||||||
|
major: '',
|
||||||
|
approval: false,
|
||||||
|
repetition: '',
|
||||||
|
manuscirpt: '',
|
||||||
|
remarks: '',
|
||||||
|
state: '',
|
||||||
|
ctime: '',
|
||||||
|
authorList: [],
|
||||||
|
transList: [],
|
||||||
|
transinfo: {}
|
||||||
|
},
|
||||||
|
prossMsgs: [],
|
||||||
|
talkMsgs: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created: function() {
|
||||||
|
this.initarticle();
|
||||||
|
this.initselect();
|
||||||
|
this.initFileList();
|
||||||
|
this.reviewdate();
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
myType: function() {
|
||||||
|
let frag = '';
|
||||||
|
switch (this.form.type) {
|
||||||
|
case "A":
|
||||||
|
frag = 'ARTICLE';
|
||||||
|
break;
|
||||||
|
case 'B':
|
||||||
|
frag = 'REVIEW';
|
||||||
|
break;
|
||||||
|
case 'C':
|
||||||
|
frag = 'CASE REPORT';
|
||||||
|
break;
|
||||||
|
case 'P':
|
||||||
|
frag = 'RESEARCH PROPOSAL';
|
||||||
|
break;
|
||||||
|
case 'N':
|
||||||
|
frag = 'NEWS';
|
||||||
|
break;
|
||||||
|
case 'T':
|
||||||
|
frag = 'COMMENT';
|
||||||
|
break;
|
||||||
|
case 'CT':
|
||||||
|
frag = 'CORRECTION';
|
||||||
|
break;
|
||||||
|
case 'HT':
|
||||||
|
frag = 'HYPOTHESIS';
|
||||||
|
break;
|
||||||
|
case 'PF':
|
||||||
|
frag = 'PREFACE';
|
||||||
|
break;
|
||||||
|
case 'ET':
|
||||||
|
frag = 'EDITORIAL';
|
||||||
|
break;
|
||||||
|
case 'RP':
|
||||||
|
frag = 'REPORT';
|
||||||
|
break;
|
||||||
|
case 'EF':
|
||||||
|
frag = 'EMPIRICAL FORMULA';
|
||||||
|
break;
|
||||||
|
case 'EM':
|
||||||
|
frag = 'EVIDENCE-BASED MEDICINE';
|
||||||
|
break;
|
||||||
|
case 'EC':
|
||||||
|
frag = 'EXPERT CONSENSUS';
|
||||||
|
break;
|
||||||
|
case 'LTE':
|
||||||
|
frag = 'LETTER TO EDITOR';
|
||||||
|
break;
|
||||||
|
case 'QI':
|
||||||
|
frag = 'QUESTIONNAIRE INVESTIGATION';
|
||||||
|
break;
|
||||||
|
case 'PT':
|
||||||
|
frag = 'PROTOCOL';
|
||||||
|
break;
|
||||||
|
case 'CS':
|
||||||
|
frag = 'CASE SERIES';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
frag = 'OTHERS';
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
// coverLetterUrl: function() {
|
||||||
|
// return this.baseUrl + this.form.coverLetter;
|
||||||
|
// },
|
||||||
|
// picturesAndTablesUrl: function() {
|
||||||
|
// return this.baseUrl + this.form.picturesAndTables;
|
||||||
|
// },
|
||||||
|
manuscirptUrl: function() {
|
||||||
|
return this.baseUrl + this.form.manuscirpt;
|
||||||
|
},
|
||||||
|
upload_coverLetter: function() {
|
||||||
|
return this.baseUrl + 'api/Article/up_file/type/coverLetter';
|
||||||
|
},
|
||||||
|
upload_picturesAndTables: function() {
|
||||||
|
return this.baseUrl + 'api/Article/up_file/type/picturesAndTables';
|
||||||
|
},
|
||||||
|
upload_manuscirpt: function() {
|
||||||
|
return this.baseUrl + 'api/Article/up_file/type/manuscirpt';
|
||||||
|
},
|
||||||
|
upload_zip: function() {
|
||||||
|
return this.baseUrl + 'api/Article/up_file/type/repezip';
|
||||||
|
},
|
||||||
|
journal_me: function() {
|
||||||
|
var frag = this.form.journalname;
|
||||||
|
if (this.form.special_num > 0) {
|
||||||
|
frag += "(Special Issues)";
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
articleState: function() {
|
||||||
|
let str = '';
|
||||||
|
switch (this.form.state) {
|
||||||
|
case 0:
|
||||||
|
str = this.$t('artstate.state0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = this.$t('artstate.state1');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = this.$t('artstate.state2');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = this.$t('artstate.state3');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = this.$t('artstate.state4');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = this.$t('artstate.state5');
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = this.$t('artstate.state6');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//弹出编辑框
|
||||||
|
testedit() {
|
||||||
|
this.editbox = true;
|
||||||
|
},
|
||||||
|
changeRepe() {
|
||||||
|
this.repebox = true;
|
||||||
|
},
|
||||||
|
statetostr(mystate) {
|
||||||
|
let str = '';
|
||||||
|
switch (mystate) {
|
||||||
|
case -1:
|
||||||
|
str = 'Manuscript Submission';
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
str = this.$t('artstate.state0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = this.$t('artstate.state1');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = this.$t('artstate.state2');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = this.$t('artstate.state3');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = this.$t('artstate.state4');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = this.$t('artstate.state5');
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = this.$t('artstate.state6');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
//修改查重mark状态
|
||||||
|
saveRemark() {
|
||||||
|
this.loading = true;
|
||||||
|
this.$api.post('api/Article/editArticleRemark', this.remark)
|
||||||
|
.then(res => {
|
||||||
|
this.loading = false;
|
||||||
|
this.editbox = false;
|
||||||
|
this.$message.success('success');
|
||||||
|
this.initarticle();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
saveRepe() {
|
||||||
|
if (this.repeform.zipurl == '') {
|
||||||
|
this.$message.error('please upload zip');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.loading = true;
|
||||||
|
this.$api.post('api/Article/changeRepetition', this.repeform)
|
||||||
|
.then(res => {
|
||||||
|
this.loading = false;
|
||||||
|
this.repebox = false;
|
||||||
|
this.form.repetition = this.repeform.repefen;
|
||||||
|
this.$message.success('success');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//初始化期刊选项
|
||||||
|
initselect() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getJournal')
|
||||||
|
.then((res) => {
|
||||||
|
this.journals = res;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//初始化文章信息
|
||||||
|
initarticle() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleDetail', {
|
||||||
|
articleId: this.editform.articleId,
|
||||||
|
human: 'editor'
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.form.username = res.article.account;
|
||||||
|
this.form.title = res.article.title;
|
||||||
|
this.form.journal = res.article.journal_id;
|
||||||
|
this.form.journalname = res.article.journalname;
|
||||||
|
this.form.abstrart = res.article.abstrart;
|
||||||
|
this.form.accept_sn = res.article.accept_sn;
|
||||||
|
this.form.keyWords = res.article.keywords;
|
||||||
|
this.form.fund = res.article.fund;
|
||||||
|
this.form.type = res.article.type;
|
||||||
|
this.form.special_num = res.article.special_num;
|
||||||
|
this.form.special_title = res.article.special_title;
|
||||||
|
this.form.major = res.major;
|
||||||
|
this.form.approval = res.article.approval == 1 ? true : false;
|
||||||
|
this.form.repetition = res.article.repetition;
|
||||||
|
this.form.remarks = res.article.remarks;
|
||||||
|
this.repeform.repefen = res.article.repetition;
|
||||||
|
this.remark.content = res.article.remarks;
|
||||||
|
this.editform.state = this.form.state = res.article.state;
|
||||||
|
this.form.ctime = res.article.ctime;
|
||||||
|
this.form.transList = res.transfer;
|
||||||
|
this.form.transinfo = res.transinfo;
|
||||||
|
let back_num = 0
|
||||||
|
// 添加投递稿件条目
|
||||||
|
res.msg.unshift({
|
||||||
|
state_to: -1,
|
||||||
|
ctime: res.article.ctime,
|
||||||
|
color: '#B5C334',
|
||||||
|
icon: 'el-icon-collection-tag',
|
||||||
|
ftype: 0,
|
||||||
|
});
|
||||||
|
for (let i = res.msg.length - 1; i >= 0; i--) {
|
||||||
|
if (res.msg[i].state_to == 4 && back_num == 0) {
|
||||||
|
res.msg[i].back = 1;
|
||||||
|
back_num = 1
|
||||||
|
} else {
|
||||||
|
res.msg[i].back = 0;
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 1) {
|
||||||
|
res.msg[i].color = '#f75822'
|
||||||
|
res.msg[i].icon = 'el-icon-document-checked'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 2) {
|
||||||
|
res.msg[i].color = '#0ebee1'
|
||||||
|
res.msg[i].icon = 'el-icon-document'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 3) {
|
||||||
|
res.msg[i].color = '#f3170f'
|
||||||
|
res.msg[i].icon = 'el-icon-close'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 4) {
|
||||||
|
res.msg[i].color = '#5a90e1'
|
||||||
|
res.msg[i].icon = 'el-icon-edit-outline'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 5) {
|
||||||
|
res.msg[i].color = '#91cc75'
|
||||||
|
res.msg[i].icon = 'el-icon-check'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 6) {
|
||||||
|
res.msg[i].color = '#27727B'
|
||||||
|
res.msg[i].icon = 'el-icon-star-off'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.prossMsgs = res.msg;
|
||||||
|
let alist = res.authors;
|
||||||
|
let alist_name = [];
|
||||||
|
for (let i in alist) {
|
||||||
|
this.form.authorList.push({
|
||||||
|
art_aut_id: alist[i].art_aut_id,
|
||||||
|
firstname: alist[i].firstname,
|
||||||
|
lastname: alist[i].lastname,
|
||||||
|
orcid: alist[i].orcid,
|
||||||
|
company: alist[i].company,
|
||||||
|
department: alist[i].department,
|
||||||
|
title: alist[i].author_title,
|
||||||
|
country: alist[i].country,
|
||||||
|
email: alist[i].email,
|
||||||
|
address: alist[i].address,
|
||||||
|
isSuper: alist[i].is_super == 1 ? true : false,
|
||||||
|
isReport: alist[i].is_report == 1 ? true : false
|
||||||
|
});
|
||||||
|
if (i == alist.length - 1) {
|
||||||
|
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname)
|
||||||
|
} else {
|
||||||
|
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.authorList_name = "Author : " + alist_name.join("");
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 留言板列表
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleDialogs', {
|
||||||
|
article_id: this.$route.query.id
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.talkMsgs = res.data.dialogs;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取编辑列表数据
|
||||||
|
reviewdate() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getReviewerList', this.query_review)
|
||||||
|
.then((res) => {
|
||||||
|
this.review_Data = res.data;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
majorTitle(row, column, cellValue, index) {
|
||||||
|
return row.major_title + '(' + row.major_ctitle + ')';
|
||||||
|
},
|
||||||
|
revstate(row, column, cellValue, index) {
|
||||||
|
let frag = '';
|
||||||
|
if (row.state == 0) {
|
||||||
|
frag = 'With reviewer';
|
||||||
|
} else if (row.state == 1) {
|
||||||
|
frag = 'Revision';
|
||||||
|
} else if (row.state == 2) {
|
||||||
|
frag = 'Reject';
|
||||||
|
} else if (row.state == 3) {
|
||||||
|
frag = 'Accepted';
|
||||||
|
} else if (row.state == 4) {
|
||||||
|
frag = 'invalid';
|
||||||
|
} else if (row.state == 5) {
|
||||||
|
frag = 'invitation';
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 留言弹出框
|
||||||
|
saveMsg() {
|
||||||
|
if (this.msgform.content == '') {
|
||||||
|
this.$message.error('Please input messages');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.loading = true;
|
||||||
|
this.$api.post('api/Article/authorMessage', this.msgform)
|
||||||
|
.then((res) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.editbox = false;
|
||||||
|
this.$message.success('success');
|
||||||
|
this.initarticle();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 分页导航
|
||||||
|
showdetail(e) {
|
||||||
|
this.$api.post('api/Reviewer/getQuestion', {
|
||||||
|
artrevid: e
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.questionform = res.data;
|
||||||
|
this.questionform.rev_qu_id = res.data.rev_qu_id;
|
||||||
|
this.questionform.qu1 = res.data.qu1;
|
||||||
|
this.questionform.qu2 = res.data.qu2;
|
||||||
|
this.questionform.qu3 = res.data.qu3;
|
||||||
|
this.questionform.qu4 = res.data.qu4;
|
||||||
|
this.questionform.qu5 = res.data.qu5;
|
||||||
|
this.questionform.qu6 = res.data.qu6;
|
||||||
|
this.questionform.qu7 = res.data.qu7;
|
||||||
|
this.questionform.qu8 = res.data.qu8;
|
||||||
|
this.questionform.qu9 = res.data.qu9 == 0 ? false : true;
|
||||||
|
this.questionform.qu9contents = res.data.qu9_contents;
|
||||||
|
this.questionform.qu10 = res.data.qu10 == 0 ? false : true;
|
||||||
|
this.questionform.qu10contents = res.data.qu10_contents;
|
||||||
|
this.questionform.qu11 = res.data.qu11 == 0 ? false : true;
|
||||||
|
this.questionform.qu11contents = res.data.qu11_contents;
|
||||||
|
this.questionform.qu12 = res.data.qu12 == 0 ? false : true;
|
||||||
|
this.questionform.qu12contents = res.data.qu12_contents;
|
||||||
|
this.questionform.qu13 = res.data.qu13 == 0 ? false : true;
|
||||||
|
this.questionform.qu13contents = res.data.qu13_contents;
|
||||||
|
this.questionform.qu14 = res.data.qu14 == 0 ? false : true;
|
||||||
|
this.questionform.qu14contents = res.data.qu14_contents;
|
||||||
|
this.questionform.qu15 = res.data.qu15 == 0 ? false : true;
|
||||||
|
this.questionform.qu15contents = res.data.qu15_contents;
|
||||||
|
this.questionform.rated = res.data.rated;
|
||||||
|
this.questionform.recommend = res.data.recommend;
|
||||||
|
this.questionform.other = res.data.other;
|
||||||
|
this.questionform.confident = res.data.confidential;
|
||||||
|
this.questionform.comment = res.data.comments;
|
||||||
|
this.questionform.is_anonymous = res.data.is_anonymous;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.dialogFormVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
|
//修改文章状态-转投文件
|
||||||
|
saveEdit() {
|
||||||
|
this.loading1 = true;
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/editArticleEditor', this.editform)
|
||||||
|
.then(res => {
|
||||||
|
this.loading1 = false;
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message.success('success');
|
||||||
|
let stat_num = ''
|
||||||
|
stat_num = 'articleDetailEditor_b'
|
||||||
|
this.$router.push({
|
||||||
|
path: stat_num,
|
||||||
|
query: {
|
||||||
|
id: this.form.articleId
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//初始化filelist
|
||||||
|
initFileList() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getFilelistByArticleID', {
|
||||||
|
articleId: this.form.articleId
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.coverLetterFileList = res.coverLetter;
|
||||||
|
this.picturesAndTablesFileList = res.picturesAndTables;
|
||||||
|
this.manuscirptFileList = res.manuscirpt;
|
||||||
|
this.totalpageFileList = res.totalpage;
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 编辑上传的文件
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleProposals', {
|
||||||
|
article_id: this.form.articleId
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.proposalsFileList = res.data.proposals;
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
uperr_coverLetter(err) {
|
||||||
|
this.$message.error('upload error');
|
||||||
|
},
|
||||||
|
removefilemanuscirpt(file, fileList) {
|
||||||
|
this.form.manuscirpt = '';
|
||||||
|
},
|
||||||
|
beforeupload() {},
|
||||||
|
filedateformate(row, column, cellValue, index) {
|
||||||
|
return this.formatDate(cellValue);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
upSuccess_repezip(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.repeform.zipurl = 'repezip/' + res.upurl;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
upSuccess_manuscirpt(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
|
||||||
|
} else {
|
||||||
|
this.$message.error('service error:' + res.msg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
upSuccess_repezip(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.repeform.zipurl = 'repezip/' + res.upurl;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//检验上传文件的格式
|
||||||
|
beforeupload_manuscirpt(file) {
|
||||||
|
|
||||||
|
},
|
||||||
|
//超出传送文件个数限制
|
||||||
|
alertlimit() {
|
||||||
|
this.$message.error('The maximum number of uploaded files has been exceeded');
|
||||||
|
},
|
||||||
|
getlinkurl(row) {
|
||||||
|
return this.mediaUrl + row.file_url;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
removefilerepezip(file, fileList) {
|
||||||
|
this.repeform.zipurl = '';
|
||||||
|
},
|
||||||
|
formatDate(timestamp) {
|
||||||
|
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||||
|
var Y = date.getFullYear() + '-';
|
||||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
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;
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
1085
src/components/page/articleDetailEditor_e.vue
Normal file
1085
src/components/page/articleDetailEditor_e.vue
Normal file
File diff suppressed because it is too large
Load Diff
961
src/components/page/articleDetailEditor_f.vue
Normal file
961
src/components/page/articleDetailEditor_f.vue
Normal file
@@ -0,0 +1,961 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="crumbs">
|
||||||
|
<el-breadcrumb separator="/">
|
||||||
|
<el-breadcrumb-item>
|
||||||
|
<i class="el-icon-lx-calendar"></i> Manuscript Accepted
|
||||||
|
</el-breadcrumb-item>
|
||||||
|
</el-breadcrumb>
|
||||||
|
</div>
|
||||||
|
<div class="art_state_text">
|
||||||
|
<p>
|
||||||
|
Dear editor, thank you for your hard work. Please complete the manuscript information before entering the
|
||||||
|
production process. The manuscript information will bring into correspondence with Typesetting Software.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="container_state" v-loading="loading">
|
||||||
|
<el-row :gutter="30">
|
||||||
|
<el-col :span="15">
|
||||||
|
|
||||||
|
<div class="art_state_">
|
||||||
|
<div class="art_state_message">
|
||||||
|
<div class="art_state_message_id">
|
||||||
|
ID : <b style="margin-right: 60px;">{{form.accept_sn}}</b>
|
||||||
|
Status : <b>{{articleState}}</b>
|
||||||
|
</div>
|
||||||
|
<h3>Basic information</h3>
|
||||||
|
<p>
|
||||||
|
<font>Title :</font><b>{{form.title}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Type :</font><b>{{myType}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-show="form.type=='A'">
|
||||||
|
<font>Ethical Approval :</font><b>{{form.approval?'Yes':'No'}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Journal :</font><b>{{journal_me}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="form.special_num > 0">
|
||||||
|
<font>Special Issues :</font><b>{{ form.special_title }}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Major :</font><b>{{form.major}}</b>
|
||||||
|
</p>
|
||||||
|
<el-collapse v-model="activeNames" class="auth_colla">
|
||||||
|
<el-collapse-item :title="authorList_name" name="1">
|
||||||
|
<div v-for="(item, index) in form.authorList" class="auth_mess">
|
||||||
|
<h4 style="font-weight: bolder;">
|
||||||
|
<img src="../../assets/img/state_one.png" v-if="item.isSuper" style="width: 15px;margin: 0 2px 0 0;vertical-align: text-bottom;">
|
||||||
|
{{item.firstname}} {{item.lastname}} {{item.isSuper?'#':''}}{{item.isReport?'*':''}}
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<p v-if="item.email">
|
||||||
|
<img src="../../assets/img/state_email.png" v-if="item.isReport" style="width: 14px;margin: 0 8px 0 0;vertical-align: text-bottom;">
|
||||||
|
<font>Email : </font>{{item.email}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.orcid">
|
||||||
|
<font>ORCID iD : </font>{{item.orcid}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>First author : </font>
|
||||||
|
<b v-if="item.isSuper">Yes</b>
|
||||||
|
<b v-if="!item.isSuper">No</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Corresponding Author :</font>
|
||||||
|
<b v-if="item.isReport">Yes</b>
|
||||||
|
<b v-if="!item.isReport">No</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="item.address">
|
||||||
|
<font>Address : </font>{{item.address}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.company">
|
||||||
|
<font>Institution : </font>{{item.company}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.department">
|
||||||
|
<font>Department : </font>{{item.department}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.title">
|
||||||
|
<font>Title : </font>{{item.title}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.country">
|
||||||
|
<font>Country : </font>{{item.country}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
<p>
|
||||||
|
<font>Abstrart :</font><b>{{form.abstrart}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>KeyWords :</font><b>{{form.keyWords}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="form.fund">
|
||||||
|
<font>Fund :</font><b>{{form.fund}}</b>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="art_file">
|
||||||
|
<h3 style="margin-bottom: 20px;">Files</h3>
|
||||||
|
<h4 v-if="coverLetterFileList">Cover letter : </h4>
|
||||||
|
<p v-if="coverLetterFileList">
|
||||||
|
<a v-for="item in coverLetterFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both" v-if="coverLetterFileList">
|
||||||
|
<h4 v-if="picturesAndTablesFileList">Figures : </h4>
|
||||||
|
<p v-if="picturesAndTablesFileList">
|
||||||
|
<a v-for="item in picturesAndTablesFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both" v-if="picturesAndTablesFileList">
|
||||||
|
<h4>Title page : </h4>
|
||||||
|
<p>
|
||||||
|
<a v-for="item in totalpageFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both">
|
||||||
|
<h4>Manuscirpt : </h4>
|
||||||
|
<p>
|
||||||
|
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both">
|
||||||
|
</div>
|
||||||
|
<!-- 审稿人列表 -->
|
||||||
|
<div class="art_revlist">
|
||||||
|
<h3>Manuscript reviewer list</h3>
|
||||||
|
<div class="rev_list">
|
||||||
|
<p v-for="(item,index) in review_Data">
|
||||||
|
{{index+1}} . {{item.reviewer}}
|
||||||
|
<a @click="showdetail(item.art_rev_id)">
|
||||||
|
<i class="el-icon-tickets"></i>Feedback
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p v-if="review_Data==undefined" style="color: #888;">
|
||||||
|
No reviewer
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 编辑上传文件列表 -->
|
||||||
|
<div class="art_file">
|
||||||
|
<h3 style="margin-bottom: 20px;">Editor Files</h3>
|
||||||
|
<p v-if="proposalsFileList">
|
||||||
|
<a v-for="(item,index) in proposalsFileList" :href="mediaUrl + item.proposal_file">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
File{{index+1}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ap_ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
<i class="el-icon-download download"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p v-if="proposalsFileList==''" style="color: #888;margin-left: 3px;">
|
||||||
|
No files
|
||||||
|
</p>
|
||||||
|
<br clear="both" v-if="proposalsFileList">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="9">
|
||||||
|
<timetalk :talkMsgs="talkMsgs" :msgform="msgform"></timetalk>
|
||||||
|
<timeaxis :prossMsgs="prossMsgs" :form="form"></timeaxis>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<el-dialog title="Remarks" :visible.sync="editbox" width="500px">
|
||||||
|
<el-form ref="remark" :model="remark" label-width="80px">
|
||||||
|
<el-form-item label="Content :">
|
||||||
|
<el-input type="textarea" rows="5" v-model="remark.content"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="saveRemark">Save</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible" width="750px">
|
||||||
|
<el-form :model="questionform" ref="question" label-width="300px" label-position="top">
|
||||||
|
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="1.Originality of the topic">
|
||||||
|
<el-radio-group v-model="questionform.qu1">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="2.Importance in its Field">
|
||||||
|
<el-radio-group v-model="questionform.qu3">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="3.Suitability for the Journal">
|
||||||
|
<el-radio-group v-model="questionform.qu6">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="4.English language">
|
||||||
|
<el-radio-group v-model="questionform.qu8">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="5.Readily Understandable">
|
||||||
|
<el-radio-group v-model="questionform.qu5">
|
||||||
|
<el-radio :label="1">Excellent</el-radio>
|
||||||
|
<el-radio :label="2">Good</el-radio>
|
||||||
|
<el-radio :label="3">Fair</el-radio>
|
||||||
|
<el-radio :label="4">Poor</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-collapse>
|
||||||
|
<el-form-item label="6.Does the title represent manuscript's contents?">
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-radio-group v-model="questionform.qu9">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="16">
|
||||||
|
<el-collapse-item name="1" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu9contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
</el-collapse>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
|
<el-collapse>
|
||||||
|
<el-form-item label="7.Is the Abstract accurate and concise?">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-radio-group v-model="questionform.qu10">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-collapse-item name="2" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu10contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="8.Are the approach/ methods properly described?">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-radio-group v-model="questionform.qu11">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-collapse-item name="3" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu11contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="9.Are the conclusions and interpretations sound?">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-radio-group v-model="questionform.qu12">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-collapse-item name="4" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu12contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="10.Are the references properly cited?">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-radio-group v-model="questionform.qu13">
|
||||||
|
<el-radio :label="true">Yes</el-radio>
|
||||||
|
<el-radio :label="false">No</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-collapse-item name="5" style="margin-top: -10px;">
|
||||||
|
<template slot="title">
|
||||||
|
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||||
|
</template>
|
||||||
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.qu13contents" :rows="4"></el-input>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||||
|
<el-form-item label="Overall the Paper is Rated">
|
||||||
|
(Poor------------------------Excellent)
|
||||||
|
<br />
|
||||||
|
<el-radio-group v-model="questionform.rated" size="small">
|
||||||
|
<el-radio-button label="1"></el-radio-button>
|
||||||
|
<el-radio-button label="2"></el-radio-button>
|
||||||
|
<el-radio-button label="3"></el-radio-button>
|
||||||
|
<el-radio-button label="4"></el-radio-button>
|
||||||
|
<el-radio-button label="5"></el-radio-button>
|
||||||
|
<el-radio-button label="6"></el-radio-button>
|
||||||
|
<el-radio-button label="7"></el-radio-button>
|
||||||
|
<el-radio-button label="8"></el-radio-button>
|
||||||
|
<el-radio-button label="9"></el-radio-button>
|
||||||
|
<el-radio-button label="10"></el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
<span style="margin-left: 20px;">>Your score:{{questionform.rated}}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||||
|
<el-radio-group v-model="questionform.recommend">
|
||||||
|
<el-radio :label="1">Accept with minor changes</el-radio>
|
||||||
|
<br />
|
||||||
|
<el-radio :label="2">Accept subject to revisions, as noted in comments</el-radio>
|
||||||
|
<br />
|
||||||
|
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||||
|
<br />
|
||||||
|
<el-radio :label="4">Reject, with no resubmission</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
||||||
|
<el-radio-group v-model="questionform.other">
|
||||||
|
<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="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="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="Please choose disclose your name or remain anonymous.">
|
||||||
|
<el-radio-group v-model="questionform.is_anonymous">
|
||||||
|
<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 thank you in published
|
||||||
|
pdf. , we will also thank you as anonymous reviewer if you reject.
|
||||||
|
<br />e.g. {{form.title}} thanks AAAAAAAA, BBBBBBBB and other anonymous reviewers for
|
||||||
|
their contribution to the peer review of this paper.
|
||||||
|
</p>
|
||||||
|
</el-form-item>
|
||||||
|
</el-collapse>
|
||||||
|
</el-form>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import timetalk from './time_talk'
|
||||||
|
import timeaxis from './time_axis'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
timetalk,
|
||||||
|
timeaxis
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseUrl: this.Common.baseUrl,
|
||||||
|
mediaUrl: this.Common.mediaUrl,
|
||||||
|
items: '',
|
||||||
|
loading: false,
|
||||||
|
editVisible: false,
|
||||||
|
editbox: false,
|
||||||
|
reverse: false,
|
||||||
|
dialogFormVisible: false,
|
||||||
|
Detailvisible: false,
|
||||||
|
questionform: {},
|
||||||
|
coverLetterFileList: [],
|
||||||
|
picturesAndTablesFileList: [],
|
||||||
|
totalpageFileList: [],
|
||||||
|
manuscirptFileList: [],
|
||||||
|
proposalsFileList: [],
|
||||||
|
authorList_name: '',
|
||||||
|
review_Data: [],
|
||||||
|
Total_review: 0,
|
||||||
|
msgform: {
|
||||||
|
username: localStorage.getItem('U_name'),
|
||||||
|
article_id: this.$route.query.id,
|
||||||
|
ad_content: ''
|
||||||
|
},
|
||||||
|
query_review: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
editform: {
|
||||||
|
editname: localStorage.getItem('U_name'),
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
state: 0,
|
||||||
|
trsjournal: 0,
|
||||||
|
editormsg: ''
|
||||||
|
},
|
||||||
|
remark: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
content: ''
|
||||||
|
},
|
||||||
|
repeform: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
repefen: '',
|
||||||
|
zipurl: ''
|
||||||
|
},
|
||||||
|
activeNames: [],
|
||||||
|
journals: [],
|
||||||
|
items: [{
|
||||||
|
state: 0,
|
||||||
|
title: this.$t('artstate.state0'),
|
||||||
|
disabled: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 1,
|
||||||
|
title: this.$t('artstate.state1')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 2,
|
||||||
|
title: this.$t('artstate.state2'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 3,
|
||||||
|
title: this.$t('artstate.state3')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 4,
|
||||||
|
title: this.$t('artstate.state4')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 5,
|
||||||
|
title: this.$t('artstate.state5')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state: 6,
|
||||||
|
title: this.$t('artstate.state6')
|
||||||
|
}
|
||||||
|
],
|
||||||
|
form: {
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
journal: '',
|
||||||
|
journalname: '',
|
||||||
|
username: '',
|
||||||
|
title: '',
|
||||||
|
accept_sn: '',
|
||||||
|
abstrart: '',
|
||||||
|
keyWords: '',
|
||||||
|
fund: '',
|
||||||
|
type: '',
|
||||||
|
major: '',
|
||||||
|
approval: false,
|
||||||
|
repetition: '',
|
||||||
|
manuscirpt: '',
|
||||||
|
remarks: '',
|
||||||
|
state: '',
|
||||||
|
ctime: '',
|
||||||
|
authorList: [],
|
||||||
|
transList: []
|
||||||
|
},
|
||||||
|
prossMsgs: [],
|
||||||
|
talkMsgs: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created: function() {
|
||||||
|
this.initarticle();
|
||||||
|
this.initselect();
|
||||||
|
this.initFileList();
|
||||||
|
this.reviewdate();
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
myType: function() {
|
||||||
|
let frag = '';
|
||||||
|
switch (this.form.type) {
|
||||||
|
case "A":
|
||||||
|
frag = 'ARTICLE';
|
||||||
|
break;
|
||||||
|
case 'B':
|
||||||
|
frag = 'REVIEW';
|
||||||
|
break;
|
||||||
|
case 'C':
|
||||||
|
frag = 'CASE REPORT';
|
||||||
|
break;
|
||||||
|
case 'P':
|
||||||
|
frag = 'RESEARCH PROPOSAL';
|
||||||
|
break;
|
||||||
|
case 'N':
|
||||||
|
frag = 'NEWS';
|
||||||
|
break;
|
||||||
|
case 'T':
|
||||||
|
frag = 'COMMENT';
|
||||||
|
break;
|
||||||
|
case 'CT':
|
||||||
|
frag = 'CORRECTION';
|
||||||
|
break;
|
||||||
|
case 'HT':
|
||||||
|
frag = 'HYPOTHESIS';
|
||||||
|
break;
|
||||||
|
case 'PF':
|
||||||
|
frag = 'PREFACE';
|
||||||
|
break;
|
||||||
|
case 'ET':
|
||||||
|
frag = 'EDITORIAL';
|
||||||
|
break;
|
||||||
|
case 'RP':
|
||||||
|
frag = 'REPORT';
|
||||||
|
break;
|
||||||
|
case 'EF':
|
||||||
|
frag = 'EMPIRICAL FORMULA';
|
||||||
|
break;
|
||||||
|
case 'EM':
|
||||||
|
frag = 'EVIDENCE-BASED MEDICINE';
|
||||||
|
break;
|
||||||
|
case 'EC':
|
||||||
|
frag = 'EXPERT CONSENSUS';
|
||||||
|
break;
|
||||||
|
case 'LTE':
|
||||||
|
frag = 'LETTER TO EDITOR';
|
||||||
|
break;
|
||||||
|
case 'QI':
|
||||||
|
frag = 'QUESTIONNAIRE INVESTIGATION';
|
||||||
|
break;
|
||||||
|
case 'PT':
|
||||||
|
frag = 'PROTOCOL';
|
||||||
|
break;
|
||||||
|
case 'CS':
|
||||||
|
frag = 'CASE SERIES';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
frag = 'OTHERS';
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
upload_zip: function() {
|
||||||
|
return this.baseUrl + 'api/Article/up_file/type/repezip';
|
||||||
|
},
|
||||||
|
journal_me: function() {
|
||||||
|
var frag = this.form.journalname;
|
||||||
|
if (this.form.special_num > 0) {
|
||||||
|
frag += "(Special Issues)";
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
articleState: function() {
|
||||||
|
let str = '';
|
||||||
|
switch (this.form.state) {
|
||||||
|
case 0:
|
||||||
|
str = this.$t('artstate.state0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = this.$t('artstate.state1');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = this.$t('artstate.state2');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = this.$t('artstate.state3');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = this.$t('artstate.state4');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = this.$t('artstate.state5');
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = this.$t('artstate.state6');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//弹出编辑框
|
||||||
|
testedit() {
|
||||||
|
this.editbox = true;
|
||||||
|
},
|
||||||
|
statetostr(mystate) {
|
||||||
|
let str = '';
|
||||||
|
switch (mystate) {
|
||||||
|
case -1:
|
||||||
|
str = 'Manuscript Submission';
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
str = this.$t('artstate.state0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = this.$t('artstate.state1');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = this.$t('artstate.state2');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = this.$t('artstate.state3');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = this.$t('artstate.state4');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = this.$t('artstate.state5');
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = this.$t('artstate.state6');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
// 查看详情
|
||||||
|
man_detal() {
|
||||||
|
this.Detailvisible = true
|
||||||
|
},
|
||||||
|
//修改查重mark状态
|
||||||
|
saveRemark() {
|
||||||
|
this.loading = true;
|
||||||
|
this.$api.post('api/Article/editArticleRemark', this.remark)
|
||||||
|
.then(res => {
|
||||||
|
this.loading = false;
|
||||||
|
this.editbox = false;
|
||||||
|
this.$message.success('success');
|
||||||
|
this.initarticle();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
saveRepe() {
|
||||||
|
if (this.repeform.zipurl == '') {
|
||||||
|
this.$message.error('please upload zip');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.loading = true;
|
||||||
|
this.$api.post('api/Article/changeRepetition', this.repeform)
|
||||||
|
.then(res => {
|
||||||
|
this.loading = false;
|
||||||
|
this.form.repetition = this.repeform.repefen;
|
||||||
|
this.$message.success('success');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//初始化期刊选项
|
||||||
|
initselect() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getJournal')
|
||||||
|
.then((res) => {
|
||||||
|
this.journals = res;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//初始化文章信息
|
||||||
|
initarticle() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleDetail', {
|
||||||
|
articleId: this.editform.articleId,
|
||||||
|
human: 'editor'
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.form.username = res.article.account;
|
||||||
|
this.form.title = res.article.title;
|
||||||
|
this.form.journal = res.article.journal_id;
|
||||||
|
this.form.journalname = res.article.journalname;
|
||||||
|
this.form.abstrart = res.article.abstrart;
|
||||||
|
this.form.accept_sn = res.article.accept_sn;
|
||||||
|
this.form.keyWords = res.article.keywords;
|
||||||
|
this.form.fund = res.article.fund;
|
||||||
|
this.form.type = res.article.type;
|
||||||
|
this.form.special_num = res.article.special_num;
|
||||||
|
this.form.special_title = res.article.special_title;
|
||||||
|
this.form.major = res.major;
|
||||||
|
this.form.approval = res.article.approval == 1 ? true : false;
|
||||||
|
this.form.repetition = res.article.repetition;
|
||||||
|
this.form.remarks = res.article.remarks;
|
||||||
|
this.repeform.repefen = res.article.repetition;
|
||||||
|
this.remark.content = res.article.remarks;
|
||||||
|
this.editform.state = this.form.state = res.article.state;
|
||||||
|
this.form.ctime = res.article.ctime;
|
||||||
|
this.form.transList = res.transfer;
|
||||||
|
let back_num = 0
|
||||||
|
// 添加投递稿件条目
|
||||||
|
res.msg.unshift({
|
||||||
|
state_to: -1,
|
||||||
|
ctime: res.article.ctime,
|
||||||
|
color: '#B5C334',
|
||||||
|
icon: 'el-icon-collection-tag',
|
||||||
|
ftype: 0,
|
||||||
|
});
|
||||||
|
for (let i = res.msg.length - 1; i >= 0; i--) {
|
||||||
|
if (res.msg[i].state_to == 4 && back_num == 0) {
|
||||||
|
res.msg[i].back = 1;
|
||||||
|
back_num = 1
|
||||||
|
} else {
|
||||||
|
res.msg[i].back = 0;
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 1) {
|
||||||
|
res.msg[i].color = '#f75822'
|
||||||
|
res.msg[i].icon = 'el-icon-document-checked'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 2) {
|
||||||
|
res.msg[i].color = '#0ebee1'
|
||||||
|
res.msg[i].icon = 'el-icon-document'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 3) {
|
||||||
|
res.msg[i].color = '#f3170f'
|
||||||
|
res.msg[i].icon = 'el-icon-close'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 4) {
|
||||||
|
res.msg[i].color = '#5a90e1'
|
||||||
|
res.msg[i].icon = 'el-icon-edit-outline'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 5) {
|
||||||
|
res.msg[i].color = '#91cc75'
|
||||||
|
res.msg[i].icon = 'el-icon-check'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 6) {
|
||||||
|
res.msg[i].color = '#27727B'
|
||||||
|
res.msg[i].icon = 'el-icon-star-off'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.prossMsgs = res.msg;
|
||||||
|
let alist = res.authors;
|
||||||
|
let alist_name = [];
|
||||||
|
for (let i in alist) {
|
||||||
|
this.form.authorList.push({
|
||||||
|
art_aut_id: alist[i].art_aut_id,
|
||||||
|
firstname: alist[i].firstname,
|
||||||
|
lastname: alist[i].lastname,
|
||||||
|
orcid: alist[i].orcid,
|
||||||
|
company: alist[i].company,
|
||||||
|
department: alist[i].department,
|
||||||
|
title: alist[i].author_title,
|
||||||
|
country: alist[i].country,
|
||||||
|
email: alist[i].email,
|
||||||
|
address: alist[i].address,
|
||||||
|
isSuper: alist[i].is_super == 1 ? true : false,
|
||||||
|
isReport: alist[i].is_report == 1 ? true : false
|
||||||
|
});
|
||||||
|
if (i == alist.length - 1) {
|
||||||
|
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname)
|
||||||
|
} else {
|
||||||
|
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.authorList_name = "Author : " + alist_name.join("");
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 留言板列表
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleDialogs', {
|
||||||
|
article_id: this.$route.query.id
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.talkMsgs = res.data.dialogs;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取编辑列表数据
|
||||||
|
reviewdate() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getReviewerList', this.query_review)
|
||||||
|
.then((res) => {
|
||||||
|
this.review_Data = res.data;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
majorTitle(row, column, cellValue, index) {
|
||||||
|
return row.major_title + '(' + row.major_ctitle + ')';
|
||||||
|
},
|
||||||
|
revstate(row, column, cellValue, index) {
|
||||||
|
let frag = '';
|
||||||
|
if (row.state == 0) {
|
||||||
|
frag = 'With reviewer';
|
||||||
|
} else if (row.state == 1) {
|
||||||
|
frag = 'Revision';
|
||||||
|
} else if (row.state == 2) {
|
||||||
|
frag = 'Reject';
|
||||||
|
} else if (row.state == 3) {
|
||||||
|
frag = 'Accepted';
|
||||||
|
} else if (row.state == 4) {
|
||||||
|
frag = 'invalid';
|
||||||
|
} else if (row.state == 5) {
|
||||||
|
frag = 'invitation';
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 打分问卷
|
||||||
|
showdetail(e) {
|
||||||
|
this.questionform = {}
|
||||||
|
this.$api.post('api/Reviewer/getQuestion', {
|
||||||
|
artrevid: e
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.questionform = res.data;
|
||||||
|
this.questionform.rev_qu_id = res.data.rev_qu_id;
|
||||||
|
this.questionform.qu1 = res.data.qu1;
|
||||||
|
this.questionform.qu2 = res.data.qu2;
|
||||||
|
this.questionform.qu3 = res.data.qu3;
|
||||||
|
this.questionform.qu4 = res.data.qu4;
|
||||||
|
this.questionform.qu5 = res.data.qu5;
|
||||||
|
this.questionform.qu6 = res.data.qu6;
|
||||||
|
this.questionform.qu7 = res.data.qu7;
|
||||||
|
this.questionform.qu8 = res.data.qu8;
|
||||||
|
this.questionform.qu9 = res.data.qu9 == 0 ? false : true;
|
||||||
|
this.questionform.qu9contents = res.data.qu9_contents;
|
||||||
|
this.questionform.qu10 = res.data.qu10 == 0 ? false : true;
|
||||||
|
this.questionform.qu10contents = res.data.qu10_contents;
|
||||||
|
this.questionform.qu11 = res.data.qu11 == 0 ? false : true;
|
||||||
|
this.questionform.qu11contents = res.data.qu11_contents;
|
||||||
|
this.questionform.qu12 = res.data.qu12 == 0 ? false : true;
|
||||||
|
this.questionform.qu12contents = res.data.qu12_contents;
|
||||||
|
this.questionform.qu13 = res.data.qu13 == 0 ? false : true;
|
||||||
|
this.questionform.qu13contents = res.data.qu13_contents;
|
||||||
|
this.questionform.qu14 = res.data.qu14 == 0 ? false : true;
|
||||||
|
this.questionform.qu14contents = res.data.qu14_contents;
|
||||||
|
this.questionform.qu15 = res.data.qu15 == 0 ? false : true;
|
||||||
|
this.questionform.qu15contents = res.data.qu15_contents;
|
||||||
|
this.questionform.rated = res.data.rated;
|
||||||
|
this.questionform.recommend = res.data.recommend;
|
||||||
|
this.questionform.other = res.data.other;
|
||||||
|
this.questionform.confident = res.data.confidential;
|
||||||
|
this.questionform.comment = res.data.comments;
|
||||||
|
this.questionform.is_anonymous = res.data.is_anonymous;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.dialogFormVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//初始化filelist
|
||||||
|
initFileList() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getFilelistByArticleID', {
|
||||||
|
articleId: this.form.articleId
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.coverLetterFileList = res.coverLetter;
|
||||||
|
this.picturesAndTablesFileList = res.picturesAndTables;
|
||||||
|
this.manuscirptFileList = res.manuscirpt;
|
||||||
|
this.totalpageFileList = res.totalpage;
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 编辑上传的文件
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleProposals', {
|
||||||
|
article_id: this.form.articleId
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.proposalsFileList = res.data.proposals;
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
upSuccess_repezip(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.repeform.zipurl = 'repezip/' + res.upurl;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
upSuccess_repezip(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.repeform.zipurl = 'repezip/' + res.upurl;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//超出传送文件个数限制
|
||||||
|
alertlimit() {
|
||||||
|
this.$message.error('The maximum number of uploaded files has been exceeded');
|
||||||
|
},
|
||||||
|
getlinkurl(row) {
|
||||||
|
return this.mediaUrl + row.file_url;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
removefilerepezip(file, fileList) {
|
||||||
|
this.repeform.zipurl = '';
|
||||||
|
},
|
||||||
|
formatDate(timestamp) {
|
||||||
|
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||||
|
var Y = date.getFullYear() + '-';
|
||||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
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;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
1100
src/components/page/articleDetailEditor_g.vue
Normal file
1100
src/components/page/articleDetailEditor_g.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -13,7 +13,7 @@
|
|||||||
<el-option :key="0" label="All journals" :value="0"></el-option>
|
<el-option :key="0" label="All journals" :value="0"></el-option>
|
||||||
<el-option v-for="item in items" :key="item.journal_id" :label="item.title" :value="item.journal_id"></el-option>
|
<el-option v-for="item in items" :key="item.journal_id" :label="item.title" :value="item.journal_id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="query.state" @change="getdate" placeholder="Please select status" style="margin-left:10px;width: 130px;">
|
<el-select v-model="query.state" @change="getdate" placeholder="Please select status" style="margin-left:10px;width: 130px;">
|
||||||
<el-option :key="0" label="All status" :value="0"></el-option>
|
<el-option :key="0" label="All status" :value="0"></el-option>
|
||||||
<el-option :key="1" :label="$t('artstate.state1')" :value="1"></el-option>
|
<el-option :key="1" :label="$t('artstate.state1')" :value="1"></el-option>
|
||||||
<el-option :key="2" :label="$t('artstate.state2')" :value="2"></el-option>
|
<el-option :key="2" :label="$t('artstate.state2')" :value="2"></el-option>
|
||||||
@@ -23,10 +23,10 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
<el-input v-model="query.name" placeholder="Title" style="margin:0 10px;width: 200px;"></el-input>
|
<el-input v-model="query.name" placeholder="Title" style="margin:0 10px;width: 200px;"></el-input>
|
||||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
|
||||||
<el-button type="primary" icon="el-icon-edit-outline" @click="addArticle" style="float: right;width: 200px;">New Submission</el-button>
|
<el-button type="primary" icon="el-icon-edit-outline" @click="addArticle" style="float: right;width: 200px;">New
|
||||||
|
Submission</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="tableData" border ref="multipleTable">
|
<el-table :data="tableData" border ref="multipleTable">
|
||||||
>
|
|
||||||
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
||||||
<!-- <el-table-column prop="article_id" label="ID" width="55" align="center"></el-table-column> -->
|
<!-- <el-table-column prop="article_id" label="ID" width="55" align="center"></el-table-column> -->
|
||||||
<el-table-column label="Title" align="center">
|
<el-table-column label="Title" align="center">
|
||||||
@@ -45,11 +45,187 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
|
<div shadow="never" v-for="item in tableData" class="mangu_list">
|
||||||
|
<div style="padding: 20px;">
|
||||||
|
<p style="color: #006699;">
|
||||||
|
<font style="color: #666b7a;">ID : </font>
|
||||||
|
{{item.accept_sn}}
|
||||||
|
</p>
|
||||||
|
<p class="man_title">{{item.title}}</p>
|
||||||
|
<p class="man_con">
|
||||||
|
<font style="color: #666b7a;">Type : </font>
|
||||||
|
<span style="font-weight: normal;">{{item.type | ellipsis}}</span>
|
||||||
|
<font style="color: #666b7a;">Journal : </font>
|
||||||
|
<b style="color: #006699;font-weight: normal;">{{item.journalname}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font style="color: #666b7a;">Update Time : </font>
|
||||||
|
<b style="font-weight: normal;">{{item.ctime}}</b>
|
||||||
|
</p>
|
||||||
|
<div class="man_state" :style="item.state | stateColor">
|
||||||
|
{{item.state | stateChange}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="man_btn">
|
||||||
|
<span @click="esy_mtps(item.article_id)"><i class="el-icon-document"></i>Manuscript process</span>
|
||||||
|
<font> | </font>
|
||||||
|
<span @click="esy_deta(item.article_id)"><i class="el-icon-document-copy"></i>Detail</span>
|
||||||
|
<font> | </font>
|
||||||
|
<span @click="esy_file(item.article_id)"><i class="el-icon-folder-opened"></i>Files</span>
|
||||||
|
</div>
|
||||||
|
<div class="man_progess">
|
||||||
|
<font style="color: #666b7a;">
|
||||||
|
<i class="el-icon-time"></i>Latest Progress :
|
||||||
|
</font>
|
||||||
|
<b style="margin: 0 0 0 5px;">{{item.state | stateChange}} </b>
|
||||||
|
<router-link :to="{path:'/articleList',query:{art_id:item.article_id}}" v-if="item.state==4" style="color: #333;">
|
||||||
|
: <span style="margin: 0 0 0 5px;">click to</span>
|
||||||
|
<img src="../../assets/img/right_band.png" style="width: 14px;margin: 0 3px 0 10px;">
|
||||||
|
<b style="margin-left: 5px;color: #006699;text-decoration: underline;">Major revision</b>
|
||||||
|
</router-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex" :page-size="query.pageSize"
|
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex" :page-size="query.pageSize"
|
||||||
:total="Total" @current-change="handlePageChange"></el-pagination>
|
:total="Total" @current-change="handlePageChange"></el-pagination>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 文章内容 -->
|
||||||
|
<el-dialog title="Basic information" :visible.sync="artextVisible" width="600px">
|
||||||
|
<div class="art_state_message">
|
||||||
|
<p>
|
||||||
|
<font>Title :</font><b>{{artextForm.title}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Type :</font><b>{{artextForm.type | ellipsis}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-show="artextForm.type=='A'">
|
||||||
|
<font>Ethical Approval :</font><b>{{artextForm.approval?'Yes':'No'}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="artextForm.special_num > 0">
|
||||||
|
<font>Special Issues :</font><b>{{ artextForm.special_title }}</b>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<font>Journal :</font><b>{{artextForm | journal_me}}</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Major :</font><b>{{artextForm.major}}</b>
|
||||||
|
</p>
|
||||||
|
<el-collapse v-model="activeNames" class="auth_colla auth_colla_new">
|
||||||
|
<el-collapse-item :title="authorList_name" name="1">
|
||||||
|
<div v-for="(item, index) in artextForm.authors" class="auth_mess">
|
||||||
|
<h4 style="font-weight: bolder;">
|
||||||
|
<img src="../../assets/img/state_one.png" v-if="item.isSuper" style="width: 15px;margin: 0 2px 0 0;vertical-align: text-bottom;">
|
||||||
|
{{item.firstname}} {{item.lastname}} {{item.isSuper?'#':''}}{{item.isReport?'*':''}}
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<p v-if="item.email">
|
||||||
|
<img src="../../assets/img/state_email.png" v-if="item.isReport" style="width: 14px;margin: 0 8px 0 0;vertical-align: text-bottom;">
|
||||||
|
<font>Email : </font>{{item.email}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.orcid">
|
||||||
|
<font>ORCID iD : </font>{{item.orcid}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>First author : </font>
|
||||||
|
<b v-if="item.isSuper">Yes</b>
|
||||||
|
<b v-if="!item.isSuper">No</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<font>Corresponding Author :</font>
|
||||||
|
<b v-if="item.isReport">Yes</b>
|
||||||
|
<b v-if="!item.isReport">No</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="item.address">
|
||||||
|
<font>Address : </font>{{item.address}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.company">
|
||||||
|
<font>Institution : </font>{{item.company}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.department">
|
||||||
|
<font>Department : </font>{{item.department}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.title">
|
||||||
|
<font>Title : </font>{{item.title}}
|
||||||
|
</p>
|
||||||
|
<p v-if="item.country">
|
||||||
|
<font>Country : </font>{{item.country}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
<p style="margin-top: 15px;">
|
||||||
|
<font>Abstrart :</font><b>{{artextForm.abstrart}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="artextForm.keyWords">
|
||||||
|
<font>KeyWords :</font><b>{{artextForm.keyWords}}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="artextForm.fund">
|
||||||
|
<font>Fund :</font><b>{{artextForm.fund}}</b>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="artextVisible=false">OK</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
<!-- 文章文件 -->
|
||||||
|
<el-dialog title="Basic information files" :visible.sync="artfileVisible" width="600px">
|
||||||
|
<div class="art_file" style="margin-top: 0;border-top-color:#fff;padding-top: 0;">
|
||||||
|
<h4 v-if="coverLetterFileList">Cover letter : </h4>
|
||||||
|
<p v-if="coverLetterFileList">
|
||||||
|
<a v-for="item in coverLetterFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both" v-if="coverLetterFileList">
|
||||||
|
<h4 v-if="picturesAndTablesFileList">Figures : </h4>
|
||||||
|
<p v-if="picturesAndTablesFileList">
|
||||||
|
<a v-for="item in picturesAndTablesFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both" v-if="picturesAndTablesFileList">
|
||||||
|
<h4>Title page : </h4>
|
||||||
|
<p>
|
||||||
|
<a v-for="item in totalpageFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both">
|
||||||
|
<h4>Manuscirpt : </h4>
|
||||||
|
<p>
|
||||||
|
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
|
||||||
|
<img src="../../assets/img/icon_0.png">
|
||||||
|
<span>
|
||||||
|
<font>Uploader : </font>{{item.username}}
|
||||||
|
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<br clear="both">
|
||||||
|
</div>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="artfileVisible=false">OK</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -58,10 +234,13 @@
|
|||||||
name: 'articleList',
|
name: 'articleList',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
baseUrl: this.Common.baseUrl,
|
||||||
|
mediaUrl: this.Common.mediaUrl,
|
||||||
items: '',
|
items: '',
|
||||||
query: {
|
query: {
|
||||||
username: localStorage.getItem('U_name'),
|
username: localStorage.getItem('U_name'),
|
||||||
journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 0,
|
// journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 0,
|
||||||
|
journal: 0,
|
||||||
name: '',
|
name: '',
|
||||||
state: 0,
|
state: 0,
|
||||||
pageIndex: 1,
|
pageIndex: 1,
|
||||||
@@ -70,11 +249,17 @@
|
|||||||
tableData: [],
|
tableData: [],
|
||||||
multipleSelection: [],
|
multipleSelection: [],
|
||||||
delList: [],
|
delList: [],
|
||||||
|
activeNames: [],
|
||||||
|
artextForm: {},
|
||||||
|
coverLetterFileList: [],
|
||||||
|
picturesAndTablesFileList: [],
|
||||||
|
totalpageFileList: [],
|
||||||
|
manuscirptFileList: [],
|
||||||
|
authorList_name: '',
|
||||||
editVisible: false,
|
editVisible: false,
|
||||||
|
artextVisible: false,
|
||||||
|
artfileVisible: false,
|
||||||
Total: 0
|
Total: 0
|
||||||
// form: {},
|
|
||||||
// idx: -1,
|
|
||||||
// id: -1
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@@ -93,13 +278,20 @@
|
|||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 获取数据
|
// 获取文章列表数据
|
||||||
getdate() {
|
getdate() {
|
||||||
this.$api
|
this.$api
|
||||||
.post('api/Article/getArticle', this.query)
|
.post('api/Article/getArticle', this.query)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
this.Total = res.total;
|
this.Total = res.total;
|
||||||
|
for (let i = 0; i < res.data.length; i++) {
|
||||||
|
let date = new Date(parseInt(res.data[i].ctime) * 1000);
|
||||||
|
let Y = date.getFullYear() + '-';
|
||||||
|
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
|
||||||
|
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
res.data[i].ctime = Y + M + D;
|
||||||
|
}
|
||||||
this.tableData = res.data;
|
this.tableData = res.data;
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
@@ -170,12 +362,238 @@
|
|||||||
if (row.editor_act == 1) {
|
if (row.editor_act == 1) {
|
||||||
return 'hasChange-row';
|
return 'hasChange-row';
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
|
// 点击稿件进程
|
||||||
|
esy_mtps(e) {
|
||||||
|
this.$router.push({
|
||||||
|
path: 'articleProcess',
|
||||||
|
query: {
|
||||||
|
id: e
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 点击稿件内容
|
||||||
|
esy_deta(e) {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleDetail', {
|
||||||
|
articleId: e,
|
||||||
|
human: 'author'
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.artextForm = res.article
|
||||||
|
this.artextForm.major = res.major;
|
||||||
|
this.artextForm.authors = []
|
||||||
|
let alist = res.authors;
|
||||||
|
let alist_name = [];
|
||||||
|
for (let i in alist) {
|
||||||
|
this.artextForm.authors.push({
|
||||||
|
art_aut_id: alist[i].art_aut_id,
|
||||||
|
firstname: alist[i].firstname,
|
||||||
|
lastname: alist[i].lastname,
|
||||||
|
orcid: alist[i].orcid,
|
||||||
|
company: alist[i].company,
|
||||||
|
department: alist[i].department,
|
||||||
|
title: alist[i].author_title,
|
||||||
|
country: alist[i].country,
|
||||||
|
email: alist[i].email,
|
||||||
|
address: alist[i].address,
|
||||||
|
isSuper: alist[i].is_super == 1 ? true : false,
|
||||||
|
isReport: alist[i].is_report == 1 ? true : false
|
||||||
|
});
|
||||||
|
if (i == alist.length - 1) {
|
||||||
|
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname)
|
||||||
|
} else {
|
||||||
|
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.authorList_name = "Author : " + alist_name.join("");
|
||||||
|
|
||||||
|
this.artextVisible = true
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
// 点击稿件文件
|
||||||
|
esy_file(e) {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getFilelistByArticleID', {
|
||||||
|
articleId: e
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.coverLetterFileList = res.coverLetter;
|
||||||
|
this.picturesAndTablesFileList = res.picturesAndTables;
|
||||||
|
this.manuscirptFileList = res.manuscirpt;
|
||||||
|
this.totalpageFileList = res.totalpage;
|
||||||
|
|
||||||
|
this.artfileVisible = true
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
formatDate(timestamp) {
|
||||||
|
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||||
|
var Y = date.getFullYear() + '-';
|
||||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
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;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
// 文章类型
|
||||||
|
ellipsis(value) {
|
||||||
|
let frag = '';
|
||||||
|
switch (value) {
|
||||||
|
case "A":
|
||||||
|
frag = 'ARTICLE';
|
||||||
|
break;
|
||||||
|
case 'B':
|
||||||
|
frag = 'REVIEW';
|
||||||
|
break;
|
||||||
|
case 'C':
|
||||||
|
frag = 'CASE REPORT';
|
||||||
|
break;
|
||||||
|
case 'P':
|
||||||
|
frag = 'RESEARCH PROPOSAL';
|
||||||
|
break;
|
||||||
|
case 'N':
|
||||||
|
frag = 'NEWS';
|
||||||
|
break;
|
||||||
|
case 'T':
|
||||||
|
frag = 'COMMENT';
|
||||||
|
break;
|
||||||
|
case 'CT':
|
||||||
|
frag = 'CORRECTION';
|
||||||
|
break;
|
||||||
|
case 'HT':
|
||||||
|
frag = 'HYPOTHESIS';
|
||||||
|
break;
|
||||||
|
case 'PF':
|
||||||
|
frag = 'PREFACE';
|
||||||
|
break;
|
||||||
|
case 'ET':
|
||||||
|
frag = 'EDITORIAL';
|
||||||
|
break;
|
||||||
|
case 'RP':
|
||||||
|
frag = 'REPORT';
|
||||||
|
break;
|
||||||
|
case 'EF':
|
||||||
|
frag = 'EMPIRICAL FORMULA';
|
||||||
|
break;
|
||||||
|
case 'EM':
|
||||||
|
frag = 'EVIDENCE-BASED MEDICINE';
|
||||||
|
break;
|
||||||
|
case 'EC':
|
||||||
|
frag = 'EXPERT CONSENSUS';
|
||||||
|
break;
|
||||||
|
case 'LTE':
|
||||||
|
frag = 'LETTER TO EDITOR';
|
||||||
|
break;
|
||||||
|
case 'QI':
|
||||||
|
frag = 'QUESTIONNAIRE INVESTIGATION';
|
||||||
|
break;
|
||||||
|
case 'PT':
|
||||||
|
frag = 'PROTOCOL';
|
||||||
|
break;
|
||||||
|
case 'CS':
|
||||||
|
frag = 'CASE SERIES';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
frag = 'OTHERS';
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 稿件状态
|
||||||
|
stateChange(value) {
|
||||||
|
let str = '';
|
||||||
|
switch (value) {
|
||||||
|
case 0:
|
||||||
|
str = 'Received';
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = 'With editor';
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = 'Under review';
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = 'Reject';
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = 'Revision';
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = 'Accepted';
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = 'Fininal decision';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
str = 'error!!';
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
// 稿件状态颜色
|
||||||
|
stateColor(value) {
|
||||||
|
let str = '';
|
||||||
|
switch (value) {
|
||||||
|
case 0:
|
||||||
|
str = 'background-color: #B5C334;';
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = 'background-color: #f75822;';
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = 'background-color: #0ebee1;';
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = 'background-color: #f3170f;';
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = 'background-color: #5a90e1;';
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = 'background-color: #91cc75;';
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = 'background-color: #27727B;';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
str = 'background-color: #888;';
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
journal_me(e) {
|
||||||
|
var frag = e.journalname;
|
||||||
|
if (e.special_num > 0) {
|
||||||
|
frag += "(Special Issues)";
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.container {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
.handle-box {
|
.handle-box {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
@@ -212,9 +630,78 @@
|
|||||||
.item {
|
.item {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
</style>
|
|
||||||
<style>
|
|
||||||
.el-table .hasChange-row {
|
.el-table .hasChange-row {
|
||||||
background-color: #ffebe8;
|
background-color: #ffebe8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mangu_list {
|
||||||
|
color: #333;
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
font-size: 14px;
|
||||||
|
position: relative;
|
||||||
|
border-radius: 5px;
|
||||||
|
border: 1px solid #EBEEF5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_title {
|
||||||
|
margin: 15px 0 20px 0;
|
||||||
|
font-weight: bolder;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_con {
|
||||||
|
margin: 0 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_con>span {
|
||||||
|
color: #555;
|
||||||
|
font-weight: bolder;
|
||||||
|
border-radius: 5px;
|
||||||
|
margin: 0 50px 0 0;
|
||||||
|
/* background-color: #b9bcbd; */
|
||||||
|
/* padding: 2px 5px; */
|
||||||
|
/* font-size: 12px; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_state {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
color: #fff;
|
||||||
|
padding: 5px 15px;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_progess {
|
||||||
|
padding: 15px 20px;
|
||||||
|
border-top: 1px solid #EBEEF5;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_progess i {
|
||||||
|
margin: 0 5px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_btn {
|
||||||
|
color: #006699;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 70px;
|
||||||
|
right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_btn>span:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #06374e;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.mangu_list .man_btn i {
|
||||||
|
margin: 0 8px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mangu_list .man_btn font {
|
||||||
|
margin: 0 18px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -167,8 +167,24 @@
|
|||||||
this.getdate();
|
this.getdate();
|
||||||
},
|
},
|
||||||
showdetaileditor(row) {
|
showdetaileditor(row) {
|
||||||
|
let stat_num='articleDetailEditor'
|
||||||
|
if(row.state==0){//Received
|
||||||
|
stat_num = 'articleDetailEditor_a'
|
||||||
|
}else if(row.state==1){//With editor
|
||||||
|
stat_num = 'articleDetailEditor_b'
|
||||||
|
}else if(row.state==2){//Under review
|
||||||
|
stat_num = 'articleDetailEditor_c'
|
||||||
|
}else if(row.state==3){//Reject
|
||||||
|
stat_num = 'articleDetailEditor_d'
|
||||||
|
}else if(row.state==4){//Revision
|
||||||
|
stat_num = 'articleDetailEditor_e'
|
||||||
|
}else if(row.state==5){//Accepted
|
||||||
|
stat_num = 'articleDetailEditor_f'
|
||||||
|
}else if(row.state==6){//Fininal decision
|
||||||
|
stat_num = 'articleDetailEditor_g'
|
||||||
|
}
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: 'articleDetailEditor',
|
path: stat_num,
|
||||||
query: {
|
query: {
|
||||||
id: row.article_id
|
id: row.article_id
|
||||||
}
|
}
|
||||||
|
|||||||
388
src/components/page/articleProcess.vue
Normal file
388
src/components/page/articleProcess.vue
Normal file
@@ -0,0 +1,388 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="crumbs">
|
||||||
|
<el-breadcrumb separator="/">
|
||||||
|
<el-breadcrumb-item>
|
||||||
|
<i class="el-icon-lx-calendar"></i>
|
||||||
|
<router-link :to="{path:'/articleList'}">
|
||||||
|
<span class="top_dao"> Manuscript list</span>
|
||||||
|
</router-link>
|
||||||
|
>> Manuscript process
|
||||||
|
</el-breadcrumb-item>
|
||||||
|
</el-breadcrumb>
|
||||||
|
</div>
|
||||||
|
<div class="container process_new">
|
||||||
|
<p style="font-size: 16px;font-weight: bolder;">
|
||||||
|
<span class="art_type">{{ellType(artMes.type)}}</span>
|
||||||
|
{{artMes.title}}
|
||||||
|
</p>
|
||||||
|
<p style="color: #7f8790;margin: 10px 0 0 0;font-size: 14px;">Follow the progress of your submission.</p>
|
||||||
|
<div class="tit_head">
|
||||||
|
This submission is <b>{{statetostr(artMes.laststate)}}</b>
|
||||||
|
at <b>{{artMes.journalname}}.</b>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p style="width: 100%;height: 1px;background-color: #eee;margin: 35px 0 30px 0;"></p>
|
||||||
|
|
||||||
|
<el-row :gutter="80">
|
||||||
|
<el-col :span="24">
|
||||||
|
<h2 style="font-size: 18px;margin: 0 0 30px 0;float: left;">Manuscript process</h2>
|
||||||
|
<div class="radio" style="float: right;">
|
||||||
|
<el-radio-group v-model="reverse">
|
||||||
|
<el-radio-button :label="false">Ascending</el-radio-button>
|
||||||
|
<el-radio-button :label="true">Descending</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
<br clear="both">
|
||||||
|
<el-timeline :reverse="reverse" class="author_tree">
|
||||||
|
<el-timeline-item v-for="(item, index) in prossMsgs" :icon="item.icon" :color="item.color" size="large" :key="index"
|
||||||
|
:timestamp="formatDate(item.ctime)" placement="top" v-if="item.ftype == 0">
|
||||||
|
<el-card>
|
||||||
|
<p>
|
||||||
|
<font>{{ statetostr(item.state_to) }}</font>
|
||||||
|
<!-- 提交 -->
|
||||||
|
<font v-if="item.state_to==-1">
|
||||||
|
: <b style="margin-left: 5px;">First submitted to {{artMes.journalname}}</b>
|
||||||
|
</font>
|
||||||
|
<!-- 给编辑 -->
|
||||||
|
<font v-if="item.state_to==1">
|
||||||
|
: <b style="margin-left: 5px;"> Submission checks complete</b>
|
||||||
|
</font>
|
||||||
|
<!-- 审查中 -->
|
||||||
|
<font v-if="item.state_to==2">
|
||||||
|
: <b style="margin-left: 5px;"> Editor assigned</b>
|
||||||
|
</font>
|
||||||
|
<!-- 修改 -->
|
||||||
|
<font v-if="item.state_to==4">
|
||||||
|
:
|
||||||
|
<router-link :to="{path:'/articleList',query:{art_id:artMes.article_id}}" v-if="item.back==1">
|
||||||
|
<b style="margin-left: 5px;color: #006699;text-decoration: underline;">Major revision</b>
|
||||||
|
</router-link>
|
||||||
|
<b style="margin-left: 5px;color: #888;text-decoration: underline;" v-if="item.back==0">
|
||||||
|
Major revision (Completed)
|
||||||
|
</b>
|
||||||
|
</font>
|
||||||
|
<!-- 接收 -->
|
||||||
|
<font v-if="item.state_to==5">
|
||||||
|
: <b style="margin-left: 5px;"> Successfully received manuscript</b>
|
||||||
|
</font>
|
||||||
|
</p>
|
||||||
|
</el-card>
|
||||||
|
</el-timeline-item>
|
||||||
|
</el-timeline>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="9">
|
||||||
|
<h2 style="font-size: 18px;margin: 0 0 30px 0;">Talking</h2>
|
||||||
|
<el-button type="primary" icon="el-icon-edit" round style="margin-left: 28px" @click="authormsg">Edit message</el-button>
|
||||||
|
</el-col> -->
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-dialog title="Message" :visible.sync="editVisible" width="40%">
|
||||||
|
<el-form ref="msgform" :model="msgform" label-width="80px">
|
||||||
|
<el-form-item label="Message">
|
||||||
|
<el-input type="textarea" rows="5" v-model="msgform.content" placeholder="Author messages"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="saveMsg" :loading="saveloading">save</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseUrl: this.Common.baseUrl,
|
||||||
|
mediaUrl: this.Common.mediaUrl,
|
||||||
|
articleId: this.$route.query.id,
|
||||||
|
userName: localStorage.getItem('U_name'),
|
||||||
|
loading: false,
|
||||||
|
reverse: false,
|
||||||
|
artMes: {
|
||||||
|
articleId: this.$route.query.id
|
||||||
|
},
|
||||||
|
msgform: {
|
||||||
|
username: localStorage.getItem('U_name'),
|
||||||
|
article_id: this.$route.query.id,
|
||||||
|
ad_content: ''
|
||||||
|
},
|
||||||
|
prossMsgs: [],
|
||||||
|
editVisible: false,
|
||||||
|
saveloading: false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created: function() {
|
||||||
|
this.initarticle();
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
//初始化文章信息
|
||||||
|
initarticle() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getArticleDetail', {
|
||||||
|
articleId: this.articleId,
|
||||||
|
human: 'author'
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
let back_num = 0
|
||||||
|
// 添加投递稿件条目
|
||||||
|
res.msg.unshift({
|
||||||
|
state_to: -1,
|
||||||
|
ctime: res.article.ctime,
|
||||||
|
color: '#B5C334',
|
||||||
|
icon: 'el-icon-collection-tag',
|
||||||
|
ftype: 0,
|
||||||
|
});
|
||||||
|
for (let i = res.msg.length - 1; i >= 0; i--) {
|
||||||
|
if (res.msg[i].state_to == 4 && back_num == 0) {
|
||||||
|
res.msg[i].back = 1;
|
||||||
|
back_num = 1
|
||||||
|
} else {
|
||||||
|
res.msg[i].back = 0;
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 1) {
|
||||||
|
res.msg[i].color = '#f75822'
|
||||||
|
res.msg[i].icon = 'el-icon-document-checked'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 2) {
|
||||||
|
res.msg[i].color = '#0ebee1'
|
||||||
|
res.msg[i].icon = 'el-icon-document'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 3) {
|
||||||
|
res.msg[i].color = '#f3170f'
|
||||||
|
res.msg[i].icon = 'el-icon-close'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 4) {
|
||||||
|
res.msg[i].color = '#5a90e1'
|
||||||
|
res.msg[i].icon = 'el-icon-edit-outline'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 5) {
|
||||||
|
res.msg[i].color = '#91cc75'
|
||||||
|
res.msg[i].icon = 'el-icon-check'
|
||||||
|
}
|
||||||
|
if (res.msg[i].state_to == 6) {
|
||||||
|
res.msg[i].color = '#27727B'
|
||||||
|
res.msg[i].icon = 'el-icon-star-off'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.artMes = res.article;
|
||||||
|
this.artMes.laststate = res.msg[res.msg.length - 1].state_to;
|
||||||
|
this.prossMsgs = res.msg;
|
||||||
|
console.log(this.prossMsgs)
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
formatDate(timestamp) {
|
||||||
|
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||||
|
var Y = date.getFullYear() + '-';
|
||||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
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;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 对话框
|
||||||
|
authormsg() {
|
||||||
|
this.editVisible = true;
|
||||||
|
},
|
||||||
|
saveMsg() {
|
||||||
|
if (this.msgform.content == '') {
|
||||||
|
this.$message.error('Please input messages');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.saveloading = true;
|
||||||
|
this.$api.post('api/Article/authorMessage', this.msgform)
|
||||||
|
.then((res) => {
|
||||||
|
this.saveloading = false;
|
||||||
|
this.$message.success('Sent successfully');
|
||||||
|
this.$router.go(0);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
statetostr(mystate) {
|
||||||
|
let str = '';
|
||||||
|
switch (mystate) {
|
||||||
|
case -1:
|
||||||
|
str = 'Manuscript Submission';
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
str = 'Received';
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = 'With editor';
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = 'Under review';
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = 'Reject';
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = 'Revision';
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = 'Accepted';
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = 'Fininal decision';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
str = 'error!!';
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
|
||||||
|
ellType(e) {
|
||||||
|
let frag = '';
|
||||||
|
switch (e) {
|
||||||
|
case "A":
|
||||||
|
frag = 'ARTICLE';
|
||||||
|
break;
|
||||||
|
case 'B':
|
||||||
|
frag = 'REVIEW';
|
||||||
|
break;
|
||||||
|
case 'C':
|
||||||
|
frag = 'CASE REPORT';
|
||||||
|
break;
|
||||||
|
case 'P':
|
||||||
|
frag = 'RESEARCH PROPOSAL';
|
||||||
|
break;
|
||||||
|
case 'N':
|
||||||
|
frag = 'NEWS';
|
||||||
|
break;
|
||||||
|
case 'T':
|
||||||
|
frag = 'COMMENT';
|
||||||
|
break;
|
||||||
|
case 'CT':
|
||||||
|
frag = 'CORRECTION';
|
||||||
|
break;
|
||||||
|
case 'HT':
|
||||||
|
frag = 'HYPOTHESIS';
|
||||||
|
break;
|
||||||
|
case 'PF':
|
||||||
|
frag = 'PREFACE';
|
||||||
|
break;
|
||||||
|
case 'ET':
|
||||||
|
frag = 'EDITORIAL';
|
||||||
|
break;
|
||||||
|
case 'RP':
|
||||||
|
frag = 'REPORT';
|
||||||
|
break;
|
||||||
|
case 'EF':
|
||||||
|
frag = 'EMPIRICAL FORMULA';
|
||||||
|
break;
|
||||||
|
case 'EM':
|
||||||
|
frag = 'EVIDENCE-BASED MEDICINE';
|
||||||
|
break;
|
||||||
|
case 'EC':
|
||||||
|
frag = 'EXPERT CONSENSUS';
|
||||||
|
break;
|
||||||
|
case 'LTE':
|
||||||
|
frag = 'LETTER TO EDITOR';
|
||||||
|
break;
|
||||||
|
case 'QI':
|
||||||
|
frag = 'QUESTIONNAIRE INVESTIGATION';
|
||||||
|
break;
|
||||||
|
case 'PT':
|
||||||
|
frag = 'PROTOCOL';
|
||||||
|
break;
|
||||||
|
case 'CS':
|
||||||
|
frag = 'CASE SERIES';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
frag = 'OTHERS';
|
||||||
|
}
|
||||||
|
return frag;
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.top_dao:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.process_new {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.art_type {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #006699;
|
||||||
|
padding: 2px 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: 12px;
|
||||||
|
margin: 0 10px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit_head {
|
||||||
|
border-radius: 5px;
|
||||||
|
border: 1px solid #EBEEF5;
|
||||||
|
padding: 20px;
|
||||||
|
font-size: 15px;
|
||||||
|
margin: 30px 0;
|
||||||
|
background-color: #fcfcfc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit_head b:nth-child(1) {
|
||||||
|
color: #006699;
|
||||||
|
/* text-decoration: underline; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
||||||
|
background-color: #006699;
|
||||||
|
border-color: #006699;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author_tree {
|
||||||
|
margin: 40px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author_tree .el-timeline-item__node--large {
|
||||||
|
left: 155px;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author_tree .el-timeline-item__wrapper {
|
||||||
|
padding-left: 0;
|
||||||
|
margin: 0 0 50px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author_tree .el-timeline-item__timestamp.is-top {
|
||||||
|
padding-top: 10px;
|
||||||
|
margin-bottom: 13px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author_tree .el-timeline-item__content {
|
||||||
|
margin: -50px 0 0 210px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author_tree .el-timeline-item__tail {
|
||||||
|
height: auto;
|
||||||
|
bottom: 15px;
|
||||||
|
top: 45px;
|
||||||
|
border-left: 3px solid #E4E7ED;
|
||||||
|
/* border-left: 2px solid #66a3c2; */
|
||||||
|
left: 168px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible">
|
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible">
|
||||||
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
|
<el-form :model="questionform" ref="question" label-width="300px" label-position="top">
|
||||||
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
||||||
<el-row :gutter="24">
|
<el-row :gutter="24">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<el-form ref="reviewerform" :model="reviewerForm" :rules="rules" label-width="90px">
|
<el-form ref="reviewerform" :model="reviewerForm" :rules="rules" label-width="90px">
|
||||||
<el-form-item label="Journal :" prop="journal_id">
|
<el-form-item label="Journal :" prop="journal_id">
|
||||||
<el-select v-model="reviewerForm.journal_id" placeholder="Please select" style="width: 320px;">
|
<el-select v-model="reviewerForm.journal_id" placeholder="Please select a journal" style="width: 320px;">
|
||||||
<el-option v-for="item in items" :key="item.journal_id" :label="item.title" :value="item.journal_id"></el-option>
|
<el-option v-for="item in items" :key="item.journal_id" :label="item.title" :value="item.journal_id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|||||||
420
src/components/page/cenper_ter.vue
Normal file
420
src/components/page/cenper_ter.vue
Normal file
@@ -0,0 +1,420 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="crumbs">
|
||||||
|
<el-breadcrumb separator="/">
|
||||||
|
<el-breadcrumb-item>
|
||||||
|
<i class="el-icon-user"></i> <span class="top_dao"> Personal Center</span>
|
||||||
|
</el-breadcrumb-item>
|
||||||
|
</el-breadcrumb>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<!-- 基本信息 -->
|
||||||
|
<h2 class="infor_title" style="margin: 0 0 25px 0;">Essential Information</h2>
|
||||||
|
<el-form :model="coreForm" :rules="rules" ref="core_Form" label-width="140px">
|
||||||
|
<el-form-item label="Account :" prop="account">
|
||||||
|
<span>{{coreForm.account}}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Realname :" prop="realname">
|
||||||
|
<el-input type="text" placeholder="Please enter..." v-model="coreForm.realname" style="width: 320px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Gender :" prop="gender">
|
||||||
|
<el-radio-group v-model="coreForm.gender">
|
||||||
|
<el-radio :label="1">Male</el-radio>
|
||||||
|
<el-radio :label="2">Female</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Change Password :">
|
||||||
|
<el-button type="warning" @click="psw_word" plain>Change Password</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Phone :" prop="phone">
|
||||||
|
<el-input type="text" placeholder="Please enter..." v-model="coreForm.phone" style="width: 320px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Email :" prop="email">
|
||||||
|
<el-input type="text" placeholder="Please enter..." v-model="coreForm.email" style="width: 320px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="onSubmit_core(coreForm)">Modify and save</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<!-- 审稿人信息 -->
|
||||||
|
<div style="margin-top: 50px;" v-if="this.usercap.includes('reviewer')">
|
||||||
|
<el-divider></el-divider>
|
||||||
|
<h2 class="infor_title" style=" margin: 35px 0 25px 0;">As Reviewer Information</h2>
|
||||||
|
<p style="margin: 0 0 30px 0;line-height:22px;font-size: 14px;">
|
||||||
|
You are already the reviewer of the Journal of
|
||||||
|
<b v-for="index in items_journal"> {{index.title}} ,</b><br>
|
||||||
|
You can modify the following information.
|
||||||
|
</p>
|
||||||
|
<el-form :model="reviewForm" :rules="rules" ref="review_Form" label-width="140px">
|
||||||
|
<el-form-item label="Title :" prop="title">
|
||||||
|
<el-select v-model="reviewForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 320px;">
|
||||||
|
<el-option v-for="item in df_technical" :key="item.label" :label="item.label" :value="item.label"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Country :" prop="country">
|
||||||
|
<el-select v-model="reviewForm.country" filterable placeholder="Please select a country" value-key="groupID"
|
||||||
|
style="width: 320px;">
|
||||||
|
<el-option v-for="item in df_country" :label="item.en_name" :key="item.en_name" :value="item.en_name"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Major :" prop="maj_cn">
|
||||||
|
<el-cascader v-model="reviewForm.maj_cn" :options="jl_major" :props="defaultParams" placeholder="Please select major"
|
||||||
|
@change="ched_id" style="width: 440px;"></el-cascader>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Field :" prop="field">
|
||||||
|
<el-input v-model="reviewForm.field" type="textarea" style="width: 600px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Orcid :">
|
||||||
|
<el-input v-model="reviewForm.orcid" style="width: 600px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Introduction :">
|
||||||
|
<el-input v-model="reviewForm.introduction" type="textarea" style="width: 600px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Institution :">
|
||||||
|
<el-input v-model="reviewForm.company" style="width: 600px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 简历 -->
|
||||||
|
<el-form-item label="CV. :" prop="Qualifications">
|
||||||
|
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'" :on-success="handleFileSuccess1" name="reviewerCV"
|
||||||
|
type="reviewerCV" :on-error="handleFileError" :on-preview="handlePreview" :on-remove="handleRemove"
|
||||||
|
:before-remove="beforeRemove" :on-change="handleChange1" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf1"
|
||||||
|
ref="upload">
|
||||||
|
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top" style="font-weight: bolder;"></b>upload</el-button>
|
||||||
|
</el-upload>
|
||||||
|
<span style="font-size: 12px; color: #aaa;">Only compressed files can be uploaded(.pdf)</span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="onSubmit_review(reviewForm)">Modify and save</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 修改密码弹出框 -->
|
||||||
|
<el-dialog title="Change Password" :visible.sync="pass_word" width="500px">
|
||||||
|
<el-form :model="pwdform" :rules="rules" ref="pwd_form" label-width="160px">
|
||||||
|
<el-form-item label="Old password :" prop="password">
|
||||||
|
<el-input type="password" placeholder="Please enter..." v-model="pwdform.password"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="New password :" prop="new_password">
|
||||||
|
<el-input type="password" placeholder="Please enter..." v-model="pwdform.new_password"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Confirm password :" prop="re_password">
|
||||||
|
<el-input type="password" placeholder="Please enter..." v-model="pwdform.re_password"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="pass_word = false">Cancel</el-button>
|
||||||
|
<el-button type="primary" @click="save_pwd(pwdform)">OK</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseUrl: this.Common.baseUrl,
|
||||||
|
mediaUrl: this.Common.mediaUrl,
|
||||||
|
user_id: localStorage.getItem('U_id'),
|
||||||
|
username: localStorage.getItem('U_name'),
|
||||||
|
userrole: localStorage.getItem('U_status'),
|
||||||
|
usercap: localStorage.getItem('U_role'),
|
||||||
|
coreForm: {
|
||||||
|
account: localStorage.getItem("U_name"),
|
||||||
|
gender: 1
|
||||||
|
},
|
||||||
|
pwdform: {
|
||||||
|
account: localStorage.getItem("U_name"),
|
||||||
|
password: '',
|
||||||
|
new_password: '',
|
||||||
|
re_password: ''
|
||||||
|
},
|
||||||
|
reviewForm: {
|
||||||
|
|
||||||
|
},
|
||||||
|
items_journal: [],
|
||||||
|
jl_major: [],
|
||||||
|
df_country: [],
|
||||||
|
df_technical: [{
|
||||||
|
label: 'Prof',
|
||||||
|
}, {
|
||||||
|
label: 'Associate Prof.',
|
||||||
|
}, {
|
||||||
|
label: 'Assistant Prof.',
|
||||||
|
}, {
|
||||||
|
label: 'Ph.D.',
|
||||||
|
}, {
|
||||||
|
label: 'Others',
|
||||||
|
}],
|
||||||
|
fileL_pdf1: [],
|
||||||
|
defaultParams: {
|
||||||
|
label: 'title',
|
||||||
|
value: 'major_id',
|
||||||
|
children: 'children'
|
||||||
|
},
|
||||||
|
pass_word: false,
|
||||||
|
rules: {
|
||||||
|
email: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter email',
|
||||||
|
trigger: 'blur'
|
||||||
|
}, {
|
||||||
|
validator: function(rule, value, callback) {
|
||||||
|
if (/^[-.-_A-Za-z0-9]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(value) == false) {
|
||||||
|
callback(new Error("Please enter the correct email format"));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: "blur"
|
||||||
|
}],
|
||||||
|
phone: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter phone',
|
||||||
|
trigger: 'blur'
|
||||||
|
}, {
|
||||||
|
validator: function(rule, value, callback) {
|
||||||
|
if (/^1[34578]\d{9}$/.test(value) == false) {
|
||||||
|
callback(new Error("Please enter the correct phone format"));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: "blur"
|
||||||
|
}],
|
||||||
|
password: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter old password',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
new_password: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter new password ',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
re_password: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter the new password again',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
gender: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please select gender',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
maj_cn: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please select major',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
title: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please select title',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
country: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please select country',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
field: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please input field',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
realname: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please input realname',
|
||||||
|
trigger: 'blur'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 获取个人信息,数据列表
|
||||||
|
getData() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Reviewer/getAllMajor')
|
||||||
|
.then(res => {
|
||||||
|
this.jl_major = res.data.majors;
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
this.$message.error(err);
|
||||||
|
});
|
||||||
|
this.$api
|
||||||
|
.post('api/Reviewer/getCountrys')
|
||||||
|
.then(res => {
|
||||||
|
this.df_country = res.countrys;
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
this.$message.error(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (this.usercap.includes('reviewer')) {
|
||||||
|
this.$api
|
||||||
|
.post('api/Journal/getJournalInReviewer', {
|
||||||
|
username: this.username
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.items_journal = res.data.journals;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 点击修改密码
|
||||||
|
psw_word() {
|
||||||
|
this.pass_word = true;
|
||||||
|
},
|
||||||
|
// 点击提交密码
|
||||||
|
save_pwd(pwdform) {
|
||||||
|
this.$refs.pwd_form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (pwdform.new_password == pwdform.re_password) {
|
||||||
|
this.$api
|
||||||
|
.post('master/Admin/changepasswd', this.pwdform)
|
||||||
|
.then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message.success('Password modified successfully!');
|
||||||
|
this.pass_word = false;
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
this.$message.error(err);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message.error("The two new password entries are inconsistent!");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$message.error('error submit!!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 点击提交个人基本信息
|
||||||
|
onSubmit_core(coreForm) {
|
||||||
|
this.$refs.core_Form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
// 二次确认删除
|
||||||
|
this.$confirm('Are you sure you want to modify your basic personal information?', 'Tips', {
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
// this.$api
|
||||||
|
// .post('master/Admin/editAdminBase', this.coreForm)
|
||||||
|
// .then(res => {
|
||||||
|
// if (res.code == 0) {
|
||||||
|
// this.$message.success('Personal information modified successfully!');
|
||||||
|
// this.getData();
|
||||||
|
// } else {
|
||||||
|
// this.$message.error(res.msg);
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// .catch(err => {
|
||||||
|
// this.$message.error(err);
|
||||||
|
// });
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
} else {
|
||||||
|
this.$message.error('error submit!!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 点击提交审稿人信息
|
||||||
|
onSubmit_review(reviewForm) {
|
||||||
|
this.$refs.review_Form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
// 二次确认删除
|
||||||
|
this.$confirm('Are you sure you want to modify reviewer information?', 'Tips', {
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
} else {
|
||||||
|
this.$message.error('error submit!!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 下拉级联添加
|
||||||
|
ched_id(event) {
|
||||||
|
this.reviewForm.major = event[0];
|
||||||
|
this.reviewForm.cmajor = event[1];
|
||||||
|
},
|
||||||
|
ched_id_old(event) {
|
||||||
|
this.reviewForm.major = event[0];
|
||||||
|
this.reviewForm.cmajor = event[1];
|
||||||
|
},
|
||||||
|
ched_id_edit(event) {
|
||||||
|
this.reviewForm.major = event[0];
|
||||||
|
this.reviewForm.cmajor = event[1];
|
||||||
|
},
|
||||||
|
|
||||||
|
// 上传文件
|
||||||
|
handleChange1(file, fileList) {
|
||||||
|
if (fileList.length > 0) {
|
||||||
|
this.fileL_pdf1 = [fileList[fileList.length - 1]]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleFileSuccess1(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.reviewForm.cv = res.upurl;
|
||||||
|
this.reviewForm.qualifications = res.upurl;
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeRemove(file, fileList) {
|
||||||
|
return this.$confirm(`Remove ${ file.name }?`)
|
||||||
|
},
|
||||||
|
handleFileError(res, file) {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
handleRemove(file, fileList) {
|
||||||
|
|
||||||
|
},
|
||||||
|
handlePreview(file) {
|
||||||
|
window.open(file.url);
|
||||||
|
},
|
||||||
|
handleExceed(files, fileList) {
|
||||||
|
this.$message.warning("The current limit is 1 file. Please delete the current file first!");
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.infor_title {
|
||||||
|
font-size: 18px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.join_bth {
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 4px;
|
||||||
|
width: 320px;
|
||||||
|
height: 50px;
|
||||||
|
line-height: 50px;
|
||||||
|
background-color: #006699;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -229,6 +229,9 @@
|
|||||||
case 'PT':
|
case 'PT':
|
||||||
frag = 'PROTOCOL';
|
frag = 'PROTOCOL';
|
||||||
break;
|
break;
|
||||||
|
case 'CS':
|
||||||
|
frag = 'CASE SERIES';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
frag = 'OTHERS';
|
frag = 'OTHERS';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<el-form-item label="Status">
|
<el-form-item label="Status">
|
||||||
<span>{{articleState}}</span>
|
<span>{{articleState}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="form.accept_sn != ''" label="Manusript ID">
|
<el-form-item v-if="form.accept_sn != ''" label="Manuscript ID">
|
||||||
<span>{{form.accept_sn}}</span>
|
<span>{{form.accept_sn}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Journal">
|
<el-form-item label="Journal">
|
||||||
@@ -307,6 +307,9 @@
|
|||||||
case 'PT':
|
case 'PT':
|
||||||
frag = 'PROTOCOL';
|
frag = 'PROTOCOL';
|
||||||
break;
|
break;
|
||||||
|
case 'CS':
|
||||||
|
frag = 'CASE SERIES';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
frag = 'OTHERS';
|
frag = 'OTHERS';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,15 +8,12 @@
|
|||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
</div>
|
</div>
|
||||||
<div class="container_l">
|
<div class="container_l">
|
||||||
<el-tag :key="tag" type="success" v-for="tag in dynamicTags" closable :disable-transitions="false" @close="handleClose(tag)"
|
<div v-for="item in dynamicTags" style="background-color: #f0f9eb;border-radius: 5px;border:1px solid #e1f3d8;color: #67c23a;font-size: 14px;padding: 8px 15px;margin: 0 0 20px 0;">
|
||||||
style="font-size: 14px;margin:0 0 15px 0;line-height: 30px;height: 30px;">
|
<el-button type="success" icon="el-icon-close" circle @click='handleClose' style="float: right;margin: 17px 5px 0 0;"></el-button>
|
||||||
{{tag}}
|
<p><b>{{item.label}}</b></p>
|
||||||
</el-tag>
|
<p style="margin: 5px 0;">{{item.title}}</p>
|
||||||
<!-- <p style="font-size: 14px;margin:0 0 15px 18px;line-height: 22px;">
|
<p>{{item.content}}</p>
|
||||||
Submission System Update Notifications 2.1
|
</div>
|
||||||
<br>
|
|
||||||
The reviewers can look through all reviewers' comments when the manuscripts get final decision.
|
|
||||||
</p> -->
|
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-card class="box-card" v-loading="loading" element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
|
<el-card class="box-card" v-loading="loading" element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
|
||||||
@@ -95,9 +92,11 @@
|
|||||||
IMG_Url: '',
|
IMG_Url: '',
|
||||||
cerVisible: false,
|
cerVisible: false,
|
||||||
feilVisible: false,
|
feilVisible: false,
|
||||||
dynamicTags: [
|
dynamicTags: [{
|
||||||
'Submission System Update Notifications 2.1 The reviewers can look through all reviewers comments when the manuscripts get final decision.'
|
label: 'Submission System 2.0',
|
||||||
],
|
title: 'Update Notifications',
|
||||||
|
content: "The reviewers can check all reviewers ' comments when the manuscripts get final decision."
|
||||||
|
}],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -180,7 +179,8 @@
|
|||||||
|
|
||||||
// 关闭标签
|
// 关闭标签
|
||||||
handleClose(tag) {
|
handleClose(tag) {
|
||||||
this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
|
// this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
|
||||||
|
this.dynamicTags = []
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
|
|||||||
@@ -242,11 +242,11 @@
|
|||||||
<el-form-item label="Confidential Comments to the Editor">
|
<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>
|
||||||
<el-form-item label="Comments for the Authors" prop="comment">
|
<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="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-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
|
||||||
<p style="color: #e6a23c;font-size: 13px;" v-if="this.txt_mess.atype!='Comment'||this.txt_mess.atype!='News'">
|
|
||||||
Dear reviewer, we recommend the available comment should be more than 40 words.
|
|
||||||
</p>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Please choose disclose your name or remain anonymous">
|
<el-form-item label="Please choose disclose your name or remain anonymous">
|
||||||
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 24px;">
|
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 24px;">
|
||||||
@@ -328,36 +328,6 @@
|
|||||||
required: true,
|
required: true,
|
||||||
message: "please input content",
|
message: "please input content",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}, {
|
|
||||||
validator: function(rule, value, callback) {
|
|
||||||
if (new RegExp("[\\u4E00-\\u9FFF]+", "g").test(value)) {
|
|
||||||
//中文
|
|
||||||
let blankCount = 0;
|
|
||||||
for (let i in value.match(/ /g)) {
|
|
||||||
blankCount++
|
|
||||||
}
|
|
||||||
let wenziCount = 0;
|
|
||||||
for (let j = 0; j < value.length; j++) {
|
|
||||||
if ((value.charCodeAt(j) < 0) || (value.charCodeAt(j) > 255)) {
|
|
||||||
wenziCount++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (blankCount + wenziCount <= 60) {
|
|
||||||
callback(new Error(
|
|
||||||
"Dear reviewer, we recommend the available comment should be more than 60 Chinese words."));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//英文
|
|
||||||
let blankCount = 0;
|
|
||||||
for (let i in value.match(/ /g)) {
|
|
||||||
blankCount++
|
|
||||||
}
|
|
||||||
if (blankCount <= 40) {
|
|
||||||
callback(new Error("Dear reviewer, we recommend the available comment should be more than 40 words."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
trigger: "blur"
|
|
||||||
}],
|
}],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -392,7 +362,6 @@
|
|||||||
this.$message.error(err);
|
this.$message.error(err);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.msg);
|
this.$message.error(res.msg);
|
||||||
}
|
}
|
||||||
@@ -513,23 +482,64 @@
|
|||||||
if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
|
if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
|
||||||
this.$message.error('Please choose disclose your name or remain anonymous.');
|
this.$message.error('Please choose disclose your name or remain anonymous.');
|
||||||
} else {
|
} else {
|
||||||
|
// 验证相加的字数
|
||||||
|
let Char_Cter = this.questionform.qu9contents + ' ' + this.questionform.qu10contents + ' ' +
|
||||||
|
this.questionform.qu11contents + ' ' + this.questionform.qu12contents + ' ' +
|
||||||
|
this.questionform.qu13contents + ' ' + this.questionform.comment
|
||||||
|
if (new RegExp("[\\u4E00-\\u9FFF]+", "g").test(Char_Cter)) {
|
||||||
|
//中文
|
||||||
|
let blankCount = 0;
|
||||||
|
for (let i in Char_Cter.match(/ /g)) {
|
||||||
|
blankCount++
|
||||||
|
}
|
||||||
|
let wenziCount = 0;
|
||||||
|
for (let j = 0; j < Char_Cter.length; j++) {
|
||||||
|
if ((Char_Cter.charCodeAt(j) < 0) || (Char_Cter.charCodeAt(j) > 255)) {
|
||||||
|
wenziCount++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (blankCount + wenziCount <= 60) {
|
||||||
|
this.$message({
|
||||||
|
offset: '380',
|
||||||
|
type: 'error',
|
||||||
|
message: "We encourage you to enrich your comment further to help improve the peer paper."
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//英文
|
||||||
|
let blankCount = 0;
|
||||||
|
for (let i in Char_Cter.match(/ /g)) {
|
||||||
|
blankCount++
|
||||||
|
}
|
||||||
|
if (blankCount <= 40) {
|
||||||
|
this.$message({
|
||||||
|
offset: '380',
|
||||||
|
type: 'error',
|
||||||
|
message: "We encourage you to enrich your comment further to help improve the peer paper."
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交接口
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.$refs.question.validate((valid) => {
|
this.$refs.question.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
// this.$api.post('api/Reviewer/questionSubmit', this.questionform)
|
this.$api.post('api/Reviewer/questionSubmit', this.questionform)
|
||||||
// .then((res) => {
|
.then((res) => {
|
||||||
// if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
// this.loading = false;
|
this.loading = false;
|
||||||
// this.$message.success('Success!!');
|
this.$message.success('Success!!');
|
||||||
// this.getData();
|
this.getData();
|
||||||
// } else {
|
this.$router.push('/per_text_success');
|
||||||
// this.loading = false;
|
} else {
|
||||||
// this.$message.error('question submit error');
|
this.loading = false;
|
||||||
// }
|
this.$message.error('question submit error');
|
||||||
// });
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
this.loading = false
|
this.loading = false;
|
||||||
this.$message.error('Please complete the information!');
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
135
src/components/page/per_text_fail.vue
Normal file
135
src/components/page/per_text_fail.vue
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="crumbs">
|
||||||
|
<el-breadcrumb separator="/">
|
||||||
|
<el-breadcrumb-item>
|
||||||
|
<i class="el-icon-collection"></i>
|
||||||
|
<router-link :to="{path:'/peerewer'}">
|
||||||
|
<span class="top_dao"> Reviewer Article</span>
|
||||||
|
</router-link>
|
||||||
|
>> Cancel review
|
||||||
|
</el-breadcrumb-item>
|
||||||
|
</el-breadcrumb>
|
||||||
|
</div>
|
||||||
|
<div class="container_l">
|
||||||
|
<el-card class="box-card fail_page">
|
||||||
|
<div class="fail_page_1">
|
||||||
|
<svg t="1646277316849" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20680"
|
||||||
|
width="32" height="32">
|
||||||
|
<path d="M1023.036803 512.0016A511.518402 511.518402 0 1 1 511.465068 0.0032a504.382424 504.382424 0 0 1 214.719329 47.157186c8.213308 3.743988 15.679951 8.234641 23.146595 11.978629a31.647901 31.647901 0 0 1-29.226576 56.138491c-6.719979-3.733322-14.186622-6.730646-20.159937-9.727969a443.123949 443.123949 0 0 0-188.479411-41.173205 449.502595 449.502595 0 1 0 449.491929 449.875928c0-8.234641-0.746664-14.933287-0.746664-23.199928a31.423902 31.423902 0 0 1 29.866573-33.695895 32.351899 32.351899 0 0 1 33.706561 29.951907A134.634246 134.634246 0 0 1 1023.036803 512.0016zM970.663633 399.724618a34.431892 34.431892 0 0 1 0-68.863785 34.431892 34.431892 0 1 1 0 68.863785z m-50.879841-110.03699a34.431892 34.431892 0 1 1 34.453226-34.431892 33.855894 33.855894 0 0 1-34.453226 34.431892z m-81.493078-95.061036a34.303893 34.303893 0 0 1-34.34656-34.431893 33.834561 33.834561 0 0 1 34.34656-34.431892 34.431892 34.431892 0 1 1 0 68.863785z m-36.586553 182.644762L458.451901 720.854281a32.554565 32.554565 0 0 1-44.906527 0 0.735998 0.735998 0 0 1-0.746664-0.757331L253.545874 560.662781a30.186572 30.186572 0 0 1 0-44.159862 31.039903 31.039903 0 0 1 44.79986 0l137.59957 137.72757 320.852331-321.865661a31.754567 31.754567 0 1 1 44.906526 44.906526z"
|
||||||
|
fill="#fa6400" p-id="20681"></path>
|
||||||
|
</svg>
|
||||||
|
<p>Rejection Successful !</p>
|
||||||
|
<br clear="both">
|
||||||
|
</div>
|
||||||
|
<div class="fail_page_2">
|
||||||
|
We still sincerely appreciate your support to our journal.
|
||||||
|
</div>
|
||||||
|
<div class="fail_page_3">
|
||||||
|
<a href="/peerewer">Return to Peer Review page</a>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
Direct_log: this.$route.query.act,
|
||||||
|
Art_id: this.$route.query.Art_id,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (this.Direct_log == null) {
|
||||||
|
this.getData();
|
||||||
|
} else {
|
||||||
|
this.$api
|
||||||
|
.post('api/Chief/autoLoginForChief', {
|
||||||
|
'code': this.Direct_log
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
localStorage.setItem('U_role', res.data.roles);
|
||||||
|
localStorage.setItem('U_name', res.data.user.account);
|
||||||
|
localStorage.setItem('U_id', res.data.user.user_id);
|
||||||
|
localStorage.setItem('U_relname', res.data.user.realname);
|
||||||
|
|
||||||
|
this.getData();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
this.$message.error(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getData() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Reviewer/refuseReviewerArticle', {
|
||||||
|
art_rev_id: this.Art_id
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
this.$message.error(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.fail_page {
|
||||||
|
padding: 25px 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fail_page .fail_page_1 {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 26px;
|
||||||
|
margin: 0 0 50px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fail_page .fail_page_1 svg {
|
||||||
|
float: left;
|
||||||
|
width: 35px;
|
||||||
|
height: 35px;
|
||||||
|
margin: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fail_page .fail_page_1 p {
|
||||||
|
float: left;
|
||||||
|
margin: 5px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fail_page .fail_page_2 {
|
||||||
|
margin: 0 0 60px 0;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fail_page .fail_page_3 {
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fail_page .fail_page_3 a {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #006699;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fail_page .fail_page_3 a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -256,11 +256,11 @@
|
|||||||
<el-form-item label="Confidential Comments to the Editor">
|
<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>
|
||||||
<el-form-item label="Comments for the Authors" prop="comment">
|
<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="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-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
|
||||||
<p style="color: #e6a23c;font-size: 13px;" v-if="this.txt_mess.atype!='Comment'||this.txt_mess.atype!='News'">
|
|
||||||
Dear reviewer, we recommend the available comment should be more than 40 words.
|
|
||||||
</p>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
||||||
<el-radio-group v-model="questionform.is_anonymous">
|
<el-radio-group v-model="questionform.is_anonymous">
|
||||||
@@ -343,37 +343,7 @@
|
|||||||
required: true,
|
required: true,
|
||||||
message: "please input content",
|
message: "please input content",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}, {
|
}]
|
||||||
validator: function(rule, value, callback) {
|
|
||||||
if (new RegExp("[\\u4E00-\\u9FFF]+", "g").test(value)) {
|
|
||||||
//中文
|
|
||||||
let blankCount = 0;
|
|
||||||
for (let i in value.match(/ /g)) {
|
|
||||||
blankCount++
|
|
||||||
}
|
|
||||||
let wenziCount = 0;
|
|
||||||
for (let j = 0; j < value.length; j++) {
|
|
||||||
if ((value.charCodeAt(j) < 0) || (value.charCodeAt(j) > 255)) {
|
|
||||||
wenziCount++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (blankCount + wenziCount <= 60) {
|
|
||||||
callback(new Error(
|
|
||||||
"Dear reviewer, we recommend the available comment should be more than 60 Chinese words."));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//英文
|
|
||||||
let blankCount = 0;
|
|
||||||
for (let i in value.match(/ /g)) {
|
|
||||||
blankCount++
|
|
||||||
}
|
|
||||||
if (blankCount <= 40) {
|
|
||||||
callback(new Error("Dear reviewer, we recommend the available comment should be more than 40 words."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
trigger: "blur"
|
|
||||||
}],
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -509,6 +479,47 @@
|
|||||||
if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
|
if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
|
||||||
this.$message.error('Please choose disclose your name or remain anonymous.');
|
this.$message.error('Please choose disclose your name or remain anonymous.');
|
||||||
} else {
|
} else {
|
||||||
|
// 验证相加的字数
|
||||||
|
let Char_Cter = this.questionform.qu9contents + ' ' + this.questionform.qu10contents + ' ' +
|
||||||
|
this.questionform.qu11contents + ' ' + this.questionform.qu12contents + ' ' +
|
||||||
|
this.questionform.qu13contents + ' ' + this.questionform.comment
|
||||||
|
if (new RegExp("[\\u4E00-\\u9FFF]+", "g").test(Char_Cter)) {
|
||||||
|
//中文
|
||||||
|
let blankCount = 0;
|
||||||
|
for (let i in Char_Cter.match(/ /g)) {
|
||||||
|
blankCount++
|
||||||
|
}
|
||||||
|
let wenziCount = 0;
|
||||||
|
for (let j = 0; j < Char_Cter.length; j++) {
|
||||||
|
if ((Char_Cter.charCodeAt(j) < 0) || (Char_Cter.charCodeAt(j) > 255)) {
|
||||||
|
wenziCount++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (blankCount + wenziCount <= 60) {
|
||||||
|
this.$message({
|
||||||
|
offset: '380',
|
||||||
|
type: 'error',
|
||||||
|
message: "We encourage you to enrich your comment further to help improve the peer paper."
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//英文
|
||||||
|
let blankCount = 0;
|
||||||
|
for (let i in Char_Cter.match(/ /g)) {
|
||||||
|
blankCount++
|
||||||
|
}
|
||||||
|
if (blankCount <= 40) {
|
||||||
|
this.$message({
|
||||||
|
offset: '380',
|
||||||
|
type: 'error',
|
||||||
|
message: "We encourage you to enrich your comment further to help improve the peer paper."
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交接口
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
this.$refs.question.validate((valid) => {
|
this.$refs.question.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
@@ -518,6 +529,7 @@
|
|||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.$message.success('Success!!');
|
this.$message.success('Success!!');
|
||||||
this.getData();
|
this.getData();
|
||||||
|
this.$router.push('/per_text_success');
|
||||||
} else {
|
} else {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.$message.error('question submit error');
|
this.$message.error('question submit error');
|
||||||
|
|||||||
104
src/components/page/per_text_success.vue
Normal file
104
src/components/page/per_text_success.vue
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="crumbs">
|
||||||
|
<el-breadcrumb separator="/">
|
||||||
|
<el-breadcrumb-item>
|
||||||
|
<i class="el-icon-collection"></i>
|
||||||
|
<router-link :to="{path:'/peerewer'}">
|
||||||
|
<span class="top_dao"> Reviewer Article</span>
|
||||||
|
</router-link>
|
||||||
|
>> Review completed
|
||||||
|
</el-breadcrumb-item>
|
||||||
|
</el-breadcrumb>
|
||||||
|
</div>
|
||||||
|
<div class="container_l">
|
||||||
|
<el-card class="box-card suss_page">
|
||||||
|
<div class="suss_page_1">
|
||||||
|
<svg t="1646625129770" class="icon" viewBox="0 0 1477 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29677"
|
||||||
|
width="32" height="32">
|
||||||
|
<path d="M1394.036364 459.636364a41.890909 41.890909 0 1 0 83.781818 0 41.890909 41.890909 0 1 0-83.781818 0Z"
|
||||||
|
fill="#3DBD7D" p-id="29678"></path>
|
||||||
|
<path d="M1079.854545 793.6a20.945455 20.945455 0 1 0 41.89091 0 20.945455 20.945455 0 1 0-41.89091 0Z" fill="#3DBD7D"
|
||||||
|
p-id="29679"></path>
|
||||||
|
<path d="M1027.490909 793.6zM1257.890909 417.745455H904.145455c-19.781818 0-36.072727-16.290909-36.072728-36.072728s16.290909-36.072727 36.072728-36.072727h190.836363c19.781818 0 36.072727-16.290909 36.072727-36.072727 0-19.781818-16.290909-36.072727-36.072727-36.072728H964.654545C878.545455 110.545455 707.490909 0 512 0 229.236364 0 0 229.236364 0 512s229.236364 512 512 512c168.727273 0 318.836364-82.618182 411.927273-209.454545h81.454545c11.636364 0 20.945455-9.309091 20.945455-20.945455s-9.309091-20.945455-20.945455-20.945455h-102.4c-19.781818 0-36.072727-16.290909-36.072727-36.072727 0-19.781818 16.290909-36.072727 36.072727-36.072727h222.254546c19.781818 0 36.072727-16.290909 36.072727-36.072727 0-19.781818-16.290909-36.072727-36.072727-36.072728h-116.363637c8.145455-37.236364 12.8-75.636364 12.8-115.2v-10.472727h233.890909c23.272727 0 41.890909-18.618182 41.890909-41.890909s-16.290909-43.054545-39.563636-43.054545z"
|
||||||
|
fill="#3DBD7D" p-id="29680"></path>
|
||||||
|
<path d="M820.363636 293.236364c-18.618182-18.618182-47.709091-18.618182-66.327272 0L402.618182 644.654545 267.636364 488.727273c-16.290909-19.781818-46.545455-20.945455-65.163637-4.654546-19.781818 16.290909-20.945455 46.545455-4.654545 65.163637l167.563636 193.163636 1.163637 1.163636s0 1.163636 1.163636 1.163637c1.163636 1.163636 1.163636 1.163636 2.327273 1.163636 1.163636 1.163636 2.327273 2.327273 4.654545 3.490909 1.163636 0 1.163636 1.163636 2.327273 1.163637 2.327273 1.163636 3.490909 2.327273 5.818182 3.490909 1.163636 0 1.163636 0 2.327272 1.163636 2.327273 1.163636 4.654545 1.163636 6.981819 2.327273h1.163636c2.327273 0 4.654545 1.163636 8.145454 1.163636h1.163637c2.327273 0 5.818182 0 8.145454-1.163636 2.327273 0 5.818182-1.163636 8.145455-2.327273 2.327273-1.163636 5.818182-2.327273 8.145454-4.654545 1.163636-1.163636 3.490909-2.327273 4.654546-3.49091l2.327273-2.327272 386.327272-386.327273c18.618182-17.454545 18.618182-47.709091 0-65.163636z"
|
||||||
|
fill="#FFFFFF" p-id="29681"></path>
|
||||||
|
</svg>
|
||||||
|
<p>Review completed !</p>
|
||||||
|
<br clear="both">
|
||||||
|
</div>
|
||||||
|
<div class="suss_page_2">
|
||||||
|
Dear reviewer, we have received your comment.
|
||||||
|
<br>
|
||||||
|
The editorial team would like to extend our thanks to you as peer reviewer for our journal.
|
||||||
|
</div>
|
||||||
|
<div class="suss_page_3">
|
||||||
|
<a href="/peerewer">Return to Peer Review page</a>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.suss_page {
|
||||||
|
padding: 25px 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suss_page .suss_page_1 {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 26px;
|
||||||
|
margin: 0 0 50px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suss_page .suss_page_1 svg {
|
||||||
|
float: left;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suss_page .suss_page_1 p {
|
||||||
|
float: left;
|
||||||
|
margin: 5px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suss_page .suss_page_2 {
|
||||||
|
margin: 0 0 60px 0;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suss_page .suss_page_3 {
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suss_page .suss_page_3 a {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #006699;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.suss_page .suss_page_3 a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,734 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<div class="crumbs">
|
|
||||||
<el-breadcrumb separator="/">
|
|
||||||
<el-breadcrumb-item>
|
|
||||||
<i class="el-icon-lx-calendar"></i> Reviewer Add
|
|
||||||
</el-breadcrumb-item>
|
|
||||||
</el-breadcrumb>
|
|
||||||
</div>
|
|
||||||
<div class="container">
|
|
||||||
<div class="handle-box">
|
|
||||||
<el-button type="primary" icon="el-icon-plus" class="handle-del" @click="add_Selection">Add</el-button>
|
|
||||||
</div>
|
|
||||||
<div class="handle-box" :rules="rules">
|
|
||||||
<el-select v-model="query.journalId" placeholder="Please select a journal" @change="chan_id">
|
|
||||||
<el-option label="All" :key="0" :value="0"></el-option>
|
|
||||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
<el-table :data="tableData" border class="table" ref="multipleTable" header-cell-class-name="table-header">
|
|
||||||
<el-table-column prop="account" label="account"></el-table-column>
|
|
||||||
<el-table-column prop="journal_title" label="journal"></el-table-column>
|
|
||||||
<el-table-column prop="realname" label="realname"></el-table-column>
|
|
||||||
<el-table-column prop="email" label="email"></el-table-column>
|
|
||||||
<el-table-column prop="technical" label="technical"></el-table-column>
|
|
||||||
<el-table-column prop="company" label="institution"></el-table-column>
|
|
||||||
<el-table-column label=" " width="80" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<!-- <el-button type="text" icon="el-icon-edit" @click="handleEdit(scope.$index, scope.row)">Detail</el-button> -->
|
|
||||||
<el-button type="text" icon="el-icon-edit" @click="handleEdit(scope.$index, scope.row)">Edit</el-button>
|
|
||||||
<!-- <el-button type="text" icon="el-icon-delete" class="red" @click="handleDelete(scope.$index, scope.row)">Delete</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="link_Total" @current-change="handlePageChange"></el-pagination>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 添加弹出框 -->
|
|
||||||
<el-dialog title="Add" :visible.sync="addVisible" width="40%">
|
|
||||||
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="110px">
|
|
||||||
<el-form-item label="account" prop="account">
|
|
||||||
<el-input v-model="addForm.account" @blur='saerNa_U()'></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="email" prop="email">
|
|
||||||
<el-input v-model="addForm.email" @blur='saerEm_U()'></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="password" prop="password">
|
|
||||||
<span style="color: #666;">123456qwe</span>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="gender" prop="gender">
|
|
||||||
<el-radio-group v-model="addForm.gender">
|
|
||||||
<el-radio :label="1">male</el-radio>
|
|
||||||
<el-radio :label="2">female</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="journal" prop="journal_id">
|
|
||||||
<el-select v-model="addForm.journal_id" placeholder="Please select a journal" @change="chan_id">
|
|
||||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="title" prop="title">
|
|
||||||
<el-select v-model="addForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
|
||||||
<el-option key="Prof." label="Prof." value="Prof."></el-option>
|
|
||||||
<el-option key="Associate Prof." label="Associate Prof." value="Associate Prof."></el-option>
|
|
||||||
<el-option key="Assistant Prof." label="Assistant Prof." value="Assistant Prof."></el-option>
|
|
||||||
<el-option key="Ph.D." label="Ph.D." value="Ph.D."></el-option>
|
|
||||||
<el-option key="Others" label="Others" value="Others"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="country" prop="country">
|
|
||||||
<el-select v-model="addForm.country" filterable placeholder="Please select a country" value-key="groupID" style="width: 300px;">
|
|
||||||
<el-option v-for="item in df_country" :label="item.en_name" :key="item.en_name" :value="item.en_name"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="realname" prop="realname">
|
|
||||||
<el-input v-model="addForm.realname"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="orcid">
|
|
||||||
<el-input v-model="addForm.orcid"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="introduction">
|
|
||||||
<el-input v-model="addForm.introduction" type="textarea"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="institution">
|
|
||||||
<el-input v-model="addForm.company"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="major" prop="maj_cn">
|
|
||||||
<el-cascader v-model="addForm.maj_cn" :options="jl_major" :props="defaultParams" placeholder="Please select major"
|
|
||||||
@change="ched_id" style="width: 300px;"></el-cascader>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="field" prop="field">
|
|
||||||
<el-input v-model="addForm.field" type="textarea"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 简历 -->
|
|
||||||
<el-form-item prop="qualifications" label="CV.">
|
|
||||||
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'" :on-success="handleFileSuccess1" name="reviewerCV"
|
|
||||||
type="reviewerCV" :on-error="handleFileError" :on-preview="handlePreview" :on-remove="handleRemove"
|
|
||||||
:before-remove="beforeRemove" :on-change="handleChange1" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf1"
|
|
||||||
ref="upload">
|
|
||||||
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top" style="font-weight: bolder;"></b>upload</el-button>
|
|
||||||
</el-upload>
|
|
||||||
<span style="font-size: 12px; color: #aaa;">Only compressed files can be uploaded(.pdf)</span>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<span slot="footer" class="dialog-footer">
|
|
||||||
<el-button @click="addVisible = false">Cancel</el-button>
|
|
||||||
<el-button type="primary" @click="saveAdd(addForm)" :disabled="this.btn_alert">OK</el-button>
|
|
||||||
</span>
|
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
<!-- 添加重复弹出框 -->
|
|
||||||
<el-dialog title="Add old" :visible.sync="oldVisible" width="40%">
|
|
||||||
<el-form ref="old_Form" :model="oldForm" :rules="rules" label-width="110px">
|
|
||||||
<el-form-item label="account" prop="account">
|
|
||||||
<el-input v-model="oldForm.account"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="email" prop="email">
|
|
||||||
<el-input v-model="oldForm.email"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="gender" prop="gender">
|
|
||||||
<el-radio-group v-model="oldForm.gender">
|
|
||||||
<el-radio :label="1">male</el-radio>
|
|
||||||
<el-radio :label="2">female</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="journal" prop="journal_id">
|
|
||||||
<el-select v-model="oldForm.journal_id" placeholder="Please select a journal" @change="chan_id">
|
|
||||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="title" prop="title">
|
|
||||||
<el-select v-model="oldForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
|
||||||
<el-option key="Prof." label="Prof." value="Prof."></el-option>
|
|
||||||
<el-option key="Associate Prof." label="Associate Prof." value="Associate Prof."></el-option>
|
|
||||||
<el-option key="Assistant Prof." label="Assistant Prof." value="Assistant Prof."></el-option>
|
|
||||||
<el-option key="Ph.D." label="Ph.D." value="Ph.D."></el-option>
|
|
||||||
<el-option key="Others" label="Others" value="Others"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="country" prop="country">
|
|
||||||
<el-select v-model="oldForm.country" filterable placeholder="Please select a country" value-key="groupID" style="width: 300px;">
|
|
||||||
<el-option v-for="item in df_country" :label="item.en_name" :key="item.en_name" :value="item.en_name"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="realname" prop="realname">
|
|
||||||
<el-input v-model="oldForm.realname"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="orcid">
|
|
||||||
<el-input v-model="oldForm.orcid"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="introduction">
|
|
||||||
<el-input v-model="oldForm.introduction" type="textarea" :autosize="{minRows: 2}"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="institution">
|
|
||||||
<el-input v-model="oldForm.company"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="major" prop="maj_cn">
|
|
||||||
<el-cascader v-model="oldForm.maj_cn" :options="jl_major" :props="defaultParams" placeholder="Please select major"
|
|
||||||
@change="ched_id_old" style="width: 300px;"></el-cascader>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="field" prop="field">
|
|
||||||
<el-input v-model="oldForm.field" type="textarea"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 简历 -->
|
|
||||||
<el-form-item prop="qualifications" label="CV.">
|
|
||||||
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'" :on-success="handleFileSuccess2" name="reviewerCV"
|
|
||||||
type="reviewerCV" :on-error="handleFileError" :on-preview="handlePreview" :on-remove="handleRemove"
|
|
||||||
:before-remove="beforeRemove" :on-change="handleChange2" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf2"
|
|
||||||
ref="upload">
|
|
||||||
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top" style="font-weight: bolder;"></b>upload</el-button>
|
|
||||||
</el-upload>
|
|
||||||
<span style="font-size: 12px; color: #aaa;">Only compressed files can be uploaded(.pdf)</span>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<span slot="footer" class="dialog-footer">
|
|
||||||
<el-button @click="oldVisible = false">Cancel</el-button>
|
|
||||||
<el-button type="primary" @click="saveOld(oldForm)">OK</el-button>
|
|
||||||
</span>
|
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
<!-- 编辑弹出框 -->
|
|
||||||
<el-dialog title="Message" :visible.sync="editVisible" width="40%">
|
|
||||||
<el-form ref="edit_Form" :model="editForm" :rules="rules" label-width="110px">
|
|
||||||
<el-form-item label="account" prop="account">
|
|
||||||
{{editForm.account}}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="email" prop="email">
|
|
||||||
{{editForm.email}}
|
|
||||||
<!-- <el-input v-model="editForm.email" @blur='saerEm_U()'></el-input> -->
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="gender" prop="gender">
|
|
||||||
<span v-if="editForm.gender==1">male</span>
|
|
||||||
<span v-if="editForm.gender==2">female</span>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="journal" prop="journal_title">
|
|
||||||
{{editForm.journal_title}}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="title" prop="title">
|
|
||||||
<el-select v-model="editForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
|
||||||
<el-option key="Prof." label="Prof." value="Prof."></el-option>
|
|
||||||
<el-option key="Associate Prof." label="Associate Prof." value="Associate Prof."></el-option>
|
|
||||||
<el-option key="Assistant Prof." label="Assistant Prof." value="Assistant Prof."></el-option>
|
|
||||||
<el-option key="Ph.D." label="Ph.D." value="Ph.D."></el-option>
|
|
||||||
<el-option key="Others" label="Others" value="Others"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="country" prop="country">
|
|
||||||
{{editForm.country}}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="realname" prop="realname">
|
|
||||||
{{editForm.realname}}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="orcid">
|
|
||||||
{{editForm.orcid}}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="introduction">
|
|
||||||
<el-input v-model="editForm.introduction" type="textarea" :autosize="{minRows: 2}"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="institution">
|
|
||||||
<el-input v-model="editForm.company"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="major" prop="maj_cn">
|
|
||||||
<el-cascader :options="jl_major" v-model="editForm.maj_cn" :props="defaultParams" placeholder="Please select major"
|
|
||||||
@change="ched_id_edit" style="width: 300px;"></el-cascader>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="field">
|
|
||||||
<el-input v-model="editForm.field" type="textarea"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 简历 -->
|
|
||||||
<el-form-item prop="qualifications" label="CV.">
|
|
||||||
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'" :on-success="handleFileSuccess3" name="reviewerCV"
|
|
||||||
type="reviewerCV" :on-error="handleFileError" :on-preview="handlePreview" :on-remove="handleRemove"
|
|
||||||
:before-remove="beforeRemove" :on-change="handleChange3" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf3"
|
|
||||||
ref="upload">
|
|
||||||
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top" style="font-weight: bolder;"></b>upload</el-button>
|
|
||||||
</el-upload>
|
|
||||||
<span style="font-size: 12px; color: #aaa;">Only compressed files can be uploaded(.pdf)</span>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<span slot="footer" class="dialog-footer">
|
|
||||||
<el-button @click="editVisible = false">Cancel</el-button>
|
|
||||||
<el-button type="primary" @click="saveEdit(editForm)">OK</el-button>
|
|
||||||
<!-- <el-button type="primary" @click="editVisible = false">OK</el-button> -->
|
|
||||||
</span>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
tableData: [],
|
|
||||||
addForm: {
|
|
||||||
gender: 1,
|
|
||||||
major: [],
|
|
||||||
qualifications: ''
|
|
||||||
},
|
|
||||||
editForm: {},
|
|
||||||
oldForm: {},
|
|
||||||
editVisible: false,
|
|
||||||
addVisible: false,
|
|
||||||
oldVisible: false,
|
|
||||||
btn_alert: false,
|
|
||||||
df_jour: [],
|
|
||||||
df_country: [],
|
|
||||||
jl_major: [],
|
|
||||||
defaultParams: {
|
|
||||||
label: 'title',
|
|
||||||
value: 'major_id',
|
|
||||||
children: 'children'
|
|
||||||
},
|
|
||||||
edit_id: localStorage.getItem('U_id'),
|
|
||||||
query: {
|
|
||||||
username: localStorage.getItem('U_name'),
|
|
||||||
journalId: 0,
|
|
||||||
pageIndex: 1,
|
|
||||||
pageSize: 15
|
|
||||||
},
|
|
||||||
link_Total: 0,
|
|
||||||
aid: -1,
|
|
||||||
idx: -1,
|
|
||||||
baseUrl: this.Common.baseUrl,
|
|
||||||
mediaUrl:this.Common.mediaUrl,
|
|
||||||
fileL_pdf1: [],
|
|
||||||
fileL_pdf2: [],
|
|
||||||
fileL_pdf3: [],
|
|
||||||
rules: {
|
|
||||||
account: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please input account',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
email: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please input email',
|
|
||||||
trigger: 'blur'
|
|
||||||
}, {
|
|
||||||
validator: function(rule, value, callback) {
|
|
||||||
if (/^[-.-_A-Za-z0-9]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(value) == false) {
|
|
||||||
callback(new Error("Please enter the correct email format"));
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
trigger: "blur"
|
|
||||||
}],
|
|
||||||
genger: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please select genger',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
journal_id: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please select journal_id',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
journal_title: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please select journal_title',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
maj_cn: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please select maj_cn',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
title: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please select title',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
technical: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please select title',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
country: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please select country',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
field: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please input field',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
realname: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please input realname',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
qualifications: [{
|
|
||||||
required: true,
|
|
||||||
message: 'Please upload your resume',
|
|
||||||
trigger: 'blur'
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
this.getData();
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 获取数据
|
|
||||||
getData() {
|
|
||||||
this.$api
|
|
||||||
.post('api/Chief/getJournalsByEditor', {
|
|
||||||
'user_id': this.edit_id
|
|
||||||
})
|
|
||||||
.then(res => {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.df_jour = res.data.journals;
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/getReviewerListByJournal', this.query)
|
|
||||||
.then(res => {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.tableData = res.data;
|
|
||||||
this.link_Total = res.total || 0;
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/getAllMajor')
|
|
||||||
.then(res => {
|
|
||||||
this.jl_major = res.data.majors;
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/getCountrys')
|
|
||||||
.then(res => {
|
|
||||||
this.df_country = res.countrys;
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 分页导航
|
|
||||||
handlePageChange(val) {
|
|
||||||
this.$set(this.query, 'pageIndex', val);
|
|
||||||
this.getData();
|
|
||||||
},
|
|
||||||
// 下拉分类搜索
|
|
||||||
chan_id(event) {
|
|
||||||
this.getData();
|
|
||||||
},
|
|
||||||
// 添加操作
|
|
||||||
add_Selection(index, row) {
|
|
||||||
this.aid = index;
|
|
||||||
this.addVisible = true;
|
|
||||||
this.fileL_pdf1 = [];
|
|
||||||
},
|
|
||||||
// 下拉级联添加
|
|
||||||
ched_id(event) {
|
|
||||||
this.addForm.major = event[0];
|
|
||||||
this.addForm.cmajor = event[1];
|
|
||||||
},
|
|
||||||
ched_id_old(event) {
|
|
||||||
this.oldForm.major = event[0];
|
|
||||||
this.oldForm.cmajor = event[1];
|
|
||||||
},
|
|
||||||
ched_id_edit(event) {
|
|
||||||
this.editForm.major = event[0];
|
|
||||||
this.editForm.cmajor = event[1];
|
|
||||||
},
|
|
||||||
// 保存添加
|
|
||||||
saveAdd(addForm) {
|
|
||||||
this.$refs.add_Form.validate((valid) => {
|
|
||||||
if (this.addForm.qualifications == '') {
|
|
||||||
this.$message.error('Please make sure that the qualifications document is uploaded successfully');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (valid) {
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/addReviewer', this.addForm)
|
|
||||||
.then(res => {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.addVisible = false;
|
|
||||||
this.btn_alert = false;
|
|
||||||
this.$refs.add_Form.resetFields();
|
|
||||||
this.$message.success(`Added successfully!`);
|
|
||||||
this.getData();
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
|
|
||||||
} else {
|
|
||||||
this.$message.error('error submit!!');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
saveOld(oldForm) {
|
|
||||||
this.$refs.old_Form.validate((valid) => {
|
|
||||||
if (this.oldForm.qualifications == '') {
|
|
||||||
this.$message.error('Please make sure that the qualifications document is uploaded successfully');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (valid) {
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/addReviewerBee', this.oldForm)
|
|
||||||
.then(res => {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.addVisible = false;
|
|
||||||
this.oldVisible = false;
|
|
||||||
this.btn_alert = false;
|
|
||||||
this.$refs.add_Form.resetFields();
|
|
||||||
this.$refs.old_Form.resetFields();
|
|
||||||
this.$message.success(`Added successfully!`);
|
|
||||||
this.getData();
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
|
|
||||||
} else {
|
|
||||||
this.$message.error('error submit!!');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 编辑操作
|
|
||||||
handleEdit(index, row) {
|
|
||||||
this.idx = index;
|
|
||||||
this.editForm = Object.assign({}, row);
|
|
||||||
this.editForm.title = this.editForm.technical;
|
|
||||||
this.editForm.cv = this.editForm.qualifications;
|
|
||||||
this.fileL_pdf3 = [];
|
|
||||||
if (this.editForm.qualifications != "") {
|
|
||||||
this.fileL_pdf3 = [{}];
|
|
||||||
this.fileL_pdf3[0].name = 'reviewerCV';
|
|
||||||
this.fileL_pdf3[0].url = this.mediaUrl + 'reviewer/' + this.editForm.qualifications;
|
|
||||||
}
|
|
||||||
this.editForm.maj_cn = [this.editForm.major, this.editForm.cmajor];
|
|
||||||
this.editVisible = true;
|
|
||||||
},
|
|
||||||
// 保存编辑
|
|
||||||
saveEdit(editForm) {
|
|
||||||
this.$refs.edit_Form.validate((valid) => {
|
|
||||||
if (this.editForm.qualifications == '') {
|
|
||||||
this.$message.error('Please make sure that the qualifications document is uploaded successfully');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (valid) {
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/editReviewerForEditor', this.editForm)
|
|
||||||
.then(res => {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.editVisible = false;
|
|
||||||
this.btn_alert = false;
|
|
||||||
this.$message.success(`Successfully changed line ${this.idx + 1} `);
|
|
||||||
this.getData();
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
this.$message.error('error submit!!');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 删除操作
|
|
||||||
handleDelete(index, row) {
|
|
||||||
// 二次确认删除
|
|
||||||
this.$confirm('Are you sure you want to delete?', 'Tips', {
|
|
||||||
type: 'warning'
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
this.$api
|
|
||||||
.post('master/Journal/delJournalAbs', row)
|
|
||||||
.then(res => {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.$message.success('Delete succeeded!');
|
|
||||||
this.getData();
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.catch(() => {});
|
|
||||||
},
|
|
||||||
// 查找与他相同的账号
|
|
||||||
saerNa_U() {
|
|
||||||
if (this.addForm.account != undefined) {
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/checkUser', {
|
|
||||||
'account': this.addForm.account
|
|
||||||
})
|
|
||||||
.then(res => {
|
|
||||||
if (res.code == 0) {
|
|
||||||
if (res.data.has == 'no') {
|
|
||||||
this.btn_alert = false
|
|
||||||
} else {
|
|
||||||
this.$confirm('Repeat of user account!', 'Tips', {})
|
|
||||||
.then(res => {
|
|
||||||
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/getReviewerByNameEmail', {
|
|
||||||
'account': this.addForm.account
|
|
||||||
})
|
|
||||||
.then(res => {
|
|
||||||
this.oldForm = res.data.reviewer;
|
|
||||||
this.oldForm.title = res.data.reviewer.technical;
|
|
||||||
this.oldForm.cv = res.data.reviewer.qualifications;
|
|
||||||
this.fileL_pdf2 = [];
|
|
||||||
if (res.data.reviewer.qualifications != "") {
|
|
||||||
this.fileL_pdf2 = [{}];
|
|
||||||
this.fileL_pdf2[0].name = 'reviewerCV';
|
|
||||||
this.fileL_pdf2[0].url = this.mediaUrl + 'reviewer/' + res.data.reviewer.qualifications;
|
|
||||||
}
|
|
||||||
this.oldForm.maj_cn = [this.oldForm.major, this.oldForm.cmajor];
|
|
||||||
this.oldVisible = true
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
|
|
||||||
}).catch(() => {});
|
|
||||||
this.btn_alert = true
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 查找与他相同的邮箱
|
|
||||||
saerEm_U() {
|
|
||||||
if (this.addForm.email != undefined) {
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/checkUser', {
|
|
||||||
'account': this.addForm.email
|
|
||||||
})
|
|
||||||
.then(res => {
|
|
||||||
if (res.code == 0) {
|
|
||||||
if (res.data.has == 'no') {
|
|
||||||
this.btn_alert = false
|
|
||||||
} else {
|
|
||||||
this.$confirm('Repeat of user account!', 'Tips', {})
|
|
||||||
.then(res => {
|
|
||||||
this.$api
|
|
||||||
.post('api/Reviewer/getReviewerByNameEmail', {
|
|
||||||
'account': this.addForm.email
|
|
||||||
})
|
|
||||||
.then(res => {
|
|
||||||
this.oldForm = res.data.reviewer;
|
|
||||||
this.oldForm.maj_cn = [this.oldForm.major, this.oldForm.cmajor];
|
|
||||||
this.oldVisible = true
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
|
|
||||||
}).catch(() => {});
|
|
||||||
this.btn_alert = true
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 上传文件
|
|
||||||
handleChange1(file, fileList) {
|
|
||||||
if (fileList.length > 0) {
|
|
||||||
this.fileL_pdf1 = [fileList[fileList.length - 1]]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleChange2(file, fileList) {
|
|
||||||
if (fileList.length > 0) {
|
|
||||||
this.fileL_pdf2 = [fileList[fileList.length - 1]]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleChange3(file, fileList) {
|
|
||||||
if (fileList.length > 0) {
|
|
||||||
this.fileL_pdf3 = [fileList[fileList.length - 1]]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleFileSuccess1(res, file) {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.addForm.cv = res.upurl;
|
|
||||||
this.addForm.qualifications = res.upurl;
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleFileSuccess2(res, file) {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.oldForm.cv = res.upurl;
|
|
||||||
this.oldForm.qualifications = res.upurl;
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleFileSuccess3(res, file) {
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.editForm.cv = res.upurl;
|
|
||||||
this.editForm.qualifications = res.upurl;
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
beforeRemove(file, fileList) {
|
|
||||||
return this.$confirm(`Remove ${ file.name }?`)
|
|
||||||
},
|
|
||||||
handleFileError(res, file) {
|
|
||||||
|
|
||||||
},
|
|
||||||
handleRemove(file, fileList) {
|
|
||||||
|
|
||||||
},
|
|
||||||
handlePreview(file) {
|
|
||||||
window.open(file.url);
|
|
||||||
},
|
|
||||||
handleExceed(files, fileList) {
|
|
||||||
this.$message.warning("当前限制选择 1 个文件,请先删除当前文件!");
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.table {
|
|
||||||
width: 100%;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.handle-box {
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.red {
|
|
||||||
color: #ff0000;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -343,7 +343,7 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
||||||
<el-radio-group v-model="item.question.other" style="line-height: 24px;">
|
<el-radio-group v-model="questionform.other" style="line-height: 24px;">
|
||||||
<el-radio :label="1">Imperfect style</el-radio>
|
<el-radio :label="1">Imperfect style</el-radio>
|
||||||
<br />
|
<br />
|
||||||
<el-radio :label="2">Too long</el-radio>
|
<el-radio :label="2">Too long</el-radio>
|
||||||
@@ -354,16 +354,16 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Confidential Comments to the Editor">
|
<el-form-item label="Confidential Comments to the Editor">
|
||||||
<el-input type="textarea" placeholder="please input content" v-model="item.question.confidential" :rows="8"></el-input>
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.confidential" :rows="8"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Comments for the Authors" prop="comment">
|
<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="item.question.comments" :rows="8"></el-input>
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
|
||||||
<p style="color: #e6a23c;font-size: 13px;" v-if="this.txt_mess.atype!='Comment'||this.txt_mess.atype!='News'">
|
</el-form-item>
|
||||||
Dear reviewer, we recommend the available comment should be more than 40 words.
|
<el-form-item label="Comments for the Authors" prop="comment" v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'">
|
||||||
</p>
|
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
||||||
<el-radio-group v-model="item.question.is_anonymous">
|
<el-radio-group v-model="questionform.is_anonymous">
|
||||||
<el-radio :label="0">Disclose name</el-radio>
|
<el-radio :label="0">Disclose name</el-radio>
|
||||||
<br />
|
<br />
|
||||||
<el-radio :label="1">Remain anonymous</el-radio>
|
<el-radio :label="1">Remain anonymous</el-radio>
|
||||||
@@ -466,8 +466,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (blankCount + wenziCount <= 60) {
|
if (blankCount + wenziCount <= 60) {
|
||||||
callback(new Error(
|
return callback(new Error(
|
||||||
"Dear reviewer, we recommend the available comment should be more than 60 Chinese words."));
|
"Dear reviewer, we recommend the available comment should be more than 60 Chinese words."));
|
||||||
|
} else {
|
||||||
|
return callback();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//英文
|
//英文
|
||||||
@@ -476,7 +478,9 @@
|
|||||||
blankCount++
|
blankCount++
|
||||||
}
|
}
|
||||||
if (blankCount <= 40) {
|
if (blankCount <= 40) {
|
||||||
callback(new Error("Dear reviewer, we recommend the available comment should be more than 40 words."));
|
return callback(new Error("Dear reviewer, we recommend the available comment should be more than 40 words."));
|
||||||
|
} else {
|
||||||
|
return callback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -89,8 +89,8 @@
|
|||||||
return 'Accepted';
|
return 'Accepted';
|
||||||
} else if (cellValue == 4) {
|
} else if (cellValue == 4) {
|
||||||
return 'invalid';
|
return 'invalid';
|
||||||
} else if (row.state == 5) {
|
} else if (cellValue == 5) {
|
||||||
frag = 'invitation';
|
return 'invitation';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,11 +77,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="title" prop="title">
|
<el-form-item label="title" prop="title">
|
||||||
<el-select v-model="addForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
<el-select v-model="addForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
||||||
<el-option key="Prof." label="Prof." value="Prof."></el-option>
|
<el-option v-for="item in df_technical" :key="item.label" :label="item.label" :value="item.label"></el-option>
|
||||||
<el-option key="Associate Prof." label="Associate Prof." value="Associate Prof."></el-option>
|
|
||||||
<el-option key="Assistant Prof." label="Assistant Prof." value="Assistant Prof."></el-option>
|
|
||||||
<el-option key="Ph.D." label="Ph.D." value="Ph.D."></el-option>
|
|
||||||
<el-option key="Others" label="Others" value="Others"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="country" prop="country">
|
<el-form-item label="country" prop="country">
|
||||||
@@ -147,11 +143,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="title" prop="title">
|
<el-form-item label="title" prop="title">
|
||||||
<el-select v-model="oldForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
<el-select v-model="oldForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
||||||
<el-option key="Prof." label="Prof." value="Prof."></el-option>
|
<el-option v-for="item in df_technical" :key="item.label" :label="item.label" :value="item.label"></el-option>
|
||||||
<el-option key="Associate Prof." label="Associate Prof." value="Associate Prof."></el-option>
|
|
||||||
<el-option key="Assistant Prof." label="Assistant Prof." value="Assistant Prof."></el-option>
|
|
||||||
<el-option key="Ph.D." label="Ph.D." value="Ph.D."></el-option>
|
|
||||||
<el-option key="Others" label="Others" value="Others"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="country" prop="country">
|
<el-form-item label="country" prop="country">
|
||||||
@@ -213,7 +205,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="title" prop="title">
|
<el-form-item label="title" prop="title">
|
||||||
<el-select v-model="editForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
<el-select v-model="editForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
|
||||||
<el-option v-for="item in df_technical" :key="item.label" :label="item.label" :value="item.label"></el-option>
|
<el-option v-for="item in df_technical" :key="item.label" :label="item.label" :value="item.label"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="country" prop="country">
|
<el-form-item label="country" prop="country">
|
||||||
@@ -254,7 +246,6 @@
|
|||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="editVisible = false">Cancel</el-button>
|
<el-button @click="editVisible = false">Cancel</el-button>
|
||||||
<el-button type="primary" @click="saveEdit(editForm)">OK</el-button>
|
<el-button type="primary" @click="saveEdit(editForm)">OK</el-button>
|
||||||
<!-- <el-button type="primary" @click="editVisible = false">OK</el-button> -->
|
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
@@ -284,7 +275,7 @@
|
|||||||
},
|
},
|
||||||
mess_age: {},
|
mess_age: {},
|
||||||
editForm: {
|
editForm: {
|
||||||
title:'',
|
title: '',
|
||||||
},
|
},
|
||||||
oldForm: {},
|
oldForm: {},
|
||||||
delOpen: false,
|
delOpen: false,
|
||||||
@@ -308,15 +299,15 @@
|
|||||||
pageIndex: 1,
|
pageIndex: 1,
|
||||||
pageSize: 15
|
pageSize: 15
|
||||||
},
|
},
|
||||||
df_technical:[{
|
df_technical: [{
|
||||||
label: 'Prof',
|
label: 'Prof',
|
||||||
},{
|
}, {
|
||||||
label: 'Associate Prof.',
|
label: 'Associate Prof.',
|
||||||
},{
|
}, {
|
||||||
label: 'Assistant Prof.',
|
label: 'Assistant Prof.',
|
||||||
},{
|
}, {
|
||||||
label: 'Ph.D.',
|
label: 'Ph.D.',
|
||||||
},{
|
}, {
|
||||||
label: 'Others',
|
label: 'Others',
|
||||||
}],
|
}],
|
||||||
link_Total: 0,
|
link_Total: 0,
|
||||||
@@ -679,8 +670,8 @@
|
|||||||
// 编辑操作
|
// 编辑操作
|
||||||
handleEdit(index, row) {
|
handleEdit(index, row) {
|
||||||
this.idx = index;
|
this.idx = index;
|
||||||
|
row.title = row.technical;
|
||||||
this.editForm = Object.assign({}, row);
|
this.editForm = Object.assign({}, row);
|
||||||
this.editForm.title = this.editForm.technical;
|
|
||||||
this.editForm.cv = this.editForm.qualifications;
|
this.editForm.cv = this.editForm.qualifications;
|
||||||
this.fileL_pdf3 = [];
|
this.fileL_pdf3 = [];
|
||||||
if (this.editForm.qualifications != "") {
|
if (this.editForm.qualifications != "") {
|
||||||
@@ -690,32 +681,31 @@
|
|||||||
}
|
}
|
||||||
this.editForm.maj_cn = [this.editForm.major, this.editForm.cmajor];
|
this.editForm.maj_cn = [this.editForm.major, this.editForm.cmajor];
|
||||||
this.editVisible = true;
|
this.editVisible = true;
|
||||||
|
|
||||||
},
|
},
|
||||||
// 保存编辑
|
// 保存编辑
|
||||||
saveEdit(editForm) {
|
saveEdit(editForm) {
|
||||||
console.log(this.editForm)
|
|
||||||
this.$refs.edit_Form.validate((valid) => {
|
this.$refs.edit_Form.validate((valid) => {
|
||||||
if (this.editForm.qualifications == '') {
|
if (this.editForm.qualifications == '') {
|
||||||
this.$message.error('Please make sure that the qualifications document is uploaded successfully');
|
this.$message.error('Please make sure that the qualifications document is uploaded successfully');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (valid) {
|
if (valid) {
|
||||||
// this.$api
|
this.$api
|
||||||
// .post('api/Reviewer/editReviewerForEditor', this.editForm)
|
.post('api/Reviewer/editReviewerForEditor', this.editForm)
|
||||||
// .then(res => {
|
.then(res => {
|
||||||
// if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
// this.editVisible = false;
|
this.editVisible = false;
|
||||||
// this.btn_alert = false;
|
this.btn_alert = false;
|
||||||
// this.$message.success(`Successfully changed line ${this.idx + 1} `);
|
this.$message.success(`Successfully changed line ${this.idx + 1} `);
|
||||||
// this.getContent();
|
this.getContent();
|
||||||
// } else {
|
} else {
|
||||||
// this.$message.error(res.msg);
|
this.$message.error(res.msg);
|
||||||
// }
|
}
|
||||||
// })
|
})
|
||||||
// .catch(err => {
|
.catch(err => {
|
||||||
// this.$message.error(err);
|
this.$message.error(err);
|
||||||
// });
|
});
|
||||||
} else {
|
} else {
|
||||||
this.$message.error('error submit!!');
|
this.$message.error('error submit!!');
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
111
src/components/page/time_axis.vue
Normal file
111
src/components/page/time_axis.vue
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
<!--时间轴模块-->
|
||||||
|
<template>
|
||||||
|
<div class="kuang_tracking">
|
||||||
|
<h2>Manuscript Tracking</h2>
|
||||||
|
<el-timeline :reverse="reverse" class="editor_tree">
|
||||||
|
<el-timeline-item v-for="(item, index) in prossMsgs" :icon="item.icon" :color="item.color" size="large" :key="index"
|
||||||
|
:timestamp="formatDate(item.ctime)" placement="top" v-if="item.ftype == 0">
|
||||||
|
<el-card>
|
||||||
|
<p>
|
||||||
|
<font>{{ statetostr(item.state_to) }}</font>
|
||||||
|
<!-- 提交 -->
|
||||||
|
<font v-if="item.state_to==-1">
|
||||||
|
: <b>{{form.username}} first submitted to {{form.journalname}}</b>
|
||||||
|
</font>
|
||||||
|
<!-- 给编辑 -->
|
||||||
|
<font v-if="item.state_to==1">
|
||||||
|
<!-- : <b> Submission checks complete</b> -->
|
||||||
|
</font>
|
||||||
|
<!-- 审查中 -->
|
||||||
|
<font v-if="item.state_to==2">
|
||||||
|
<!-- : <b> Editor assigned</b> -->
|
||||||
|
</font>
|
||||||
|
<!-- 修改 -->
|
||||||
|
<font v-if="item.state_to==4">
|
||||||
|
<!-- : <b v-if="item.back==1"> Major revision</b>
|
||||||
|
<b v-if="item.back==0"> Major revision (Completed)</b> -->
|
||||||
|
</font>
|
||||||
|
<!-- 接收 -->
|
||||||
|
<font v-if="item.state_to==5">
|
||||||
|
<!-- : <b> Successfully received manuscript</b> -->
|
||||||
|
</font>
|
||||||
|
<!-- 拒绝 -->
|
||||||
|
<font v-if="item.state_to==3">
|
||||||
|
<!-- : <b> Reject manuscript</b> -->
|
||||||
|
</font>
|
||||||
|
</p>
|
||||||
|
</el-card>
|
||||||
|
</el-timeline-item>
|
||||||
|
</el-timeline>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
prossMsgs: {
|
||||||
|
type: Array,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
reverse: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
methods: {
|
||||||
|
formatDate(timestamp) {
|
||||||
|
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||||
|
var Y = date.getFullYear() + '-';
|
||||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
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;
|
||||||
|
},
|
||||||
|
statetostr(mystate) {
|
||||||
|
let str = '';
|
||||||
|
switch (mystate) {
|
||||||
|
case -1:
|
||||||
|
str = 'Manuscript Submission';
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
str = this.$t('artstate.state0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
str = this.$t('artstate.state1');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
str = this.$t('artstate.state2');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
str = this.$t('artstate.state3');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
str = this.$t('artstate.state4');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
str = this.$t('artstate.state5');
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
str = this.$t('artstate.state6');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
97
src/components/page/time_talk.vue
Normal file
97
src/components/page/time_talk.vue
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
<!--对话模块-->
|
||||||
|
<template>
|
||||||
|
<div class="kuang_communtion">
|
||||||
|
<h2>
|
||||||
|
Communication
|
||||||
|
</h2>
|
||||||
|
<div v-for="(item, index) in talkMsgs" class="kuang_communtion_conmt">
|
||||||
|
<div v-if="item.username != username" class="talk_aued">
|
||||||
|
<p>
|
||||||
|
Author :
|
||||||
|
</p>
|
||||||
|
<el-card>
|
||||||
|
<p>{{ item.ad_content }}</p>
|
||||||
|
</el-card>
|
||||||
|
<b>{{formatDate(item.ad_ctime)}}</b>
|
||||||
|
</div>
|
||||||
|
<div v-if="item.username == username" class="talk_aued talk_edit">
|
||||||
|
<p>
|
||||||
|
Editor :
|
||||||
|
</p>
|
||||||
|
<el-card>
|
||||||
|
<p>{{ item.ad_content }}</p>
|
||||||
|
</el-card>
|
||||||
|
<b>{{formatDate(item.ad_ctime)}}</b>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="kuang_communtion_input">
|
||||||
|
<p v-if="talkMsgs"></p>
|
||||||
|
<el-input type="textarea" rows="3" v-model="msgform.ad_content" placeholder="Editor messages" resize="none"></el-input>
|
||||||
|
<div class="kuang_communtion_input_text">
|
||||||
|
Dear Editor, through this window, you can have informal communication with the author. Please be aware of the
|
||||||
|
prompt reply, standard use of English, and no offensive, insulting, discriminatory language.
|
||||||
|
<el-button type="primary" @click="saveMsg">Send</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
talkMsgs: {
|
||||||
|
type: Array,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
msgform: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
// loading: {
|
||||||
|
// type: Boolean,
|
||||||
|
// required: true
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
username: localStorage.getItem('U_name'),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
methods: {
|
||||||
|
formatDate(timestamp) {
|
||||||
|
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||||
|
var Y = date.getFullYear() + '-';
|
||||||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||||
|
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;
|
||||||
|
},
|
||||||
|
// 留言弹出框
|
||||||
|
saveMsg() {
|
||||||
|
console.log(this.msgform)
|
||||||
|
if (this.msgform.ad_content == '') {
|
||||||
|
this.$message.error('Please input messages');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.loading = true;
|
||||||
|
this.$api.post('api/Article/pushArticleDialog', this.msgform)
|
||||||
|
.then((res) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.$message.success('Sent successfully');
|
||||||
|
this.$router.go(0);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -220,11 +220,11 @@
|
|||||||
<el-form-item label="Confidential Comments to the Editor">
|
<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>
|
||||||
<el-form-item label="Comments for the Authors" prop="comment">
|
<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="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-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
|
||||||
<p style="color: #e6a23c;font-size: 13px;" v-if="this.txt_mess.atype!='Comment'||this.txt_mess.atype!='News'">
|
|
||||||
Dear reviewer, we recommend the available comment should be more than 40 words.
|
|
||||||
</p>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
||||||
<el-radio-group v-model="item.question.is_anonymous">
|
<el-radio-group v-model="item.question.is_anonymous">
|
||||||
@@ -321,8 +321,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (blankCount + wenziCount <= 60) {
|
if (blankCount + wenziCount <= 60) {
|
||||||
callback(new Error(
|
return callback(new Error(
|
||||||
"Dear reviewer, we recommend the available comment should be more than 60 Chinese words."));
|
"Dear reviewer, we recommend the available comment should be more than 60 Chinese words."));
|
||||||
|
} else {
|
||||||
|
return callback();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//英文
|
//英文
|
||||||
@@ -331,7 +333,9 @@
|
|||||||
blankCount++
|
blankCount++
|
||||||
}
|
}
|
||||||
if (blankCount <= 40) {
|
if (blankCount <= 40) {
|
||||||
callback(new Error("Dear reviewer, we recommend the available comment should be more than 40 words."));
|
return callback(new Error("Dear reviewer, we recommend the available comment should be more than 40 words."));
|
||||||
|
} else {
|
||||||
|
return callback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -479,6 +483,7 @@
|
|||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.$message.success('success!!');
|
this.$message.success('success!!');
|
||||||
this.getData();
|
this.getData();
|
||||||
|
this.$router.push('/per_text_success');
|
||||||
} else {
|
} else {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.$message.error('question submit error');
|
this.$message.error('question submit error');
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ export default new Router({
|
|||||||
component: () => import( /* webpackChunkName: "table" */ '../components/page/articleListEditor.vue'),
|
component: () => import( /* webpackChunkName: "table" */ '../components/page/articleListEditor.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Manuscript to be examined',
|
title: 'Manuscript to be examined',
|
||||||
permission: 2
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -51,7 +50,62 @@ export default new Router({
|
|||||||
component: () => import('../components/page/articleDetailEditor.vue'),
|
component: () => import('../components/page/articleDetailEditor.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Manuscript detail',
|
title: 'Manuscript detail',
|
||||||
permission: 2
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/articleDetailEditor_a',
|
||||||
|
component: () => import('../components/page/articleDetailEditor_a.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Manuscript Received',
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/articleDetailEditor_b',
|
||||||
|
component: () => import('../components/page/articleDetailEditor_b.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Manuscript With editor',
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/articleDetailEditor_c',
|
||||||
|
component: () => import('../components/page/articleDetailEditor_c.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Manuscript Under review',
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/articleDetailEditor_d',
|
||||||
|
component: () => import('../components/page/articleDetailEditor_d.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Manuscript Reject',
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/articleDetailEditor_e',
|
||||||
|
component: () => import('../components/page/articleDetailEditor_e.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Manuscript Revision',
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/articleDetailEditor_f',
|
||||||
|
component: () => import('../components/page/articleDetailEditor_f.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Manuscript Accepted',
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/articleDetailEditor_g',
|
||||||
|
component: () => import('../components/page/articleDetailEditor_g.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Manuscript Fininal decision',
|
||||||
},
|
},
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
@@ -63,6 +117,14 @@ export default new Router({
|
|||||||
},
|
},
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/articleProcess',
|
||||||
|
component: () => import('../components/page/articleProcess.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Manuscript process',
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'articleRevise',
|
path: 'articleRevise',
|
||||||
component: () => import('../components/page/articleRevise.vue'),
|
component: () => import('../components/page/articleRevise.vue'),
|
||||||
@@ -123,6 +185,22 @@ export default new Router({
|
|||||||
title: 'Journal list'
|
title: 'Journal list'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'reviewerArticleDetail',
|
||||||
|
component: () => import('../components/page/reviewerArticleDetail.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Reviewer Article Detail'
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'reviewerArticleList',
|
||||||
|
component: () => import('../components/page/reviewerArticleList.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Reviewer Article List'
|
||||||
|
},
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'authorApplyReviewer',
|
path: 'authorApplyReviewer',
|
||||||
component: () => import('../components/page/authorApplyReviewer.vue'),
|
component: () => import('../components/page/authorApplyReviewer.vue'),
|
||||||
@@ -160,21 +238,6 @@ export default new Router({
|
|||||||
title: 'Author transferred to reviewer list'
|
title: 'Author transferred to reviewer list'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: '/reviewerArticleList',
|
|
||||||
component: () => import('../components/page/reviewerArticleList.vue'),
|
|
||||||
meta: ({
|
|
||||||
title: 'Reviewer article list'
|
|
||||||
})
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/reviewerArticleDetail',
|
|
||||||
component: () => import('../components/page/reviewerArticleDetail.vue'),
|
|
||||||
meta: ({
|
|
||||||
title: 'Reviewer article detail'
|
|
||||||
}),
|
|
||||||
hidden: true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/reviewerList',
|
path: '/reviewerList',
|
||||||
component: () => import('../components/page/reviewerList.vue'),
|
component: () => import('../components/page/reviewerList.vue'),
|
||||||
@@ -218,6 +281,7 @@ export default new Router({
|
|||||||
title: 'Apply success'
|
title: 'Apply success'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: '/reviewerImportError',
|
path: '/reviewerImportError',
|
||||||
component: () => import('../components/page/reviewerImportError.vue'),
|
component: () => import('../components/page/reviewerImportError.vue'),
|
||||||
@@ -225,13 +289,6 @@ export default new Router({
|
|||||||
title: 'Import error'
|
title: 'Import error'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: '/reviewerAdd',
|
|
||||||
component: () => import('../components/page/reviewerAdd.vue'),
|
|
||||||
meta: {
|
|
||||||
title: 'Reviewer Add'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/monitorManuscript',
|
path: '/monitorManuscript',
|
||||||
component: () => import('../components/page/monitorManuscript.vue'),
|
component: () => import('../components/page/monitorManuscript.vue'),
|
||||||
@@ -280,7 +337,7 @@ export default new Router({
|
|||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/citationanalysis',//引用情况分析
|
path: '/citationanalysis', //引用情况分析
|
||||||
component: () => import('../components/page/analysis_report.vue'),
|
component: () => import('../components/page/analysis_report.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Citation Analysis Report'
|
title: 'Citation Analysis Report'
|
||||||
@@ -307,32 +364,33 @@ export default new Router({
|
|||||||
meta: {
|
meta: {
|
||||||
title: 'Editor-in-Chief article details'
|
title: 'Editor-in-Chief article details'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/man_text_ls', //主编文章详情-历史
|
path: '/man_text_ls', //主编文章详情-历史
|
||||||
component: () => import('../components/page/man_text_ls'),
|
component: () => import('../components/page/man_text_ls'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Editor-in-Chief article details'
|
title: 'Editor-in-Chief article details'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/man_report', //-统计-图表
|
path: '/man_report', //-统计-图表
|
||||||
component: () => import( /* webpackChunkName: "" */ '../components/page/man_report'),
|
component: () => import( /* webpackChunkName: "" */ '../components/page/man_report'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Editor-in-Chief Statistical Analysis'
|
title: 'Editor-in-Chief Statistical Analysis'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/peerewer', //审稿人进行中列表
|
path: '/peerewer', //审稿人进行中列表
|
||||||
component: () => import('../components/page/per_ewer'),
|
component: () => import('../components/page/per_ewer'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Reviewer'
|
title: 'Reviewer'
|
||||||
}
|
}
|
||||||
},{
|
}, {
|
||||||
path: '/perhistory', //审稿人历史列表
|
path: '/perhistory', //审稿人历史列表
|
||||||
component: () => import('../components/page/per_history'),
|
component: () => import('../components/page/per_history'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Reviewer historical manuscripts'
|
title: 'Reviewer historical manuscripts',
|
||||||
|
// keepAlive: true,
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: '/perhistory_commen', //审稿人历史列表
|
path: '/perhistory_commen', //审稿人历史列表
|
||||||
@@ -340,28 +398,42 @@ export default new Router({
|
|||||||
meta: {
|
meta: {
|
||||||
title: 'Reviewer historical comment'
|
title: 'Reviewer historical comment'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/per_text', //审稿人文章详情
|
path: '/per_text', //审稿人文章详情
|
||||||
component: () => import('../components/page/per_text'),
|
component: () => import('../components/page/per_text'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Reviewer article details'
|
title: 'Reviewer article details'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/per_text_yq', //审稿人文章详情-邀请
|
path: '/per_text_yq', //审稿人文章详情-邀请
|
||||||
component: () => import('../components/page/per_text_yq'),
|
component: () => import('../components/page/per_text_yq'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Reviewer article details'
|
title: 'Reviewer article details'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/per_text_success', //审稿人文章-审稿成功页
|
||||||
|
component: () => import('../components/page/per_text_success'),
|
||||||
|
meta: {
|
||||||
|
title: 'Review completed'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/per_text_fail',
|
||||||
|
component: () => import('../components/page/per_text_fail.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Review fail'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/editorial', //编委进行中列表
|
path: '/editorial', //编委进行中列表
|
||||||
component: () => import('../components/page/edit_ial'),
|
component: () => import('../components/page/edit_ial'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Editorial board member'
|
title: 'Editorial board member'
|
||||||
}
|
}
|
||||||
},{
|
}, {
|
||||||
path: '/edithistory', //编委历史列表
|
path: '/edithistory', //编委历史列表
|
||||||
component: () => import('../components/page/edit_history'),
|
component: () => import('../components/page/edit_history'),
|
||||||
meta: {
|
meta: {
|
||||||
@@ -379,7 +451,7 @@ export default new Router({
|
|||||||
meta: {
|
meta: {
|
||||||
title: 'Editorial board member article details'
|
title: 'Editorial board member article details'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/youthed', //青年编委进行中列表
|
path: '/youthed', //青年编委进行中列表
|
||||||
component: () => import('../components/page/you_thed'),
|
component: () => import('../components/page/you_thed'),
|
||||||
@@ -388,7 +460,14 @@ export default new Router({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/you_text', //青年编委-审稿详情
|
path: '/percenter', //青年编委-审稿详情
|
||||||
|
component: () => import('../components/page/cenper_ter'),
|
||||||
|
meta: {
|
||||||
|
title: 'Personal Center'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/you_text', //个人中心
|
||||||
component: () => import('../components/page/you_text'),
|
component: () => import('../components/page/you_text'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Young scientist member article details'
|
title: 'Young scientist member article details'
|
||||||
|
|||||||
Reference in New Issue
Block a user