H指数修改
This commit is contained in:
@@ -103,8 +103,7 @@
|
||||
</div>
|
||||
|
||||
<div style="display: flex; margin-left: auto">
|
||||
|
||||
<div class="fixCard" :style="`width: ${query.state == 0 ? '51% !important' : '33% !important'};`">
|
||||
<div class="fixCard" :style="`width: ${query.state == 0 ? '33% !important' : '33% !important'};`">
|
||||
<b style="font-size: 16px; letter-spacing: -0.5px">Manuscript Files</b>
|
||||
<p style="height: 10px"></p>
|
||||
<div class="fi_new" v-if="item.file.coverLetter">
|
||||
@@ -239,7 +238,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 1%"></div>
|
||||
<div class="fixCard" style="width: 16%">
|
||||
<div class="fixCard" style="width: 36%">
|
||||
<b style="font-size: 16px; letter-spacing: -0.5px">AI scoring</b>
|
||||
<p style="font-size: 18px; font-weight: bold; margin-bottom: 5px; color: #db890e" v-if="item.reportList.length > 0">
|
||||
<font style="font-size: 14px; font-weight: normal; color: #333">Initial review score :</font>
|
||||
@@ -250,7 +249,53 @@
|
||||
<font style="font-size: 14px; font-weight: normal">Initial review score :</font>
|
||||
{{ item.scoring }} <i class="el-icon-refresh refreshBtn" @click="refreshScore(item)"></i>
|
||||
</p>
|
||||
<p v-if="item.scoring != 0 && item.H != null" style="color: #999">{{ item.H.google_editor }}</p>
|
||||
|
||||
<div v-if="item.reportList.length > 0" style="text-align: left">
|
||||
<div v-for="(v, i) in item.reportList" style="margin-top: 10px; overflow: hidden">
|
||||
<div style="display: flex; align-items: center; justify-content: space-between">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<span
|
||||
style="
|
||||
float: left;
|
||||
margin-right: 6px;
|
||||
background-color: #fff;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
><i class="el-icon-s-custom"></i
|
||||
></span>
|
||||
<span style="max-width:80%;white-space: nowrap;display: inline-block;
|
||||
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;">{{ v.author_account.realname }}</span>
|
||||
|
||||
</div>
|
||||
|
||||
<div style="max-width:260px;width:auto;">
|
||||
<span style="margin-left: 6px" v-if="v.author_account.wos_time">
|
||||
<span style="font-size: 12px; font-weight: bold">WOS</span> :
|
||||
<span v-html="colorIndex1(v.author_account.wos_index)"></span>
|
||||
</span>
|
||||
<span style="margin-left: 6px" v-if="v.author_account.scopus_time">
|
||||
<span style="font-size: 12px; font-weight: bold">Scopus</span> :
|
||||
<span v-html="colorIndex1(v.author_account.scopus_index)"></span>
|
||||
</span>
|
||||
<span style="margin-left: 6px" v-if="v.author_account.google_time">
|
||||
<span style="font-size: 12px; font-weight: bold">Google</span> :
|
||||
<span v-html="colorIndex1(v.author_account.google_index)"></span>
|
||||
</span>
|
||||
<b @click="aiSoring(v)" class="btnCliArt" style="margin-left: 10px">
|
||||
<i class="el-icon-edit"></i>
|
||||
</b>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <p v-if="item.scoring != 0 && item.H != null" style="color: #999">{{ item.H.google_editor }}</p>
|
||||
<p v-if="item.scoring != 0 && item.H != null && item.H.google_time != 0" style="color: #999">
|
||||
{{ formatDate(item.H.google_time) }}
|
||||
</p>
|
||||
@@ -261,7 +306,7 @@
|
||||
style="margin-top: 10px; display: block"
|
||||
>
|
||||
<i class="el-icon-edit"></i> Edit Hindex
|
||||
</b>
|
||||
</b> -->
|
||||
<!-- <el-button @click="aiSoring(item)" size="mini" type="primary" icon="el-icon-edit"
|
||||
v-if="item.reportList.length>0" style="margin-top: 1px;">Edit Hindex</el-button> -->
|
||||
<p
|
||||
@@ -700,62 +745,32 @@
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="H Index" :visible.sync="aiSorbox" width="650px">
|
||||
<el-form ref="aiSorform" v-for="(item, index) in aiSorform.author" label-width="180px" :key="index">
|
||||
<el-form-item :label="'Corresponding Author ' + (index + 1) + ' :'" v-if="aiSorform.author.length != 1">
|
||||
<p>{{ item.firstname }} {{ item.lastname }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Corresponding Author :" v-if="aiSorform.author.length == 1">
|
||||
<p>{{ item.firstname }} {{ item.lastname }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Email :">
|
||||
<p>{{ item.email }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Title :" v-if="item.author_title != ''">
|
||||
<p>{{ item.author_title }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Country :">
|
||||
<p>{{ item.country }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Affiliation :" v-if="item.company != ''">
|
||||
<p style="line-height: 20px; margin-top: 6px">{{ item.company }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Department :" v-if="item.department != ''">
|
||||
<p style="line-height: 20px; margin-top: 6px">{{ item.department }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Google account :" v-if="item.author_account.g_author != ''">
|
||||
<b class="el-icon-check" style="font-size: 20px; font-weight: bold; color: #2a9916"></b>
|
||||
<a v-if="item.author_account.g_website != ''" :href="item.author_account.g_website" class="webLink"
|
||||
>Personal homepage</a
|
||||
>
|
||||
<p style="color: #999">
|
||||
(
|
||||
<span v-if="item.author_account.google_editor != ''">{{ item.author_account.google_editor }}</span>
|
||||
<span v-if="item.author_account.google_time != 0" style="margin-left: 10px">{{
|
||||
formatDate(item.author_account.google_time)
|
||||
}}</span>
|
||||
)
|
||||
</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="H Index :" v-if="item.author_account.g_author == '' && item.author_account.google_time != 0">
|
||||
<b style="font-size: 18px; color: #006699">{{ item.author_account.google_index }}</b>
|
||||
<p style="color: #999">
|
||||
(
|
||||
<span v-if="item.author_account.google_editor != ''">{{ item.author_account.google_editor }}</span>
|
||||
<span v-if="item.author_account.google_time != 0" style="margin-left: 10px">{{
|
||||
formatDate(item.author_account.google_time)
|
||||
}}</span>
|
||||
)
|
||||
</p>
|
||||
</el-form-item>
|
||||
<div v-if="item.author_account.g_author == '' && item.author_account.google_time == 0">
|
||||
<el-form-item label="H Index filling method :">
|
||||
<el-radio-group v-model="item.Hselct" @change="checkAddType">
|
||||
<el-radio :label="1">Binding</el-radio>
|
||||
<el-radio :label="2">Write</el-radio>
|
||||
</el-radio-group>
|
||||
<el-drawer title="H Index" :visible.sync="aiSorbox" direction="rtl" size="60%" append-to-body>
|
||||
<el-form ref="aiSorform" label-width="180px" v-if="aiSorbox" class="HIndex_Box">
|
||||
<div class="HIndex_userInfo">
|
||||
<el-form-item label="Corresponding Author ">
|
||||
<p>{{ aiSorform.firstname }} {{ aiSorform.lastname }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="item.Hselct == 1">
|
||||
|
||||
<el-form-item label="Email :">
|
||||
<p>{{ aiSorform.email }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Title :" v-if="aiSorform.author_title != ''">
|
||||
<p>{{ aiSorform.author_title }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Country :">
|
||||
<p>{{ aiSorform.country }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Affiliation :" v-if="aiSorform.company != ''">
|
||||
<p style="line-height: 20px; margin-top: 6px">{{ aiSorform.company }}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Department :" v-if="aiSorform.department != ''">
|
||||
<p style="line-height: 20px; margin-top: 6px">{{ aiSorform.department }}</p>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<!-- <div>
|
||||
<el-form-item>
|
||||
<span slot="label">
|
||||
<img src="../../assets/img/browser.png" alt="" style="width: 20px; vertical-align: sub; margin-right: 5px" />
|
||||
<font>Google account :</font>
|
||||
@@ -764,13 +779,8 @@
|
||||
Binding
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="H Index :" v-if="item.Hselct == 2">
|
||||
<el-input-number :min="0" v-model="item.Hindex"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="" v-if="item.Hselct == 2">
|
||||
<el-button type="primary" @click="saveAiSor(index)">Save H Index</el-button>
|
||||
</el-form-item>
|
||||
<div v-if="item.Hselct == 1 && IndexForm.site == index" style="background-color: #f7fcff">
|
||||
|
||||
<div style="background-color: #f7fcff">
|
||||
<p v-if="geogleList.length != 0" style="padding: 15px 0 20px 20px; font-weight: bold">
|
||||
Please select one and press the OK button.
|
||||
</p>
|
||||
@@ -796,14 +806,164 @@
|
||||
<el-button type="primary" @click="saveBank">OK</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
style="height: 1px; width: 100%; background-color: #006699; margin-bottom: 10px"
|
||||
v-if="aiSorform.author.length > 1 && index < aiSorform.author.length - 1"
|
||||
></div>
|
||||
</div> -->
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
<div class="HIndex_Box" style="padding-bottom: 80px">
|
||||
<el-tabs type="border-card" v-model="currentTabName" style="height: auto" @tab-click="changeSelectTabs">
|
||||
<template v-for="(item, index) in HIndexList">
|
||||
<el-tab-pane :name="item.name"
|
||||
><span slot="label">
|
||||
<img
|
||||
v-if="item.value == '2'"
|
||||
src="@/assets/img/browser.png"
|
||||
alt=""
|
||||
style="width: 20px; vertical-align: sub; margin-right: 5px" />
|
||||
{{ item.name }} <i class="el-icon-edit-outline" style="margin-left: 10px" v-if="item.isEdit"></i
|
||||
></span>
|
||||
<el-form
|
||||
ref="index_Form"
|
||||
:model="userIndexForm"
|
||||
:rules="rules"
|
||||
:label-width="`${item.value == '2' ? '120' : '80'}px`"
|
||||
>
|
||||
<el-form-item v-if="userIndexForm.date">
|
||||
<span slot="label"> Time : </span>
|
||||
<span v-html="colorIndex2(userIndexForm.date)"></span>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<template v-if="userIndexForm.type != 2">
|
||||
<span slot="label"> Index : </span>
|
||||
<el-input v-model="userIndexForm.index" v-if="item.isEdit"></el-input>
|
||||
<span v-html="colorIndex1(userIndexForm.index)" v-else></span>
|
||||
</template>
|
||||
<template v-else>
|
||||
<span slot="label"> Index : </span>
|
||||
|
||||
<span v-html="colorIndex1(userIndexForm.index)" v-if="userIndexForm.index != ''"></span>
|
||||
<span v-else style="color: #999">No account bound </span>
|
||||
</template>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="userIndexForm.type != 0 && userIndexForm.editor">
|
||||
<span slot="label"> Editor : </span>
|
||||
|
||||
<span style="line-height: 32px">{{ userIndexForm.editor }}</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="userIndexForm.type == 2 && userIndexForm.g_author">
|
||||
<span slot="label"> Google Author : </span>
|
||||
|
||||
<span style="line-height: 32px">{{ userIndexForm.g_author }}</span>
|
||||
</el-form-item>
|
||||
|
||||
<template v-if="userIndexForm.type == 1 || userIndexForm.type == 2">
|
||||
<el-form-item
|
||||
v-if="
|
||||
(userIndexForm.website && userIndexForm.website != '') ||
|
||||
(item.isEdit && userIndexForm.type == 1)
|
||||
"
|
||||
>
|
||||
<span slot="label"> Website : </span>
|
||||
<el-input v-model="userIndexForm.website" v-if="item.isEdit && userIndexForm.type == 1"></el-input>
|
||||
<template v-else-if="userIndexForm.website && userIndexForm.website != ''">
|
||||
<p
|
||||
style="
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: calc(100%);
|
||||
line-height: 32px;
|
||||
"
|
||||
>
|
||||
<a
|
||||
:href="userIndexForm.website"
|
||||
target="_blank"
|
||||
style="color: rgb(0, 102, 153) !important"
|
||||
>{{ userIndexForm.website }}</a
|
||||
>
|
||||
</p>
|
||||
</template>
|
||||
</el-form-item>
|
||||
</template>
|
||||
|
||||
<template v-if="userIndexForm.type == 2">
|
||||
<template v-if="item.isEdit">
|
||||
<el-form-item v-loading="userloading">
|
||||
<span slot="label">
|
||||
<font>Google account :</font>
|
||||
</span>
|
||||
<b
|
||||
class="el-icon-check"
|
||||
v-if="userMessage.g_author != ''"
|
||||
style="font-size: 20px; font-weight: bold; color: #2a9916"
|
||||
></b>
|
||||
<a
|
||||
v-if="userMessage.g_website != ''"
|
||||
target="_blank"
|
||||
:href="userMessage.g_website"
|
||||
class="webLink"
|
||||
>
|
||||
Certified
|
||||
</a>
|
||||
<el-button
|
||||
@click="handleUserIndex(3)"
|
||||
type="warning"
|
||||
icon="el-icon-paperclip"
|
||||
size="mini"
|
||||
round
|
||||
style="margin: 0 0 0 5px; padding: 5px 12px"
|
||||
v-if="userMessage.g_author == ''"
|
||||
>Certified
|
||||
</el-button>
|
||||
<span style="margin: 0 0 0 5px; padding: 5px 12px; color: #999" v-if="googleSearchInfo != ''">
|
||||
( {{ googleSearchInfo }} )</span
|
||||
>
|
||||
</el-form-item>
|
||||
|
||||
<p v-if="geogleList.length != 0 && bankVisible" style="margin: 20px 0 20px 0; font-weight: bold">
|
||||
Please select one and press the Save button.
|
||||
</p>
|
||||
<div
|
||||
v-for="item in geogleList"
|
||||
:class="IndexForm.g_author == item.author_id ? 'gugeList gu_col' : 'gugeList'"
|
||||
@click="choseGego(item)"
|
||||
v-if="bankVisible"
|
||||
>
|
||||
<p style="font-weight: bold; letter-spacing: -0.5px">{{ item.name }}</p>
|
||||
<p><font>Email :</font>{{ item.email }}</p>
|
||||
<p><font>Affiliations :</font>{{ item.affiliations }}</p>
|
||||
<p>
|
||||
<a :href="item.link" target="_blank">{{ item.link }}</a>
|
||||
</p>
|
||||
<i class="kuangGeo"></i>
|
||||
<b class="el-icon-check"></b>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
</template>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="HIndexList[currentTabIndex].isEdit"
|
||||
class="demo-drawer__footer"
|
||||
style="
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
background: #fff;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: 10px;
|
||||
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
|
||||
"
|
||||
>
|
||||
<el-button type="primary" @click="saveUserIndex(userIndexForm)" style="float: right">{{ $t('citeList.save') }}</el-button>
|
||||
<el-button style="float: right; margin-right: 20px">{{ $t('citeList.cancel') }}</el-button>
|
||||
</div>
|
||||
</el-drawer>
|
||||
|
||||
<el-dialog title="Repetition" :visible.sync="repebox" width="550px">
|
||||
<el-form ref="repetition" :model="repeform" label-width="90px">
|
||||
@@ -964,10 +1124,20 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
rules: {},
|
||||
userloading: false,
|
||||
curState: null,
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
items: '',
|
||||
currentTabIndex: 0,
|
||||
currentTabName: '',
|
||||
HIndexList: [
|
||||
{ name: 'WOS', value: 0, key: 'wos' },
|
||||
{ name: 'Scopus', value: 1, key: 'scopus' },
|
||||
{ name: 'Google', value: 2, key: 'google' }
|
||||
],
|
||||
userIndexForm: {},
|
||||
query: {
|
||||
username: localStorage.getItem('U_name'),
|
||||
journal: 0,
|
||||
@@ -1008,6 +1178,7 @@ export default {
|
||||
Total: 0,
|
||||
geogleList: [],
|
||||
IndexForm: {},
|
||||
userMessage: {},
|
||||
editVisible: false,
|
||||
guestVisible: false,
|
||||
PreAcpVisible: false,
|
||||
@@ -1093,7 +1264,9 @@ export default {
|
||||
state: 6,
|
||||
title: this.$t('artstate.state6')
|
||||
}
|
||||
]
|
||||
],
|
||||
bankVisible: false,
|
||||
googleSearchInfo: ''
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@@ -1106,6 +1279,87 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 保存个人信息
|
||||
saveUserIndex() {
|
||||
let link_geo = '';
|
||||
var data = { ...this.userIndexForm };
|
||||
if (data.index == '' && data.type != 2) {
|
||||
this.$message.error('Please enter the Index!');
|
||||
return;
|
||||
}
|
||||
if (data.type == 1) {
|
||||
if (data.website == '') {
|
||||
this.$message.error('Please enter the Website!');
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (this.userIndexForm.type == 2) {
|
||||
console.log('this.IndexForm.g_author at line 1293:', this.IndexForm.g_author);
|
||||
if (this.IndexForm.g_author == '' || !this.IndexForm.g_author) {
|
||||
if (this.bankVisible) {
|
||||
console.log('this.bankVisible at line 1294:', this.bankVisible);
|
||||
this.$message.error('Please select one!');
|
||||
return;
|
||||
} else {
|
||||
if (this.googleSearchInfo != '') {
|
||||
this.$message.error(this.googleSearchInfo);
|
||||
return;
|
||||
} else {
|
||||
this.$message.error('Please click Certified!');
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
data = {
|
||||
...data,
|
||||
index: data.index == '' ? 0 : data.index,
|
||||
g_author: this.IndexForm.g_author,
|
||||
website: this.IndexForm.g_website
|
||||
};
|
||||
console.log('data at line 1302:', data);
|
||||
}
|
||||
link_geo = 'api/User/editUserIndex';
|
||||
// link_geo = 'api/User/googleBindAuthor';
|
||||
} else {
|
||||
link_geo = 'api/User/editUserIndex';
|
||||
}
|
||||
var that = this;
|
||||
this.$api
|
||||
.post(link_geo, data)
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Successfully modified personal index');
|
||||
setTimeout(() => {
|
||||
this.aiSorbox = false;
|
||||
this.bankVisible = false;
|
||||
this.googleSearchInfo = '';
|
||||
that.getdate();
|
||||
}, 200);
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
changeHindex(data) {
|
||||
console.log('data at line 1151:', data);
|
||||
},
|
||||
colorIndex1(num, time) {
|
||||
let str = '';
|
||||
if (num < 10) {
|
||||
str = '<b style="color:#cb160a">' + num + '</b>';
|
||||
} else if (num < 15) {
|
||||
str = '<b style="color:#cbb504">' + num + '</b>';
|
||||
} else {
|
||||
str = '<b style="color:#0cbc15">' + num + '</b>';
|
||||
}
|
||||
if (time == 0) {
|
||||
str = '<b style="color:#aaa;">0 </b>';
|
||||
}
|
||||
return str;
|
||||
},
|
||||
//初始化期刊选项
|
||||
initselect() {
|
||||
this.$api
|
||||
@@ -1257,32 +1511,33 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
this.tableData[i].reportList = [];
|
||||
if (this.tableData[i].reports.length == 1) {
|
||||
for (let j = 0; j < this.tableData[i].reports.length; j++) {
|
||||
if (
|
||||
this.tableData[i].reports[j].author_account != '' &&
|
||||
this.tableData[i].reports[j].author_account != null
|
||||
) {
|
||||
if (this.tableData[i].reports[j].author_account.google_time == 0) {
|
||||
this.tableData[i].reports[j].Hindex = 0;
|
||||
this.tableData[i].reportList.push(this.tableData[i].reports[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (this.tableData[i].reports.length > 1) {
|
||||
for (let j = 0; j < this.tableData[i].reports.length; j++) {
|
||||
if (
|
||||
this.tableData[i].reports[j].author_account != '' &&
|
||||
this.tableData[i].reports[j].author_account != null
|
||||
) {
|
||||
this.tableData[i].reports[j].Hindex = this.tableData[i].reports[j].author_account.google_index;
|
||||
if (this.tableData[i].reports[j].author_account.google_time == 0) {
|
||||
this.tableData[i].reportList = this.tableData[i].reports;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.tableData[i].reportList = [...this.tableData[i].reports];
|
||||
console.log('.reportList at line 1265:', this.tableData[i].reportList);
|
||||
// if (this.tableData[i].reports.length == 1) {
|
||||
// for (let j = 0; j < this.tableData[i].reports.length; j++) {
|
||||
// if (
|
||||
// this.tableData[i].reports[j].author_account != '' &&
|
||||
// this.tableData[i].reports[j].author_account != null
|
||||
// ) {
|
||||
// if (this.tableData[i].reports[j].author_account.google_time == 0) {
|
||||
// this.tableData[i].reports[j].Hindex = 0;
|
||||
// this.tableData[i].reportList.push(this.tableData[i].reports[j]);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// } else if (this.tableData[i].reports.length > 1) {
|
||||
// for (let j = 0; j < this.tableData[i].reports.length; j++) {
|
||||
// if (
|
||||
// this.tableData[i].reports[j].author_account != '' &&
|
||||
// this.tableData[i].reports[j].author_account != null
|
||||
// ) {
|
||||
// this.tableData[i].reports[j].Hindex = this.tableData[i].reports[j].author_account.google_index;
|
||||
// if (this.tableData[i].reports[j].author_account.google_time == 0) {
|
||||
// this.tableData[i].reportList = this.tableData[i].reports;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
for (let i = 0; i < res.state_num.length; i++) {
|
||||
for (let j = 0; j < this.statList.length; j++) {
|
||||
@@ -1422,15 +1677,156 @@ export default {
|
||||
},
|
||||
// H指数弹出框
|
||||
aiSoring(e) {
|
||||
this.aiSorbox = true;
|
||||
this.aiSorform.article_id = e.article_id;
|
||||
this.aiSorform.title = e.title;
|
||||
this.aiSorform.Hindex = e.scoring;
|
||||
this.aiSorform.author = e.reportList;
|
||||
for (var i = 0; i < this.aiSorform.author.length; i++) {
|
||||
this.aiSorform.author[i].Hselct = 1;
|
||||
}
|
||||
console.log('e at line 1465:', e);
|
||||
this.googleSearchInfo = '';
|
||||
this.currentTabIndex = 0;
|
||||
this.currentTabName = this.HIndexList[0].name;
|
||||
this.aiSorform = { ...e };
|
||||
this.IndexForm = {};
|
||||
this.userMessage = { ...e.author_account };
|
||||
|
||||
this.HIndexList = this.HIndexList.map((v) => {
|
||||
// v.isEdit = this.isEditIndex(v);
|
||||
v.isEdit = this.isEditIndex(v);
|
||||
return v;
|
||||
});
|
||||
console.log('this.HIndexList at line 1551:', this.HIndexList);
|
||||
this.handleUserIndex(this.HIndexList[this.currentTabIndex].key);
|
||||
this.geogleList = [];
|
||||
this.aiSorbox = true;
|
||||
},
|
||||
isEditIndex(data) {
|
||||
console.log('data at line 1543:', data);
|
||||
var status;
|
||||
var date = '';
|
||||
switch (data.key) {
|
||||
case 'wos':
|
||||
date = this.userMessage.wos_time;
|
||||
break;
|
||||
case 'scopus':
|
||||
date = this.userMessage.scopus_time;
|
||||
break;
|
||||
case 'google':
|
||||
date = this.userMessage.google_time;
|
||||
break;
|
||||
}
|
||||
|
||||
if (date == 0) {
|
||||
status = true;
|
||||
} else {
|
||||
var date1 = new Date(parseInt(date * 1000));
|
||||
var date2 = new Date().getTime();
|
||||
console.log('date2 at line 1564:', date2);
|
||||
|
||||
// 计算时间差(以毫秒为单位)
|
||||
var timeDiff = Number(date2 - date1);
|
||||
console.log('timeDiff at line 1569:', timeDiff);
|
||||
|
||||
// 将半年转换为毫秒
|
||||
var halfYearInMilliseconds = 1000 * 60 * 60 * 24 * 182.5; // 假设一年有 365 天
|
||||
|
||||
// 判断时间差是否大于半年
|
||||
status = timeDiff > halfYearInMilliseconds;
|
||||
if (data.key == 'google' && this.userMessage.g_author == '') {
|
||||
status = true;
|
||||
}
|
||||
}
|
||||
|
||||
return status;
|
||||
console.log('status at line 1578:', status);
|
||||
},
|
||||
changeSelectTabs(e) {
|
||||
console.log('e at line 1536:', e);
|
||||
this.currentTabIndex = e.index;
|
||||
this.currentTabName = e.name;
|
||||
this.googleSearchInfo = '';
|
||||
this.handleUserIndex(this.HIndexList[this.currentTabIndex].key);
|
||||
},
|
||||
// 个人指数修改
|
||||
handleUserIndex(e) {
|
||||
var type = '';
|
||||
var typeName = '';
|
||||
var editor = '';
|
||||
var index = '';
|
||||
var date = '';
|
||||
var website = '';
|
||||
var editor_id = '';
|
||||
var g_author = '';
|
||||
if (e == 3) {
|
||||
this.userloading = true;
|
||||
this.$api
|
||||
.post('api/User/googleGetAuthor', {
|
||||
user_id: this.userMessage.user_id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.geogleList = res.data.authors;
|
||||
this.bankVisible = true;
|
||||
this.userloading = false;
|
||||
} else {
|
||||
if (res.msg == 'no date') {
|
||||
this.googleSearchInfo = 'No information has been found for this account yet.';
|
||||
this.geogleList = [];
|
||||
this.userloading = false;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
this.geogleList = [];
|
||||
this.userloading = false;
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
this.userloading = false;
|
||||
});
|
||||
} else {
|
||||
switch (e) {
|
||||
case 'wos':
|
||||
type = 0;
|
||||
typeName = 'WOS';
|
||||
index = this.userMessage.wos_time != 0 ? this.userMessage.wos_index : '';
|
||||
date = this.userMessage.wos_time;
|
||||
editor = '';
|
||||
break;
|
||||
case 'scopus':
|
||||
type = 1;
|
||||
typeName = 'Scopus';
|
||||
index = this.userMessage.scopus_time != 0 ? this.userMessage.scopus_index : '';
|
||||
date = this.userMessage.scopus_time;
|
||||
website = this.userMessage.scopus_website;
|
||||
editor = this.userMessage.scopus_editor;
|
||||
|
||||
break;
|
||||
case 'google':
|
||||
type = 2;
|
||||
typeName = 'Google';
|
||||
index = this.userMessage.google_time != 0 ? this.userMessage.google_index : '';
|
||||
date = this.userMessage.google_time;
|
||||
website =this.userMessage.g_author?`https://scholar.google.com/citations?hl=en&user=${this.userMessage.g_author}`:'';
|
||||
editor = this.userMessage.google_editor;
|
||||
g_author = this.userMessage.g_author;
|
||||
this.bankVisible = false;
|
||||
this.geogleList = [];
|
||||
break;
|
||||
}
|
||||
|
||||
this.userIndexForm = {
|
||||
type: type,
|
||||
index: index,
|
||||
date: date,
|
||||
website: website,
|
||||
editor_id: localStorage.getItem('U_id'),
|
||||
g_author: g_author,
|
||||
editor: editor,
|
||||
user_id: this.userMessage.user_id,
|
||||
account: this.userMessage.account,
|
||||
typeName: typeName
|
||||
};
|
||||
console.log('this.userIndexForm at line 1641:', this.userIndexForm);
|
||||
// this.userIndexForm.type = e;
|
||||
|
||||
this.userIndexIsEdit = true;
|
||||
}
|
||||
},
|
||||
// 标记弹出框
|
||||
testedit(e) {
|
||||
@@ -1582,6 +1978,7 @@ export default {
|
||||
choseGego(e) {
|
||||
this.IndexForm.g_author = e.author_id;
|
||||
this.IndexForm.g_website = e.link;
|
||||
console.log('this.IndexForm.g_website at line 1965:', this.IndexForm);
|
||||
this.$forceUpdate();
|
||||
},
|
||||
checkAddType(e) {
|
||||
@@ -1892,6 +2289,27 @@ export default {
|
||||
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
return Y + M + D;
|
||||
},
|
||||
colorIndex2(time) {
|
||||
if (time != 0) {
|
||||
let date = new Date(parseInt(time * 1000));
|
||||
let Y = date.getFullYear() + '-';
|
||||
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
|
||||
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
let H = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
|
||||
let U = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
time = Y + M + D;
|
||||
}
|
||||
|
||||
let str = '';
|
||||
|
||||
str = '<span style="font-size:14px;"> ' + time + '</span>';
|
||||
|
||||
if (time == 0) {
|
||||
str = '';
|
||||
// str = '<span style="color:#aaa;font-size:14px;margin-left:5px;">(No time)</span>';
|
||||
}
|
||||
return str;
|
||||
},
|
||||
formatDate_(timestamp) {
|
||||
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var Y = date.getFullYear() + '-';
|
||||
@@ -1944,6 +2362,15 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.HIndex_Box {
|
||||
padding: 20px;
|
||||
padding-top: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.HIndex_userInfo {
|
||||
border: 2px solid #eceef2;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.refreshBtn {
|
||||
cursor: pointer;
|
||||
color: #069;
|
||||
@@ -2261,4 +2688,20 @@ export default {
|
||||
margin-left: 10px;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
.userIndexBox .s_rol {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
}
|
||||
.userIndexBox h3 {
|
||||
color: rgb(0, 102, 153);
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
.userIndexBox .rol_mess {
|
||||
text-align: left;
|
||||
padding-top: 10px !important;
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.userIndexBox .s_rol > div.rol_mess > font {
|
||||
width: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -309,7 +309,12 @@
|
||||
<div class="s_rol">
|
||||
<h3>
|
||||
WOS Index
|
||||
<b class="el-icon-edit pencil" @click="handleUserIndex('wos')" style="float: right"></b>
|
||||
<b
|
||||
class="el-icon-edit pencil"
|
||||
v-if="isEditIndex('wos')"
|
||||
@click="handleUserIndex('wos')"
|
||||
style="float: right"
|
||||
></b>
|
||||
</h3>
|
||||
|
||||
<div class="rol_mess">
|
||||
@@ -324,7 +329,12 @@
|
||||
<div class="s_rol">
|
||||
<h3>
|
||||
Scopus Index
|
||||
<b class="el-icon-edit pencil" @click="handleUserIndex('scopus')" style="float: right"></b>
|
||||
<b
|
||||
class="el-icon-edit pencil"
|
||||
v-if="isEditIndex('scopus')"
|
||||
@click="handleUserIndex('scopus')"
|
||||
style="float: right"
|
||||
></b>
|
||||
</h3>
|
||||
|
||||
<div class="rol_mess">
|
||||
@@ -335,19 +345,39 @@
|
||||
<font>Time :</font>
|
||||
<span v-html="colorIndex2(userMessage.scopus_time)"></span>
|
||||
</div>
|
||||
<div class="rol_mess">
|
||||
<font>Website :</font>
|
||||
<span v-html="userMessage.scopus_website"></span>
|
||||
</div>
|
||||
|
||||
<div class="rol_mess">
|
||||
<font>Editor :</font>
|
||||
<span v-html="userMessage.scopus_editor"></span>
|
||||
</div>
|
||||
<div class="rol_mess">
|
||||
<font>Website :</font>
|
||||
|
||||
<span
|
||||
style="
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: calc(100% - 80px);
|
||||
line-height: 17px;
|
||||
"
|
||||
>
|
||||
<a :href="userMessage.scopus_website" target="_blank" style="color: rgb(0, 102, 153) !important">{{
|
||||
userMessage.scopus_website
|
||||
}}</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="s_rol">
|
||||
<h3>
|
||||
Google Index
|
||||
<b class="el-icon-edit pencil" @click="handleUserIndex('google')" style="float: right"></b>
|
||||
<b
|
||||
class="el-icon-edit pencil"
|
||||
v-if="isEditIndex('google')"
|
||||
@click="handleUserIndex('google')"
|
||||
style="float: right"
|
||||
></b>
|
||||
</h3>
|
||||
|
||||
<div class="rol_mess">
|
||||
@@ -358,15 +388,32 @@
|
||||
<font>Time :</font>
|
||||
<span v-html="colorIndex2(userMessage.google_time)"></span>
|
||||
</div>
|
||||
<div class="rol_mess">
|
||||
<font>Website :</font>
|
||||
<span v-html="userMessage.google_website"></span>
|
||||
</div>
|
||||
|
||||
<div class="rol_mess">
|
||||
<font>Editor :</font>
|
||||
<span v-html="userMessage.google_editor"></span>
|
||||
</div>
|
||||
<div class="rol_mess">
|
||||
<font>Google Author :</font>
|
||||
<span style="line-height: 20px">{{ userMessage.g_author }}</span>
|
||||
</div>
|
||||
<div class="rol_mess">
|
||||
<font>Website :</font>
|
||||
<span
|
||||
style="
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: calc(100% - 80px);
|
||||
line-height: 20px;
|
||||
"
|
||||
>
|
||||
<a :href="this.userMessage.g_author?`https://scholar.google.com/citations?hl=en&user=${this.userMessage.g_author}`:''" target="_blank" style="color: rgb(0, 102, 153) !important">{{
|
||||
this.userMessage.g_author?`https://scholar.google.com/citations?hl=en&user=${this.userMessage.g_author}`:''
|
||||
}}</a>
|
||||
</span>
|
||||
</div>
|
||||
<!-- <div class="rol_mess">
|
||||
<font>Google ID :</font>
|
||||
<span></span>
|
||||
@@ -793,7 +840,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<span slot="label"> Index : </span>
|
||||
<el-input v-model="userIndexForm.index"></el-input>
|
||||
<el-input v-model="userIndexForm.index" :disabled="userIndexForm.type == 2"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<template v-if="userIndexForm.type == 1">
|
||||
@@ -834,6 +881,9 @@
|
||||
v-if="userMessage.g_author == ''"
|
||||
>Certified
|
||||
</el-button>
|
||||
<span style="margin: 0 0 0 5px; padding: 5px 12px; color: #999" v-if="googleSearchInfo != ''">
|
||||
( {{ googleSearchInfo }} )</span
|
||||
>
|
||||
</el-form-item>
|
||||
|
||||
<p v-if="geogleList.length != 0 && bankVisible" style="margin: 20px 0 20px 0; font-weight: bold">
|
||||
@@ -1203,6 +1253,7 @@ export default {
|
||||
}
|
||||
],
|
||||
role_author: 0,
|
||||
googleSearchInfo:'',
|
||||
role_editor: 0,
|
||||
role_chief: 0,
|
||||
role_reviewer: 0,
|
||||
@@ -1657,6 +1708,47 @@ export default {
|
||||
this.indexVisible = true;
|
||||
}
|
||||
},
|
||||
|
||||
isEditIndex(data) {
|
||||
console.log('data at line 1543:', this.userMessage);
|
||||
var status;
|
||||
var date = '';
|
||||
switch (data) {
|
||||
case 'wos':
|
||||
date = this.userMessage.wos_time;
|
||||
console.log('date at line 1714:', date)
|
||||
break;
|
||||
case 'scopus':
|
||||
date = this.userMessage.scopus_time;
|
||||
break;
|
||||
case 'google':
|
||||
date = this.userMessage.google_time;
|
||||
break;
|
||||
}
|
||||
console.log('date at line 1714:', date);
|
||||
if (date == 0) {
|
||||
status = true;
|
||||
} else {
|
||||
var date1 = new Date(parseInt(date * 1000));
|
||||
var date2 = new Date().getTime();
|
||||
console.log('date2 at line 1564:', date2);
|
||||
|
||||
// 计算时间差(以毫秒为单位)
|
||||
var timeDiff = Number(date2 - date1);
|
||||
console.log('timeDiff at line 1569:', timeDiff);
|
||||
|
||||
// 将半年转换为毫秒
|
||||
var halfYearInMilliseconds = 1000 * 60 * 60 * 24 * 182.5; // 假设一年有 365 天
|
||||
|
||||
// 判断时间差是否大于半年
|
||||
status = timeDiff > halfYearInMilliseconds;
|
||||
if (data == 'google' && this.userMessage.g_author == '') {
|
||||
status = true;
|
||||
}
|
||||
}
|
||||
console.log('status at line 1578:', status);
|
||||
return status;
|
||||
},
|
||||
// 个人指数修改
|
||||
handleUserIndex(e) {
|
||||
var type = '';
|
||||
@@ -1678,8 +1770,15 @@ export default {
|
||||
this.bankVisible = true;
|
||||
this.userloading = false;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
this.userloading = false;
|
||||
if (res.msg == 'no date') {
|
||||
this.googleSearchInfo = 'No information has been found for this account yet.';
|
||||
this.geogleList = [];
|
||||
this.userloading = false;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
this.geogleList = [];
|
||||
this.userloading = false;
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
@@ -1771,10 +1870,22 @@ export default {
|
||||
let link_geo = '';
|
||||
if (this.userIndexForm.type == 2) {
|
||||
if (this.userIndexForm.g_author == '') {
|
||||
this.$message.error('Please select one!');
|
||||
return;
|
||||
if (this.bankVisible) {
|
||||
console.log('this.bankVisible at line 1294:', this.bankVisible);
|
||||
this.$message.error('Please select one!');
|
||||
return;
|
||||
} else {
|
||||
if (this.googleSearchInfo != '') {
|
||||
this.$message.error(this.googleSearchInfo);
|
||||
return;
|
||||
} else {
|
||||
this.$message.error('Please click Certified!');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
link_geo = 'api/User/googleBindAuthor';
|
||||
link_geo = 'api/User/editUserIndex';
|
||||
// link_geo = 'api/User/googleBindAuthor';
|
||||
} else {
|
||||
link_geo = 'api/User/editUserIndex';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user