tijiao
This commit is contained in:
@@ -5,9 +5,9 @@
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-collection"></i>
|
||||
<router-link :to="{ path: '/editPeerewer' }">
|
||||
<span class="top_dao"> Final Review Article</span>
|
||||
<span class="top_dao"> Final Decision Article</span>
|
||||
</router-link>
|
||||
>> Final Review Article Detail
|
||||
>> Final Decision Article Detail
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
@@ -83,7 +83,8 @@ If you're still having trouble with Chrome, you could use other browsers to comp
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<el-collapse v-model="activeNames" accordion v-if="conmentList.length > 0" style="margin-top: 10px;">
|
||||
<el-collapse v-model="activeNames" v-if="conmentList.length > 0||article_response.length > 0" style="margin-top: 10px;">
|
||||
|
||||
|
||||
<el-collapse-item name="1">
|
||||
<template slot="title">
|
||||
@@ -100,39 +101,69 @@ If you're still having trouble with Chrome, you could use other browsers to comp
|
||||
|
||||
|
||||
</p>
|
||||
<p><span class="comment_item_recommend_title">Reviewer : </span>
|
||||
<p ><span class="comment_item_recommend_title">Reviewer : </span>
|
||||
|
||||
<b v-if="item.reviewer_id == User_Id">{{ item.realname }}</b>
|
||||
<b v-if="item.reviewer_id != User_Id">XXXXXXXXXX</b>
|
||||
<el-button type="primary" plain v-if="item.question&&item.question.art_rev_id" size="mini" @click="ques_visible(item.question)"
|
||||
|
||||
style="padding: 4px 10px;margin-left: 20px;">Referee's Assessment</el-button>
|
||||
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<p style="margin-top: 10px;">
|
||||
|
||||
<span class="comment_item_recommend_title"
|
||||
>Recommendation : </span>
|
||||
|
||||
<span class="comment_item_recommend"><b v-if="item.question.recommend == 1">Minor revision</b>
|
||||
<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></span>
|
||||
|
||||
|
||||
|
||||
<el-timeline style="margin-left: 160px;" >
|
||||
<el-timeline-item
|
||||
v-for="(activity, index) in extractRecommendAndCtime(item)"
|
||||
|
||||
:key="index"
|
||||
:timestamp="activity.ctimeFormatted">
|
||||
<b style="margin-right: 20px;display: inline-block;width: 100px;color:#006699">{{ activity.title }}</b>
|
||||
<span class="comment_item_recommend" v-if="activity.source=='question'"><b v-if="activity.recommend == 1">Minor revision</b>
|
||||
|
||||
<b v-if="activity.recommend == 2">Major revision</b>
|
||||
<b v-if="activity.recommend == 3">Reject in current form, but may be resubmitted</b>
|
||||
<b v-if="activity.recommend == 4">Reject</b></span>
|
||||
<span class="comment_item_recommend" v-if="activity.source=='repeat'">
|
||||
|
||||
|
||||
<b v-if="activity.recommend == 1">Accept</b>
|
||||
|
||||
<b v-else-if="activity.recommend == 2">Reject</b>
|
||||
<b v-else-if="activity.recommend == 3">Revision</b>
|
||||
<span v-else>No reply</span>
|
||||
</span>
|
||||
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<p>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<!-- <p>
|
||||
|
||||
<span class="comment_item_recommend_title"
|
||||
>Score : </span>
|
||||
|
||||
<span>{{item.question.score}}</span>
|
||||
</p>
|
||||
</p> -->
|
||||
|
||||
<p>
|
||||
<!-- <p>
|
||||
<span class="comment_item_recommend_title">Reviewed Time : </span>
|
||||
<span class="">{{ item.ctime?item.ctime.split(' ')[0]:'' }}</span>
|
||||
|
||||
<el-button type="primary" v-if="item.question&&item.question.art_rev_id" size="mini" @click="ques_visible(item.question)"
|
||||
|
||||
style="padding: 4px 10px;margin-left: 20px;">Referee's Assessment</el-button>
|
||||
</p>
|
||||
|
||||
</p> -->
|
||||
|
||||
|
||||
|
||||
@@ -143,6 +174,31 @@ If you're still having trouble with Chrome, you could use other browsers to comp
|
||||
</div>
|
||||
|
||||
|
||||
</el-collapse-item>
|
||||
<el-collapse-item name="2">
|
||||
<template slot="title">
|
||||
<div class="review_title">
|
||||
|
||||
<b>Author's reply</b>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
<div style="overflow: hidden">
|
||||
<div class="file_sty" v-for="(item,i) in article_response" style="margin-top: 15px;width: 50%;float: left">
|
||||
<img src="../../assets/img/icon_0.png" alt="" class="icon_img" />
|
||||
<a :href="mediaUrl + item.file_url" target="_blank" class="txt_pdf"
|
||||
>Manuscirpt
|
||||
<span style="margin-left: 10px; color: #888; font-size: 13px">{{ item.artr_ctime }}</span>
|
||||
<i class="el-icon-download" style="margin-left: 20px; color: #66b1ff; font-weight: bold"></i>
|
||||
|
||||
</a
|
||||
><br />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</el-collapse-item>
|
||||
|
||||
</el-collapse>
|
||||
@@ -198,7 +254,8 @@ import pdf from 'vue-pdf';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
activeNames:['1'],
|
||||
activeNames:['1','2'],
|
||||
|
||||
questionVisible: false,
|
||||
User_Id: localStorage.getItem('U_id'),
|
||||
|
||||
@@ -210,6 +267,7 @@ export default {
|
||||
txt_mess: {},
|
||||
fileList: [],
|
||||
conmentList: [],
|
||||
article_response: [],
|
||||
picList: [],
|
||||
SMList: [], //补充材料
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
@@ -306,6 +364,72 @@ export default {
|
||||
this.questionform1.type = e.type;
|
||||
this.questionform1.score = e.score;
|
||||
},
|
||||
formatTimeToDash(time) {
|
||||
let date;
|
||||
// 1. 处理时间戳(秒级,需转毫秒级)
|
||||
if (typeof time === 'number') {
|
||||
date = new Date(time * 1000);
|
||||
}
|
||||
// 2. 处理字符串时间(如 "2025/06/25" 或 "2025.06.25")
|
||||
else if (typeof time === 'string') {
|
||||
// 先把 "/" 或 "." 替换为 "-",避免 Date 解析失败
|
||||
const standardTime = time.replace(/[\/.]/g, '-');
|
||||
date = new Date(standardTime);
|
||||
}
|
||||
// 3. 非法格式直接返回原始值(避免报错)
|
||||
else {
|
||||
return time;
|
||||
}
|
||||
|
||||
// 手动拼接格式(避免浏览器 toLocaleString() 差异,确保分隔符为 "-")
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份 0-11,补 0 为两位数
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
const hours = String(date.getHours()).padStart(2, '0');
|
||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||
}
|
||||
,
|
||||
extractRecommendAndCtime(data) {
|
||||
const result = [];
|
||||
|
||||
// 提取question中的recommend和ctime
|
||||
if (data.question && data.question.recommend !== undefined && data.question.ctime !== undefined) {
|
||||
result.push({
|
||||
source: 'question',
|
||||
title:'First round of review',
|
||||
|
||||
recommend: data.question.recommend,
|
||||
ctime: data.question.ctime,
|
||||
// 转换时间戳为可读格式(如果是时间戳)
|
||||
ctimeFormatted: typeof data.question.ctime === 'number'
|
||||
?this.formatTimeToDash(data.question.ctime)
|
||||
: data.question.ctime
|
||||
});
|
||||
}
|
||||
|
||||
// 提取repeat数组中的recommend和ctime
|
||||
if (Array.isArray(data.repeat)) {
|
||||
data.repeat.forEach((item, index) => {
|
||||
if (item.recommend !== undefined && item.ctime !== undefined) {
|
||||
result.push({
|
||||
source: `repeat`,
|
||||
title:'Second round of review',
|
||||
recommend: item.recommend,
|
||||
ctime: item.ctime,
|
||||
ctimeFormatted: item.ctime
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 提取reviewsList数组中的recommend和ctime
|
||||
|
||||
|
||||
return result;
|
||||
},
|
||||
getData() {
|
||||
// 获取文章信息
|
||||
this.$api
|
||||
@@ -325,7 +449,10 @@ export default {
|
||||
|
||||
this.txt_mess = res.data.article;
|
||||
this.journal_id = res.journal_id;
|
||||
this.conmentList = res.data.article_review;
|
||||
|
||||
this.conmentList = res.data.article_review
|
||||
this.article_response = res.data.article_response
|
||||
|
||||
|
||||
// console.log('journal_id', this.journal_id);
|
||||
|
||||
@@ -345,7 +472,8 @@ export default {
|
||||
record_id: this.Art_id
|
||||
})
|
||||
.then((res) => {
|
||||
for (var i = 0; i < res.data.length; i++) {
|
||||
if(res.status==1){
|
||||
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 + '-';
|
||||
@@ -368,6 +496,11 @@ export default {
|
||||
} else {
|
||||
this.pdfUrl = 'https://submission.tmrjournals.com/public/' + pdfOut+`&ui=en-US`;
|
||||
}
|
||||
}else{
|
||||
this.$message.error(res.msg);
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
@@ -547,7 +680,7 @@ border-bottom: none !important;
|
||||
}
|
||||
.comment_item_recommend_title{
|
||||
color: #888;
|
||||
margin: 0 5px 0 0;
|
||||
margin: 4px 5px 0 0;
|
||||
font-weight: 600;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user