This commit is contained in:
2025-11-06 09:47:40 +08:00
parent 0a0e484349
commit a4eaf0d5cb
8 changed files with 735 additions and 282 deletions

View File

@@ -998,7 +998,11 @@
:value="item.journal_id"
></el-option>
</el-select>
</el-form-item>
</el-form-item>
<!-- <el-form-item label=" " label-width="0px">
<commonCv ref="commoncv" @cvitaTable="getCVitaData"></commonCv>
</el-form-item> -->
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="youthVisible = false">Cancel</el-button>
@@ -1027,12 +1031,14 @@
</template>
<script>
import commonCv from '../common/cv.vue';
import Schart from 'vue-schart';
import bus from '../common/bus';
export default {
name: 'dashboard',
data() {
return {
applyCvitaTable: [],
user_id: localStorage.getItem('U_id'),
username: localStorage.getItem('U_name'),
userrole: localStorage.getItem('U_status'),
@@ -1343,11 +1349,15 @@ export default {
},
components: {
commonCv,
Schart,
'el-image-viewer': () => import('element-ui/packages/image/src/image-viewer')
},
computed: {},
methods: {
getCVitaData(data){
this.applyCvitaTable = data;
},
handleDeleteMajor(v) {
this.$confirm('Are you sure you want to delete this Field ?', 'Tip', {
type: 'warning'
@@ -2102,6 +2112,12 @@ export default {
// 青年科学家弹出框
youthPoint() {
// this.youthForm.journal_id = '';
// this.youthVisible = true;
// this.$nextTick(()=>{
// this.$refs.commoncv.init();
// })
// 判断
this.$api
.post('api/Ucenter/checkApply', {
@@ -2111,7 +2127,12 @@ export default {
.then((res) => {
if (res.code == 0) {
this.youthForm.journal_id = '';
this.youthVisible = true;
this.youthVisible = true;
// this.$nextTick(()=>{
// this.$refs.commoncv.init();
// })
} else {
// 提示完善信息
this.tipVisible = true;
@@ -2150,7 +2171,7 @@ export default {
this.$message.error(err);
});
} else {
this.$message.error('error submit!!');
this.$message.error('Please select a journal!');
return false;
}
});

File diff suppressed because it is too large Load Diff

View File

@@ -266,9 +266,9 @@
<b v-if="item.indexs_show==0" style="color: #aaa;">Null</b>
<i class="el-icon-edit" @click="HIndexEdit(item)" v-if="form.state==1" style="margin-left: 10px;color: #006699;cursor: pointer;"></i>
</p> -->
<p v-if="item.address"><font>Address : </font>{{ item.address }}</p>
<p v-if="item.company"><font>Affiliation : </font>{{ item.company }}</p>
<p v-if="item.department"><font>Department : </font>{{ item.department }}</p>
<p v-if="item.address&&isShowAuthorInfo"><font>Address : </font>{{ item.address }}</p>
<div v-if="item.company" style="display: flex;align-items: flex-start;"><font style="display: inline-block;width: 70px;color:#777 ;">Affiliation : </font><p v-html="getAllCompany(item.company)" style="width: calc(100% - 70px);"></p></div>
<p v-if="item.department&&isShowAuthorInfo"><font>Department : </font>{{ item.department }}</p>
<p v-if="item.title"><font>Title : </font>{{ item.title }}</p>
<p v-if="item.country"><font>Country : </font>{{ item.country }}</p>
</div>
@@ -486,6 +486,7 @@
<template v-for="(_, index1) in maxRepeatReviewCount()">
<th>{{ index1 + 2 }}<sup>nd</sup> review</th>
</template>
<!-- <th>final state</th> -->
</tr>
</thead>
<tbody>
@@ -504,18 +505,7 @@
<td @click="handleClick(iken)" style="cursor: pointer">
<span style="display: inline-block; margin-left: 4px; margin-right: 8px">
<font
v-if="iken.state == 0"
style="
width: 12px;
height: 12px;
display: block;
border-radius: 10px;
background-color: #ccc;
"
>
</font>
<font
v-if="iken.state == 1 || iken.state == 3"
v-if="iken.recommend == 1 || iken.recommend == 2"
style="
width: 12px;
height: 12px;
@@ -526,7 +516,7 @@
>
</font>
<font
v-if="iken.state == 2"
v-if="iken.recommend == 3|| iken.recommend == 4"
style="
width: 12px;
height: 12px;
@@ -537,7 +527,11 @@
>
</font>
</span>
<span>{{ mystate(iken.state) }}</span>
<span v-if="iken.recommend == 1">Minor</span>
<span v-else-if="iken.recommend == 2">Major</span>
<span v-else-if="iken.recommend == 3">Reject</span>
<span v-else-if="iken.recommend == 4">Reject</span>
</td>
<!-- 关键按最大重复次数遍历而非仅遍历当前iken.repeat -->
<template v-for="(_1, index1) in maxRepeatReviewCount()">
@@ -595,6 +589,44 @@
</span>
</td>
</template>
<!-- <td @click="handleClick(iken)" style="cursor: pointer">
<span style="display: inline-block; margin-left: 4px; margin-right: 8px">
<font
v-if="iken.state == 0"
style="
width: 12px;
height: 12px;
display: block;
border-radius: 10px;
background-color: #ccc;
"
>
</font>
<font
v-if="iken.state == 1 || iken.state == 3"
style="
width: 12px;
height: 12px;
display: block;
border-radius: 10px;
background-color: #67c23a;
"
>
</font>
<font
v-if="iken.state == 2"
style="
width: 12px;
height: 12px;
display: block;
border-radius: 10px;
background-color: #f56c6c;
"
>
</font>
</span>
<span>{{ mystate(iken.state) }}</span>
</td> -->
</tr>
</tbody>
@@ -1048,6 +1080,7 @@ export default {
},
data() {
return {
isShowAuthorInfo: false,
activeFinalComment: [],
isShowAI: false,
currentArticleData: {},
@@ -1343,6 +1376,8 @@ export default {
};
},
async created() {
await this.initarticle();
await this.getAi();
this.initFileList();
@@ -1411,6 +1446,15 @@ export default {
}
},
methods: {
getAllCompany(company) {
let str = '';
var list=company.split('/');
for (let i = 0; i < list.length; i++) {
str +=`${i+1}. `+ list[i] + '<br/>';
}
return str;
},
// 算平均分
avegeCount(arry) {
let str = 0;
@@ -1870,6 +1914,22 @@ export default {
})
.then((res) => {
const dynamicTimestamp = res.article.ctime;
const dynamicDate = new Date(dynamicTimestamp * 1000);
const targetDate = new Date(2025, 10, 3);
dynamicDate.setHours(0, 0, 0, 0);
targetDate.setHours(0, 0, 0, 0);
// 2025-11-03 ---上线了自动解析word 识别作者功能 去掉了 address和department字段
const isDynamicDateAfterTarget = dynamicDate > targetDate;
if (!isDynamicDateAfterTarget) {
// 判断日期是否小于等于 2025-11-03
this.isShowAuthorInfo = true;
}else{
this.isShowAuthorInfo = false;
}
this.initMajor();
this.form.username = res.article.account;
this.form.title = res.article.title;

View File

@@ -665,6 +665,7 @@
<template v-for="(_, index1) in maxRepeatReviewCount(item)">
<th>{{ index1 + 2 }}<sup>nd</sup> review</th>
</template>
<!-- <th>final state</th> -->
</tr>
</thead>
<tbody>
@@ -673,20 +674,10 @@
<td>Reviewer {{ reviewerIndex + 1 }}</td>
<!-- 1st review原逻辑不变 -->
<td>
<span style="display: inline-block; margin-left: 4px; margin-right: 8px">
<span style="display: inline-block; margin-left: 4px; margin-right: 8px" v-if="iken.question">
<font
v-if="iken.state == 0"
style="
width: 12px;
height: 12px;
display: block;
border-radius: 10px;
background-color: #ccc;
"
>
</font>
<font
v-if="iken.state == 1 || iken.state == 3"
v-if="iken.question.recommend == 1 || iken.question.recommend == 2"
style="
width: 12px;
height: 12px;
@@ -697,7 +688,7 @@
>
</font>
<font
v-if="iken.state == 2"
v-if="iken.question.recommend == 3|| iken.question.recommend == 4"
style="
width: 12px;
height: 12px;
@@ -708,7 +699,11 @@
>
</font>
</span>
<span>{{ mystate(iken.state) }}</span>
<span v-if="iken.question.recommend == 1">Minor</span>
<span v-else-if="iken.question.recommend == 2">Major</span>
<span v-else-if="iken.question.recommend == 3">Reject</span>
<span v-else-if="iken.question.recommend == 4">Reject</span>
</td>
<!-- 关键按最大重复次数遍历而非仅遍历当前iken.repeat -->
<template v-for="(_1, index1) in maxRepeatReviewCount(item)">
@@ -762,6 +757,45 @@
</span>
</td>
</template>
<!-- <td>
<span style="display: inline-block; margin-left: 4px; margin-right: 8px">
<font
v-if="iken.state == 0"
style="
width: 12px;
height: 12px;
display: block;
border-radius: 10px;
background-color: #ccc;
"
>
</font>
<font
v-if="iken.state == 1 || iken.state == 3"
style="
width: 12px;
height: 12px;
display: block;
border-radius: 10px;
background-color: #67c23a;
"
>
</font>
<font
v-if="iken.state == 2"
style="
width: 12px;
height: 12px;
display: block;
border-radius: 10px;
background-color: #f56c6c;
"
>
</font>
</span>
<span>{{ mystate(iken.state) }}</span>
</td> -->
</tr>
</tbody>
</table>
@@ -2743,7 +2777,7 @@ export default {
})
.then(async (res) => {
console.log('res at line 2219:', res);
this.Total = res.data.total;
this.tableData = res.data.lists;
for (let i = 0; i < this.tableData.length; i++) {
@@ -2751,11 +2785,10 @@ export default {
await this.$api
.post('api/Finalreview/getReviewRecord', { article_id: this.tableData[i].article_id })
.then((res) => {
console.log('res at line 2356:', res);
if (res.status == 1) {
this.$set(this.tableData[i], 'reviewScore', res.data.article_review);
console.log('.reviewScore at line 2358:', this.tableData[i].reviewScore);
}
}
})
.catch((error) => {
console.error('API call failed:', error);

View File

@@ -45,7 +45,6 @@
<b v-if="scope.row.article_state == 4">Revision</b>
<b v-if="scope.row.article_state == 5">Accept</b>
<b v-if="scope.row.article_state == 8">Final Decision</b>
<b v-if="scope.row.astate == 6">Pre-accept</b>
</template>
</el-table-column>

View File

@@ -44,12 +44,12 @@
</template>
</el-table-column>
<el-table-column label="Recommendation" width="160" align="center">
<!-- <el-table-column label="Recommendation" width="160" align="center">
<template slot-scope="scope">
<b v-if="scope.row.recommend == 1||scope.row.recommend == 2">Accept</b>
<b v-if="scope.row.recommend == 3||scope.row.recommend == 4">Reject</b>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label=" " width="230">
<template slot-scope="scope">
<router-link