This commit is contained in:
2025-06-23 17:40:01 +08:00
parent 8e28d80343
commit 6c81c48a54
9 changed files with 717 additions and 1348 deletions

View File

@@ -155,7 +155,16 @@
<!-- 初审问卷 -->
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible" width="900px"
@close="closeUnderDia">
<el-form :model="undeQuestion" ref="question" label-width="300px" label-position="top">
<!-- 审稿人表单修改 -->
<common-review-article
:form="undeQuestion"
type="undeQuestion"
:txt_mess="txt_mess"
:btn_submit="1"
:articleId="articleId"
:journal_id="journal_id"
></common-review-article>
<!-- <el-form :model="undeQuestion" 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">
@@ -366,7 +375,7 @@
</p>
</el-form-item>
</el-collapse>
</el-form>
</el-form> -->
</el-dialog>
<!-- 复审问卷 -->
<el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px"

View File

@@ -189,6 +189,7 @@
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
>
<el-form :model="questionform" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">

View File

@@ -240,7 +240,17 @@
</el-row>
</div>
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible" width="900px">
<el-form :model="questionform" ref="question" label-width="300px" label-position="top">
<!-- 审稿人表单修改 -->
<common-review-article
type="questionform"
:form="questionform"
:txt_mess="txt_mess"
:btn_submit="1"
:articleId="articleId"
:journal_id="journal_id"
></common-review-article>
<!-- <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">
@@ -420,19 +430,17 @@
<br />
<el-radio :label="2">Major revision</el-radio>
<br />
<!-- TMR BMEC MDM .-->
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject</el-radio>
</div>
<!-- 其他期刊 -->
<div v-else>
<el-radio :label="4">Reject</el-radio>
</div>
<!-- <el-radio :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">
@@ -469,11 +477,21 @@
</p>
</el-form-item>
</el-collapse>
</el-form>
</el-form> -->
</el-dialog>
<!-- 初审问卷 -->
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible1" width="900px" @close="closeUnderDia">
<el-form :model="undeQuestion" ref="question" label-width="300px" label-position="top">
<!-- 审稿人表单修改 -->
<common-review-article
type="undeQuestion"
:form="undeQuestion"
:txt_mess="txt_mess"
:btn_submit="1"
:articleId="articleId"
:journal_id="journal_id"
></common-review-article>
<!-- <el-form :model="undeQuestion" 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">
@@ -697,7 +715,7 @@
</p>
</el-form-item>
</el-collapse>
</el-form>
</el-form> -->
</el-dialog>
<!-- 复审问卷 -->
<el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px" @close="closeSecDia">
@@ -799,7 +817,24 @@ export default {
// 显示初审对话框
showUnderReview(item) {
this.dialogFormVisible1 = true;
this.undeQuestion = item;
this.undeQuestion = { ...item };
this.undeQuestion.qu9 = item.qu9 == 0 ? false : true;
this.undeQuestion.qu9contents = item.qu9_contents;
this.undeQuestion.qu10 = item.qu10 == 0 ? false : true;
this.undeQuestion.qu10contents = item.qu10_contents;
this.undeQuestion.qu11 = item.qu11 == 0 ? false : true;
this.undeQuestion.qu11contents = item.qu11_contents;
this.undeQuestion.qu12 = item.qu12 == 0 ? false : true;
this.undeQuestion.qu12contents = item.qu12_contents;
this.undeQuestion.qu13 = item.qu13 == 0 ? false : true;
this.undeQuestion.qu13contents = item.qu13_contents;
this.undeQuestion.qu14 = item.qu14 == 0 ? false : true;
this.undeQuestion.qu14contents = item.qu14_contents;
this.undeQuestion.qu15 = item.qu15 == 0 ? false : true;
this.undeQuestion.qu15contents = item.qu15_contents;
this.undeQuestion.confident = item.confidential;
this.undeQuestion.comment = item.comments;
},
// 关闭初审对话框
closeUnderDia() {

View File

@@ -1,8 +1,141 @@
<template>
<div>
<oldForm></oldForm>
<newForm></newForm>
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<oldForm v-if="!isNewForm" :txt_mess="txt_mess" :isEdit="isEdit" :form="baseQuestionform" @update="(e) => (questionform = e)"></oldForm>
<newForm v-if="isNewForm" :txt_mess="txt_mess" :isEdit="isEdit" :form="baseQuestionform" @update="(e) => (questionform = e)"></newForm>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated" prop="rated">
( <span style="color: #e41411"> Bad Poor</span>
<span style="width: 10px; display: inline-block"></span>
<span style="color: #369916">Accept Superior Excellent</span>)
<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button
:label="i + 1"
v-for="(v, i) in 10"
:disabled="!isEdit && questionform.rated != i + 1"
></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px"
>Your score : <span style="font-weight: bold">{{ questionform.rated }}</span></span
>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="questionform.recommend" style="line-height: 30px">
<el-radio :label="1" :disabled="!isEdit && questionform.recommend != 1">Minor revision</el-radio>
<br />
<el-radio :label="2" :disabled="!isEdit && questionform.recommend != 2">Major revision</el-radio>
<br />
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
<el-radio :label="3" :disabled="!isEdit && questionform.recommend != 3"
>Reject in current form, but may be resubmitted</el-radio
>
<br />
<el-radio :label="4" :disabled="!isEdit && questionform.recommend != 4">Reject</el-radio>
</div>
<div v-else>
<el-radio :label="4">Reject</el-radio>
</div>
</el-radio-group>
</el-form-item>
<!-- xin -->
<el-form-item label="OTHER SPECIFIC CRITICISMS" prop="xx">
<el-radio-group v-model="questionform.xx" style="line-height: 30px">
<el-radio :label="1" :disabled="!isEdit && questionform.recommend != 1">Imperfect style</el-radio>
<br />
<el-radio :label="2" :disabled="!isEdit && questionform.recommend != 2">Too long</el-radio><br />
<el-radio :label="3" :disabled="!isEdit && questionform.recommend != 3"> References incorrectly presented </el-radio
><br />
<el-radio :label="4" :disabled="!isEdit && questionform.recommend != 4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item>
<!-- xin -->
<template v-if="type == 'undeQuestion'">
<el-form-item label="Comments for the Authors" v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'">
<el-input
:autosize="{ minRows: 2, maxRows: 8 }"
:readonly="!isEdit"
type="textarea"
placeholder="please input content"
v-model="questionform.comments"
></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
:readonly="!isEdit"
type="textarea"
placeholder="please input content"
v-model="questionform.comments"
:autosize="{ minRows: 2, maxRows: 8 }"
></el-input>
</el-form-item>
</template>
<template v-else>
<el-form-item label="Comments for the Authors" v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'">
<el-input
:autosize="{ minRows: 2, maxRows: 8 }"
:readonly="!isEdit"
type="textarea"
placeholder="please input content"
v-model="questionform.comment"
></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
:readonly="!isEdit"
type="textarea"
placeholder="please input content"
v-model="questionform.comment"
:autosize="{ minRows: 2, maxRows: 8 }"
></el-input>
</el-form-item>
</template>
<el-form-item label="" v-if="articleId">
<common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor" v-if="confident">
<el-input
:readonly="!isEdit"
type="textarea"
placeholder="please input content"
v-model="questionform.confident"
:autosize="{ minRows: 2, maxRows: 8 }"
></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous">
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px">
<el-radio :label="0" :disabled="!isEdit && questionform.is_anonymous != 0">Disclose name</el-radio>
<br />
<el-radio :label="1" :disabled="!isEdit && questionform.is_anonymous != 1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However, if you prefer to
remain anonymous, we will still express our gratitude by thanking you as an anonymous reviewer.
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers for their
invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
<el-form-item v-if="this.btn_submit == 0">
<el-button type="primary" @click="questionSubmit">submit</el-button>
</el-form-item>
</el-form>
</div>
</template>
@@ -12,53 +145,71 @@ import newForm from './new.vue';
export default {
components: {
oldForm,
newForm,
newForm
},
props: {
// isEdit: {
// type: Boolean,
// default: true
// },
isNewForm: {
type: Boolean,
default: false
},
type: {
type: String,
default: 'questionform'
},
confident: {
type: Boolean,
default: true
},
articleId: {
type: Number,
default: 0
},
journal_id: {
type: Number,
default: 0
},
txt_mess: {
type: Object,
default: {}
},
form: {
type: Object,
default: {}
},
btn_submit: {
type: Number,
default: 0
}
},
watch: {
form: {
handler(e) {
this.baseQuestionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props
},
immediate: true,
deep: true
},
btn_submit: {
handler(e) {
this.isEdit = e == 0 ? true : false; // 深拷贝,防止直接改 props
},
immediate: true,
deep: true
}
},
data() {
return {
loading: false,
articleId: null,
txt_mess: {},
questionform: {
rev_qu_id: '',
art_rev_id: this.$route.query.Art_id,
qu1: '',
qu2: '',
qu3: '',
qu4: '',
qu5: '',
qu6: '',
qu7: '',
qu8: '',
qu9: '',
qu9contents: '',
qu10: '',
qu10contents: '',
qu11: '',
qu11contents: '',
qu12: '',
qu12contents: '',
qu13: '',
qu13contents: '',
qu14: '',
qu14contents: '',
qu15: '',
qu15contents: '',
rated: '',
recommend: '',
other: '',
confident: '',
comment: '',
is_anonymous: ''
},
btn_submit: 0,
journal_id: null,
rules: {
qu6: [{ required: true, message: 'please select', trigger: 'blur' }],
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
recommend: [{ required: true, message: 'please select', trigger: 'blur' }]
}
isEdit: true,
baseQuestionform: {},
questionform: {},
rules: {}
};
},
created() {
@@ -67,36 +218,121 @@ export default {
methods: {
getData() {
// Fetch article data
this.$api
.post('api/Reviewer/getartrevdate', {
revid: this.Art_id,
human: 'reviewer'
})
.then((res) => {
this.txt_mess = res;
this.journal_id = res.journal_id;
});
this.questionform = { ...this.baseQuestionform };
if (this.isNewForm) {
this.rules = {
qu6: [{ required: true, message: 'please select', trigger: 'blur' }],
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
recommend: [{ required: true, message: 'please select', trigger: 'blur' }]
};
} else {
this.rules = {
qu6: [{ required: true, message: 'please select', trigger: 'blur' }],
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
recommend: [{ required: true, message: 'please select', trigger: 'blur' }]
};
}
},
questionSubmit() {
if (this.questionform.is_anonymous === '') {
if (this.questionform.is_anonymous == '' && this.questionform.is_anonymous != '0') {
this.$message.error('Please choose disclose your name or remain anonymous.');
return false;
}
const regex = /[\u4E00-\u9FA5\uF900-\uFA2D]{1,}/;
if (this.questionform.comment && this.questionform.comment != '') {
if (regex.test(this.questionform.comment)) {
// 如果输入的是中文,则清空输入框
this.$message.error('Comments for the Authors cannot use Chinese.');
this.loading = true;
return false;
}
}
if (this.questionform.confident && this.questionform.confident != '') {
if (regex.test(this.questionform.confident)) {
// 如果输入的是中文,则清空输入框
this.$message.error('Confidential Comments to the Editor cannot be in Chinese.');
return false;
}
}
// 验证相加的字数
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.error('We encourage you to enrich your comment further to help improve the peer paper.');
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 <= 50) {
this.$message.error('We encourage you to enrich your comment further to help improve the peer paper.');
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;
const loading = this.$loading({
lock: true,
text: 'Loading...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.$refs.question.validate((valid) => {
if (valid) {
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
this.loading = false;
if (res.code === 0) {
if (res.code == 0) {
loading.close();
this.$message.success('Success!!');
this.$emit('refresh');
this.$router.push('/per_text_success');
} else {
loading.close();
// this.$message.error('Question submit error!');
this.$message.error(res.msg);
}
});
} else {
this.loading = false;
loading.close();
}
});
}
@@ -113,4 +349,7 @@ export default {
border-top: 0;
border-bottom: 0;
}
::v-deep .el-divider {
background-color: #006699;
}
</style>

View File

@@ -1,455 +0,0 @@
<template>
<div>
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
<!-- 评估部分 -->
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<!-- 1. Originality of the topic -->
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="1. Originality of the topic" prop="qu1">
<el-radio-group v-model="questionform.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="0.5">Good</el-radio>
<el-radio :label="0">Fair</el-radio>
<el-radio :label="-0.5">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!-- 2. Importance in its Field -->
<el-col :span="24">
<el-form-item label="2. Importance in its Field" prop="qu2">
<el-radio-group v-model="questionform.qu2">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="0.5">Good</el-radio>
<el-radio :label="0">Fair</el-radio>
<el-radio :label="-0.5">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!-- 3. Does the manuscript fall within the aim and scope of the journal? -->
<el-col :span="24">
<el-form-item label="3. Does the manuscript fall within the aim and scope of the journal?" prop="qu3">
<el-radio-group v-model="questionform.qu3">
<el-radio :label="0.5">Yes</el-radio>
<el-radio :label="-10">No</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!-- 4. English language -->
<el-col :span="24">
<el-form-item label="4. English language" prop="qu4">
<el-radio-group v-model="questionform.qu4">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="0.5">Good</el-radio>
<el-radio :label="0">Fair</el-radio>
<el-radio :label="-0.5">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<!-- Collapse sections for comments -->
<el-collapse>
<!-- 5. Does the title represent manuscript's contents? -->
<el-form-item label="5. Does the title represent manuscript's contents?" prop="qu5">
<el-col :span="4">
<el-radio-group v-model="questionform.qu5">
<el-radio :label="0.5">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu5contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<!-- 6. Is the Abstract accurate and concise? -->
<el-form-item label="6. Is the Abstract accurate and concise?" prop="qu6">
<el-col :span="4">
<el-radio-group v-model="questionform.qu6">
<el-radio :label="0.5">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu6contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<!-- 7. Does the Introduction highlight the latest advancements and address existing challenges in the current research? -->
<el-form-item
label="7. Does the Introduction highlight the latest advancements and address existing challenges in the current research?"
prop="qu7"
>
<el-col :span="4">
<el-radio-group v-model="questionform.qu7">
<el-radio :label="0.5">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu7contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<!-- 8. Does the Introduction cite the most recent and pertinent reference directly related to the research? -->
<el-form-item label="8. Does it cite the most recent and pertinent reference directly related to the research?" prop="qu8">
<el-col :span="4">
<el-radio-group v-model="questionform.qu8">
<el-radio :label="0.5">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu8contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<!-- 9. Does the experimental design provide sufficient scientific support for the article? -->
<el-form-item
label="9. Materials and Methods: Does the experimental design provide sufficient scientific support for the article (e.g., by using diverse cell lines with clear origins, ensuring natural drugs are authenticated, integrating in vitro and in vivo studies, and examining the issue at multiple levels including proteins and nucleic acids)?"
prop="qu9"
>
<el-col :span="4">
<el-radio-group v-model="questionform.qu9">
<el-radio :label="0.5">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu9contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<!-- 10. Does the experimental design adopt the latest cutting-edge research methods and technologies? -->
<el-form-item
label="10. Does the experimental design adopt the latest cutting-edge research methods and technologies?"
prop="qu10"
>
<el-col :span="4">
<el-radio-group v-model="questionform.qu10">
<el-radio :label="0.5">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="6">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu10contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<!-- 11. Is the appropriate statistical analysis used? -->
<el-form-item label="11. Is the appropriate statistical analysis used?" prop="qu11">
<el-col :span="4">
<el-radio-group v-model="questionform.qu11">
<el-radio :label="1">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="7">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu11contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<!-- 12. Are the Figures or Tables clear, visually appealing, and easy to understand? -->
<el-form-item label="12. Are the Figures or Tables clear, visually appealing, and easy to understand?" prop="qu12">
<el-col :span="4">
<el-radio-group v-model="questionform.qu12">
<el-radio :label="1">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="8">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu12contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item
label="13. Is the interpretation reliable (can the results adequately support the conclusions, are the conclusions overstated, and is there any selective reporting of results that could mislead readers)?"
prop="qu13"
>
<el-col :span="4">
<el-radio-group v-model="questionform.qu13">
<el-radio :label="1">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="9">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu13contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item
label="14. If there are notable limitations or imperfections in the research, does the author explicitly acknowledge these shortcomings?"
prop="qu14"
>
<el-col :span="4">
<el-radio-group v-model="questionform.qu14">
<el-radio :label="0.5">Yes</el-radio>
<el-radio :label="0">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="10">
<template slot="title"><i class="el-icon-edit"></i> Comments/ Suggestions</template>
<el-input
type="textarea"
v-model="questionform.qu14contents"
:rows="4"
placeholder="please input content"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
<!-- 推荐部分 -->
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated">
( <span style="color: #e41411">←←←←← Bad ←←← Poor</span>
<span style="width: 10px; display: inline-block"></span>
<span style="color: #369916">Accept → Superior → Excellent</span> )<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px">Your score : {{ questionform.rated }}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS">
<el-radio-group v-model="questionform.recommend">
<el-radio :label="1">Minor revision</el-radio>
<el-radio :label="2">Major revision</el-radio>
<el-radio v-if="journal_id == 1 || journal_id == 23 || journal_id == 10" :label="3">
Reject in current form, but may be resubmitted
</el-radio>
<el-radio v-if="journal_id != 1 && journal_id != 23 && journal_id != 10" :label="4">Reject</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="questionform.recommend">
<el-radio :label="1">Imperfect style</el-radio>
<el-radio :label="2">Too long</el-radio>
<el-radio :label="3"> References incorrectly presented </el-radio>
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item>
<!-- 评论部分 -->
<el-form-item label="Comments for the Authors">
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input type="textarea" placeholder="please input content" v-model="questionform.confident" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous">
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However,
if you prefer to remain anonymous, we will still express our gratitude by thanking you as an
anonymous reviewer.
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous
reviewers for their invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
<!-- 提交按钮 -->
<el-form-item v-if="this.btn_submit == 0">
<el-button type="primary" @click="questionSubmit">submit</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
articleId: null,
txt_mess: {},
questionform: {
rev_qu_id: '',
art_rev_id: this.$route.query.Art_id,
qu1: '', // Originality of the topic
qu2: '', // Importance in its Field
qu3: '', // Does the manuscript fall within the aim and scope of the journal?
qu4: '', // English language
qu5: '', // Readily Understandable
qu6: '', // Does the title represent manuscript's contents?
qu6contents: '', // Title Comments
qu7: '', // Abstract
qu7contents: '', // Abstract Comments
qu8: '', // Introduction
qu8contents: '', // Introduction Comments
qu9: '', // Materials and Methods
qu9contents: '', // Methods Comments
qu10: '', // Results
qu10contents: '', // Results Comments
qu11: '', // Discussion
qu11contents: '', // Discussion Comments
qu12: '', // Discussion
qu12contents: '', // Discussion Comments
qu13: '', // Discussion
qu13contents: '', // Discussion Comments
qu14: '', // Discussion
qu14contents: '', // Discussion Comments
rated: '', // Overall Rating
recommend: '', // Recommendations
other: '', // Specific Criticisms
confident: '', // Confidential Comments to the Editor
comment: '', // Comments for the Authors
is_anonymous: '' // Anonymous or Not
},
btn_submit: 0,
journal_id: null,
rules: {
qu1: [{ required: true, message: 'please select', trigger: 'blur' }],
qu2: [{ required: true, message: 'please select', trigger: 'blur' }],
qu3: [{ required: true, message: 'please select', trigger: 'blur' }],
qu4: [{ required: true, message: 'please select', trigger: 'blur' }],
qu5: [{ required: true, message: 'please select', trigger: 'blur' }],
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
recommend: [{ required: true, message: 'please select', trigger: 'blur' }],
comment: [{ required: true, message: 'please input content', trigger: 'blur' }]
}
};
},
created() {
this.getData();
},
methods: {
getData() {
// 获取文章数据
this.$api
.post('api/Reviewer/getartrevdate', {
revid: this.Art_id,
human: 'reviewer'
})
.then((res) => {
this.txt_mess = res;
this.journal_id = res.journal_id;
});
},
questionSubmit() {
if (this.questionform.is_anonymous === '') {
this.$message.error('Please choose disclose your name or remain anonymous.');
return false;
}
this.loading = true;
this.$refs.question.validate((valid) => {
if (valid) {
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
this.loading = false;
if (res.code === 0) {
this.$message.success('Success!!');
this.$router.push('/per_text_success');
} else {
this.$message.error(res.msg);
}
});
} else {
this.loading = false;
}
});
}
}
};
</script>
<style scoped>
.jouLink {
color: #006699;
font-weight: bold;
}
</style>

View File

@@ -1,439 +1,200 @@
<template>
<div>
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<template v-for="(v, i) in selectDataList">
<el-col :span="v.spanValue">
<el-form-item :prop="v.value">
<span slot="label">
{{ v.title }}
</span>
<el-col :span="24">
<el-form-item label="1.Originality of the topic" prop="xx">
<el-radio-group v-model="questionform.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
<el-radio-group v-model="questionform[v.value]">
<el-radio :label="1" :disabled="!isEdit&&questionform[v.value]!=1">Excellent</el-radio>
<el-radio :label="2" :disabled="!isEdit&&questionform[v.value]!=2">Good</el-radio>
<el-radio :label="3" :disabled="!isEdit&&questionform[v.value]!=3">Fair</el-radio>
<el-radio :label="4" :disabled="!isEdit&&questionform[v.value]!=4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="2.Importance in its Field" prop="xx">
<el-radio-group v-model="questionform.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-collapse>
<el-col :span="24">
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group></el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu10contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-col>
</el-collapse>
<el-col :span="12">
<el-form-item label="4.English language" prop="xx">
<el-radio-group v-model="questionform.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</template>
</el-row>
<el-collapse>
<el-form-item label="5.Does the title represent manuscript's contents?" prop="xx">
<!-- <el-collapse v-if="judgeDataList1.length > 0" v-model="activeNames">
<el-form-item :label="v.title" v-for="(v, i) in judgeDataList1">
<el-col :span="4">
<el-radio-group v-model="questionform.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
<el-radio-group v-model="questionform[v.value]">
<el-radio :label="true" :disabled="!isEdit&&questionform[v.value]!=true">Yes</el-radio>
<el-radio :label="false" :disabled="!isEdit&&questionform[v.value]!=false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit" v-if="isEdit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform[v.valueContents]"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse> -->
<el-collapse v-if="judgeDataList1.length > 0" v-model="activeNames">
<el-form-item :label="v.title" v-for="(v, i) in judgeDataList1">
<el-col :span="6">
<el-radio-group v-model="questionform[v.value]">
<el-radio :label="true" :disabled="!isEdit&&questionform[v.value]!=true">Yes</el-radio>
<el-radio :label="false" :disabled="!isEdit&&questionform[v.value]!=false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="18" v-if="isEdit">
<el-collapse-item :name="i + 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"
v-model="questionform[v.valueContents]"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
<el-col :span="18" v-else>
<el-collapse-item :name="i + 1" style="margin-top: -10px" v-if="questionform[v.valueContents] && questionform[v.valueContents] != ''">
<template slot="title"
>Comments/ Suggestions
</template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform[v.valueContents]"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
<el-collapse>
<el-form-item label="6.Is the Abstract accurate and concise?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu10contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="7.Does it highlight the latest advancements and address existing challenges in the current research?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Does it cite the most recent and pertinent reference directly related to the research?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Materials and Methods: Does the experimental design provide sufficient scientific support for the article?" prop="xx">
<p style="width: 100%;" class="titleInfo">e.g., by using diverse cell lines with clear origins, ensuring natural drugs are authenticated, integrating in vitro and in vivo studies, and examining the issue at multiple levels including proteins and nucleic acids</p>
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Does the experimental design adopt the latest cutting-edge research methods and technologies?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="11.Is the appropriate statistical analysis used?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="12.Are the Figures or Tables clear, visually appealing, and easy to understand?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="13.Is the interpretation reliable (can the results adequately support the conclusions, are the conclusions overstated, and is there any selective reporting of results that could mislead readers)?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="14.If there are notable limitations or imperfections in the research, does the author explicitly acknowledge these shortcomings?" prop="xx">
<el-col :span="4">
<el-radio-group v-model="questionform.xx">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated" prop="rated">
( <span style="color: #e41411">←←←←← Bad ←←← Poor</span>
<span style="width: 10px; display: inline-block"></span>
<span style="color: #369916">Accept → Superior → Excellent</span>)
<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px">Your score : {{ questionform.rated }}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="questionform.recommend" style="line-height: 30px">
<el-radio :label="1">Minor revision</el-radio>
<br />
<el-radio :label="2">Major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS" prop="xx">
<el-radio-group v-model="questionform.xx" style="line-height: 30px">
<el-radio :label="1">Imperfect style</el-radio>
<br/>
<el-radio :label="2">Too long</el-radio><br/>
<el-radio :label="3"> References incorrectly presented </el-radio><br/>
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="Comments for the Authors" v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'">
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="" v-if="articleId">
<common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html>
</el-form-item>
<el-form-item
label="Comments for the Authors"
prop="comment"
v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'"
>
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input type="textarea" placeholder="please input content" v-model="questionform.confident" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous">
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However, if you prefer to
remain anonymous, we will still express our gratitude by thanking you as an anonymous reviewer.
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers for
their invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
<el-form-item v-if="this.btn_submit == 0">
<el-button type="primary" @click="questionSubmit">submit</el-button>
</el-form-item>
</el-collapse>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
articleId: null,
txt_mess: {},
questionform: {
rev_qu_id: '',
art_rev_id: this.$route.query.Art_id,
qu1: '',
qu2: '',
qu3: '',
qu4: '',
qu5: '',
qu6: '',
qu7: '',
qu8: '',
qu9: '',
qu9contents: '',
qu10: '',
qu10contents: '',
qu11: '',
qu11contents: '',
qu12: '',
qu12contents: '',
qu13: '',
qu13contents: '',
qu14: '',
qu14contents: '',
qu15: '',
qu15contents: '',
rated: '',
recommend: '',
other: '',
confident: '',
comment: '',
is_anonymous: ''
props: {
isEdit: {
type: Boolean,
default: true
},
btn_submit: 0,
journal_id: null,
rules: {
qu6: [{ required: true, message: 'please select', trigger: 'blur' }],
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
recommend: [{ required: true, message: 'please select', trigger: 'blur' }],
xx: [{ required: true, message: 'please select', trigger: 'blur' }]
txt_mess: {
type: Object,
default: {}
},
form: {
type: Object,
default: {}
}
};
},
created() {
this.getData();
},
methods: {
getData() {
// Fetch article data
this.$api
.post('api/Reviewer/getartrevdate', {
revid: this.Art_id,
human: 'reviewer'
})
.then((res) => {
this.txt_mess = res;
this.journal_id = res.journal_id;
});
},
questionSubmit() {
if (this.questionform.is_anonymous === '') {
this.$message.error('Please choose disclose your name or remain anonymous.');
return false;
watch: {
isEdit: {
handler(e) {
if(e==false){
this.activeNames = this.judgeDataList1.map((e,i)=>i+1); // 深拷贝,防止直接改 props
}else{
this.activeNames =[]
}
this.loading = true;
this.$refs.question.validate((valid) => {
if (valid) {
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
this.loading = false;
if (res.code === 0) {
this.$message.success('Success!!');
this.$router.push('/per_text_success');
} else {
this.$message.error(res.msg);
},
immediate: true,
deep: true
},
form: {
handler(e) {
this.questionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props
},
immediate: true,
deep: true
},
questionform: {
handler(newVal) {
console.log('newVal at line 93:', newVal)
// 变化时通知父组件
this.$emit('update', newVal); // 或自定义事件this.$emit('formChanged', newVal)
},
deep: true // 深度监听对象内部字段变化
}
});
} else {
this.loading = false;
}
});
},
data() {
return { activeNames: [],
questionform: {},
selectDataList: [
{
title: '1.Originality of the topic',
value: 'qu6',
spanValue: 24
},
{
title: '2.Importance in its Field',
value: 'qu1',
spanValue: 24
},
{
title: '3.Does the manuscript fall within the aim and scope of the journal?',
value: 'qu3',
spanValue: 24
},
{
title: '4.English language',
value: 'qu8',
spanValue: 24
}
],
// judgeDataList1: [],
judgeDataList1: [
{ title: "5.Does the title represent manuscript's contents?", value: 'qu9', valueContents: 'qu9contents' },
{ title: '6.Is the Abstract accurate and concise?', value: 'qu10', valueContents: 'qu10contents' },
{
title: '7.Does it highlight the latest advancements and address existing challenges in the current research?',
value: 'qu11',
valueContents: 'qu11contents'
},
{
title: '8.Does it cite the most recent and pertinent reference directly related to the research?',
value: 'qu12',
valueContents: 'qu12contents'
},
{
title: '9.Materials and Methods: Does the experimental design provide sufficient scientific support for the article?',
value: 'qu13',
valueContents: 'qu13contents'
},
{
title: '10.Does the experimental design adopt the latest cutting-edge research methods and technologies?',
value: 'qu13',
valueContents: 'qu13contents'
},
{ title: '11.Is the appropriate statistical analysis used?', value: 'qu13', valueContents: 'qu13contents' },
{
title: '12.Are the Figures or Tables clear, visually appealing, and easy to understand?',
value: 'qu13',
valueContents: 'qu13contents'
},
{
title: '13.Is the interpretation reliable (can the results adequately support the conclusions, are the conclusions overstated, and is there any selective reporting of results that could mislead readers)?',
value: 'qu13',
valueContents: 'qu13contents'
},
{
title: '14.If there are notable limitations or imperfections in the research, does the author explicitly acknowledge these shortcomings?',
value: 'qu13',
valueContents: 'qu13contents'
}
]
};
},
created() {},
methods: {}
};
</script>
@@ -443,7 +204,7 @@ export default {
font-weight: bold;
}
.titleInfo {
color: #AAA;
color: #aaa;
line-height: 18px;
margin-top: -16px;
margin-bottom: 12px;

View File

@@ -1,403 +1,173 @@
<template>
<div>
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item prop="qu6">
<template v-for="(v, i) in selectDataList">
<el-col :span="v.spanValue">
<el-form-item :prop="v.value">
<span slot="label">
1.Does the manuscript fall within the aim and scope of the journal?
<a :href="txt_mess.aim_web" target="_blank" class="jouLink">( Aims & Scope ) </a>
{{ v.title }}
<a :href="txt_mess.aim_web" target="_blank" class="jouLink" v-if="i == 0">( Aims & Scope ) </a>
</span>
<el-radio-group v-model="questionform.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Originality of the topic">
<el-radio-group v-model="questionform.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Importance in its Field">
<el-radio-group v-model="questionform.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="questionform.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="questionform.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
<el-radio-group v-model="questionform[v.value]">
<el-radio :label="1" :disabled="!isEdit && questionform[v.value] != 1">Excellent</el-radio>
<el-radio :label="2" :disabled="!isEdit && questionform[v.value] != 2">Good</el-radio>
<el-radio :label="3" :disabled="!isEdit && questionform[v.value] != 3">Fair</el-radio>
<el-radio :label="4" :disabled="!isEdit && questionform[v.value] != 4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</template>
</el-row>
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<!-- <el-collapse v-if="judgeDataList1.length > 0" v-model="activeNames">
<el-form-item :label="v.title" v-for="(v, i) in judgeDataList1">
<el-col :span="4">
<el-radio-group v-model="questionform.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
<el-radio-group v-model="questionform[v.value]">
<el-radio :label="true" :disabled="!isEdit&&questionform[v.value]!=true">Yes</el-radio>
<el-radio :label="false" :disabled="!isEdit&&questionform[v.value]!=false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit" v-if="isEdit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform[v.valueContents]"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse> -->
<el-collapse v-if="judgeDataList1.length > 0" v-model="activeNames">
<el-form-item :label="v.title" v-for="(v, i) in judgeDataList1">
<el-col :span="6">
<el-radio-group v-model="questionform[v.value]">
<el-radio :label="true" :disabled="!isEdit && questionform[v.value] != true">Yes</el-radio>
<el-radio :label="false" :disabled="!isEdit && questionform[v.value] != false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="18" v-if="isEdit">
<el-collapse-item :name="i + 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"
v-model="questionform[v.valueContents]"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
<el-col :span="20" v-else>
<el-collapse-item :name="i + 1" style="margin-top: -10px" v-if="questionform[v.valueContents] && questionform[v.valueContents] != ''">
<template slot="title"
>Comments/ Suggestions
</template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform[v.valueContents]"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu10contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu11contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu12contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu13contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated" prop="rated">
( <span style="color: #e41411">←←←←← Bad ←←← Poor</span>
<span style="width: 10px; display: inline-block"></span>
<span style="color: #369916">Accept → Superior → Excellent</span>)
<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px">Your score : {{ questionform.rated }}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="questionform.recommend" style="line-height: 30px">
<el-radio :label="1">Minor revision</el-radio>
<br />
<el-radio :label="2">Major revision</el-radio>
<br />
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject</el-radio>
</div>
<div v-else>
<el-radio :label="4">Reject</el-radio>
</div>
</el-radio-group>
</el-form-item>
<el-form-item label="Comments for the Authors" v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'">
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="" v-if="articleId">
<common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html>
</el-form-item>
<el-form-item
label="Comments for the Authors"
prop="comment"
v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'"
>
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input type="textarea" placeholder="please input content" v-model="questionform.confident" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous">
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However, if you prefer to
remain anonymous, we will still express our gratitude by thanking you as an anonymous reviewer.
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers for
their invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
<el-form-item v-if="this.btn_submit == 0">
<el-button type="primary" @click="questionSubmit">submit</el-button>
</el-form-item>
</el-collapse>
</el-form>
</div>
</template>
<script>
export default {
props: {
isEdit: {
type: Boolean,
default: true
},
txt_mess: {
type: Object,
default: {}
},
form: {
type: Object,
default: {}
}
},
watch: {
isEdit: {
handler(e) {
if (e == false) {
this.activeNames = this.judgeDataList1.map((e, i) => i + 1); // 深拷贝,防止直接改 props
} else {
this.activeNames = [];
}
},
immediate: true,
deep: true
},
form: {
handler(e) {
this.questionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props
},
immediate: true,
deep: true
},
questionform: {
handler(newVal) {
console.log('newVal at line 93:', newVal);
// 变化时通知父组件
this.$emit('update', newVal); // 或自定义事件this.$emit('formChanged', newVal)
},
deep: true // 深度监听对象内部字段变化
}
},
data() {
return {
loading: false,
articleId: null,
txt_mess: {},
questionform: {
rev_qu_id: '',
art_rev_id: this.$route.query.Art_id,
qu1: '',
qu2: '',
qu3: '',
qu4: '',
qu5: '',
qu6: '',
qu7: '',
qu8: '',
qu9: '',
qu9contents: '',
qu10: '',
qu10contents: '',
qu11: '',
qu11contents: '',
qu12: '',
qu12contents: '',
qu13: '',
qu13contents: '',
qu14: '',
qu14contents: '',
qu15: '',
qu15contents: '',
rated: '',
recommend: '',
other: '',
confident: '',
comment: '',
is_anonymous: ''
activeNames: [],
questionform: {},
selectDataList: [
{
title: '1.Does the manuscript fall within the aim and scope of the journal?',
value: 'qu6',
spanValue: 24
},
btn_submit: 0,
journal_id: null,
rules: {
qu6: [{ required: true, message: 'please select', trigger: 'blur' }],
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
recommend: [{ required: true, message: 'please select', trigger: 'blur' }]
{
title: '2.Originality of the topic',
value: 'qu1',
spanValue: 12
},
{
title: '3.Importance in its Field',
value: 'qu3',
spanValue: 12
},
{
title: '4.English language',
value: 'qu8',
spanValue: 12
},
{
title: '5.Readily Understandable',
value: 'qu5',
spanValue: 12
}
],
// judgeDataList2: [{ title: "6.Does the title represent manuscript's contents?", value: 'qu9', valueContents: 'qu9contents' }],
judgeDataList1: [
{ title: "6.Does the title represent manuscript's contents?", value: 'qu9', valueContents: 'qu9contents' },
{ title: '7.Is the Abstract accurate and concise?', value: 'qu10', valueContents: 'qu10contents' },
{ title: '8.Are the approach/ methods properly described?', value: 'qu11', valueContents: 'qu11contents' },
{ title: '9.Are the conclusions and interpretations sound?', value: 'qu12', valueContents: 'qu12contents' },
{ title: '10.Are the references properly cited?', value: 'qu13', valueContents: 'qu13contents' }
]
};
},
created() {
this.getData();
},
methods: {
getData() {
// Fetch article data
this.$api
.post('api/Reviewer/getartrevdate', {
revid: this.Art_id,
human: 'reviewer'
})
.then((res) => {
this.txt_mess = res;
this.journal_id = res.journal_id;
});
},
questionSubmit() {
if (this.questionform.is_anonymous == '' && this.questionform.is_anonymous != '0') {
this.$message.error('Please choose disclose your name or remain anonymous.');
created() {},
return false;
}
const regex = /[\u4E00-\u9FA5\uF900-\uFA2D]{1,}/;
if (this.questionform.comment && this.questionform.comment != '') {
if (regex.test(this.questionform.comment)) {
// 如果输入的是中文,则清空输入框
this.$message.error('Comments for the Authors cannot use Chinese.');
return false;
}
}
if (this.questionform.confident && this.questionform.confident != '') {
if (regex.test(this.questionform.confident)) {
// 如果输入的是中文,则清空输入框
this.$message.error('Confidential Comments to the Editor cannot be in Chinese.');
return false;
}
}
// 验证相加的字数
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.error('We encourage you to enrich your comment further to help improve the peer paper.');
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 <= 50) {
this.$message.error('We encourage you to enrich your comment further to help improve the peer paper.');
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.$refs.question.validate((valid) => {
if (valid) {
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
if (res.code == 0) {
this.loading = false;
this.$message.success('Success!!');
this.getData();
this.$router.push('/per_text_success');
} else {
this.loading = false;
// this.$message.error('Question submit error!');
this.$message.error(res.msg);
}
});
} else {
this.loading = false;
}
});
}
}
methods: {}
};
</script>

View File

@@ -67,7 +67,6 @@
<b v-if="item.question.recommend == 2">Major revision</b>
<b v-if="item.question.recommend == 3">Reject in current form, but may be resubmitted</b>
<b v-if="item.question.recommend == 4">Reject</b>
</p>
<p style="font-size: 14px; color: #666; margin: 0 0 20px 0">
Reviewed Time : <b>{{ item.ctime }}</b>
@@ -78,7 +77,18 @@
<!-- 证书弹出框 -->
<el-dialog :visible.sync="questionVisible" width="1000px">
<el-form
<!-- 审稿人表单修改 -->
<!-- 不显示给编辑的话 -->
<common-review-article
:form="questionform"
type="questionform"
:txt_mess="txt_mess"
:confident="false"
:btn_submit="1"
:articleId="articleId"
:journal_id="journal_id"
></common-review-article>
<!-- <el-form
:model="questionform"
:rules="rules"
ref="question"
@@ -265,14 +275,11 @@
<br />
<el-radio :label="2">Major revision</el-radio>
<br />
<!-- <div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10"> -->
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject</el-radio>
<!-- </div>
<div v-else> -->
<!-- <el-radio :label="4">Reject</el-radio> -->
<!-- </div> -->
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
@@ -295,7 +302,7 @@
></el-input>
</el-form-item>
</el-collapse>
</el-form>
</el-form> -->
</el-dialog>
</div>
</div>

View File

@@ -92,8 +92,9 @@
</el-card>
<el-card class="box-card" v-if="this.add_apply == 0">
<!-- <common-review-article></common-review-article> -->
<el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
<!-- 审稿人表单修改 -->
<common-review-article @refresh="getData" type="questionform" :form="questionform" :txt_mess="txt_mess" :btn_submit="btn_submit" :articleId="articleId" :journal_id="journal_id"></common-review-article>
<!-- <el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="24">
@@ -345,7 +346,7 @@
<el-button type="primary" @click="questionSubmit">submit</el-button>
</el-form-item>
</el-collapse>
</el-form>
</el-form> -->
</el-card>
</el-col>
</el-row>
@@ -584,6 +585,7 @@ export default {
})
.then((res) => {
if (res.code == 0) {
this.questionform.rev_qu_id = res.data.rev_qu_id;
this.questionform.qu1 = res.data.qu1;
this.questionform.qu2 = res.data.qu2;