作者端看到 初审的审稿问卷
This commit is contained in:
@@ -41,11 +41,13 @@
|
|||||||
</template>
|
</template>
|
||||||
<!-- 时间轴 -->
|
<!-- 时间轴 -->
|
||||||
<el-timeline v-if="item.question && item.question[0] != null">
|
<el-timeline v-if="item.question && item.question[0] != null">
|
||||||
|
|
||||||
<el-timeline-item :timestamp="item1.ctime|formatDatehms" placement="top" v-for="(item1, index1) in item.question" :key="index1">
|
<el-timeline-item :timestamp="item1.ctime|formatDatehms" placement="top" v-for="(item1, index1) in item.question" :key="index1">
|
||||||
<el-card>
|
<el-card>
|
||||||
|
|
||||||
<!-- 初审 -->
|
<!-- 初审 -->
|
||||||
<div v-if="index1 == item.question.length-1">
|
<div v-if="index1 == item.question.length-1">
|
||||||
<h4><el-tag >Under review</el-tag></h4>
|
<h4 style="position: relative;"><el-tag >Under review</el-tag><el-button type="primary" size="mini" style="position: absolute;right: 0;" @click="showDetail(item1)">Detail</el-button></h4>
|
||||||
<!-- 内容 -->
|
<!-- 内容 -->
|
||||||
<div class="art_author_coment">
|
<div class="art_author_coment">
|
||||||
<p v-if="item1.qu9_contents!=''">
|
<p v-if="item1.qu9_contents!=''">
|
||||||
@@ -502,6 +504,20 @@
|
|||||||
<el-button type="primary" @click="Detailvisible=false">OK</el-button>
|
<el-button type="primary" @click="Detailvisible=false">OK</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible" width="900px" :close-on-click-modal="false">
|
||||||
|
<!-- 审稿人表单修改 -->
|
||||||
|
|
||||||
|
<common-author-article
|
||||||
|
type="questionform"
|
||||||
|
pagetype="Editor"
|
||||||
|
:form="questionform"
|
||||||
|
:txt_mess="artMes"
|
||||||
|
:btn_submit="1"
|
||||||
|
:articleId="articleId"
|
||||||
|
:journal_id="journal_id"
|
||||||
|
></common-author-article>
|
||||||
|
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -509,6 +525,8 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
questionform:{},
|
||||||
|
dialogFormVisible:false,
|
||||||
baseUrl: this.Common.baseUrl,
|
baseUrl: this.Common.baseUrl,
|
||||||
mediaUrl: this.Common.mediaUrl,
|
mediaUrl: this.Common.mediaUrl,
|
||||||
articleId: this.$route.query.id,
|
articleId: this.$route.query.id,
|
||||||
@@ -581,7 +599,43 @@
|
|||||||
return this.baseUrl + 'api/Article/up_response_file';
|
return this.baseUrl + 'api/Article/up_response_file';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
showDetail(data){
|
||||||
|
|
||||||
|
this.questionform = data;
|
||||||
|
this.questionform.rev_qu_id = data.rev_qu_id;
|
||||||
|
this.questionform.qu1 = data.qu1;
|
||||||
|
this.questionform.qu2 = data.qu2;
|
||||||
|
this.questionform.qu3 = data.qu3;
|
||||||
|
this.questionform.qu4 = data.qu4;
|
||||||
|
this.questionform.qu5 = data.qu5;
|
||||||
|
this.questionform.qu6 = data.qu6;
|
||||||
|
this.questionform.qu7 = data.qu7;
|
||||||
|
this.questionform.qu8 = data.qu8;
|
||||||
|
this.questionform.qu9 = data.qu9 == 0 ? false : true;
|
||||||
|
this.questionform.qu9contents = data.qu9_contents;
|
||||||
|
this.questionform.qu10 = data.qu10 == 0 ? false : true;
|
||||||
|
this.questionform.qu10contents = data.qu10_contents;
|
||||||
|
this.questionform.qu11 = data.qu11 == 0 ? false : true;
|
||||||
|
this.questionform.qu11contents = data.qu11_contents;
|
||||||
|
this.questionform.qu12 = data.qu12 == 0 ? false : true;
|
||||||
|
this.questionform.qu12contents = data.qu12_contents;
|
||||||
|
this.questionform.qu13 = data.qu13 == 0 ? false : true;
|
||||||
|
this.questionform.qu13contents = data.qu13_contents;
|
||||||
|
this.questionform.qu14 = data.qu14 == 0 ? false : true;
|
||||||
|
this.questionform.qu14contents = data.qu14_contents;
|
||||||
|
this.questionform.qu15 = data.qu15 == 0 ? false : true;
|
||||||
|
this.questionform.qu15contents = data.qu15_contents;
|
||||||
|
this.questionform.rated = data.rated;
|
||||||
|
this.questionform.recommend = data.recommend;
|
||||||
|
this.questionform.other = data.other;
|
||||||
|
this.questionform.confident = data.confidential;
|
||||||
|
this.questionform.comment = data.comments;
|
||||||
|
this.questionform.is_anonymous = data.is_anonymous;
|
||||||
|
this.questionform.type= data.type;
|
||||||
|
this.questionform.score = data.score;
|
||||||
|
this.dialogFormVisible = true;
|
||||||
|
},
|
||||||
//初始化文章信息
|
//初始化文章信息
|
||||||
initarticle() {
|
initarticle() {
|
||||||
this.$api
|
this.$api
|
||||||
|
|||||||
282
src/components/page/components/reviewArticle/author.vue
Normal file
282
src/components/page/components/reviewArticle/author.vue
Normal file
@@ -0,0 +1,282 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-form :model="questionform" :rules="isEdit ? rules : {}" ref="question" label-width="300px" label-position="top">
|
||||||
|
<el-divider content-position="center">REVIEWER'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-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import oldForm from './old.vue';
|
||||||
|
import newForm from './new.vue';
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
oldForm,
|
||||||
|
newForm
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
// isEdit: {
|
||||||
|
// type: Boolean,
|
||||||
|
// default: true
|
||||||
|
// },
|
||||||
|
// isNewForm: {
|
||||||
|
// type: Boolean,
|
||||||
|
// default: false
|
||||||
|
// },
|
||||||
|
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
default: 'questionform'
|
||||||
|
},
|
||||||
|
pagetype: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
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 {
|
||||||
|
isNewForm: false,
|
||||||
|
loading: false,
|
||||||
|
isEdit: true,
|
||||||
|
baseQuestionform: {},
|
||||||
|
questionform: {},
|
||||||
|
rules: {}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getData() {
|
||||||
|
// Fetch article data
|
||||||
|
this.questionform = { ...this.baseQuestionform };
|
||||||
|
if (this.baseQuestionform.type != 1) {
|
||||||
|
this.isNewForm = true;
|
||||||
|
this.rules = {
|
||||||
|
rated: [{ required: true, message: 'please select', trigger: 'blur' }],
|
||||||
|
comment: [{ required: true, message: 'please input content', trigger: 'blur' }],
|
||||||
|
other: [{ required: true, message: 'please input content', trigger: 'blur' }],
|
||||||
|
recommend: [{ required: true, message: 'please select', trigger: 'blur' }]
|
||||||
|
};
|
||||||
|
if (this.txt_mess.atype == 'REVIEW' || this.txt_mess.atype == 'MINI REVIEW') {
|
||||||
|
for (let i = 1; i <= 12; i++) {
|
||||||
|
this.rules[`qu${i}`] = [{ required: true, message: 'please select', trigger: 'blur' }];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (let i = 1; i <= 14; i++) {
|
||||||
|
this.rules[`qu${i}`] = [{ required: true, message: 'please select', trigger: 'blur' }];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.isNewForm = false;
|
||||||
|
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 == '' && 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.');
|
||||||
|
|
||||||
|
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 = null;
|
||||||
|
// 验证相加的字数
|
||||||
|
if (this.isNewForm) {
|
||||||
|
Char_Cter = [
|
||||||
|
this.questionform.qu5contents,
|
||||||
|
this.questionform.qu6contents,
|
||||||
|
this.questionform.qu7contents,
|
||||||
|
this.questionform.qu8contents,
|
||||||
|
this.questionform.qu9contents,
|
||||||
|
this.questionform.qu10contents,
|
||||||
|
this.questionform.qu11contents,
|
||||||
|
this.questionform.qu12contents,
|
||||||
|
this.questionform.qu13contents,
|
||||||
|
this.questionform.qu14contents,
|
||||||
|
this.questionform.comment
|
||||||
|
].join(' ');
|
||||||
|
} else {
|
||||||
|
Char_Cter = [
|
||||||
|
this.questionform.qu9contents,
|
||||||
|
this.questionform.qu10contents,
|
||||||
|
this.questionform.qu11contents,
|
||||||
|
this.questionform.qu12contents,
|
||||||
|
this.questionform.qu13contents,
|
||||||
|
this.questionform.comment
|
||||||
|
].join(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
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) {
|
||||||
|
const loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: 'Loading...',
|
||||||
|
spinner: 'el-icon-loading',
|
||||||
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
});
|
||||||
|
this.$api
|
||||||
|
.post(this.isNewForm ? 'api/Reviewer/questionSubmitNew' : 'api/Reviewer/questionSubmit', {
|
||||||
|
...this.questionform,
|
||||||
|
type: this.isNewForm ? (this.txt_mess.atype == 'REVIEW' || this.txt_mess.atype == 'MINI REVIEW' ? 3 : 2) : 1
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
loading.close();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.jouLink {
|
||||||
|
color: #006699;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
::v-deep .el-collapse {
|
||||||
|
border-top: 0;
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
::v-deep .el-divider {
|
||||||
|
background-color: #006699;
|
||||||
|
}
|
||||||
|
::v-deep .el-form-item--mini.el-form-item,
|
||||||
|
.el-form-item--small.el-form-item {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user