终审分数

This commit is contained in:
2025-12-17 09:22:33 +08:00
parent 4c7b191311
commit 6a5fecc177
4 changed files with 476 additions and 511 deletions

View File

@@ -19,8 +19,8 @@ const service = axios.create({
// baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换 // baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换
// baseURL: 'http://www.tougao.com/', //测试本地 记得切换 // baseURL: 'http://www.tougao.com/', //测试本地 记得切换
// baseURL: 'http://192.168.110.110/tougao/public/index.php/', // baseURL: 'http://192.168.110.110/tougao/public/index.php/',
baseURL: '/api', //本地 // baseURL: '/api', //本地
// baseURL: '/', //正式 baseURL: '/', //正式
}); });

View File

@@ -2,12 +2,12 @@
//记得切换 //记得切换
//正式 //正式
// const mediaUrl = '/public/'; const mediaUrl = '/public/';
// const baseUrl = '/'; const baseUrl = '/';
const mediaUrl = 'https://submission.tmrjournals.com/public/'; // const mediaUrl = 'https://submission.tmrjournals.com/public/';
// const mediaUrl = 'http://zmzm.tougao.dev.com/public/'; // // const mediaUrl = 'http://zmzm.tougao.dev.com/public/';
const baseUrl = '/api' // const baseUrl = '/api'
// const mediaUrl = 'http://tougaotest.tmrjournals.com/public/'; // const mediaUrl = 'http://tougaotest.tmrjournals.com/public/';
// // const mediaUrl = 'http://zmzm.tougao.dev.com/public/'; // // const mediaUrl = 'http://zmzm.tougao.dev.com/public/';

View File

@@ -1859,19 +1859,14 @@ export default {
// 算终审分 // 算终审分
finalCount(arry) { finalCount(arry) {
var ratedLength = arry.map(item => item.rated).filter(rated => rated&&rated>0).length;
let str = 0; let str = 0;
let sgr = 0;
let all = 0; let all = 0;
let j = 0; // null 评分人数 let sgr = 0;
for (let i = 0; i < arry.length; i++) { for (let i = 0; i < arry.length; i++) {
if (arry[i].rated == null) {
j += 1;
continue;
} else {
all += Number(arry[i].rated); all += Number(arry[i].rated);
} }
} str = (all / ratedLength).toFixed(1);
str = (all / (arry.length - j)).toFixed(1);
sgr = ((Number(str) + Number(this.form.scoring)) / 2).toFixed(1); sgr = ((Number(str) + Number(this.form.scoring)) / 2).toFixed(1);
return sgr; return sgr;
}, },

View File

@@ -1,6 +1,5 @@
<template> <template>
<div> <div>
<div class="liter_ture"> <div class="liter_ture">
<p v-if="role == 'editor'" style="text-indent: 2em; position: absolute; right: 0px; top: -60px"> <p v-if="role == 'editor'" style="text-indent: 2em; position: absolute; right: 0px; top: -60px">
<el-button type="text" @click="showDialogSpecial">Special way to add</el-button> <el-button type="text" @click="showDialogSpecial">Special way to add</el-button>
@@ -33,8 +32,8 @@
<i class="el-icon-edit-outline"></i> <i class="el-icon-edit-outline"></i>
Crossref Crossref
</el-button> </el-button>
to open the website and get the correct DOI. Finally, copy the Crossref-verified references and place them in the to open the website and get the correct DOI. Finally, copy the Crossref-verified references and place them in
box. the box.
</p> </p>
<br /> <br />
@@ -60,10 +59,10 @@
>. >.
</p> </p>
<div class="template-info" v-if="role == 'editor'" style="margin-left: 30px;"> <div class="template-info" v-if="role == 'editor'" style="margin-left: 30px">
<span class="template-title">Article from a Journal (General format)</span> <br /> <span class="template-title">Article from a Journal (General format)</span> <br />
Author(s) Last Name First Initial.&nbsp;Title of article.&nbsp;<i>Abbreviated Journal Title</i>.&nbsp;Year;Volume(issue):Inclusive page Author(s) Last Name First Initial.&nbsp;Title of article.&nbsp;<i>Abbreviated Journal Title</i
numbers.<br /> >.&nbsp;Year;Volume(issue):Inclusive page numbers.<br />
<br /> <br />
<span class="template-title">For example:</span><br /> <span class="template-title">For example:</span><br />
Article with More than Six Authors<br /> Article with More than Six Authors<br />
@@ -104,7 +103,6 @@
</div> </div>
<!-- 新的 --> <!-- 新的 -->
<div v-if="showB_step == 2"> <div v-if="showB_step == 2">
<div class="duplicateRefBox" v-if="chanFerFormRepeatList.length > 0"> <div class="duplicateRefBox" v-if="chanFerFormRepeatList.length > 0">
<el-tooltip class="item" effect="dark" content="Duplicate references" placement="top"> <el-tooltip class="item" effect="dark" content="Duplicate references" placement="top">
<img src="../../assets/img/repeat.png" alt="" style="width: 22px; height: 22px" /> <img src="../../assets/img/repeat.png" alt="" style="width: 22px; height: 22px" />
@@ -283,8 +281,8 @@
@close="cancelSave" @close="cancelSave"
> >
<p class="yinyongPre c888" style="margin-bottom: 20px; color: #888; line-height: 24px"> <p class="yinyongPre c888" style="margin-bottom: 20px; color: #888; line-height: 24px">
You may add or modify the references. The system will automatically identify and retrieve the reference information. Please You may add or modify the references. The system will automatically identify and retrieve the reference information.
note that if the reference type is set to “Other”, the “Parse” button will not be available. Please note that if the reference type is set to “Other”, the “Parse” button will not be available.
</p> </p>
<el-form :model="refenceForm" :rules="refenceFormrules" ref="refenceForm" label-width="150px" class="editForm mt10"> <el-form :model="refenceForm" :rules="refenceFormrules" ref="refenceForm" label-width="150px" class="editForm mt10">
@@ -335,8 +333,8 @@
placeholder="Patel NM, Stottlemyer BA, Gray MP, Boyce RD, Kane Gill SL" placeholder="Patel NM, Stottlemyer BA, Gray MP, Boyce RD, Kane Gill SL"
></el-input> ></el-input>
<p class="zhushi"> <p class="zhushi">
Six or less authors are required to list all authors while more than six authors are required to list three Six or less authors are required to list all authors while more than six authors are required to list
of them with “et al.” three of them with “et al.”
</p> </p>
</el-form-item> </el-form-item>
<el-form-item :label="SourceType == 'journal' ? 'Title:' : 'Book'" required prop="title"> <el-form-item :label="SourceType == 'journal' ? 'Title:' : 'Book'" required prop="title">
@@ -474,7 +472,6 @@
</el-dialog> </el-dialog>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
@@ -489,9 +486,7 @@ export default {
ue: null, ue: null,
wordText: '', wordText: '',
editorConfig: { editorConfig: {
// 访问 UEditor 静态资源的根路径,可参考 https://hc199421.gitee.io/vue-ueditor-wrap/#/faq
UEDITOR_HOME_URL: '/UEditor/', UEDITOR_HOME_URL: '/UEditor/',
// serverUrl: "//ueditor.zhenghaochuan.com/cos",
serverUrl: '' serverUrl: ''
}, },
wordTextArr: [], // 识别出的word引用数组 wordTextArr: [], // 识别出的word引用数组
@@ -575,30 +570,22 @@ export default {
}, },
methods: { methods: {
getJournalDateno(dateno, type) { getJournalDateno(dateno, type) {
// 先判断 dateno 是否存在且为字符串类型(避免非字符串值导致的错误)
if (dateno && typeof dateno === 'string') { if (dateno && typeof dateno === 'string') {
// 核心判断要么没有冒号要么有冒号但冒号后无有效内容trim() 去除空格) const hasInvalidColon = !dateno.includes(':') || (dateno.includes(':') && dateno.split(':').pop().trim() === '');
const hasInvalidColon = !dateno.includes(':') ||
(dateno.includes(':') && dateno.split(':').pop().trim() === '');
if (hasInvalidColon) { if (hasInvalidColon) {
// 根据 type 返回对应类名type 为 title 返回复盖样式,否则返回 warn
return type === 'title' ? 'text-highlight' : 'warn'; return type === 'title' ? 'text-highlight' : 'warn';
} }
} }
// 有冒号且后面有值,或 dateno 无效 → 返回空字符串
return ''; return '';
}, },
getParsingInfo(data, index) { getParsingInfo(data, index) {
//console.log('index at line 457:', data,index)
const targetSubArr = this.chanFerFormRepeatList.find((subArr) => subArr.includes(index)); const targetSubArr = this.chanFerFormRepeatList.find((subArr) => subArr.includes(index));
if (targetSubArr) { if (targetSubArr) {
let warningText = 'Please note that '; let warningText = 'Please note that ';
const refElements = targetSubArr.map((ref, refIndex) => { const refElements = targetSubArr.map((ref, refIndex) => {
return `${ref + 1}`; return `${ref + 1}`;
}); });
if (refElements.length > 0) { if (refElements.length > 0) {
if (refElements.length === 1) { if (refElements.length === 1) {
warningText += `ref. ${refElements[0]} is a duplicate.`; warningText += `ref. ${refElements[0]} is a duplicate.`;
@@ -607,16 +594,10 @@ export default {
warningText += `ref. ${refElements.join(', ')} and ${lastRef} are duplicates.`; warningText += `ref. ${refElements.join(', ')} and ${lastRef} are duplicates.`;
} }
} }
//console.log(warningText);
return warningText; return warningText;
} }
//console.log('this.chanFerFormRepeatList at line 459:', this.chanFerFormRepeatList)
}, },
// 父容器事件委托处理
handleContainerClick(e) { handleContainerClick(e) {
// 判断点击的是否是目标 span通过标签名或自定义类名筛选
if (e.target.tagName === 'SPAN' && e.target.hasAttribute('data-ref')) { if (e.target.tagName === 'SPAN' && e.target.hasAttribute('data-ref')) {
const ref = Number(e.target.getAttribute('data-ref')); // 获取存储的 ref 值 const ref = Number(e.target.getAttribute('data-ref')); // 获取存储的 ref 值
this.handleClickRef(ref); // 触发实际逻辑 this.handleClickRef(ref); // 触发实际逻辑
@@ -627,7 +608,6 @@ export default {
getRepeatRefHtml() { getRepeatRefHtml() {
let warningText = 'Please note that '; let warningText = 'Please note that ';
this.chanFerFormRepeatList.forEach((pair, index) => { this.chanFerFormRepeatList.forEach((pair, index) => {
// 处理单个 pair 数组,例如 [1, 2, 3]
let singlePairText = ''; let singlePairText = '';
pair.forEach((ref, refIndex) => { pair.forEach((ref, refIndex) => {
singlePairText += `<span style="font-weight: bold;color: #F56C6C;cursor: pointer;" data-ref="${ref}" >${ singlePairText += `<span style="font-weight: bold;color: #F56C6C;cursor: pointer;" data-ref="${ref}" >${
@@ -644,8 +624,6 @@ export default {
warningText += ', and '; warningText += ', and ';
} }
}); });
//console.log(warningText);
return warningText; return warningText;
}, },
getParsingData() { getParsingData() {
@@ -665,15 +643,12 @@ export default {
}) })
.then((res) => { .then((res) => {
loading.close(); loading.close();
this.isShowParsing = false; this.isShowParsing = false;
(this.isShowParsingData = true), (this.refenceForm.joura = res.data.joura); (this.isShowParsingData = true), (this.refenceForm.joura = res.data.joura);
this.refenceForm.author = res.data.author; this.refenceForm.author = res.data.author;
this.refenceForm.dateno = res.data.dateno; this.refenceForm.dateno = res.data.dateno;
this.refenceForm.doilink = res.data.doilink; this.refenceForm.doilink = res.data.doilink;
// if(this.dialogTitle == 'Add'&&this.SourceType == 'journal'){
this.refenceForm.doi = res.data.doi; this.refenceForm.doi = res.data.doi;
// }
this.refenceForm.title = res.data.title; this.refenceForm.title = res.data.title;
this.refenceForm.isbn = this.refenceForm.refer_type == 'book' ? res.data.doilink : res.data.isbn; this.refenceForm.isbn = this.refenceForm.refer_type == 'book' ? res.data.doilink : res.data.isbn;
}) })
@@ -690,18 +665,13 @@ export default {
p_refer_id: id p_refer_id: id
}) })
.then((res) => { .then((res) => {
//console.log('res at line 499:', res)
if (res.status == 1) { if (res.status == 1) {
return res.data; return res.data;
} else {
this.$message.error(res.msg);
return Promise.reject(res.msg);
} }
throw res.msg;
}) })
.catch((err) => { .catch((err) => {
this.$message.error(err); this.$message.error(err);
// 确保错误被向上传递
return Promise.reject(err); return Promise.reject(err);
}); });
}, },
@@ -1021,12 +991,12 @@ export default {
this.dialogTitle = optitle; this.dialogTitle = optitle;
this.isShowParsing = false; this.isShowParsing = false;
this.isShowParsingData = false; this.isShowParsingData = false;
try {
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
text: 'Loading...', text: 'Loading...',
background: 'rgba(0, 0, 0, 0.7)' background: 'rgba(0, 0, 0, 0.7)'
}); });
try {
var data = await this.getRefData(row.p_refer_id); var data = await this.getRefData(row.p_refer_id);
this.SourceType = data.refer_type ? data.refer_type : ''; this.SourceType = data.refer_type ? data.refer_type : '';