分析
This commit is contained in:
@@ -59,6 +59,19 @@ const en = {
|
|||||||
all:'All references',
|
all:'All references',
|
||||||
factor: 'Factor',
|
factor: 'Factor',
|
||||||
},
|
},
|
||||||
|
paperArticleCount:{
|
||||||
|
Periodroll:'Period Roll',
|
||||||
|
article:'Articles',
|
||||||
|
articleTitle:'Article Tiltle',
|
||||||
|
articleLen:'Number Of Articles',
|
||||||
|
articleLen1:'Articles',
|
||||||
|
cite:'Cited',
|
||||||
|
relation:'Relation',
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sidebar: {
|
sidebar: {
|
||||||
main: 'Personal Center',
|
main: 'Personal Center',
|
||||||
author: 'Author',
|
author: 'Author',
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ const zh = {
|
|||||||
PaperPublicationSupervise: '论文出版监督',
|
PaperPublicationSupervise: '论文出版监督',
|
||||||
PaperSubmitanalysis: '论文提交分析',
|
PaperSubmitanalysis: '论文提交分析',
|
||||||
ArticlePublicationanalysis: '文章发表分析',
|
ArticlePublicationanalysis: '文章发表分析',
|
||||||
|
|
||||||
journalArticleCount: '文章计数',
|
journalArticleCount: '文章计数',
|
||||||
Promotionsystem: '推广管理',
|
Promotionsystem: '推广管理',
|
||||||
Userdatabase: '用户数据库',
|
Userdatabase: '用户数据库',
|
||||||
@@ -43,21 +43,31 @@ const zh = {
|
|||||||
userManSys7: '黑名单',
|
userManSys7: '黑名单',
|
||||||
userManSys6: '推广记录',
|
userManSys6: '推广记录',
|
||||||
JournalCitationAnalysis: '期刊引文分析',
|
JournalCitationAnalysis: '期刊引文分析',
|
||||||
Academicresourcesupervise:'学术资源监督',
|
Academicresourcesupervise: '学术资源监督',
|
||||||
publicationsupervise:'出版监督',
|
publicationsupervise: '出版监督',
|
||||||
papersubmit:'论文提交',
|
papersubmit: '论文提交',
|
||||||
ArticlePublication:'文章发表',
|
ArticlePublication: '文章发表',
|
||||||
JournalCitationAnalysis:'期刊引文分析',
|
JournalCitationAnalysis: '期刊引文分析',
|
||||||
|
|
||||||
|
|
||||||
}, JournalCitationAnalysis:{
|
}, JournalCitationAnalysis: {
|
||||||
journal:'期刊',
|
journal: '期刊',
|
||||||
editor:'编辑',
|
editor: '编辑',
|
||||||
cite:'引用数量',
|
cite: '引用数量',
|
||||||
article:'文章数量', info:'以下数据为',wos:'Wos',
|
article: '文章数量', info: '以下数据为', wos: 'Wos',
|
||||||
all:'全部引用',
|
all: '全部引用',
|
||||||
factor: '影响因子',
|
factor: '影响因子',
|
||||||
},
|
},
|
||||||
|
paperArticleCount: {
|
||||||
|
Periodroll: '期卷',
|
||||||
|
article: '文章',
|
||||||
|
articleTitle: '文章标题',
|
||||||
|
articleLen: '文章数量',
|
||||||
|
articleLen1: '文章数量',
|
||||||
|
cite: '引用',
|
||||||
|
relation: '关联',
|
||||||
|
|
||||||
|
},
|
||||||
sidebar: {
|
sidebar: {
|
||||||
main: '个人中心',
|
main: '个人中心',
|
||||||
author: '作者',
|
author: '作者',
|
||||||
@@ -204,12 +214,12 @@ const zh = {
|
|||||||
role4: '青年编委',
|
role4: '青年编委',
|
||||||
}, journalArticleCount: {
|
}, journalArticleCount: {
|
||||||
yearTitle: '年度总投稿量',
|
yearTitle: '年度总投稿量',
|
||||||
monthTitle: '月度投稿量',
|
monthTitle: '月度投稿量',
|
||||||
dataTitle: '投稿量',
|
dataTitle: '投稿量',
|
||||||
transferQuantity: '转出量',
|
transferQuantity: '转出量',
|
||||||
|
|
||||||
info:'以下数据为',
|
info: '以下数据为',
|
||||||
loading:'加载中',
|
loading: '加载中',
|
||||||
},
|
},
|
||||||
journalArticleTable: {
|
journalArticleTable: {
|
||||||
title: '期刊',
|
title: '期刊',
|
||||||
@@ -223,7 +233,7 @@ const zh = {
|
|||||||
Continue: '继续',
|
Continue: '继续',
|
||||||
Cancel: '取消',
|
Cancel: '取消',
|
||||||
Prompt: '提示',
|
Prompt: '提示',
|
||||||
},
|
},
|
||||||
citeList: {
|
citeList: {
|
||||||
refresh: '检查更新',
|
refresh: '检查更新',
|
||||||
search: '查询',
|
search: '查询',
|
||||||
@@ -252,14 +262,14 @@ const zh = {
|
|||||||
dialogQueryButton: '查询',
|
dialogQueryButton: '查询',
|
||||||
dialogQueryButtonInfo: '您可以单击右侧的“查询”以自动识别并快速填写所有当前字段',
|
dialogQueryButtonInfo: '您可以单击右侧的“查询”以自动识别并快速填写所有当前字段',
|
||||||
dialogQueryButtonErrInfo: '暂无相关信息',
|
dialogQueryButtonErrInfo: '暂无相关信息',
|
||||||
rulesDoiInfo:'请输入Doi',
|
rulesDoiInfo: '请输入Doi',
|
||||||
rulesJournalInfo:'请输入期刊标题',
|
rulesJournalInfo: '请输入期刊标题',
|
||||||
rulesAuthorInfo: '请输入作者',
|
rulesAuthorInfo: '请输入作者',
|
||||||
rulesVolInfo: '请输入出版时间',
|
rulesVolInfo: '请输入出版时间',
|
||||||
rulesArticleInfo:'请输入文章标题',
|
rulesArticleInfo: '请输入文章标题',
|
||||||
authorInfo:'六位或更少的作者需要列出所有作者,而六位以上的作者需要在“et al”中列出其中三位作者。',
|
authorInfo: '六位或更少的作者需要列出所有作者,而六位以上的作者需要在“et al”中列出其中三位作者。',
|
||||||
author:'作者',
|
author: '作者',
|
||||||
publicationTime:'年份',
|
publicationTime: '年份',
|
||||||
publicationTimeInfo: '年份;卷(期):包括页码。',
|
publicationTimeInfo: '年份;卷(期):包括页码。',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,334 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="container" style="padding-bottom: 50px; width: 100%; height: 100%" v-loading="loading" >
|
<div class="container" style="padding-bottom: 50px; width: 100%; height: 100%">
|
||||||
<p style="color: #333;">暂未开启,敬请等待</p>
|
<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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
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() {
|
async created() {
|
||||||
|
this.maxYear = new Date();
|
||||||
|
this.currentYear = new Date();
|
||||||
|
|
||||||
|
this.getData();
|
||||||
},
|
},
|
||||||
methods: {
|
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() {},
|
handleRefresh() {},
|
||||||
async getEchartsData() {
|
async getEchartsData() {
|
||||||
await this.getCharts('year');
|
await this.getCharts('year');
|
||||||
@@ -221,6 +530,11 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
/deep/.articleTable .el-table th {
|
||||||
|
background-color: #f0f0f0 !important;
|
||||||
|
color: #006699 !important;
|
||||||
|
padding: 3px !important;
|
||||||
|
}
|
||||||
.container {
|
.container {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@@ -234,4 +548,24 @@ export default {
|
|||||||
right: 0px;
|
right: 0px;
|
||||||
z-index: 10;
|
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>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user