审稿人CV

This commit is contained in:
2025-06-05 13:28:26 +08:00
parent 071276e284
commit 8c4701c2e6
3 changed files with 85 additions and 74 deletions

BIN
dist.zip

Binary file not shown.

View File

@@ -315,7 +315,7 @@
<div class="list-center go-flex-center go-transition" style="width: 100%"> <div class="list-center go-flex-center go-transition" style="width: 100%">
<div class="title"> <div class="title">
<span>Add Table </span> <span>Add Table </span>
<!-- <span @click.stop="handlePaperclip"><i class="el-icon-paperclip"></i></span> --> <span @click.stop="handlePaperclip"><i class="el-icon-paperclip"></i></span>
</div> </div>
<div <div

View File

@@ -30,7 +30,8 @@
<el-option label="D" key="D" value="D"></el-option> <el-option label="D" key="D" value="D"></el-option>
<el-option label="Not rated" key="1" value="1"></el-option> <el-option label="Not rated" key="1" value="1"></el-option>
</el-select> --> </el-select> -->
<el-input clearable v-model="query.keyword" placeholder="Account / Realname / Email" style="width: 240px; margin: 0 15px"> </el-input> <el-input clearable v-model="query.keyword" placeholder="Account / Realname / Email" style="width: 240px; margin: 0 15px">
</el-input>
<el-cascader <el-cascader
clearable clearable
:ref="`cascader1`" :ref="`cascader1`"
@@ -66,8 +67,29 @@
</p> </p>
<p class="tab_tie_col"> <p class="tab_tie_col">
<span>Title: </span>{{ scope.row.technical }} <span>Title: </span>{{ scope.row.technical }}
<span style="margin-left: 30px">CV: </span> <span style="margin-left: 25px">CV: </span>
<b class="el-icon-check" style="color: #0fa31d; font-weight: bold" v-if="scope.row.cvs.length > 0"> </b> <span v-if="scope.row.cvs.length > 0" v-for="(item, index) in [scope.row.cvs[scope.row.cvs.length - 1]]">
<!-- <span style="margin-left: 20px; color: #888; font-size: 13px">
<i class="el-icon-paperclip"></i>
{{ formatDate(item.ctime) }}
</span> -->
<el-tooltip :content="formatDate(item.ctime)" placement="top">
<a
:href="mediaUrl + 'reviewer/' + item.cv"
target="_blank"
class="txt_pdf"
style="margin: 0; display: inline-block"
><img
src="@/assets/img/icon_0.png"
alt=""
class="icon_img"
style="vertical-align: middle; width: 16px; height: 16px"
/>
<i class="el-icon-download" style="font-size: 12px;margin-left: 4px;"></i>
</a>
</el-tooltip>
</span>
<!-- <b class="el-icon-check" style="color: #0fa31d; font-weight: bold" v-if="scope.row.cvs.length > 0"> </b> -->
<b class="el-icon-close" style="color: #ff0000; font-weight: bold" v-if="scope.row.cvs.length == 0"> </b> <b class="el-icon-close" style="color: #ff0000; font-weight: bold" v-if="scope.row.cvs.length == 0"> </b>
</p> </p>
<p class="tab_tie_col"><span>Email: </span>{{ scope.row.email }}</p> <p class="tab_tie_col"><span>Email: </span>{{ scope.row.email }}</p>
@@ -117,13 +139,11 @@
</font> </font>
</p> </p>
<p class="tab_tie_col"> <p class="tab_tie_col">
<span style="color: #0b71ff;">Reviewed manuscripts {{ ReviewTime }}: </span> <span style="color: #0b71ff">Reviewed manuscripts {{ ReviewTime }}: </span>
<font style="display: inline-block;color: #0b71ff;font-weight: bold;" v-if="scope.row.review_num_two_year"> <font style="display: inline-block; color: #0b71ff; font-weight: bold" v-if="scope.row.review_num_two_year">
{{ scope.row.review_num_two_year }} {{ scope.row.review_num_two_year }}
</font> </font>
<font style="display: inline-block;color: #aaa;font-weight: bold;" v-else > <font style="display: inline-block; color: #aaa; font-weight: bold" v-else> 0 </font>
0
</font>
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
@@ -188,13 +208,17 @@
</el-table-column> --> </el-table-column> -->
<el-table-column label="Research areas" width="300"> <el-table-column label="Research areas" width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<div @click="BoxMajor(scope.row,majorData[scope.row.user_id])" v-if="scope.row.user_id" style="display: flex; align-items: center; justify-content: space-between; cursor: pointer;"> <div
@click="BoxMajor(scope.row, majorData[scope.row.user_id])"
v-if="scope.row.user_id"
style="display: flex; align-items: center; justify-content: space-between; cursor: pointer"
>
<!-- 使用 user_id 来获取用户的 majorData --> <!-- 使用 user_id 来获取用户的 majorData -->
<div> <div>
<div v-if="majorData[scope.row.user_id]" class="majorDataBox"> <div v-if="majorData[scope.row.user_id]" class="majorDataBox">
<p v-for="(v, i) in majorData[scope.row.user_id]" style="border-top: 1px solid #b3d8ff;"> <p v-for="(v, i) in majorData[scope.row.user_id]" style="border-top: 1px solid #b3d8ff">
<span style="font-weight: bold">{{ i + 1 }}.</span> <span style="font-weight: bold">{{ i + 1 }}.</span>
{{ v.major_title.replace("Medicine >", "").trim() }} {{ v.major_title.replace('Medicine >', '').trim() }}
</p> </p>
</div> </div>
<div v-else> <div v-else>
@@ -203,11 +227,7 @@
</div> </div>
</div> </div>
<b <b style="margin-left: 10px; color: #006699" class="el-icon-edit"></b>
style="margin-left: 10px; color: #006699"
class="el-icon-edit"
></b>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@@ -414,9 +434,10 @@
<el-dialog title="Remarks" :visible.sync="remarkBox" width="800px"> <el-dialog title="Remarks" :visible.sync="remarkBox" width="800px">
<el-form ref="remark" :model="remarkMes" label-width="95px"> <el-form ref="remark" :model="remarkMes" label-width="95px">
<el-form-item label="Reviewer :"> <el-form-item label="Reviewer :">
<p style="line-height: 20px; margin-top: 6px;"> <p style="line-height: 20px; margin-top: 6px">
<span style="color:#333;font-weight:bold;">{{ remarkMes.realname }}</span> <span style="color: #333; font-weight: bold">{{ remarkMes.realname }}</span>
( {{ remarkMes.email }} )</p> ( {{ remarkMes.email }} )
</p>
</el-form-item> </el-form-item>
<el-form-item label="Content :"> <el-form-item label="Content :">
<el-input type="textarea" rows="20" v-model="remarkMes.remark"></el-input> <el-input type="textarea" rows="20" v-model="remarkMes.remark"></el-input>
@@ -430,16 +451,16 @@
<el-dialog title="Edit Research areas" :visible.sync="majorBox" width="800px"> <el-dialog title="Edit Research areas" :visible.sync="majorBox" width="800px">
<el-form ref="remark" :model="majorMes" label-width="120px"> <el-form ref="remark" :model="majorMes" label-width="120px">
<el-form-item label="Reviewer :"> <el-form-item label="Reviewer :">
<p style="line-height: 20px; margin-top: 6px;"> <p style="line-height: 20px; margin-top: 6px">
<span style="color:#333;font-weight:bold;">{{ majorMes.realname }}</span> <span style="color: #333; font-weight: bold">{{ majorMes.realname }}</span>
( {{ majorMes.email }} )</p> ( {{ majorMes.email }} )
</p>
</el-form-item> </el-form-item>
<!-- <el-form-item label="Email :"> <!-- <el-form-item label="Email :">
<p style="line-height: 20px; margin-top: 6px">{{ majorMes.email }}</p> <p style="line-height: 20px; margin-top: 6px">{{ majorMes.email }}</p>
</el-form-item> --> </el-form-item> -->
<el-form-item label="Research areas :"> <el-form-item label="Research areas :">
<common-major-list :list="majorValueList" @load="(e) => (this.majorValueList = e)"></common-major-list> <common-major-list :list="majorValueList" @load="(e) => (this.majorValueList = e)"></common-major-list>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@@ -472,7 +493,6 @@
</template> </template>
<script> <script>
const currentYear = new Date().getFullYear(); const currentYear = new Date().getFullYear();
var ReviewTime = `(${currentYear - 2}${currentYear})`; var ReviewTime = `(${currentYear - 2}${currentYear})`;
import commonReviewer from '../page/components/reviewerList/add.vue'; import commonReviewer from '../page/components/reviewerList/add.vue';
@@ -542,9 +562,7 @@ export default {
remarkMes: { remarkMes: {
remark: '' remark: ''
}, },
majorMes: { majorMes: {},
},
remarkBox: false, remarkBox: false,
majorBox: false, majorBox: false,
gradeMes: { gradeMes: {
@@ -733,8 +751,7 @@ export default {
}, },
async getContent() { async getContent() {
console.log('this.selectField at line 720:', this.selectField);
console.log('this.selectField at line 720:', this.selectField)
if (this.selectField.length > 0) { if (this.selectField.length > 0) {
this.query.user_field = this.selectField[this.selectField.length - 1]; this.query.user_field = this.selectField[this.selectField.length - 1];
} else { } else {
@@ -775,13 +792,10 @@ export default {
// }); // });
this.$forceUpdate(); this.$forceUpdate();
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
loading.close(); loading.close();
} }
}) })
.catch((err) => { .catch((err) => {
this.$message.error(err); this.$message.error(err);
@@ -1189,10 +1203,8 @@ export default {
? item.shu.split(',').map(Number) ? item.shu.split(',').map(Number)
: [item.shu] : [item.shu]
})); }));
}, },
async fetchMajorData(userId) { async fetchMajorData(userId) {
// if (!this.majorData[userId]) { // if (!this.majorData[userId]) {
// 判断是否已经加载过该用户的数据 // 判断是否已经加载过该用户的数据
const data = await this.getMajorData(userId); // 获取数据 const data = await this.getMajorData(userId); // 获取数据
@@ -1226,10 +1238,12 @@ export default {
}); });
}, },
saveMajor() { saveMajor() {
this.$api.post('api/Reviewer/updateUserField', { this.$api
.post('api/Reviewer/updateUserField', {
user_id: this.majorMes.user_id, user_id: this.majorMes.user_id,
user_field: this.majorValueList.map((item) => item.selectedValue[item.selectedValue.length - 1]).toString(',') user_field: this.majorValueList.map((item) => item.selectedValue[item.selectedValue.length - 1]).toString(',')
}).then((res) => { })
.then((res) => {
if (res.status == 1) { if (res.status == 1) {
this.$message.success('Success'); this.$message.success('Success');
this.majorBox = false; this.majorBox = false;
@@ -1351,8 +1365,6 @@ export default {
}, },
// 指数颜色 // 指数颜色
colorIndex(num, time) { colorIndex(num, time) {
// if (time != 0) { // if (time != 0) {
// let date = new Date(parseInt(time * 1000)); // let date = new Date(parseInt(time * 1000));
// let Y = date.getFullYear() + '-'; // let Y = date.getFullYear() + '-';
@@ -1382,7 +1394,7 @@ export default {
str = '<b style="color:#cbb504">' + num + '</b>'; str = '<b style="color:#cbb504">' + num + '</b>';
} else { } else {
if (num == null) { if (num == null) {
num=0 num = 0;
} }
// str = // str =
// '<b style="color:#0cbc15">' + // '<b style="color:#0cbc15">' +
@@ -1551,6 +1563,5 @@ export default {
} }
.majorDataBox p:nth-child(1) { .majorDataBox p:nth-child(1) {
border-top: none !important; border-top: none !important;
} }
</style> </style>