Files
tougao_web/src/components/page/edit_per_text_yq.vue
2025-11-17 17:00:14 +08:00

378 lines
9.1 KiB
Vue

<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>
>> Reviewer Article Detail
</el-breadcrumb-item>
</el-breadcrumb> -->
</div>
<div class="container_l" v-loading="loading" element-loading-text="Loading..."
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
<el-card class="box-card">
<div class="tet_list" :model="txt_mess">
<h4>{{txt_mess.article_title}}</h4>
<h5>{{txt_mess.title}}<span style="margin: 0 10px;"> >> </span> Manuscript ID:
{{txt_mess.accept_sn}}
</h5>
<p style="display:inline-block;margin: 0 35px;"><b>Type :</b> {{txt_mess.atype}}</p>
<p style="display:inline-block;"><b>Submitted time :</b> {{txt_mess.ctime}}</p>
<p v-if="txt_mess.major!=undefined"><b>Major : </b>{{txt_mess.majorList}}</p>
<p><b>Abstract :</b> <br>{{txt_mess.abstrart}}</p>
</div>
</el-card>
<el-card class="box-card" style="font-size: 15px;line-height: 24px;" v-if="finalState==5">
<el-row :gutter="20" class="trah_c">
<el-col :span="1"><img src="../../assets/img/icon_8.png" alt="" class="icon_img"></el-col>
<el-col :span="22" >
<p style="padding-left: 10px;">
Please feel free to accept or decline the final review invitation.
</p>
</el-col>
</el-row>
<div style="text-align: center;margin-top: 12px;">
<el-button type="success" @click="saveNow()" style="margin-right: 20px;width: 250px;">I agree to conduct the final review
</el-button>
<el-button type="danger" @click="saveRef()" style="width: 250px;">I decline to conduct the final review</el-button>
</div>
</el-card>
<el-card class="box-card" style="font-size: 15px;line-height: 24px;" v-if="finalState==0">
<el-row :gutter="20" class="trah_c">
<el-col :span="1"><img src="../../assets/img/icon_8.png" alt="" class="icon_img"></el-col>
<el-col :span="22" >
<p style="padding-left: 10px;">
You have received the invitation for manuscript review.
</p>
</el-col>
</el-row>
<div style="text-align: center;margin-top: 12px;">
<el-button type="success" @click="go()" style="margin-right: 20px;width: 250px;">Final decision
</el-button>
</div>
</el-card>
<el-card class="box-card" style="font-size: 15px;line-height: 24px;" v-if="finalState==1||finalState==2||finalState==3">
<el-row :gutter="20" class="trah_c">
<el-col :span="1"><img src="../../assets/img/icon_8.png" alt="" class="icon_img"></el-col>
<el-col :span="22" >
<p style="padding-left: 10px;">
The article has been reviewed.
</p>
</el-col>
</el-row>
</el-card>
<el-card class="box-card" style="font-size: 15px;line-height: 24px;" v-if="finalState==4">
<el-row :gutter="20" class="trah_c">
<el-col :span="1"><img src="../../assets/img/icon_8.png" alt="" class="icon_img"></el-col>
<el-col :span="22" >
<p style="padding-left: 10px;">
You have declined the invitation to review the manuscript.
</p>
</el-col>
</el-row>
</el-card>
</div>
</div>
</template>
<script>
export default {
data() {
return {
finalState: '',
loading: false,
Direct_log: this.$route.query.act,
record_id: this.$route.query.r_id,
a_id: this.$route.query.a_id,
txt_mess: {},
fileList: [],
picList: [],
mediaUrl: this.Common.mediaUrl
}
},
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.$api
.post('api/Reviewer/agreeReviewerArticle', {
art_rev_id: this.record_id
})
.then(res => {
if (res.code == 0) {
this.$message.success('Review now successfully!');
this.getData();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
this.loading = false;
});
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}
},
methods: {
go(){
this.$router.push('/edit_per_text?Art_id=' + this.record_id);
},
getData() {
// 获取文章信息
this.$api
.post('api/Finalreview/getById', {
'record_id': this.record_id,
'reviewer_id': localStorage.getItem('U_id'),
})
.then(res => {
console.log('res at line 119:', res)
if(res.status==1){
this.finalState = res.data.state;
// if(res.data.state==0){
this.$api
.post('api/Finalreview/view', {
'record_id': this.record_id,
'reviewer_id': localStorage.getItem('U_id'),
})
.then(res => {
this.txt_mess = {...res.data.article,majorList:res.data.article.major?res.data.article.major.join(','):[]}
if(res.data.article.state==0){
}
})
.catch(err => {
this.$message.error(err);
});
this.$api
.post('api/Reviewer/getAFilelistByID ', {
'revid': this.record_id
})
.then(res => {
for (var 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.fileList = res.data
})
.catch(err => {
this.$message.error(err);
});
this.$api
.post('api/Reviewer/getBFilelistByID', {
'revid': this.record_id
})
.then(res => {
for (var 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.picList = res.data
})
.catch(err => {
this.$message.error(err);
});
// }
// else{
// this.$router.push('/edit_per_text?Art_id=' + this.record_id);
// }
}else{
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
},
// 同意
saveNow() {
// 二次确认
this.$confirm('Are you sure you want to agree?', 'Tips', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/Finalreview/review', {
article_id: this.a_id,
record_id: this.record_id,
reviewer_id: localStorage.getItem('U_id'),
state: 0,
})
.then(res => {
if (res.status == 1) {
this.$message.success('Review now successfully!');
this.$router.push('/edit_per_text?Art_id=' + this.record_id);
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
})
.catch(() => {});
},
// 拒绝
saveRef() {
// 二次确认
this.$confirm('Are you sure you want to refuse?', 'Tips', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/Finalreview/review', {
article_id: this.a_id,
record_id: this.record_id,
reviewer_id: localStorage.getItem('U_id'),
state: 4,
})
.then(res => {
if (res.status == 1) {
this.$router.go(-1)
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
})
.catch(() => {});
},
},
mounted() {
},
}
</script>
<style scoped>
.tet_list {
font-size: 20px;
}
.box-card {
margin-bottom: 20px;
line-height: 24px;
}
.upload-txtc .el-upload-list__item .el-icon-upload-success {
display: none !important;
}
.tet_list h5 {
font-size: 15px;
margin: 20px 0 5px 0;
font-weight: normal;
display: inline-block;
}
.tet_list p {
font-family: Calibri;
line-height: 22px;
font-size: 16px;
}
.file_sty {
margin-bottom: 6px;
font-size: 14px;
}
.red {
color: #ff0000;
}
.el-collapse {
border-top: 0;
border-bottom: 0;
}
.top_dao:hover {
text-decoration: underline;
cursor: pointer;
}
.icon_img {
width: 15px;
height: 15px;
margin-right: 10px;
vertical-align: middle;
}
.trah_c .icon_img {
width: 24px;
height: 24px;
margin: 0 20px;
}
.el-divider {
background-color: #006699;
}
</style>