作者端看到 初审的审稿问卷
This commit is contained in:
@@ -41,11 +41,13 @@
|
||||
</template>
|
||||
<!-- 时间轴 -->
|
||||
<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-card>
|
||||
|
||||
<!-- 初审 -->
|
||||
<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">
|
||||
<p v-if="item1.qu9_contents!=''">
|
||||
@@ -502,6 +504,20 @@
|
||||
<el-button type="primary" @click="Detailvisible=false">OK</el-button>
|
||||
</span>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
@@ -509,6 +525,8 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
questionform:{},
|
||||
dialogFormVisible:false,
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
articleId: this.$route.query.id,
|
||||
@@ -581,7 +599,43 @@
|
||||
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() {
|
||||
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