分析
This commit is contained in:
@@ -59,6 +59,19 @@ const en = {
|
||||
all:'All references',
|
||||
factor: 'Factor',
|
||||
},
|
||||
paperArticleCount:{
|
||||
Periodroll:'Period Roll',
|
||||
article:'Articles',
|
||||
articleTitle:'Article Tiltle',
|
||||
articleLen:'Number Of Articles',
|
||||
articleLen1:'Articles',
|
||||
cite:'Cited',
|
||||
relation:'Relation',
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
||||
sidebar: {
|
||||
main: 'Personal Center',
|
||||
author: 'Author',
|
||||
|
||||
@@ -30,7 +30,7 @@ const zh = {
|
||||
PaperPublicationSupervise: '论文出版监督',
|
||||
PaperSubmitanalysis: '论文提交分析',
|
||||
ArticlePublicationanalysis: '文章发表分析',
|
||||
|
||||
|
||||
journalArticleCount: '文章计数',
|
||||
Promotionsystem: '推广管理',
|
||||
Userdatabase: '用户数据库',
|
||||
@@ -43,21 +43,31 @@ const zh = {
|
||||
userManSys7: '黑名单',
|
||||
userManSys6: '推广记录',
|
||||
JournalCitationAnalysis: '期刊引文分析',
|
||||
Academicresourcesupervise:'学术资源监督',
|
||||
publicationsupervise:'出版监督',
|
||||
papersubmit:'论文提交',
|
||||
ArticlePublication:'文章发表',
|
||||
JournalCitationAnalysis:'期刊引文分析',
|
||||
|
||||
|
||||
}, JournalCitationAnalysis:{
|
||||
journal:'期刊',
|
||||
editor:'编辑',
|
||||
cite:'引用数量',
|
||||
article:'文章数量', info:'以下数据为',wos:'Wos',
|
||||
all:'全部引用',
|
||||
Academicresourcesupervise: '学术资源监督',
|
||||
publicationsupervise: '出版监督',
|
||||
papersubmit: '论文提交',
|
||||
ArticlePublication: '文章发表',
|
||||
JournalCitationAnalysis: '期刊引文分析',
|
||||
|
||||
|
||||
}, JournalCitationAnalysis: {
|
||||
journal: '期刊',
|
||||
editor: '编辑',
|
||||
cite: '引用数量',
|
||||
article: '文章数量', info: '以下数据为', wos: 'Wos',
|
||||
all: '全部引用',
|
||||
factor: '影响因子',
|
||||
},
|
||||
paperArticleCount: {
|
||||
Periodroll: '期卷',
|
||||
article: '文章',
|
||||
articleTitle: '文章标题',
|
||||
articleLen: '文章数量',
|
||||
articleLen1: '文章数量',
|
||||
cite: '引用',
|
||||
relation: '关联',
|
||||
|
||||
},
|
||||
sidebar: {
|
||||
main: '个人中心',
|
||||
author: '作者',
|
||||
@@ -204,12 +214,12 @@ const zh = {
|
||||
role4: '青年编委',
|
||||
}, journalArticleCount: {
|
||||
yearTitle: '年度总投稿量',
|
||||
monthTitle: '月度投稿量',
|
||||
monthTitle: '月度投稿量',
|
||||
dataTitle: '投稿量',
|
||||
transferQuantity: '转出量',
|
||||
|
||||
info:'以下数据为',
|
||||
loading:'加载中',
|
||||
|
||||
info: '以下数据为',
|
||||
loading: '加载中',
|
||||
},
|
||||
journalArticleTable: {
|
||||
title: '期刊',
|
||||
@@ -223,7 +233,7 @@ const zh = {
|
||||
Continue: '继续',
|
||||
Cancel: '取消',
|
||||
Prompt: '提示',
|
||||
},
|
||||
},
|
||||
citeList: {
|
||||
refresh: '检查更新',
|
||||
search: '查询',
|
||||
@@ -252,14 +262,14 @@ const zh = {
|
||||
dialogQueryButton: '查询',
|
||||
dialogQueryButtonInfo: '您可以单击右侧的“查询”以自动识别并快速填写所有当前字段',
|
||||
dialogQueryButtonErrInfo: '暂无相关信息',
|
||||
rulesDoiInfo:'请输入Doi',
|
||||
rulesJournalInfo:'请输入期刊标题',
|
||||
rulesDoiInfo: '请输入Doi',
|
||||
rulesJournalInfo: '请输入期刊标题',
|
||||
rulesAuthorInfo: '请输入作者',
|
||||
rulesVolInfo: '请输入出版时间',
|
||||
rulesArticleInfo:'请输入文章标题',
|
||||
authorInfo:'六位或更少的作者需要列出所有作者,而六位以上的作者需要在“et al”中列出其中三位作者。',
|
||||
author:'作者',
|
||||
publicationTime:'年份',
|
||||
rulesArticleInfo: '请输入文章标题',
|
||||
authorInfo: '六位或更少的作者需要列出所有作者,而六位以上的作者需要在“et al”中列出其中三位作者。',
|
||||
author: '作者',
|
||||
publicationTime: '年份',
|
||||
publicationTimeInfo: '年份;卷(期):包括页码。',
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,25 +1,334 @@
|
||||
<template>
|
||||
<div class="container" style="padding-bottom: 50px; width: 100%; height: 100%" v-loading="loading" >
|
||||
<p style="color: #333;">暂未开启,敬请等待</p>
|
||||
<div class="container" style="padding-bottom: 50px; width: 100%; height: 100%">
|
||||
<div class="block">
|
||||
<el-select
|
||||
v-model="journal_id"
|
||||
filterable
|
||||
placeholder="Please select a Journal"
|
||||
value-key="groupID"
|
||||
style="width: 300px; margin-right: 10px"
|
||||
@change="chan_id"
|
||||
>
|
||||
<el-option v-for="item in evaList" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
<el-date-picker
|
||||
@change="selectYear"
|
||||
:picker-options="pickerOption"
|
||||
style="width: 200px"
|
||||
:clearable="false"
|
||||
v-model="currentYear"
|
||||
type="year"
|
||||
format="yyyy"
|
||||
placeholder="选择年"
|
||||
>
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div style="margin-top: 20px" v-loading="loading">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
class="msg-table"
|
||||
empty-text="New Data (0)"
|
||||
:tree-props="{ children: 'articles', hasChildren: 'hasChildren' }"
|
||||
>
|
||||
<el-table-column type="expand" width="15" align="center">
|
||||
<template slot-scope="props">
|
||||
<!-- {{ props.row.articles.length }} -->
|
||||
<div class="articleTable">
|
||||
<el-table
|
||||
row-key="article_id"
|
||||
style="width: calc(100% - 20px); float: right; margin-top: 15px; margin-bottom: 20px"
|
||||
border
|
||||
:data="props.row.articles"
|
||||
class=""
|
||||
empty-text="New Data (0)"
|
||||
>
|
||||
<!-- <el-table-column type="index" label="No." width="45" align="center"></el-table-column> -->
|
||||
<el-table-column :label="`${$t('paperArticleCount.articleTitle')}`" width="" prop="title">
|
||||
<template slot-scope="scope">
|
||||
<span style="font-size: 700">{{ scope.$index + 1 }}. </span> {{ scope.row.title }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('paperArticleCount.cite')" prop="title" width="80">
|
||||
<template slot-scope="scope">
|
||||
<el-popover
|
||||
ref="popover"
|
||||
placement="right"
|
||||
trigger="click"
|
||||
width="700"
|
||||
v-if="scope.row.cites && scope.row.cites > 0"
|
||||
>
|
||||
<ul style="padding: 10px; box-sizing: border-box; max-height: 500px; overflow-y: auto">
|
||||
<li v-for="(v, i) in citeList" style="overflow: hidden; margin-bottom: 10px">
|
||||
<div style="color: #7a2702; margin-right: 10px; float: left">{{ i + 1 }} .</div>
|
||||
<div style="float: left">
|
||||
<div style="margin-bottom: 2px">
|
||||
<a
|
||||
target="_blank"
|
||||
:href="`https://doi.org/${v.doi}`"
|
||||
style="color: #205493 !important"
|
||||
>{{ v.article_name }}</a
|
||||
>
|
||||
</div>
|
||||
<div style="color: #a2b1b6">
|
||||
<span>{{ v.author }}</span>
|
||||
<span style="margin-left: 5px">{{ v.journal_name }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div
|
||||
:style="`text-align: center; color:${
|
||||
scope.row.cites && scope.row.cites > 0 ? '#006699' : '#b0b0b0'
|
||||
}; cursor: pointer;font-weight:${scope.row.cites && scope.row.cites > 0 ? '700' : '500'};`"
|
||||
slot="reference"
|
||||
@click="getCite(scope.row.article_id)"
|
||||
>
|
||||
{{ scope.row.cites ? scope.row.cites : 0 }}
|
||||
</div>
|
||||
</el-popover>
|
||||
<div style="text-align: center; color: #b0b0b0; cursor: pointer" v-else>
|
||||
{{ scope.row.cites ? scope.row.cites : 0 }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('paperArticleCount.relation')" prop="title" width="80">
|
||||
<template slot-scope="scope">
|
||||
<el-popover
|
||||
ref="popover1"
|
||||
placement="right"
|
||||
trigger="click"
|
||||
width="700"
|
||||
v-if="scope.row.relations && scope.row.relations > 0"
|
||||
>
|
||||
<ul
|
||||
style="padding: 10px; box-sizing: border-box; max-height: 500px; overflow-y: auto"
|
||||
v-loading="citeLoading"
|
||||
>
|
||||
<li v-for="(v, i) in relationsList" style="overflow: hidden; margin-bottom: 10px">
|
||||
<div style="color: #7a2702; margin-right: 10px; float: left">{{ i + 1 }} .</div>
|
||||
<div style="float: left; width: calc(100% - 100px)">
|
||||
<div style="margin-bottom: 2px">
|
||||
<a
|
||||
target="_blank"
|
||||
:href="`https://doi.org/${v.doi}`"
|
||||
style="color: #205493 !important"
|
||||
>{{ v.title }}</a
|
||||
>
|
||||
</div>
|
||||
<div style="color: #a2b1b6">
|
||||
<span>{{ v.abbr }}</span>
|
||||
<span style="margin-left: 5px">{{ v.journal_name }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div
|
||||
:style="`text-align: center; color:${
|
||||
scope.row.relations && scope.row.relations > 0 ? '#006699' : '#b0b0b0'
|
||||
}; cursor: pointer;font-weight:${
|
||||
scope.row.relations && scope.row.relations > 0 ? '700' : '500'
|
||||
};`"
|
||||
slot="reference"
|
||||
@click="getArticleCountRelatedForEditor(scope.row.article_id)"
|
||||
>
|
||||
{{ scope.row.relations ? scope.row.relations : 0 }}
|
||||
</div>
|
||||
</el-popover>
|
||||
<div style="text-align: center; color: #b0b0b0; cursor: pointer" v-else>
|
||||
{{ scope.row.relations ? scope.row.relations : 0 }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :label="$t('paperArticleCount.Periodroll')" width="" prop="title">
|
||||
<template slot-scope="scope">
|
||||
<div style="display: flex; align-items: center; justify-content: space-between">
|
||||
<div>
|
||||
<span style="display: inline-block; width: 140px; font-weight: 700; color: #333"
|
||||
>Issue.{{ scope.$index + 1 }} No.{{ scope.row.stage_page }}</span
|
||||
>
|
||||
<span style="color: #006699"
|
||||
>( {{ $t('paperArticleCount.articleLen1') }} : {{ scope.row.articles.length }} )</span
|
||||
>
|
||||
</div>
|
||||
|
||||
<span style="color: #b0b0b0; display: inline-block; width: 120px"> {{ scope.row.issue_date }} </span>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false
|
||||
citeLoading: false,
|
||||
expandedRows: [],
|
||||
lang: !localStorage.getItem('langs') || localStorage.getItem('langs') == 'en' ? 'en' : 'zh',
|
||||
pickerOption: {
|
||||
disabledDate(time) {
|
||||
return time.getFullYear() < 2020 || time.getFullYear() > new Date().getFullYear();
|
||||
}
|
||||
},
|
||||
currentYear: '',
|
||||
loading: false,
|
||||
journal_id: '',
|
||||
citeList: [],
|
||||
relationsList: [],
|
||||
evaList: [],
|
||||
tableData: [],
|
||||
journal_data: {},
|
||||
user_id: localStorage.getItem('U_id')
|
||||
};
|
||||
},
|
||||
components: {
|
||||
|
||||
},
|
||||
components: {},
|
||||
async created() {
|
||||
|
||||
this.maxYear = new Date();
|
||||
this.currentYear = new Date();
|
||||
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
toggleRow(row) {
|
||||
const index = this.expandedRows.indexOf(row.journal_stage_id);
|
||||
if (index === -1) {
|
||||
this.expandedRows.push(row.journal_stage_id);
|
||||
} else {
|
||||
this.expandedRows.splice(index, 1);
|
||||
}
|
||||
},
|
||||
async chan_id(value) {
|
||||
this.loading = true;
|
||||
console.log('value at line 138:', value);
|
||||
// this.$echarts.init(document.getElementById('myChart')).clear();
|
||||
// this.$echarts.init(document.getElementById('myChartgjhp')).clear();
|
||||
this.journal_id = value;
|
||||
console.log('this.evaList at line 169:', this.evaList);
|
||||
this.journal_data = this.evaList.find((e) => e.journal_id == this.journal_id);
|
||||
this.currentYear = new Date();
|
||||
this.getInfo();
|
||||
// await this.initEcharts();
|
||||
// await this.initEchartsgjh();
|
||||
},
|
||||
// 获取数据
|
||||
async getData() {
|
||||
this.loading = true;
|
||||
|
||||
this.$api
|
||||
.post('api/Super/editorJournal', {
|
||||
editor_id: this.user_id
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (res.code == 0) {
|
||||
this.loading = false;
|
||||
this.evaList = res.data.list;
|
||||
this.journal_id = res.data.list[0].journal_id;
|
||||
console.log('this.evaList at line 169:', this.evaList);
|
||||
this.journal_data = this.evaList.find((e) => e.journal_id == this.journal_id);
|
||||
|
||||
await this.getInfo();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.loading = false;
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
selectYear() {
|
||||
this.loading = true;
|
||||
this.getInfo();
|
||||
},
|
||||
async getInfo() {
|
||||
var that = this;
|
||||
await this.$api
|
||||
.post('api/Monitor/getPublicStagesForEditor', {
|
||||
journal_id: this.journal_id,
|
||||
year: this.currentYear.getFullYear()
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (res.code == 0) {
|
||||
var data = res.data.list;
|
||||
console.log('data at line 177:', data);
|
||||
|
||||
that.tableData = [...data];
|
||||
console.log('this.tableData at line 177:', this.tableData);
|
||||
this.$forceUpdate();
|
||||
this.loading = false;
|
||||
} else {
|
||||
this.loading = false;
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.loading = false;
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
async getCite(id) {
|
||||
var that = this;
|
||||
this.citeList = [];
|
||||
this.citeLoading = true;
|
||||
await this.$api
|
||||
.post('api/Monitor/getArticleCountCiteForEditor', {
|
||||
article_id: id
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (res.code == 0) {
|
||||
this.citeList = res.data.list;
|
||||
this.citeLoading = false;
|
||||
setTimeout(() => {
|
||||
that.$nextTick(() => {
|
||||
that.$refs.popover.updatePopper();
|
||||
});
|
||||
}, 100);
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
this.citeLoading = false;
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
this.citeLoading = false;
|
||||
});
|
||||
},
|
||||
async getArticleCountRelatedForEditor(id) {
|
||||
var that = this;
|
||||
this.citeLoading = true;
|
||||
this.relationsList = [];
|
||||
await this.$api
|
||||
.post('api/Monitor/getArticleCountRelatedForEditor', {
|
||||
article_id: id
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (res.code == 0) {
|
||||
this.relationsList = res.data.list;
|
||||
this.citeLoading = false;
|
||||
setTimeout(() => {
|
||||
that.$nextTick(() => {
|
||||
that.$refs.popover1.updatePopper();
|
||||
});
|
||||
}, 100);
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
this.citeLoading = false;
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
this.citeLoading = false;
|
||||
});
|
||||
},
|
||||
handleRefresh() {},
|
||||
async getEchartsData() {
|
||||
await this.getCharts('year');
|
||||
@@ -221,6 +530,11 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/deep/.articleTable .el-table th {
|
||||
background-color: #f0f0f0 !important;
|
||||
color: #006699 !important;
|
||||
padding: 3px !important;
|
||||
}
|
||||
.container {
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
@@ -234,4 +548,24 @@ export default {
|
||||
right: 0px;
|
||||
z-index: 10;
|
||||
}
|
||||
.demo-table-expand {
|
||||
font-size: 0;
|
||||
}
|
||||
.demo-table-expand label {
|
||||
width: 90px;
|
||||
color: #99a9bf;
|
||||
}
|
||||
.demo-table-expand .el-form-item {
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
li a:hover {
|
||||
text-decoration: underline; /* 鼠标移入时显示下划线 */
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user