Merge branch 'master' of https://git.nuttyreading.com/wangjinlei/tougao_web into Editorial-Board

This commit is contained in:
2025-11-20 10:25:38 +08:00
38 changed files with 674 additions and 723 deletions

View File

@@ -73,7 +73,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="Manuscirpt :" prop="manuscirpt" label-width="120px">
<el-form-item label="Manuscript :" prop="manuscirpt" label-width="120px">
<el-upload
:on-progress="handleProgress"
ref="uploadFileManuscirpt"
@@ -463,7 +463,7 @@
<div class="el-upload__tip" slot="tip">Only word files can be uploaded(.doc,.docx)</div>
</el-upload>
</el-form-item> -->
<el-form-item label="Manuscirpt :" prop="manuscirpt" label-width="220px">
<el-form-item label="Manuscript :" prop="manuscirpt" label-width="220px">
<el-upload
:on-progress="handleProgress"
ref="uploadFileManuscirpt"
@@ -1342,7 +1342,7 @@ export default {
manuscirpt: [
{
required: true,
message: 'Please upload manuscirpt',
message: 'Please upload manuscript',
trigger: 'blur'
}
],
@@ -2675,7 +2675,7 @@ this.checkAll = false;
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}];
this.isShowCommonWord = false;
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
this.contribute(res.upurl, File);
@@ -3245,7 +3245,7 @@ this.checkAll = false;
this.fileL_manuscirpt = [];
if (this.form.manuscirpt != '') {
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = this.form.manuscirpt;
}
this.fileL_supplementary = [];

View File

@@ -73,7 +73,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="Manuscirpt :" prop="manuscirpt" label-width="120px">
<el-form-item label="Manuscript :" prop="manuscirpt" label-width="120px">
<el-upload
:on-progress="handleProgress"
ref="uploadFileManuscirpt"
@@ -431,7 +431,7 @@
<div class="el-upload__tip" slot="tip">Only word files can be uploaded(.doc,.docx)</div>
</el-upload>
</el-form-item> -->
<el-form-item label="Manuscirpt :" prop="manuscirpt" label-width="220px">
<el-form-item label="Manuscript :" prop="manuscirpt" label-width="220px">
<el-upload
:on-progress="handleProgress"
ref="uploadFileManuscirpt"
@@ -1284,7 +1284,7 @@ export default {
manuscirpt: [
{
required: true,
message: 'Please upload manuscirpt',
message: 'Please upload manuscript',
trigger: 'blur'
}
],
@@ -1650,7 +1650,7 @@ export default {
}
//验证文档
if (this.form.manuscirpt == '') {
this.$message.error('Manuscirpt is required');
this.$message.error('Manuscript is required');
// console.log('file up error');
return false;
}
@@ -2549,7 +2549,7 @@ export default {
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}];
this.isShowCommonWord = false;
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
this.contribute(res.upurl)
if(this.form.article_id){
@@ -3010,7 +3010,7 @@ export default {
this.fileL_manuscirpt = [];
if (this.form.manuscirpt != '') {
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = this.form.manuscirpt;
}
this.fileL_supplementary = [];

View File

@@ -431,7 +431,7 @@
<div class="el-upload__tip" slot="tip">Only word files can be uploaded(.doc,.docx)</div>
</el-upload>
</el-form-item> -->
<el-form-item label="Manuscirpt :" prop="manuscirpt" label-width="200px">
<el-form-item label="Manuscript :" prop="manuscirpt" label-width="200px">
<el-upload
ref="uploadFileManuscirpt"
class="upload-demo up_newstyle"
@@ -1149,7 +1149,7 @@ export default {
manuscirpt: [
{
required: true,
message: 'Please upload manuscirpt',
message: 'Please upload manuscript',
trigger: 'blur'
}
],
@@ -1375,7 +1375,7 @@ export default {
}
//验证文档
if (this.form.manuscirpt == '') {
this.$message.error('Manuscirpt is required');
this.$message.error('Manuscript is required');
// console.log('file up error');
return false;
}
@@ -2232,7 +2232,7 @@ export default {
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}];
this.isShowCommonWord = false;
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
this.onStaging(5);
@@ -2547,7 +2547,7 @@ export default {
this.fileL_manuscirpt = [];
if (this.form.manuscirpt != '') {
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = this.form.manuscirpt;
}
this.fileL_supplementary = [];
@@ -2796,9 +2796,7 @@ export default {
.then((res) => {
if (res.code == 0) {
this.form.manuscirptId = res.data.file_id;
console.log('this.form.manuscirpt at line 2652:', this.form.manuscirpt);
console.log('1111111111111111111111111111');
setTimeout(() => {
// that.getWordTablesList();
// that.getWordimgList();

View File

@@ -163,7 +163,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="Manuscirpt">
<el-form-item label="Manuscript">
<el-popover placement="right" width="350" trigger="click">
<el-table :data="manuscirptFileList" empty-text="New messages (0)">
<el-table-column width="150" :formatter="filedateformate" property="ctime" align="center" label="date"></el-table-column>
@@ -421,7 +421,7 @@
this.$refs.articleform.validate((valid) => {
//验证文件
// if (this.form.manuscirpt == '') {
// this.$message.error('Manuscirpt is required');
// this.$message.error('Manuscript is required');
// console.log('file up error');
// return false;
// }

View File

@@ -21,31 +21,23 @@
}}</span>
<div>
<div class="scoringRules">
<div
style="display: flex; justify-content: space-between; font-size: 16px; margin-bottom: 15px"
>
<div style="display: flex; justify-content: space-between; font-size: 16px; margin-bottom: 15px">
<div>
<span
>H指数:
<span :style="form.h_fen && form.h_fen > 0 ? `color:#db890e` : ''">{{
form.h_fen
}}</span></span
<span :style="form.h_fen && form.h_fen > 0 ? `color:#db890e` : ''">{{ form.h_fen }}</span></span
>
</div>
<div>
<span
>图表:
<span :style="form.b_fen && form.b_fen > 0 ? `color:#db890e` : ''">{{
form.b_fen
}}</span></span
<span :style="form.b_fen && form.b_fen > 0 ? `color:#db890e` : ''">{{ form.b_fen }}</span></span
>
</div>
<div>
<span
>国家:
<span :style="form.c_fen && form.c_fen > 0 ? `color:#db890e` : ''">{{
form.c_fen
}}</span></span
<span :style="form.c_fen && form.c_fen > 0 ? `color:#db890e` : ''">{{ form.c_fen }}</span></span
>
</div>
<div>
@@ -224,15 +216,7 @@
<img
src="@/assets/img/ai.png"
class="beautiful-gradient"
style="
width: 30px;
height: 30px;
margin-right: 4px;
position: absolute;
left: -18px;
top: -30px;
cursor: pointer;
"
style="width: 30px; height: 30px; margin-right: 4px; position: absolute; left: -18px; top: -30px; cursor: pointer"
@click="openAI()"
/>
</div>
@@ -244,11 +228,10 @@
<el-row :gutter="24">
<el-col :span="14">
<div class="art_state_">
<div class="art_state_message">
<p>
<font>Title :</font>
<b style="color: #333;font-weight: bold;"> {{ form.title }}</b>
<b style="color: #333; font-weight: bold"> {{ form.title }}</b>
<b
v-if="form.articleId"
@click="corrSpe(form)"
@@ -466,7 +449,11 @@
</el-collapse-item>
</el-collapse>
</div>
<el-collapse v-model="FileList" class="auth_colla auth_collna_ew research_area" style="margin-top: -15px;margin-bottom: 0;">
<el-collapse
v-model="FileList"
class="auth_colla auth_collna_ew research_area"
style="margin-top: -15px; margin-bottom: 0"
>
<el-collapse-item title="File" name="1">
<div class="art_file_">
<el-row :gutter="24">
@@ -515,7 +502,7 @@
<br clear="both" />
</el-col>
<el-col :span="12">
<h4>Manuscirpt :</h4>
<h4>Manuscript :</h4>
<p class="fi_new">
<!-- <template v-for="item in manuscirptFileList"> -->
<!-- <a href="#">
@@ -601,37 +588,32 @@
</el-collapse-item>
</el-collapse>
<common-word-html :articleId="$route.query.id" style="box-sizing: border-box"></common-word-html>
</div>
<div style="margin-top: 40px;">
<div style="margin-top: 40px">
<div v-if="![0].includes(form.state)">
<!-- under review -->
<el-collapse
v-model="underReview"
class="auth_colla auth_collna_ew under_review"
style="margin-top: -15px"
>
<el-collapse-item
title=""
name="1"
>
<el-collapse v-model="underReview" class="auth_colla auth_collna_ew under_review" style="margin-top: -15px">
<el-collapse-item title="" name="1">
<template slot="title">
<div class="under_review_title">
<span style="font-weight: bold; color: #333 !important;font-size: 18px;">Under review</span>
<span style="font-size: 16px; margin-left: 20px; text-align: right; font-weight: 400" v-if="reviewList.length > 0">
<span style="font-weight: bold; color: #333 !important; font-size: 18px">Under review</span>
<span
style="font-size: 16px; margin-left: 20px; text-align: right; font-weight: 400"
v-if="reviewList.length > 0"
>
Average score : <b style="font-size: 16px; color: #db890e">{{ avegeCount(reviewList) }}</b>
</span>
<b @click.stop="articleReviewer()" class="btnCliArt" style="" v-if="form.state!=0" >
<i :class="[1,2,4,8].includes(form.state) ? 'el-icon-edit' : 'el-icon-view'" style="margin-right: 5px;"></i>Inviting Reviewer {{ [1,2,4,8].includes(form.state) ? '' : 'History' }}
<b @click.stop="articleReviewer()" class="btnCliArt" style="" v-if="form.state != 0">
<i
:class="[1, 2, 4, 8].includes(form.state) ? 'el-icon-edit' : 'el-icon-view'"
style="margin-right: 5px"
></i
>Inviting Reviewer {{ [1, 2, 4, 8].includes(form.state) ? '' : 'History' }}
</b>
</div>
</template>
<div class="art_author_" style="padding: 20px;" v-if="reviewList.length > 0">
<div class="art_author_" style="padding: 20px" v-if="reviewList.length > 0">
<div class="fixCard reviewer_decision" style="position: relative">
<div class="overflow-x-auto">
<!-- 上面的表格代码放在这里 -->
@@ -640,7 +622,7 @@
<thead>
<tr>
<th class="review_table_index">No.</th>
<th>Name <span style="color: #888">( score )</span> </th>
<th>Name <span style="color: #888">( score )</span></th>
<!-- 补充表头文本,原代码是空,建议加上 -->
<th>1<sup>st</sup> review</th>
<!-- 表头按最大重复次数遍历生成2nd、3rd...列 -->
@@ -665,10 +647,9 @@
>
</td>
<td style="position: relative; cursor: pointer">
<span style="">{{ iken.realname }}</span>
<span v-if="iken.state != 0"
<span
v-if="iken.state != 0"
style="
color: rgb(219, 137, 14);
font-weight: 700;
@@ -677,16 +658,19 @@
"
>( {{ iken.rated }} )</span
>
<span v-if="iken.state != 0"
style="color: #888;float: right;margin-right: 20px;"
@click="handleClick(iken,'detail')"
<span
v-if="iken.state != 0"
style="color: #888; float: right; margin-right: 20px"
@click="handleClick(iken, 'detail')"
>Detail</span
>
</td>
<!-- 1st review原逻辑不变 -->
<td style="cursor: pointer">
<span >
<span style="display: inline-block; margin-left: 4px; margin-right: 8px">
<span>
<span
style="display: inline-block; margin-left: 4px; margin-right: 8px"
>
<font
v-if="iken.recommend == 1 || iken.recommend == 2"
style="
@@ -727,25 +711,28 @@
<span v-else-if="iken.recommend == 4">Reject</span>
</span>
<span v-if="iken.state != 0"
style="color: #888;float: right;margin-right: 20px;"
@click="handleClick(iken,'question')"
<span
v-if="iken.state != 0"
style="color: #888; float: right; margin-right: 20px"
@click="handleClick(iken, 'question')"
>Detail</span
>
</td>
<!-- 关键按最大重复次数遍历而非仅遍历当前iken.repeat -->
<template v-for="(_1, index1) in maxRepeatReviewCount()">
<td >
<td>
<!-- 补全逻辑判断当前评审者的repeat中是否有第index1条数据 -->
<span
v-if="Array.isArray(iken.repeat) && iken.repeat[index1]"
style="cursor: pointer"
>
<span style="display: inline-block; margin-left: 4px; margin-right: 8px">
<span
style="
display: inline-block;
margin-left: 4px;
margin-right: 8px;
"
>
<font
v-if="iken.repeat[index1].recommend == 1"
style="
@@ -786,17 +773,17 @@
<span v-else-if="iken.repeat[index1].recommend == 3">Revision</span>
<span v-else>No reply</span>
<span v-if="[1,2,3].includes(iken.repeat[index1].recommend)"
style="color: #888;float: right;margin-right: 20px;"
@click="handleClick(iken,'re-review',iken.repeat[index1])"
<span
v-if="[1, 2, 3].includes(iken.repeat[index1].recommend)"
style="color: #888; float: right; margin-right: 20px"
@click="handleClick(iken, 're-review', iken.repeat[index1])"
>Detail</span
>
</span>
<span v-else>
<!-- 无数据:补全空内容(可自定义为“-”“无”等) -->
<span >-</span>
<span>-</span>
</span>
</td>
</template>
@@ -810,35 +797,28 @@
</el-collapse>
<!-- 初审 -->
</div>
<div v-if="(![0].includes(form.state)&&finalList.length > 0)||form.state==8" style="margin-top: 40px;">
<div v-if="(![0].includes(form.state) && finalList.length > 0) || form.state == 8" style="margin-top: 40px">
<!-- under review -->
<el-collapse
v-model="finalDecision"
class="auth_colla auth_collna_ew under_review"
style="margin-top: -15px"
>
<el-collapse-item
title=""
name="1"
>
<el-collapse v-model="finalDecision" class="auth_colla auth_collna_ew under_review" style="margin-top: -15px">
<el-collapse-item title="" name="1">
<template slot="title">
<div class="under_review_title">
<span style="font-weight: bold; color: #333 !important;font-size: 18px;">Final Decision</span>
<span v-if="finalList.length > 0" style="font-size: 16px; margin-left: 20px; text-align: right; font-weight: 400">
Comprehensive Score : <b style="font-size: 16px; color: #db890e">{{ finalCount(reviewList) }}</b>
<span style="font-weight: bold; color: #333 !important; font-size: 18px">Final Decision</span>
<span
v-if="finalList.length > 0"
style="font-size: 16px; margin-left: 20px; text-align: right; font-weight: 400"
>
Comprehensive Score :
<b style="font-size: 16px; color: #db890e">{{ finalCount(reviewList) }}</b>
</span>
<b v-if="form.state != 0" @click.stop="articleEditorialBoard()" class="btnCliArt" style="">
<i :class="form.state == 8 ? 'el-icon-edit' : 'el-icon-view'" style="margin-right: 5px;"></i> Inviting Editorial Board {{ form.state == 8 ? '' : 'History' }}
<i :class="form.state == 8 ? 'el-icon-edit' : 'el-icon-view'" style="margin-right: 5px"></i>
Inviting Editorial Board {{ form.state == 8 ? '' : 'History' }}
</b>
</div>
</template>
<div class="art_author_" style="padding: 20px;" v-if="finalList.length > 0">
<div class="art_author_" style="padding: 20px" v-if="finalList.length > 0">
<div class="fixCard reviewer_decision" style="position: relative">
<div class="overflow-x-auto">
<!-- 上面的表格代码放在这里 -->
@@ -850,8 +830,6 @@
<th>Name</th>
<!-- 补充表头文本,原代码是空,建议加上 -->
<th>Final Decision</th>
</tr>
</thead>
<tbody>
@@ -859,36 +837,37 @@
<tr v-for="(iken, reviewerIndex) in finalList">
<td style="position: relative; cursor: pointer">
Editorial Board {{ reviewerIndex + 1 }}
</td>
<td style="position: relative; cursor: pointer">
<span style="">{{ iken.realname }}</span>
<span v-if="[1,2,3].includes(iken.state)"
style="color: #888; float: right;"
<span
v-if="[1, 2, 3].includes(iken.state)"
style="color: #888; float: right"
@click="handleClickFinal(iken)"
>Detail</span
>
</td>
<!-- 1st review原逻辑不变 -->
<td style="cursor: pointer;font-weight: 700">
<span v-if="iken.state == 1" style="color: #67c23a;">Accept</span>
<span v-else-if="iken.state == 2" style="color: #ff4949;">Reject</span>
<span v-else-if="iken.state == 3" style="color: #ffc500;">Revision</span>
<font v-if="iken.state == 5" style="color: #ccc; display: inline-block"> invitation </font>
<font v-if="iken.state == 0" style="color: #67c23a; display: inline-block"> Agree to review </font>
<font v-if="iken.state == 4" style="color: #ccc; display: inline-block"> invalid </font>
<span style="color: #888;font-weight:500;float:right;">{{formatDate_(iken.update_time)}}</span>
<td style="cursor: pointer; font-weight: 700">
<span v-if="iken.state == 1" style="color: #67c23a">Accept</span>
<span v-else-if="iken.state == 2" style="color: #ff4949">Reject</span>
<span v-else-if="iken.state == 3" style="color: #ffc500">Revision</span>
<font v-if="iken.state == 5" style="color: #ccc; display: inline-block">
invitation
</font>
<font v-if="iken.state == 0" style="color: #67c23a; display: inline-block">
Agree to review
</font>
<font v-if="iken.state == 4" style="color: #ccc; display: inline-block">
invalid
</font>
<span style="color: #888; font-weight: 500; float: right">{{
formatDate_(iken.update_time)
}}</span>
</td>
<!-- 关键按最大重复次数遍历而非仅遍历当前iken.repeat -->
</tr>
</tbody>
</table>
@@ -899,11 +878,8 @@
</el-collapse>
<!-- 初审 -->
</div>
</div>
</el-col>
<el-col :span="10" style="padding: 0">
<!-- 被拒稿件操作 --->
@@ -953,7 +929,7 @@
<el-button type="text" @click="changeRepe" icon="el-icon-edit">Change</el-button>
</div>
<div>
<span style="display: inline-block; vertical-align: top; margin-top: 7px">Manuscirpt : </span>
<span style="display: inline-block; vertical-align: top; margin-top: 7px">Manuscript : </span>
<el-upload
style="display: inline-block"
class="upload-demo"
@@ -1019,20 +995,22 @@
</el-row>
</div>
<el-dialog title="Final decision detail" :visible.sync="FinalDecisionVisible" width="1200px" :close-on-click-modal="false">
<common-editor-article-detail
style="margin-top: 20px"
:detailDate="{ reviewer: finalDecisionData.realname, article_final: finalDecisionData, ctime: formatDate_(finalDecisionData.update_time) }"
:detailDate="{
reviewer: finalDecisionData.realname,
article_final: finalDecisionData,
ctime: formatDate_(finalDecisionData.update_time)
}"
></common-editor-article-detail>
<span slot="footer" class="dialog-footer">
<el-button type="" @click="FinalDecisionVisible=false">Cancal</el-button>
<el-button type="" @click="FinalDecisionVisible = false">Cancel</el-button>
</span>
</el-dialog>
<!-- 审稿详情 start-->
<reviewerDetail ref="reviewerDetail" v-if="reviewerVisible" :reviewerDetail="reviewerDetail" destroy-on-close></reviewerDetail>
<!-- 审稿详情 end-->
<el-dialog title="Edit H Index" :visible.sync="HEditVisible" width="400px" :close-on-click-modal="false">
<div style="margin: 0 0 20px 10px; font-weight: bold">{{ HIxForm.realname }}</div>
<div style="margin: 0 0 20px 10px">Email :{{ HIxForm.email }}</div>
@@ -1163,7 +1141,7 @@
>
<template #title>
<div style="display: inline-block; vertical-align: top">
Manuscirpt :
Manuscript :
<img
src="../../assets/img/icon_0.png"
style="
@@ -1261,11 +1239,7 @@
</el-collapse>
<div style="line-height: 20px" v-if="isShowAI">
<!-- <p class="beautiful-gradient1">
<span class="title" style="font-size: 18px; font-weight: 700">{{ $t('aiReview.state17') }}</span>
<span style="margin-top: 8px; display: block">{{ currentArticleData.ai_review['overall_evaluation'] }}</span>
</p> -->
<p style="overflow: hidden; margin-bottom: 8px">
<span style="float: left">{{
currentArticleData.ai_review.is_finish == 2
@@ -1282,9 +1256,6 @@
<p class="titleBox">
<span class="title" style="color: #fff; font-size: 16px">{{ $t('AI.AIAbstractInfo') }}</span>
</p>
<!-- {{ currentArticleData.ai_review }} -->
<el-form label-width="240">
<el-form-item label="``" v-for="(v, i) in aiReview">
<span slot="label" class="title" :style="v.color ? `color:${v.color}` : ''">
@@ -1356,7 +1327,7 @@
</div>
</div>
<span slot="footer" class="dialog-footer">
<!-- <el-button @click="isShowAI = false">取 消</el-button> -->
<el-button type="" @click="isShowAI = false">Close</el-button>
</span>
</el-dialog>
@@ -1368,7 +1339,8 @@ import timetalk from './time_talk';
import reviewerDetail from '../../components/page/components/articleDetail/reviewerdetail.vue';
export default {
components: {
timetalk,reviewerDetail
timetalk,
reviewerDetail
},
data() {
return {
@@ -1490,7 +1462,6 @@ export default {
state: '',
ctime: '',
authorList: [],
transList: []
},
msgs: [],
@@ -1676,8 +1647,8 @@ export default {
],
finalList: [],
reviewList: [],
underReview:['1'],
finalDecision:['1'],
underReview: ['1'],
finalDecision: ['1']
};
},
async created() {
@@ -1760,10 +1731,14 @@ export default {
art_rev_id: item.art_rev_id
})
.then((res) => {
//console.log(res)
if (res.code == 0) {
this.$message.success('A review invitation was successfully sent!');
this.getFinalList()
this.$nextTick(() => {
setTimeout(() => {
this.getFinalList();
this.$forceUpdate();
}, 1000);
});
} else {
this.$message.error(res.msg);
}
@@ -1775,16 +1750,14 @@ export default {
.catch(() => {});
},
handleClickFinal(data) {
this.finalDecisionData={...data}
this.FinalDecisionVisible=true
this.finalDecisionData = { ...data };
this.FinalDecisionVisible = true;
},
handleClickRemark() {
this.expanded = !this.expanded;
this.$forceUpdate();
},
articleReviewer(row) {
this.$router.push({
path: 'articleReviewer',
query: {
@@ -1947,15 +1920,12 @@ this.FinalDecisionVisible=true
// console.log('maxItem at line 2142:', maxItem.repeat.length)
return maxItem && maxItem.repeat ? maxItem.repeat.length : 0;
},
handleClick(item,type,repeatItem) {
this.reviewerDetail=item
this.reviewerVisible=true
this.$nextTick(()=>{
this.$refs.reviewerDetail.init(item.art_rev_id,type,repeatItem)
})
handleClick(item, type, repeatItem) {
this.reviewerDetail = item;
this.reviewerVisible = true;
this.$nextTick(() => {
this.$refs.reviewerDetail.init(item.art_rev_id, type, repeatItem);
});
},
goReviewerDetail(id) {
@@ -1974,14 +1944,9 @@ this.FinalDecisionVisible=true
article_id: this.editform.articleId
})
.then(async (res) => {
if (res.status == 1) {
if (res.status == 1) {
this.finalList = [...res.data.final_review];
this.reviewList = res.data.review;
if(this.finalList.length > 0) {
}
}
}
})
.catch((err) => {});
@@ -2062,7 +2027,6 @@ this.FinalDecisionVisible=true
}
this.aiReview[0] = aiReview;
}
})
.catch((err) => {
// this.$message.error('AI analysis failed');
@@ -2305,7 +2269,7 @@ this.FinalDecisionVisible=true
this.$api.post('api/Article/editArticleRemark', this.remark).then((res) => {
load.close();
this.editbox=false
this.editbox = false;
this.$message.success('success');
this.initarticle();
// this.$router.go(0);
@@ -2351,12 +2315,11 @@ this.FinalDecisionVisible=true
})
.then((res) => {
this.$api
.post('api/Workbench/updateArticleState', {
this.$api.post('api/Workbench/updateArticleState', {
article_id: this.editform.articleId,
type: '4,5,6',
account: localStorage.getItem('U_name')
})
});
const dynamicTimestamp = res.article.ctime;
const dynamicDate = new Date(dynamicTimestamp * 1000);
@@ -2559,8 +2522,7 @@ this.FinalDecisionVisible=true
this.manuscirptFileList = res.manuscirpt;
this.totalpageFileList = res.totalpage;
this.supplementaryFileList = res.supplementary;
this.fileL_articleCopyright = res.figurecopyright?res.figurecopyright:[];
this.fileL_articleCopyright = res.figurecopyright ? res.figurecopyright : [];
})
.catch((err) => {
console.log(err);
@@ -2643,9 +2605,8 @@ this.FinalDecisionVisible=true
return Y + M + D + ' ' + h + ':' + m + ':' + s;
},
onsubmit() {
if (this.form.manuscirpt == '') {
this.$message.error('Manuscirpt is required!');
this.$message.error('Manuscript is required!');
return false;
}
const load = this.$loading({
@@ -3098,10 +3059,9 @@ td {
color: #006699;
font-weight: normal;
margin-left: 40px;
}
.under_review .btnCliArt{
.under_review .btnCliArt {
border: 1px solid #b3d8ff;
color: #409eff;
padding: 5px 10px;
@@ -3109,7 +3069,6 @@ td {
background-color: #ecf5ff;
float: right;
margin-right: 20px;
}
.remarkContent {
margin-right: 10px;
@@ -3129,19 +3088,18 @@ td {
.kuang_communtion {
margin-bottom: 15px;
}
::v-deep .under_review .el-icon-arrow-right{
::v-deep .under_review .el-icon-arrow-right {
right: 0px !important;
left: 0px !important;
position: relative !important;
}
.under_review_title{
.under_review_title {
width: 100%;
}
.under_review_title span{
.under_review_title span {
line-height: 30px;
}.scoringRules ul li {
}
.scoringRules ul li {
list-style: none;
}
.scoringRules ul .scoringRulesEcharts {

View File

@@ -193,7 +193,7 @@
>Only word and compressed files can be uploaded(.doc,.docx,.rar,.zip)</div>
</el-upload> -->
</el-form-item>
<el-form-item label="Manuscirpt">
<el-form-item label="Manuscript">
<el-popover placement="right" width="350" trigger="click">
<el-table :data="manuscirptFileList" empty-text="New messages (0)">
<el-table-column width="150" :formatter="filedateformate" property="ctime" align="center" label="date"></el-table-column>
@@ -690,7 +690,7 @@
},
onsubmit() {
if (this.form.manuscirpt == '') {
this.$message.error('Manuscirpt is required');
this.$message.error('Manuscript is required');
console.log('file up error');
return false;
}

View File

@@ -146,7 +146,7 @@
</a>
</p>
<br clear="both" v-if="totalpageFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -142,7 +142,7 @@
</a>
</p>
<br clear="both" v-if="totalpageFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
@@ -941,7 +941,7 @@
// 上传文件
saveAgain() {
if (this.form.manuscirpt == '') {
this.$message.error('Manuscirpt is required');
this.$message.error('Manuscript is required');
return false;
}
this.loading = true;

View File

@@ -239,7 +239,7 @@
</a>
</p>
<br clear="both" v-if="totalpageFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -82,7 +82,7 @@
</a>
</p>
<br clear="both" v-if="totalpageFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
@@ -1024,7 +1024,7 @@
// 上传文件
onsubmit() {
if (this.proposalForm.proposal_file == '') {
this.$message.error('Manuscirpt file is required');
this.$message.error('Manuscript file is required');
return false;
}
this.loading = true;

View File

@@ -136,7 +136,7 @@
</a>
</p>
<br clear="both" v-if="totalpageFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
@@ -826,7 +826,7 @@
// 上传文件
saveAgain() {
if (this.form.manuscirpt == '') {
this.$message.error('Manuscirpt is required');
this.$message.error('Manuscript is required');
return false;
}
this.loading = true;

View File

@@ -219,7 +219,7 @@
</a>
</p>
<br clear="both" v-if="totalpageFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -350,7 +350,7 @@
</a>
</p>
<br clear="both" v-if="supplementaryFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -275,7 +275,7 @@
</a>
</p>
<br clear="both" v-if="supplementaryFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -330,7 +330,7 @@
</div>
<div class="fi_new" v-if="item.file.manuscirpt">
<p>
Manuscirpt
Manuscript
<sup style="color: #006699">({{ item.file.manuscirpt.length }})</sup> :
<b
class="btnUpDown el-icon-arrow-up"

View File

@@ -721,7 +721,7 @@ export default {
this.fileData = res.upurl;
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
} else {
this.$message.error('service error: ' + res.msg);

View File

@@ -198,7 +198,7 @@
</el-upload>
</p>
<br clear="both"> -->
<h4><b style="margin-right:5px;color: red;">*</b>Manuscirpt :</h4>
<h4><b style="margin-right:5px;color: red;">*</b>Manuscript :</h4>
<p>
<el-upload class="upload-demo" :action="upload_manuscirpt" accept=".docx"
name="manuscirpt" :before-upload="beforeupload_manuscirpt"
@@ -450,7 +450,7 @@
</a>
</p>
<br clear="both" v-if="supplementaryFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -162,7 +162,7 @@
</a>
</p>
<br clear="both" v-if="supplementaryFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -3,7 +3,7 @@
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-lx-calendar"></i> Add manuscirpt
<i class="el-icon-lx-calendar"></i> Add manuscript
</el-breadcrumb-item>
</el-breadcrumb>
</div>

View File

@@ -418,7 +418,7 @@ export default {
this.fileData = res.upurl;
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
} else {
this.$message.error('service error: ' + res.msg);

View File

@@ -80,7 +80,7 @@
<!-- </el-dialog> -->
</div>
<span slot="footer" class="dialog-footer">
<el-button type="" @click="reviewerVisible = false">Cancal</el-button>
<el-button type="" @click="reviewerVisible = false">Cancel</el-button>
</span>
</el-dialog>
</template>

View File

@@ -88,7 +88,7 @@
>Create Html Proofread</el-button
>
</div> -->
<!-- <el-radio v-model="createType" label="1">Use last manuscirpt version</el-radio>
<!-- <el-radio v-model="createType" label="1">Use last manuscript version</el-radio>
<el-radio v-model="createType" label="2">Use new file upload</el-radio> -->
<!-- 使用默认最新稿件生成 -->
@@ -416,7 +416,7 @@ export default {
this.fileData = res.upurl;
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
} else {
this.$message.error('service error: ' + res.msg);

View File

@@ -1203,7 +1203,7 @@ export default {
this.fileData = res.upurl;
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].name = 'Manuscript File';
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
} else {
this.$message.error('service error: ' + res.msg);

View File

@@ -496,7 +496,7 @@
v-if="totalItems > 0 && totalNumbers > 0"
class="item"
effect="dark"
:content="`There are ${totalItems} paragraphs with unresolved errors in the Manuscirpt`"
:content="`There are ${totalItems} paragraphs with unresolved errors in the Manuscript`"
placement="top-start"
>
<span class="info-text"

View File

@@ -12,7 +12,7 @@
<el-collapse v-model="activeNames" @change="changeActiveNames"
><el-collapse-item name="images" style="" v-if="images.length > 0">
<template slot="title">
<p style="font-weight: bold; color: #222 !important">Manuscirpt Figures ( {{ images.length }} )</p>
<p style="font-weight: bold; color: #222 !important">Manuscript Figures ( {{ images.length }} )</p>
<!-- <p style="margin-left: 20px">
<i class="header-icon el-icon-info"></i
@@ -125,7 +125,7 @@
</el-collapse-item>
<el-collapse-item name="tables" style="" v-if="tables.length > 0">
<template slot="title">
<p style="font-weight: bold; color: #222">Manuscirpt Tables ( {{ tables.length }} )</p>
<p style="font-weight: bold; color: #222">Manuscript Tables ( {{ tables.length }} )</p>
<!-- <p style="margin-left: 20px">
<i class="header-icon el-icon-info"></i

View File

@@ -5,7 +5,7 @@
<el-collapse v-model="activeNames" @change="changeActiveNames"
><el-collapse-item name="images" style="" v-if="images.length > 0">
<template slot="title">
<p style="font-weight: bold; color: #222 !important">Manuscirpt Figures ( {{ images.length }} )</p>
<p style="font-weight: bold; color: #222 !important">Manuscript Figures ( {{ images.length }} )</p>
<!-- <p style="margin-left: 20px">
<i class="header-icon el-icon-info"></i
@@ -85,7 +85,7 @@
</el-collapse-item>
<el-collapse-item name="tables" style="" v-if="tables.length > 0">
<template slot="title">
<p style="font-weight: bold; color: #222">Manuscirpt Tables ( {{ tables.length }} )</p>
<p style="font-weight: bold; color: #222">Manuscript Tables ( {{ tables.length }} )</p>
<!-- <p style="margin-left: 20px">
<i class="header-icon el-icon-info"></i

View File

@@ -520,7 +520,7 @@
</el-col>
</el-row>
<el-col :span="24">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p class="fi_new">
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -44,7 +44,7 @@
<div class="file_sty" v-for="item in fileList" style="margin-top: 15px">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img" />
<a :href="mediaUrl + item.file_url" target="_blank" class="txt_pdf"
>Manuscirpt
>Manuscript
<span style="margin-left: 50px; color: #888; font-size: 13px">{{ item.ctime }}</span>
<i class="el-icon-download" style="margin-left: 20px; color: #66b1ff; font-weight: bold"></i> </a
><br />
@@ -192,7 +192,7 @@ If you're still having trouble with Chrome, you could use other browsers to comp
<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
>Manuscript
<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>

View File

@@ -25,7 +25,7 @@
<div class="file_sty" v-for="item in fileList">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscirpt
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscript
<span style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span>
<i class="el-icon-download" style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
</a><br>

View File

@@ -25,7 +25,7 @@
<div class="file_sty" v-for="item in fileList">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscirpt
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscript
<span style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span>
<i class="el-icon-download" style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
</a><br>

View File

@@ -141,7 +141,7 @@
<br clear="both">
</el-col>
<el-col :span="12">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p class="fi_new">
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
@@ -730,7 +730,7 @@
},
onsubmit() {
if (this.form.manuscirpt == '') {
this.$message.error('Manuscirpt is required!');
this.$message.error('Manuscript is required!');
return false;
}
this.loading = true;

View File

@@ -253,7 +253,7 @@
</a>
</p>
<br clear="both" v-if="supplementaryFileList">
<h4>Manuscirpt : </h4>
<h4>Manuscript : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">

View File

@@ -25,7 +25,7 @@
<div class="file_sty" v-for="item in fileList">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscirpt
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscript
<span style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span>
<i class="el-icon-download" style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
</a><br>

View File

@@ -25,7 +25,7 @@
<div class="file_sty" v-for="item in fileList">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscirpt
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscript
<span style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span>
<i class="el-icon-download" style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
</a><br>

View File

@@ -116,7 +116,7 @@
<el-button class="more_btn" icon="el-icon-download" type="text" slot="reference">Download</el-button>
</el-popover>
</el-form-item>
<el-form-item label="Manuscirpt">
<el-form-item label="Manuscript">
<!-- <el-link
:underline="false"
:href="manuscirptUrl"

View File

@@ -29,7 +29,7 @@
<div class="file_sty" v-for="item in fileList" style="margin-top: 15px">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img" />
<a :href="mediaUrl + item.file_url" target="_blank" class="txt_pdf"
>Manuscirpt
>Manuscript
<span style="margin-left: 50px; color: #888; font-size: 13px">{{ item.ctime }}</span>
<i class="el-icon-download" style="margin-left: 20px; color: #66b1ff; font-weight: bold"></i> </a
><br />

View File

@@ -39,7 +39,7 @@
<el-button class="more_btn" icon="el-icon-download" type="text" slot="reference">download</el-button>
</el-popover>
</el-form-item>
<el-form-item label="Manuscirpt">
<el-form-item label="Manuscript">
<el-popover placement="right" width="350" trigger="click">
<el-table :data="articlefileList" empty-text="New messages (0)">
<el-table-column width="150" :formatter="filedateformate" property="ctime" align="center" label="date"></el-table-column>

View File

@@ -92,19 +92,14 @@ async function loadJournalType() {
async function loadJournalList() {
try {
const localData = store.state.journalList;
console.log('localData at line 93:', localData);
if (localData && Array.isArray(localData) && localData.length > 0) {
return localData;
}
const res = await api.post('api/Article/getJournal', {});
if (res ) {
if (res) {
const journalList = res;
store.commit('setJournalList', journalList);
return journalList;
@@ -212,7 +207,7 @@ const i18n = new VueI18n({
messages
});
//使用钩子函数对路由进行权限跳转
router.beforeEach(async(to, from, next) => {
router.beforeEach(async (to, from, next) => {
try {
// 尝试请求接口(即使失败也继续后续逻辑)
await Promise.all([