-
+
@@ -34,12 +34,13 @@ export default {
vTags
},
created() {
- bus.$on('collapse-content', msg => {
+ bus.$on('collapse-content', (msg) => {
this.collapse = msg;
+ localStorage.setItem('collapse', this.collapse);
});
// 只有在标签页列表里的页面才使用keep-alive,即关闭标签之后就不保存到内存中了。
- bus.$on('tags', msg => {
+ bus.$on('tags', (msg) => {
let arr = [];
for (let i = 0, len = msg.length; i < len; i++) {
msg[i].name && arr.push(msg[i].name);
diff --git a/src/components/common/Sidebar.vue b/src/components/common/Sidebar.vue
index a9a1e4c..b6bb43e 100644
--- a/src/components/common/Sidebar.vue
+++ b/src/components/common/Sidebar.vue
@@ -462,6 +462,11 @@ export default {
index: '5',
title: this.$t('sidebar.journalManagement'),
subs: [
+ {
+ index: 'JournalManagement',
+ title: this.$t('sidebar.journalManagement')
+ },
+
{
index: 'Journal_Agreement',
title: this.$t('sidebar.userManSys11')
@@ -626,6 +631,7 @@ export default {
}
},
created() {
+ localStorage.setItem('collapse', this.collapse);
if (this.userrole == 2) {
//其余的身份(显示作者)
// if (this.user_cap.includes('chief')) { //主编
@@ -652,12 +658,27 @@ export default {
this.items.splice(
3,
0,
-
+
{
icon: 'el-icon-s-platform',
index: '13',
title: this.$t('sidebar.chiefInspector'),
subs: [
+ {
+ index: 'Classificationmanagement',
+ title: this.$t('menu.Classificationmanagement'),
+ subs: [
+ {
+ index: 'JournalManagementAll',
+ title: this.$t('sidebar.journalManagement')
+ },
+ {
+ index: 'GroupClassification',
+ title: this.$t('sidebar.GroupClassification')
+ }
+ ]
+ },
+
{
index: 'Academicresourcesupervise',
title: this.$t('menu.Academicresourcesupervise'),
@@ -700,8 +721,9 @@ export default {
}
);
-
- this.items=[...this.items,{
+ this.items = [
+ ...this.items,
+ {
icon: 'el-icon-s-operation',
index: '12',
title: this.$t('sidebar.managingDirector'),
@@ -711,12 +733,14 @@ export default {
title: this.$t('sidebar.chief1')
}
]
- },]
+ }
+ ];
}
// 通过 Event Bus 进行组件间通信,来折叠侧边栏
bus.$on('collapse', (msg) => {
this.collapse = msg;
+ localStorage.setItem('collapse', this.collapse);
bus.$emit('collapse-content', msg);
});
},
diff --git a/src/components/common/langs/en.js b/src/components/common/langs/en.js
index 2d09659..81aef47 100644
--- a/src/components/common/langs/en.js
+++ b/src/components/common/langs/en.js
@@ -43,12 +43,38 @@ const en = {
userManSys6: 'Promotion Record',
JournalCitationAnalysis: 'Journal Citation Analysis',
Academicresourcesupervise: 'Academic Resource Supervise',
+ Classificationmanagement: 'Classification Management',
publicationsupervise: 'Publication Supervise',
papersubmit: 'Paper Submit',
ArticlePublication: 'Article Publication',
JournalCitationAnalysis: 'Journal Citation Analysis',
},
+
+
+ GroupClassification: {
+ add: 'Add',
+ cancel: 'Cancel',
+ submit: 'Submit',
+ edit: 'Edit',
+ delete: 'Delete',
+ major_title: 'Major Title',
+ major_current: 'Current Major',
+ nickname: 'Nick Name',
+ enter: 'Please Enter...',
+ sort: 'Sort',
+ deleteInfo: 'Are you sure you want to delete this category',
+ Unbind: 'Unbind',
+ bind: 'Bind',
+ ExpandAll: 'Expand All',
+ Journal: 'Journal',
+ JournalBindInfo: 'The Journal',
+ BindInfo: 'will be bound to this category, Do you want to continue?',
+ UnBindInfo: 'will unbind this category, Do you want to continue?',
+ Tips: 'Tips',
+ AssociatedJournal: 'Associated Journal',
+
+ },
JournalCitationAnalysis: {
journal: 'Journal',
editor: 'Editor',
@@ -61,7 +87,8 @@ const en = {
all: 'All references',
factor: 'Factor',
Sameperiod: 'Same period',
-
+ ArticleInfo: 'Article Information',
+
},
partyRole: {
@@ -202,7 +229,8 @@ const en = {
editorialBoard3: 'Journal Management',
chiefInspector: 'Chief Inspector',
journalArticleCount: 'Journal Article Count',
- managingDirector: 'Managing Director'
+ managingDirector: 'Managing Director',
+ GroupClassification: 'Group Classification',
},
home: {
authortop: 'Author guide',
diff --git a/src/components/common/langs/zh.js b/src/components/common/langs/zh.js
index f8c44c7..024ad0b 100644
--- a/src/components/common/langs/zh.js
+++ b/src/components/common/langs/zh.js
@@ -44,21 +44,48 @@ const zh = {
userManSys6: '推广记录',
JournalCitationAnalysis: '期刊引文分析',
Academicresourcesupervise: '学术资源监督',
+ Classificationmanagement: '分类管理',
publicationsupervise: '出版监督',
papersubmit: '论文提交',
ArticlePublication: '文章发表',
JournalCitationAnalysis: '期刊引文分析',
- }, JournalCitationAnalysis: {
+ },
+
+ GroupClassification: {
+ add: '新增',
+ cancel: '取消',
+ submit: '确定',
+ edit: '编辑',
+ delete: '删除',
+ major_title: '分类名称',
+ major_current: '当前分类',
+ nickname: '分类昵称',
+ enter: '请输入...',
+ sort: '排序',
+ deleteInfo: '确定要删除该分类吗',
+ Unbind: '解绑',
+ bind: '绑定',
+ ExpandAll: '全部展开',
+ Journal: '期刊',
+ JournalBindInfo: '期刊',
+ BindInfo: '将
【绑定】该分类, 是否继续?',
+ UnBindInfo: '将
【解绑】该分类, 是否继续?',
+ Tips: '提示',
+ AssociatedJournal:'关联期刊',
+ },
+
+ JournalCitationAnalysis: {
journal: '期刊',
editor: '编辑',
cite: '引用数量',
article: '文章数量',
citeNum: '引用数量',
articleNum: '文章数量',
-
-
+ ArticleInfo: '文章信息',
+
+
info: '以下数据为', wos: 'Wos',
all: '全部引用',
factor: '影响因子',
@@ -76,8 +103,8 @@ const zh = {
}, partyListCorr: {
Realname: '姓名',
Email: '邮箱',
- unregistered:'unregistered',
- OtherInformation:'其他信息',
+ unregistered: 'unregistered',
+ OtherInformation: '其他信息',
articlelist: '文章列表',
journal: '期刊',
Authors: '作者',
@@ -87,7 +114,7 @@ const zh = {
InvestorProducer: '投稿者',
author: '作者',
status: '状态',
- Published: '已发表',journal:'Journal',
+ Published: '已发表', journal: 'Journal',
},
sidebar: {
main: '个人中心',
@@ -198,7 +225,8 @@ const zh = {
editorialBoard3: '期刊列表',
chiefInspector: '总监',
journalArticleCount: '期刊文章计数总结',
- managingDirector: '总经理'
+ managingDirector: '总经理',
+ GroupClassification: '集团分类',
},
home: {
authortop: '用户指南',
diff --git a/src/components/org-tree/index.js b/src/components/org-tree/index.js
new file mode 100644
index 0000000..554ed5f
--- /dev/null
+++ b/src/components/org-tree/index.js
@@ -0,0 +1,19 @@
+import OrgTree from './org-tree'
+
+const install = Vue => {
+ if (install.installed) {
+ return
+ }
+
+ install.installed = true
+
+ Vue.component(OrgTree.name, OrgTree)
+}
+
+OrgTree.install = install
+
+if (typeof window !== 'undefined' && window.Vue) {
+ window.Vue.use(OrgTree)
+}
+
+export default OrgTree
diff --git a/src/components/org-tree/node.js b/src/components/org-tree/node.js
new file mode 100644
index 0000000..4d7b3d0
--- /dev/null
+++ b/src/components/org-tree/node.js
@@ -0,0 +1,177 @@
+// 判断是否叶子节点
+const isLeaf = (data, prop) => {
+ return !(Array.isArray(data[prop]) && data[prop].length > 0)
+}
+// console.info('Thank you for using vue-tree-color \nIf you have any questions about this plug-in, please contact me in the following ways \nWeChat: yanjiahui12345 \nWeChat official number: Web_Miao')
+// 创建 node 节点
+export const renderNode = (h, data, context) => {
+ const { props } = context
+ const cls = ['org-tree-node']
+ const childNodes = []
+ const children = data[props.props.children]
+
+ if (isLeaf(data, props.props.children)) {
+ cls.push('is-leaf')
+ } else if (props.collapsable && !data[props.props.expand]) {
+ cls.push('collapsed')
+ }
+
+ childNodes.push(renderLabel(h, data, context))
+
+ if (!props.collapsable || data[props.props.expand]) {
+ childNodes.push(renderChildren(h, children, context))
+ }
+
+ return h('div', {
+ domProps: {
+ className: cls.join(' ')
+ }
+ }, childNodes)
+}
+
+// 创建展开折叠按钮
+export const renderBtn = (h, data, { props, listeners }) => {
+
+ const expandHandler = listeners['on-expand']
+ const expandMouseover = listeners['on-expand-mouseover']
+ const expandMouseout = listeners['on-expand-mouseout']
+
+ let cls = ['org-tree-node-btn']
+
+ if (data[props.props.expand]) {
+ cls.push('expanded')
+ }
+
+ return h('span', {
+ domProps: {
+ className: cls.join(' ')
+ },
+ on: {
+ 'click': e => expandHandler && expandHandler(e, data),
+ 'mouseover': e => expandMouseover && expandMouseover(e, data),
+ 'mouseout': e => expandMouseout && expandMouseout(e, data)
+ }
+ })
+}
+
+// 创建 label 节点
+export const renderLabel = (h, data, context) => {
+ const { props, listeners } = context
+ const label = data[props.props.label]
+ const renderContent = props.renderContent
+ // event handlers
+ const clickHandler = listeners['on-node-click']
+ const mouseOverHandler = listeners['on-node-mouseover']
+ const mouseOutHandler = listeners['on-node-mouseout']
+
+ const childNodes = []
+ if (typeof renderContent === 'function') {
+ let vnode = renderContent(h, data)
+
+ vnode && childNodes.push(vnode)
+ } else {
+ childNodes.push(label)
+ }
+
+ if (props.collapsable && !isLeaf(data, props.props.children)) {
+ childNodes.push(renderBtn(h, data, context))
+ }
+
+ const cls = ['org-tree-node-label-inner']
+ let { labelWidth, labelClassName, selectedClassName, selectedKey, judge, NodeClass } = props
+
+ if (typeof labelWidth === 'number') {
+ labelWidth += 'px'
+ }
+
+ if (typeof labelClassName === 'function') {
+ labelClassName = labelClassName(data)
+ }
+
+ labelClassName && cls.push(labelClassName)
+
+ // add selected class and key from props
+ if (typeof selectedClassName === 'function') {
+ selectedClassName = selectedClassName(data)
+ }
+
+ selectedClassName && selectedKey && data[selectedKey] && cls.push(selectedClassName)
+
+ return h('div',
+ {
+ domProps: {
+ className: 'org-tree-node-label'
+ }
+ },
+ [
+ h('div',
+ {
+ domProps: {
+ className: ChangeTheColor(data, judge, NodeClass, props) + " org-tree-node-label-inner"
+ },
+ style: {
+ width: labelWidth
+ },
+ on: {
+ click: e => clickHandler && clickHandler(e, data),
+ mouseover: e => mouseOverHandler && mouseOverHandler(e, data),
+ mouseout: e => mouseOutHandler && mouseOutHandler(e, data)
+ }
+ }, childNodes)
+
+
+ ]
+
+
+ )
+}
+
+function ChangeTheColor(e, judge, NodeClass, props) {
+
+
+ if (e.selected==0 && props.isSelect) {
+ return 'noselect-org'
+ } else {
+ if (judge !== "" && judge !== undefined && judge !== null && judge.swtich !== false) {
+ for (var k in judge) {
+ var a = (eval("e." + k))
+ if (NodeClass) {
+ for (let c = 0; c < NodeClass.length; c++) {
+ if (a === NodeClass[c])
+ return NodeClass[c]
+ else if (NodeClass.length - 1 == c)
+ return ""
+ }
+ } else {
+ return ""
+ }
+ }
+ } else {
+ return ""
+ }
+ }
+
+}
+// 创建 node 子节点
+export const renderChildren = (h, list, context) => {
+ if (Array.isArray(list) && list.length) {
+ const children = list.map(item => {
+ return renderNode(h, item, context)
+ })
+
+ return h('div', {
+ domProps: {
+ className: 'org-tree-node-children'
+ }
+ }, children)
+ }
+ return ''
+}
+
+export const render = (h, context) => {
+ const { props } = context
+
+ return renderNode(h, props.data, context)
+}
+
+export default render
\ No newline at end of file
diff --git a/src/components/org-tree/org-tree.vue b/src/components/org-tree/org-tree.vue
new file mode 100644
index 0000000..7af2a46
--- /dev/null
+++ b/src/components/org-tree/org-tree.vue
@@ -0,0 +1,550 @@
+
+
+
+
+ $emit('on-expand', e, data)"
+ @on-expand-mouseover="(e, data) => $emit('on-expand-mouseover', e, data)"
+ @on-expand-mouseout="(e, data) => $emit('on-expand-mouseout', e, data)"
+ @on-node-click="
+ (e, data) => {
+ $emit('on-node-click', e, data);
+ }
+ "
+ @on-node-mouseover="(e, data) => $emit('on-node-mouseover', e, data)"
+ @on-node-mouseout="(e, data) => $emit('on-node-mouseout', e, data)"
+ >
+
+
+
+
+
+
+
diff --git a/src/components/page/JournalCitationAnalysis.vue b/src/components/page/JournalCitationAnalysis.vue
index fe2edb5..548d2c5 100644
--- a/src/components/page/JournalCitationAnalysis.vue
+++ b/src/components/page/JournalCitationAnalysis.vue
@@ -1,20 +1,20 @@
-
+
- {{ $t('JournalCitationAnalysis.info') }} : {{ $t('JournalCitationAnalysis.wos') }} /
- {{ $t('JournalCitationAnalysis.all') }}
-
+ style="
+ width: 100%;
+ box-sizing: border-box;
+ margin-bottom: 20px;
+ background-color: #f4f4f5;
+ padding: 10px;
+ font-size: 12px;
+ color: #909399;
+ "
+ >
+ {{ $t('JournalCitationAnalysis.info') }} : {{ $t('JournalCitationAnalysis.wos') }} /
+ {{ $t('JournalCitationAnalysis.all') }}
+
-
{{ scope.row.cite.year_num }}
@@ -89,19 +96,103 @@
{{ scope.row.cite.pre_year_article_num }}
-
+
- {{ scope.row.cite.yc_if&& scope.row.cite.yc_if>0? scope.row.cite.yc_if.toFixed(2):0 }}
+ {{ scope.row.cite.yc_if && scope.row.cite.yc_if > 0 ? scope.row.cite.yc_if.toFixed(2) : 0 }}
+
+
+
+
+
+
+ {{ scop.$index + 1 }}
+
+
+
+
+
+ Article Tiltle :
+
+ {{ scope.row.article_name }}
+
+
+ Author :
+ {{ scope.row.author }}
+
+
+ {{ $t('paperArticleCount.Periodroll') }} :
+
+ ( {{ scope.row.vol }} )
+
+
+ Doi :
+ {{ scope.row.doi }}
+
+
+
+
+
+ {{ $t('citeList.is_china0') }}
+ {{ $t('citeList.yes') }}
+ {{ $t('citeList.no') }}
+
+
+
+
+ {{ $t('citeList.is_china0') }}
+ {{ $t('citeList.yes') }}
+ {{ $t('citeList.no') }}
+
+
+
+
+
+
+ {{ $t(`artstate.state${scope.row.state}`) }}
+
+
+
+
+
+ {{ scope.row.factor ? scope.row.factor : '-' }}
+
+
+
+
+
@@ -111,9 +202,14 @@ const jAtableY = () => import('@/components/common/journalArticleTable');
export default {
data() {
return {
+ drawerTitle: '',
+ drawer: false,
lang: !localStorage.getItem('langs') || localStorage.getItem('langs') == 'en' ? 'en' : 'zh',
loading: false,
dataList: [],
+ JournalList: [],
+ JournalListLoad: false,
+ currentData: {},
p_year: new Date().getFullYear() - 1,
year: new Date().getFullYear(),
month: new Date().getMonth() + 1
@@ -129,6 +225,43 @@ export default {
this.$forceUpdate();
},
methods: {
+ getJournalList() {
+ this.JournalListLoad = true;
+ this.JournalList = [];
+ this.$api
+ .post('api/Monitor/getCiteListForEditorMonth', {
+ issn: this.currentData.issn
+ })
+ .then(async (res) => {
+ this.JournalListLoad = false;
+ if (res.code == 0) {
+ this.JournalList = res.data.list;
+ console.log('this.AssociatedJournalList at line 234:', this.AssociatedJournalList);
+ } else {
+ this.$message.error(res.msg);
+ }
+ })
+ .catch((err) => {
+ this.JournalListLoad = false;
+ this.$message.error(err);
+ });
+ },
+ openDrawer(data) {
+ this.currentData = data;
+ if (this.currentData) {
+ this.drawerTitle = `${this.currentData.title} ${
+ this.lang == 'en'
+ ? this.$t('JournalCitationAnalysis.cite') + this.getMonthName(this.month)
+ : this.month + '月' + this.$t('JournalCitationAnalysis.cite')
+ } ( ${this.currentData.cite.month_num} )`;
+ }
+
+ this.drawer = true;
+ this.getJournalList();
+ },
+ handleClose() {
+ this.drawer = false;
+ },
getMonthName(month) {
const months = [
'January',
diff --git a/src/components/page/JournalManagement/GroupClassification/index.vue b/src/components/page/JournalManagement/GroupClassification/index.vue
new file mode 100644
index 0000000..9473965
--- /dev/null
+++ b/src/components/page/JournalManagement/GroupClassification/index.vue
@@ -0,0 +1,688 @@
+
+
+
+
+
{{ this.$t('sidebar.GroupClassification') }}
+
+
+
+ {{ $t('GroupClassification.ExpandAll') }}
+
+
+
+
+
{
+ isShowF = true;
+ }
+ "
+ @mouseout="
+ () => {
+ isShowF = false;
+ }
+ "
+ @mousewheel.prevent="mouseWheelDia"
+ >
+
{{ $t('GroupClassification.add') }}
+
+
{{ $t('GroupClassification.edit') }}
+
+
{{ $t('GroupClassification.delete') }}
+
{{ $t('GroupClassification.AssociatedJournal') }}
+
+
+
+
+
+
+ {{ this.currentTreeData.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $t('GroupClassification.deleteInfo') }} 【{{ this.currentTreeData.label }} 】?
+
+
+
+
+
+
+
+
+
+ {{ scop.$index + 1 }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('GroupClassification.Unbind') }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/page/JournalManagement/JournalManagement/all.vue b/src/components/page/JournalManagement/JournalManagement/all.vue
new file mode 100644
index 0000000..c048e8b
--- /dev/null
+++ b/src/components/page/JournalManagement/JournalManagement/all.vue
@@ -0,0 +1,648 @@
+
+
+
+
+
+
{{ $t('GroupClassification.Journal') }}:
+
+
+
+
+
+ {{ $t('GroupClassification.ExpandAll') }}
+
+
+
+
+
+
+
+
+
+
+ {{ this.currentTreeData.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $t('GroupClassification.deleteInfo') }} 【{{ this.currentTreeData.label }} 】?
+
+
+
+
+
+
+
+
+
diff --git a/src/components/page/JournalManagement/JournalManagement/index.vue b/src/components/page/JournalManagement/JournalManagement/index.vue
new file mode 100644
index 0000000..5050b9f
--- /dev/null
+++ b/src/components/page/JournalManagement/JournalManagement/index.vue
@@ -0,0 +1,646 @@
+
+
+
+
+
+
{{ $t('GroupClassification.Journal') }}:
+
+
+
+
+
+ {{ $t('GroupClassification.ExpandAll') }}
+
+
+
+
+
+
+
+
+
+
+ {{ this.currentTreeData.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $t('GroupClassification.deleteInfo') }} 【{{ this.currentTreeData.label }} 】?
+
+
+
+
+
+
+
+
+
diff --git a/src/router/index.js b/src/router/index.js
index 0f34dbe..67e9807 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -823,6 +823,27 @@ export default new Router({
title: 'Total User'
}
},
+ {
+ path: '/GroupClassification', //用户列表
+ component: () => import('../components/page/JournalManagement/GroupClassification/index.vue'),
+ meta: {
+ title: 'Group Classification'
+ }
+ },
+ {
+ path: '/JournalManagement', //用户列表
+ component: () => import('../components/page/JournalManagement/JournalManagement/index.vue'),
+ meta: {
+ title: 'Journal Management'
+ }
+ },
+ {
+ path: '/JournalManagementAll', //用户列表
+ component: () => import('../components/page/JournalManagement/JournalManagement/all.vue'),
+ meta: {
+ title: 'Journal Management'
+ }
+ },
{
path: '/disseMinate', //推广
component: () => import('../components/page/disseMinate'),
diff --git a/vue.config.js b/vue.config.js
index c2b24ac..c961dea 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -72,9 +72,9 @@ module.exports = {
// target: 'https://www.tmrjournals.cn',
// target: 'http://www.tougao.com/public/index.php/',
// target: 'http://www.tougao.com/',
- // target: 'http://192.168.110.110/tougao/public/index.php/',
+ target: 'http://192.168.110.110/tougao/public/index.php/',
// target: 'http://api.tmrjournals.com/public/index.php/',//正式
- target: 'https://submission.tmrjournals.com/',//正式
+ // target: 'https://submission.tmrjournals.com/',//正式
changeOrigin: true,
pathRewrite: {
'^/api': ''