This commit is contained in:
2026-01-04 14:51:40 +08:00
parent f688274667
commit 9e337cb164
10 changed files with 511 additions and 43 deletions

View File

@@ -550,10 +550,19 @@
</el-col>
</el-row>
<el-row :gutter="24" v-if="form.is_figure_copyright == 1">
<el-row :gutter="24">
<el-col :span="24">
<el-button type="text" style="position: absolute; top: -2px; right: 14px" @click="reOpenDialog">
<i class="el-icon-edit"></i> Upload
</el-button>
<h4>Figure Copyright Declaration :</h4>
<p class="fi_new">
<div style="line-height: 22px;padding-left: 10px;margin-top: 2px;color: #333;">
<p v-if="form.is_figure_copyright == 2">I confirm that all figures in this manuscript are original.</p>
<p v-if="form.is_figure_copyright == 1">I confirm that all figures in this manuscript used with proper permission.</p>
</div>
<p class="fi_new" v-if="fileL_articleCopyright.length > 0" style="margin-top: 10px;">
<a v-for="item in fileL_articleCopyright" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png" />
<span>
@@ -563,6 +572,17 @@
<i class="el-icon-download download"></i>
</a>
</p>
<FigureCopyright
:article_id="form.articleId"
:visible.sync="copyrightDialogVisible"
v-model="is_figure_copyright"
:upload-action="upload_articleCopyright"
:file-list="newfilearticleCopyrightList"
@on-success="upSuccess_articleCopyright"
@on-remove="removefilearticleCopyright"
@on-preview="dowloadFile"
/>
<br clear="both" />
</el-col>
</el-row>
@@ -659,7 +679,6 @@
>( {{ iken.rated }} )</span
>
<span
style="color: #888; float: right; margin-right: 20px"
@click="handleClick(iken, 'detail')"
>Detail</span
@@ -964,7 +983,7 @@
<p style="line-height: 20px">
Manuscript submission :
<b>{{ form.username }}</b>
<span style="margin: 0 5px;color: #409EFF ;">({{ form.user_email }})</span>
<span style="margin: 0 5px; color: #409eff">({{ form.user_email }})</span>
submitted to
<b>{{ journal_me }}</b>
</p>
@@ -1009,9 +1028,9 @@
<el-button type="" @click="FinalDecisionVisible = false">Cancel</el-button>
</span>
</el-dialog>
<!-- 审稿详情 start-->
<!-- 审稿详情 start-->
<reviewerDetail ref="reviewerDetail" v-if="reviewerVisible" :reviewerDetail="reviewerDetail" destroy-on-close></reviewerDetail>
<!-- 审稿详情 end-->
<!-- 审稿详情 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>
@@ -1026,8 +1045,8 @@
</span>
</el-dialog>
<el-dialog title="Change Status" :visible.sync="editVisible" width="550px" v-loading="loading1" :close-on-click-modal="false">
<el-form ref="editform" :model="editform" label-width="170px">
<el-dialog title="Change Status" :visible.sync="editVisible" width="750px" v-loading="loading1" :close-on-click-modal="false">
<el-form ref="editform" :model="editform" label-width="220px">
<el-form-item label="">
<span slot="label">
<i style="color: #f56c6c">*</i>
@@ -1043,9 +1062,27 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="Comments for authors :" v-show="editform.state == 4">
<el-input type="textarea" rows="3" v-model="editform.proposal_content" placeholder="" resize="4"> </el-input>
</el-form-item>
<!-- <el-form-item label="Figure Copyright Declaration:" v-show="editform.state == 4">
<div class="copyright-declaration-wrapper">
<el-radio-group v-model="editform.is_figure_copyright">
<el-radio label="2"> I confirm that all figures in this manuscript are original. </el-radio>
<el-radio label="1"> I confirm that all figures are used with proper permission. </el-radio>
<el-input
v-if="editform.is_figure_copyright == '1'"
type="textarea"
rows="3"
v-model="editform.is_figure_copyright_content"
placeholder=""
resize="4"
>
</el-input>
</el-radio-group>
</div>
</el-form-item> -->
<el-form-item label="Transfer :" v-show="editform.state == 3 && form.transList.length == 0">
<el-select v-model="editform.trsjournal" placeholder="Please select">
<el-option :key="0" label="No Transfer" :value="0"></el-option>
@@ -1240,7 +1277,6 @@
</el-collapse>
<div style="line-height: 20px" v-if="isShowAI">
<p style="overflow: hidden; margin-bottom: 8px">
<span style="float: left">{{
currentArticleData.ai_review.is_finish == 2
@@ -1328,7 +1364,6 @@
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="" @click="isShowAI = false">Close</el-button>
</span>
</el-dialog>
@@ -1338,13 +1373,16 @@
<script>
import timetalk from './time_talk';
import reviewerDetail from '../../components/page/components/articleDetail/reviewerdetail.vue';
import FigureCopyright from '../../components/page/components/articleDetail/FigureCopyright.vue';
export default {
components: {
timetalk,
reviewerDetail
reviewerDetail,
FigureCopyright
},
data() {
return {
copyrightDialogVisible: false, // 控制弹窗开关
reviewerDetail: {},
corresList: [],
finalDecisionData: {},
@@ -1384,6 +1422,7 @@ export default {
totalpageFileList: [],
supplementaryFileList: [],
fileL_articleCopyright: [],
newfilearticleCopyrightList: [],
manuscirptFileList: [],
responseFileList: [],
authorList_name: '',
@@ -1649,7 +1688,9 @@ export default {
finalList: [],
reviewList: [],
underReview: ['1'],
finalDecision: ['1']
finalDecision: ['1'],
is_figure_copyright: '',
figurecopyright_file: ''
};
},
async created() {
@@ -1670,6 +1711,10 @@ export default {
manuscirptUrl: function () {
return this.baseUrl + this.form.manuscirpt;
},
//图片版权
upload_articleCopyright: function () {
return this.baseUrl + 'api/Article/up_file/type/figurecopyright';
},
upload_coverLetter: function () {
return this.baseUrl + 'api/Article/up_file/type/coverLetter';
},
@@ -1721,6 +1766,39 @@ export default {
}
},
methods: {
reOpenDialog() {
// 强制先关闭,确保状态发生位移
this.copyrightDialogVisible = false;
this.$nextTick(() => {
this.copyrightDialogVisible = true;
});
},
// 下载文件
dowloadFile(file) {
let filePath = '/public/' + file.url;
let fileName = file.name;
// 获取heads中的filename文件名
let downloadElement = document.createElement('a');
// 创建下载的链接
downloadElement.href = filePath; // 下载后文件名
downloadElement.download = fileName;
downloadElement.target = '_blank';
document.body.appendChild(downloadElement);
// 点击下载
downloadElement.click();
// 下载完成移除元素
document.body.removeChild(downloadElement);
},
removefilearticleCopyright(file, fileList) {
this.figurecopyright_file = '';
this.newfilearticleCopyrightList = [];
},
//图片版权
upSuccess_articleCopyright(res, file) {
this.initFileList();
console.log(this.form);
},
crateRevision(item) {
// 二次询问
this.$confirm('Do you want to send a review invitation?', 'Tip', {
@@ -1847,28 +1925,26 @@ export default {
},
// 算平均分
avegeCount(arry) {
// 1. 计算有有效评分的数量
var ratedLength = arry.map(item => item.rated).filter(rated => rated && rated > 0).length;
let all = 0;
// 2. 累加总分
for (let i = 0; i < arry.length; i++) {
all += Number(arry[i].rated || 0); // 加上 || 0 防止出现 undefined 导致计算失败
}
// 1. 计算有有效评分的数量
var ratedLength = arry.map((item) => item.rated).filter((rated) => rated && rated > 0).length;
// 3. 核心判断逻辑
// 如果没有评分的人(ratedLength 为 0),或者总分就是 0直接返回 "-"
// 否则计算平均分并保留一位小数
let str = (ratedLength > 0 && all > 0)
? (all / ratedLength).toFixed(1)
: "-";
let all = 0;
// 2. 累加总分
for (let i = 0; i < arry.length; i++) {
all += Number(arry[i].rated || 0); // 加上 || 0 防止出现 undefined 导致计算失败
}
return str;
},
// 3. 核心判断逻辑
// 如果没有评分的人(ratedLength 为 0),或者总分就是 0直接返回 "-"
// 否则计算平均分并保留一位小数
let str = ratedLength > 0 && all > 0 ? (all / ratedLength).toFixed(1) : '-';
return str;
},
// 算终审分
finalCount(arry) {
var ratedLength = arry.map(item => item.rated).filter(rated => rated&&rated>0).length;
var ratedLength = arry.map((item) => item.rated).filter((rated) => rated && rated > 0).length;
let str = 0;
let all = 0;
let sgr = 0;
@@ -1927,7 +2003,6 @@ export default {
return maxItem && maxItem.repeat ? maxItem.repeat.length : 0;
},
handleClick(item, type, repeatItem) {
this.reviewerDetail = item;
this.reviewerVisible = true;
this.$nextTick(() => {
@@ -2346,6 +2421,11 @@ export default {
this.form.username = res.article.account;
this.form.user_email = res.article.user_email;
this.form.is_figure_copyright = res.article.is_figure_copyright;
this.is_figure_copyright =
res.article.is_figure_copyright == 1 || res.article.is_figure_copyright == 2
? res.article.is_figure_copyright.toString()
: '';
this.form.title = res.article.title;
this.form.journal = res.article.journal_id;
this.form.journalname = res.article.journalname;
@@ -2531,6 +2611,17 @@ export default {
this.totalpageFileList = res.totalpage;
this.supplementaryFileList = res.supplementary;
this.fileL_articleCopyright = res.figurecopyright ? res.figurecopyright : [];
if (this.fileL_articleCopyright.length > 0) {
var figurecopyright_file = fileL_articleCopyright[this.fileL_articleCopyright.length - 1];
this.figurecopyright_file = figurecopyright_file.file_url;
this.newfilearticleCopyrightList = [
{
name: 'Figure Copyright Declaration File',
url: this.figurecopyright_file
}
];
this.$forceUpdate();
}
})
.catch((err) => {
console.log(err);
@@ -3124,4 +3215,40 @@ td {
.scoringRulesItem {
margin-top: 10px;
}
.copyright-declaration-wrapper {
background-color: #f8f9fb;
padding: 6px 6px;
border-radius: 8px;
border: 1px solid #e4e7ed;
margin-top: 10px;
}
.copyright-declaration-wrapper :deep(.el-radio-group) {
display: flex !important;
flex-direction: column !important;
align-items: flex-start !important;
gap: 10px;
}
.copyright-declaration-wrapper :deep(.el-radio) {
height: auto;
white-space: normal;
line-height: 1.2;
display: flex;
align-items: flex-start;
}
.copyright-declaration-wrapper :deep(.el-radio__input) {
margin-top: 3px;
}
.copyright-declaration-wrapper :deep(.el-radio:hover) {
color: #333;
}
.copyright-declaration-wrapper :deep(.el-radio.is-checked .el-radio__label) {
font-weight: 500;
}
</style>